PsExec ตัวใหม่ ช่วยให้แฮ็กเกอร์สามารถหลีกเลี่ยงการป้องกันจากระบบเครือข่ายได้

นักวิจัยด้านความปลอดภัยได้พัฒนาการใช้งาน PsExec utility ที่อยู่ในเครื่องมือ Sysinternals ของ Microsoft ให้สามารถเชื่อมต่อไปภายในเครือข่ายได้โดยการใช้พอร์ต TCP/135 ที่ปกติแล้วจะถูกตรวจสอบน้อยกว่าพอร์ตอื่น ๆ

โดย PsExec ได้รับการออกแบบมาเพื่อช่วยให้ผู้ดูแลระบบสั่งการทำงานเครื่องจากระยะไกลในเครือข่ายได้โดยไม่จำเป็นต้องติดตั้งไคลแอนท์ ทำให้ผู้โจมตีมักใช้เครื่องมือนี้ หลังจากการโจมตีระบบของเหยื่อได้สำเร็จ เพื่อทำการแพร่กระจาย มัลแวร์ หรือส่งคำสั่งไปยังระบบต่าง ๆ ในเครือข่าย

TCP Port ที่ใช้โดย PsExec

แม้ว่า PsExec ปกติแล้วจะมีอยู่ใน Sysinternals แต่ก็มีการนำไปใช้งานใน Impacket บน Python ซึ่งรองรับการทำงานกับโปรโตคอล SMB และโปรโตคอลอื่นๆ เช่น IP, UDP, TCP ที่เปิดใช้งานเพื่อเชื่อมต่อสำหรับ HTTP LDAP (Lightweight Directory Access Protocol) และ Microsoft SQL Server (MSSQL) แต่เวอร์ชันดั้งเดิม และ Impacket จะทำงานในลักษณะเดียวกัน คือจำเป็นต้องเปิดพอร์ต 445 เพื่อเชื่อมต่อผ่านโปรโตคอล SMB และยังสามารถใช้บริหารจัดการ Windows services เช่น create, execute, start stop ผ่าน Remote Procedure Calls (RPC) ซึ่งเป็นโปรโตคอลที่ใช้สำหรับสื่อสารกับระบบปฏิบัติการได้

สำหรับฟังก์ชันอื่น ๆ อาจจำเป็นต้องใช้พอร์ต 135 เพิ่มเติม และด้วยสาเหตุที่พอร์ต 445 จำเป็นมากกว่าต่อการใช้งาน PsExec จึงทำให้การป้องกันจึงมุ่งเน้นไปที่การบล็อกพอร์ต 445 ซึ่งจำเป็นสำหรับ PsExec ในการดำเนินการรันคำสั่ง หรือเรียกใช้ไฟล์

PsExec ที่ถูกพัฒนาขึ้นใหม่

จากไลบรารี Impacket นักวิจัยจาก Pentera ได้นำเครื่องมือ PsExec ไปใช้ทำงานบนพอร์ต 135 เท่านั้นได้สำเร็จ ซึ่งทำให้การบล็อกเพียงพอร์ต 445 เพื่อป้องกันการทำงานจาก PsExec นั้นไม่พออีกต่อไป

Yuval Lazar นักวิจัยด้านความปลอดภัยอาวุโสของ Pentera ระบุในรายงานที่ส่งให้กับ BleepingComputer ว่า คำสั่งต่างๆ จะดำเนินการผ่าน Distributed Computing Environment / Remote Procedure Calls (DCE/RPC)

การใช้งาน PsExec จาก Pentera จะใช้การเชื่อมต่อผ่าน RPC ที่ทำให้นักวิจัยสามารถเรียกใช้คำสั่งตามที่ต้องการโดยไม่ต้องเชื่อมต่อผ่านพอร์ต SMB 445

 

Lazar ระบุกับ BleepingComputer ว่า PsExec ตัวใหม่จะมีโอกาสสูงที่ไม่ถูกตรวจจับได้ในเครือข่าย เนื่องจากหลายองค์กรจับตาดูเพียงพอร์ต 445 และ SMB protocol

อีกจุดหนึ่งที่ Lazar นำเสนอคือการใช้งาน PsExec ปกติต้องใช้ SMB protocol เนื่องจากเป็นลักษณะ file-based แต่ของ Pentera จะเป็นลักษณะ fileless ซึ่งจะทำให้ตรวจจับได้ยากขึ้น

การวิจัยของ Lazar เกี่ยวกับ PsExec เกิดขึ้นในขณะที่ช่องโหว่ด้านความปลอดภัย เช่น PetitPotam และ DFSCoerce ได้แสดงให้เห็นถึงความเสี่ยงจาก RPC ซึ่งการป้องกันช่องโหว่ดังกล่าวไม่ได้เน้นที่การตรวจสอบ DCE/RPC แต่เป็นการป้องกันที่ NTLM relay

ซึ่ง Pentera สังเกตว่าปกติแล้วการรับส่งข้อมูลบน RPC ไม่ค่อยมีการตรวจสอบจากองค์กรต่าง ๆ ซึ่งอาจเกิดจากการที่ระบบป้องกันต่าง ๆ ไม่คิดว่า RPC จะสามารถทำให้เกิดความเสี่ยงด้านความปลอดภัยกับเครือข่ายได้

Will Dormann นักวิเคราะห์ช่องโหว่ของ CERT/CC ยืนยันว่าการบล็อกพอร์ต TCP 445 เพียงอย่างเดียวไม่เพียงพอ

PsExec ใช้การเชื่อมต่อผ่าน SMB และ RPC ซึ่งต้องใช้พอร์ต 445, 139 และ 135 อย่างไรก็ตาม Lazar กล่าวเสริมว่ามีการใช้งาน RPC บน HTTP ด้วย ซึ่งหมายความว่า PsExec ก็อาจทำงานบนพอร์ต 80 ได้เช่นกัน


PsExec เป็นที่นิยมในกลุ่มแรนซัมแวร์

แฮ็กเกอร์ใช้ PsExec ในการโจมตีมาเป็นเวลานาน โดยเฉพาะกลุ่มแรนซัมแวร์ ด้วยการโจมตีที่กินเวลาเพียงหนึ่งชั่วโมง NetWalker ransomware ใช้ PsExec เพื่อเรียกใช้เพย์โหลดได้บนทุกระบบในโดเมน


ตัวอย่างการโจมตีโดยใช้ PsExec

  • กลุ่ม Quantum ransomware อาศัย PsExec และ WMI ใช้เวลาเพียงสองชั่วโมงในการเข้ารหัสทั้งระบบของเหยื่อ หลังจากเข้าถึงผ่านมัลแวร์ IcedID
  • รายงานจาก Microsoft ในเดือนมิถุนายน BlackCat ransomware ใช้ PsExec เพื่อแพร่กระจายเพย์โหลดของแรนซัมแวร์
  • การถูกโจมตีของ Cisco ที่เปิดเผยเมื่อเร็วๆ นี้ ซึ่งกลุ่ม Yanluowang ใช้ PsExec เพื่อเพิ่มค่า Registry จากภายนอก


ที่มา:
bleepingcomputer