NetExec All-in-One Tool เครื่องมือเดียวครบจบ

โดย admin

2 นาที
แชร์
Blog Thumbnail

NetExec All-in-One Tool เครื่องมือเดียวครบจบ

สวัสดีเหล่านักอ่านและผู้หลงใหลในศิลปะแห่งการแฮกทุกท่าน วันนี้เราจะมาพูดถึงเครื่องมือที่หลายคนอาจเคยได้ยินชื่อกันมาบ้างแล้วนั่นก็คือ NetExec เครื่องมือนี้ถือเป็นทายาทรุ่นใหม่ที่พัฒนาต่อยอดมาจาก CrackMapExec หรือที่หลายคนยกให้เป็น “รุ่นคุณปู่” ของสาย Red Team ในบทความนี้ เราจะพาไปทำความรู้จักกับ Module ที่น่าสนใจของ NetExec พร้อมสาธิตการใช้งานจริงกันครับ

NetExec คืออะไร

สำหรับคนที่ยังไม่รู้จัก NetExec มันคือเครื่องมือ Post-exploitation และ Lateral Movement ที่ออกแบบมาสำหรับเจาะระบบเครือข่ายภายใน (Internal Network) โดยเฉพาะ ซึ่งก็ยังมีการอัปเดทมาเรื่อย ๆ จนถึงปัจจุบัน และเพื่อน ๆ สามารถเข้าไปดูรายละเอียดหรือลองใช้งานได้ที่ Github (https://github.com/Pennyw0rth/NetExec)

NetExec สามารถทำงานได้หลายอย่างตั้งแต่

· สแกนและเก็บข้อมูลระบบในเครือข่าย

  • เราสามารถสั่ง NetExec ให้สแกนหาคอมพิวเตอร์ที่เชื่อมต่อกับเครือข่ายเดียวกัน พร้อมแสดงสถานะและข้อมูลเบื้องต้น เช่น ระบบปฏิบัติการ

· ตรวจสอบและยืนยัน Credential

  • NetExec ช่วยทดสอบว่า Username กับ Password ที่เรามีใช้งานได้หรือไม่บนเครื่องเป้าหมาย โดยไม่ต้องนั่งลองทีละเครื่องเอง

· ดึงข้อมูลสำคัญจากเครื่องเป้าหมาย

  • อย่างเช่น รายชื่อผู้ใช้ที่กำลังล็อกอินอยู่, รายการโปรแกรมแอนตี้ไวรัสที่ติดตั้ง หรือข้อมูลใน Active Directory

· รันคำสั่งระยะไกล (Remote Command Execution)

  • สามารถรันคำสั่งบนเครื่องเป้าหมายผ่านทาง SMB หรือ WinRM ได้ทันที เพื่อให้เราควบคุมเครื่องได้เหมือนนั่งอยู่หน้าคอมพิวเตอร์เครื่องนั้น

· การทำ Lateral Movement ไปยังเครื่องอื่นใน Domain

  • เมื่อตรวจสอบแล้วว่าเครื่องไหนรหัสผ่านใช้งานได้ ก็สามารถใช้ NetExec เพื่อเข้าไปควบคุมเครื่องอื่น ๆ ในเครือข่ายได้

เดิมทีแล้ว NetExec พัฒนาต่อยอดมาจาก CrackMapExec (CME) ที่เป็นเครื่องมือดังในสาย Red Team แต่ได้มีการปรับโครงสร้างโค้ดใหม่ให้ เบา, เร็ว, และรองรับโมดูลเสริมได้ง่ายกว่า รวมถึงแก้ปัญหาที่ CME เคยมีเรื่อง Dependency เก่า และการดูแลโค้ดที่ซับซ้อนทำให้ยากต่อการพัฒนาและบำรุงรักษา

NetExec vs CrackMapExec แบบคร่าวๆ

NetExec มีการรองรับ Protocol มากกว่า จากตารางเปรียบเทียบจะเห็นว่า NetExec รองรับทุก protocol ที่ CME รองรับ และเพิ่มเติมอีก 3 Protocol:

· NFS (Network File System)

· WMI (Windows Management Instrumentation)

· VNC (Virtual Network Computing)

จากการเพิ่ม Protocol เข้ามาใหม่ทำให้เราสามารถ Post-exploitation และ Lateral Movement ได้มากขึ้นตามไปด้วย นอกจากนี้ยังมีการปรับปรุงประสิทธิภาพในการทำงานแบบ Multi-threading และถูกเขียนใหม่ด้วยโครงสร้างที่ดีกว่า ทำให้ง่ายต่อการพัฒนาและบำรุงรักษานั้นเอง

ตัวอย่างคำสั่ง NetExec

NetExec รองรับการเรียกใช้งานผ่านคำสั่งย่อ nxc ซึ่งจะช่วยให้ผู้ใช้สามารถพิมพ์คำสั่งได้สั้นลง และทำงานได้สะดวกมากขึ้นนั้นเอง

# SMB enumeration
nxc smb 192.168.1.0/24 -u username -p password
# WMI command execution
nxc wmi 192.168.1.100 -u admin -p password -x “whoami”
# NFS enumeration
nxc nfs 192.168.1.0/24 - shares
# LDAP query
nxc ldap dc01.domain.com -u user -p pass - users

ภาพตัวอย่างการใช้งาน

การใช้งานเพื่อดึงข้อมูล Domain

การที่เราจะหาทางโจมตี Domain คงจะหนีไม่พ้น Module พื้นฐานอย่าง bloodhound, kerberoasting และ asreproast ซึ่งจะช่วยให้เราดึงข้อมูลได้อย่างรวดเร็วและง่ายดาย ยกตัวอย่างการใช้งานตามภาพด้านล่าง

nxc ldap 192.168.117.200 -u usern -p ‘s0met1me.’ -d ‘ASGARD.LOCAL’ — bloodhound -c All

ถ้าหากเราใช้ — bloodhound ดึงข้อมูลสำเร็จเครื่องมือ NetExec จะแดงที่อยู่ของไฟล์ ZIP เราก็เพียงนำไฟล์นี้ไปเปิดต่อในโปรแกรม BloodHound ได้เลยครับ

จากนั้นเมื่อเปิดดูข้อมูลแล้วเราพบว่าผู้ใช้ชื่อ lolipop ถูกตั้งค่าให้เป็น AS-REP Roastable เราก็สามารถใช้ Module asreproast ดึงค่า Hash ของผู้ใช้นี้ออกมา แล้วนำไปใช้กับเครื่องมือ crack รหัสผ่านต่อได้ทันที

ต่อมาเราสามารถใช้คำสั่ง –asreproast เพื่อดึงข้อมูล Hash ของผู้ใช้งานที่ถูกตั้งค่า AS-REP Roastable ได้

nxc ldap 192.168.117.200 -u usern -p ‘s0met1me.’ -d ‘ASGARD.LOCAL’ — asreproast output.txt

ที่เหลือเราสามารถใช้เครื่องมืออย่าง Hashcat หรือ John the ripper ในการ Crack รหัสผ่านได้เลยครับ

Module ที่พูดเขียนชอบใช้งาน

ในขั้นตอน Post-exploitation หลังจากที่เราสามารถยึดเครื่องเป้าหมายได้แล้วนั้น เป้าหมายต่อไปย่อมเป็นการหาวิธีโจมตีต่อเพื่อเข้าถึงเครื่องอื่นหรือยึดครอง Domain ซึ่งในสถานการณ์แบบนี้ ผู้เขียนมักเลือกใช้โมดูลบางตัวเป็นพิเศษเพื่อช่วยเก็บข้อมูลสำคัญและโจมตีเครื่องถัดไป ยกตัวอย่างเช่น หากเราโจมตีเครื่องเซิร์ฟเวอร์จนได้รับสิทธิ์ Administrator เรียบร้อยแล้ว เราสามารถใช้คำสั่ง — loggedon-users เพื่อดูว่ามี Active Session ของผู้ใช้หรือบัญชีใดบ้างที่กำลังเชื่อมต่ออยู่กับเครื่องนั้นได้

จากการใช้คำสั่ง — loggedon-users ตามภาพ จะเห็นได้ว่าเครื่องเซิร์ฟเวอร์ SRV1 มีการล็อกอินหรือมี Active Session ของผู้ใช้ ASGARD\Administrator อยู่ ซึ่งจากชื่อบัญชีนี้ก็พอจะเดาได้ไม่ยากว่าเป็น Domain Admin ของระบบ ซึ่งถ้าเราสามารถรันคำสั่งหรือเข้าถึงสิทธิ์ของผู้ใช้นี้ได้ ก็เท่ากับว่าเราสามารถยึดโดเมนทั้งหมดได้ทันที

แล้วถ้าเราต้องการใช้งาน Active Session ที่เจออยู่ล่ะ… ทำได้ไหม? คำตอบคือ ทำได้แน่นอน โดย NetExec มีโมดูลที่ช่วยให้เราสามารถสั่งรันคำสั่งบนเซสชันของผู้ใช้นั้นได้ทันที เช่น ในกรณีนี้เราสามารถใช้โมดูล schtask_as (อยู่ในหมวด Protocol SMB) เพื่อสวมสิทธิ์และรันคำสั่งเป็น ASGARD\Administrator ได้

นอกจากนี้ NetExec ยังมีโมดูลอีกมากมายที่น่าสนใจรอให้ลองใช้งาน เพื่อน ๆ สามารถเรียกดูรายการโมดูลทั้งหมดพร้อมคำอธิบายได้ง่าย ๆ ด้วยคำสั่ง

nxc <จากที่ลองใช้งาน NetExec ในหลาย ๆ โมดูล ผู้เขียนก็ลุ้นอยากให้เพิ่มโมดูลช่วยโจมตีท่า ESC (Enterprise Session Certificate) แบบอัตโนมัติ เพราะจะทำให้การโจมตี Certificate ง่ายและเร็วขึ้น แถมยังช่วยให้เรายึด Domain Controller ได้ครบจบในเครื่องมือเดียวเลย

เป็นยังไงกันบ้างครับกับบทความของ NetExec ที่ผมเอามาฝากในวันนี้ หวังว่าจะช่วยให้เพื่อน ๆ เห็นภาพว่าเครื่องมือนี้ไม่ได้มีดีแค่การสแกนหรือยิง credential แต่ยังสามารถต่อยอดทำ Post-exploitation และ Lateral Movement ได้หลากหลายภายในตัวเดียว สุดท้ายนี้ฝากกดติดตามเพจเพื่อติดตามข่าวสารกันด้วยนะครับ

References

- https://www.netexec.wiki/

- https://github.com/Pennyw0rth/NetExec

แชร์
กลับไปด้านบน

บทความที่เกี่ยวข้อง

อัปเดตข้อมูลด้านไซเบอร์ ทุกสัปดาห์
รับข่าวสารความรู้เชิงลึกเกี่ยวกับความปลอดภัยไซเบอร์จากดาต้าฟาร์มก่อนใคร

ฟีเจอร์นี้จะเปิดให้ใช้งานเร็ว ๆ นี้ โปรดติดตาม

ส่งสัปดาห์ละ 1 ครั้ง ไม่มีสแปม ยกเลิกการรับข่าวสารได้ทุกเมื่อ