BRUTE FORCE HTTP FORM LOGIN
BRUTE FORCE HTTP FORM LOGIN
การโจมตีอีกแบบหนึ่งที่มักถูกนำมาใช้ คือการโจมตีในลักษณะแบบ Brute Forcing Attack (หรือพูดง่ายๆก็คือการเดา username และ password นั่นเอง) ซึ่งสามารถใช้เครื่องมือต่างๆได้เช่น Burp Suite, hydra, medusa, brutus, wwwhack, websleuth เป็นต้น โดยในที่นี้ยกตัวอย่างการ brute force login form ของเว็บไซต์
Brute Force ด้วย Burp Suite
1. เข้าใช้งานเว็บไซด์เป้าหมาย


2. ให้กระทำการ logout จากนั้นให้ทดสอบใช้งานเว็บไซต์ใหม่อีกครั้งโดยครั้งนี้ให้เริ่มจากทำการ set ให้ Browser ใช้งาน Burp Suite เพื่อให้ง่ายต่อการ replay request โดยกระทำดังนี้
- เปิด Burp Suite ขึ้นมา (วิธีการติดตั้ง Burp Suite ให้ดูได้จาก https://learn.techsuii.com/p/burp-suite-series)
- หากเป็น Firefox ให้เข้าไปที่ Edit -> Preferences -> Settings ในส่วน Network Proxy -> กำหนด Configure Proxy เป็น Manual proxy configuration และเลือก HTTP Proxy เป็น 127.0.0.1 Port 8080

- หากเป็น Chrome ให้เลือกเป็น Preferences -> Advanced (ล่างสุด) -> Open Proxy Settings -> จากนั้นกำหนด Proxy เป็น Manual proxy configuration และเลือก HTTP Proxy เป็น 127.0.0.1 Port 8080
จะเห็น HTTP Request ที่จะถูกส่งไปยังเครื่องเป้าหมายปลายทาง

3. ให้คลิ๊กขวาแล้วเลือก “Send to Intruder” เพื่อโจมตี Brute Force

4. ไปที่ Position กดที่ปุ่ม Clear $ เพื่อเคลียร์ทุกจุดของการ brute force

5. เนื่องด้วย user ที่เราต้องทำการ brute force คือ admin ดังนั้นเราจะกำหนดให้เป็น email=admin จากนั้น Drag รอบ test ในส่วนของ Password จากนั้นกดปุ่ม Add $ จะได้ผลลัพธ์ตามภาพ

6. จากนั้นให้สร้าง password list ขึ้นมาโดยใช้ชื่อว่า password.txt โดยใส่เป็น

3. ให้คลิ๊กขวาแล้วเลือก “Send to Intruder” เพื่อโจมตี Brute Force

4. ไปที่ Position กดที่ปุ่ม Clear $ เพื่อเคลียร์ทุกจุดของการ brute force

5. เนื่องด้วย user ที่เราต้องทำการ brute force คือ admin ดังนั้นเราจะกำหนดให้เป็น email=admin จากนั้น Drag รอบ test ในส่วนของ Password จากนั้นกดปุ่ม Add $ จะได้ผลลัพธ์ตามภาพ

6. จากนั้นให้สร้าง password list ขึ้นมาโดยใช้ชื่อว่า password.txt โดยใส่เป็น
1qaz2wsx
1234567890
p@ssw0rd
password
P@ssw0rd
12345
0987654321
admin
111111
qwerty
iloveyou
7. ไปที่ Tap Payloads จากนั้นไปที่ส่วน Payload Options ให้กด Load password.txt ที่เราสร้างขึ้นมาในขั้นตอนที่ 6


8. กดที่ปุ่ม “Start attack”


8. กดที่ปุ่ม “Start attack”
9. รอผลลัพธ์และจะพบว่า Response ที่ตอบกลับมาจาก Server ที่เป็นการ login ที่ถูกต้องจะมีค่า Length ที่แตกต่างจากการใช้งานคำอื่นๆ

จากการ brute force จะพบว่า user admin มี password เป็น 1234567890 นั่นเอง

จากการ brute force จะพบว่า user admin มี password เป็น 1234567890 นั่นเอง
Brute Force ด้วย Hydra
นอกเหนือจาก Burp Suite เราสามารถใช้ Hydra ในการ Brute Force ได้เช่นกัน
hydra -l <username> -P <password file> <target> -s <port> http-post-form "<URL>:<username parameter>=^USER^&<password parameter>=^PASS^:F=<False Result>:S=<Success Result>" -v -f -e nsr
โดย
- <username> คือ user ที่เราต้องการ brute force แต่หากเราต้องการเปลี่ยนเป็น username list ให้ใช้เป็น -L
- <password file> คือ password list ที่ใช้เพื่อทำการ brute force
- <target> คือเครื่องเป้าหมาย
- -s คือ port (โดยปกติโปรแกรมจะใช้ default port ของ protocol เช่น HTTP ก็จะเป็น 80 เป็นต้น)
- http-post-form คือ method ที่เราใช้ในการ brute force โดยมีทั้ง adam6500 asterisk cisco cisco-enable cvs firebird ftp ftps http[s]-{head|get|post} http[s]-{get|post}-form http-proxy http-proxy-urlenum icq imap[s] irc ldap2[s] ldap3[-{cram|digest}md5][s] mssql mysql nntp oracle-listener oracle-sid pcanywhere pcnfs pop3[s] postgres radmin2 rdp redis rexec rlogin rpcap rsh rtsp s7-300 sip smb smtp[s] smtp-enum snmp socks5 ssh sshkey svn teamspeak telnet[s] vmauthd vnc xmpp ขึ้นอยู่กับ protocol แต่หากเป็น http จะเป็น http[s]-{head|get|post} http[s]-{get|post}-form http-proxy http-proxy-urlenum
- <URL> คือตำแหน่งที่เราจะ submit user และ password ไป
- <username parameter> คือชื่อตัวแปรของ username ที่ต้องการ submit
- <password parameter> คือชื่อตัวแปรของ password ที่ต้องการ submit
- ^USER^ คือตำแหน่งที่นำค่า user จาก -l, -L มาใส่
- ^PASS^ คือตำแหน่งที่นำค่า password จาก -p, -P มาใส่
- F คือ string ที่ใช้ในการระบุว่าเป็น response จากการ login ผิด
- S คือ string ที่ใช้ในการระบุว่าเป็น response จากการ login ถูก
- -v คือ verbose คือแสดงรายละเอียดการ brute force
- -f คือ หยุดการ brute force เมื่อ login สำเร็จ
- -e nsr คือการลอง password ด้วย ค่าว่างเปล่า (NULL), ค่าเดียวกับ username, ค่า reverse ของ username
โดยในที่นี้จะใช้เป็น
hydra -l admin -P /root/password.txt challenge.secplayground.com -s 9000 http-post-form "/login.php:email=^USER^&password=^PASS^&submit=:S=panel.php" -v -f -e nsr
หากเป็น Brute Force ไปยัง Wordpress จะใช้เป็น
hydra <TARGET IP> -s 12380 https-form-post “/wordpress/path/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log In&testcookie=1:S=Location” -L users -P pass
Comments
Post a Comment