How to exploit Predictable PRNG Bruteforce OpenSSH – Metasploitable2

บทนำ (Overview)

จากบทความก่อนหน้าได้นำเสนอวิธีการ “Brute-force” ตัวรหัสผ่าน (How to brute force SSH– Metasploitable2) ซึ่งก็ขึ้นอยู่กับ “Wordlist” ที่มีอยู่และความยากของรหัสผ่านที่ตั้งไว้ แต่มาในบทความนี้จะใช้การ “Brute-force” ตัว “Key” ที่ใช้ในการเข้ารหัส เนื่องจากมีความเป็นไปได้สูงกว่า เพราะ “Algorithm” ในการ “Random Number” แม้จะสุ่มแต่ก็มีความเป็นไปได้ที่จะคาดเดาได้เช่นกัน โดยการโจมตีครั้งนี้เราจะไม่ทราบ “Password” ของ “Username” ต่าง ๆ แต่ก็สามารถ Login เข้าใช้งานไม่ต่างกัน

ขั้นตอน (Step1)

  1. ก่อนอื่นเราต้อง “Scan” หา “Port” และ “Version” ที่ใช้ในแต่ละบริการเสียก่อนโดยใช้โปรแกรม “Nmap” ดังนี้
    nmap -sV -O 192.168.1.55 -p1-65535
    

    Metasploitable2-ssh-01

  2. เราพบว่ามี “Port” หมายเลข “22” คือ “Open-ssh 4.7p1 Debian 8ubuntu1 (protocol 2.0)” เปิดอยู่ ให้ค้นหาช่องโหว่ที่เกี่ยวข้องกับ Open-ssh ที่เกี่ยวข้องกับ “version” ดังกล่าว
  3. เราพบว่ามีช่องโหว่คือ ตัวเลขสุ่ม หรือ “Random Number Generator” หรือ “PRNG” บนระบบปฎิบัติการ “Debian” หรือ “Ubuntu” (http://www.ubuntu.com/usn/usn-612-2/) นั้น ถูกสร้างขึ้นมา โดยง่ายต่อการคาดเดา ส่งผลให้สามารถ “Brute-force” ตัว “Key” ของการเข้ารหัสได้ โดยการเข้ารหัสของ “SSH” เป็นแบบอสมมาตร (Asymmetric)  กล่าวคือมีกุญแจ 2 ดอก คือ “Publib Key” และ “Private Key”  ในช่องโหว่นี้เราจะ “Brute-force” เพื่อหา “Private key” ที่ถูกใช้ในฝั่งเครื่องเหยื่อ
  4. เมื่อทราบช่องโหว่ดังกล่าวแล้วเรา หา “Code” สำหรับการ Exploit ช่องโหว่ดังกล่าว ซึ่งเราพบ “Exploit code”
    ได้จาก (https://www.exploit-db.com/exploits/5720/)
  5. ตัวโปรแกรมดังกล่าวจำเป็นต้องมี “Key” ที่เป็นช่องโหว่สำหรับการ “Brute-force” ซึ่งสามารถดาวน์โหลดได้จาก
  6. จับทุกอย่างให้อยู่โฟลเดอร์เดียวกัน และไฟล์ “vulnerable keys” ให้แตก zip ออกมาตามรูป ดังนี้ Metasploitable2-ssh-prng-01
  7. จากนั้นเข้าไปยังโฟลเดอร์ดังกล่าว แล้วใช้คำสั่งเรียกตัว “Exploit” เพื่อค้นหา “vulnerable key” ของ “username” ต่าง ๆ ที่ต้องการทดสอบ โดยครั้งลองทดสอบ “root”
    python 5720.py /root/Desktop/SSH/rsa/2048/ 192.168.1.56 root
    
  8. รอจนกระทั้งเสร็จสิ้น ถ้าสำเร็จจะพบ “Key” ดังรูป Metasploitable2-ssh-prng-02
  9. เมื่อพบ “Key” ดังกล่าวเราสามารถใช้เพื่อ “Login” สำหรับ “root” ดังนี้
    ssh -lroot -p22 -i /root/Desktop/SSH/rsa/2048//57c3115d77c56390332dc5c49978627a-5429 192.168.1.56
    

    Metasploitable2-ssh-prng-03

  10. จากผลการทดสอบ เราทดลองเทียบ “Private key” ที่ได้จากการ “Brute-force” กับที่มีอยู่จริงในเครื่องเหยื่อพบว่า เหมือนกันทุกประการ (ด้านซ้าย เครื่อง Hacker ด้านขวาเครื่อง Victim)Metasploitable2-ssh-prng-04

 

ใส่ความเห็น