Lời mở đầu Trong thế giới ngày nay, phần lớn mọi người thường nhận thức được rằng người dùng nguy hiểm và tin tặc có thể lấy cắp thông tin bí mật của họ thông qua các cuộc tấn công khác
Trang 1BỘ THÔNG TIN VÀ TRUYỂN THÔNG HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Học phần An toàn và bảo mật hệ thống thông tin
Bài báo cáo : Tìm hiểu về medusa
Sinh viên thực hiện: Trần Thanh Tùng
Trang 2Lời mở đầu
Trong thế giới ngày nay, phần lớn mọi người thường nhận thức được rằng người dùng nguy hiểm và tin tặc có thể lấy cắp thông tin bí mật của họ thông qua các cuộc tấn công khác nhau Tuy nhiên, hầu hết mọi người không thực sự tìm hiểu các cuộc tấn công cụ thể mà họ dễ bị tấn công Vì vậy, trong bài viết này, Chúng ta sẽ tìm hiểu về Tấn công bằng mật khẩu
Tấn công bằng mật khẩu có nghĩa là một bên thứ ba cố gắng truy cập vào
hệ thống của bạn bằng cách bẻ khóa mật khẩu của người dùng, điều này nghe có
vẻ bất hợp pháp nhưng tùy thuộc vào người dùng, chúng ta muốn sử dụng nó cho việc tốt hay việc xấu Tấn công bằng mật khẩu rất hữu ích trong các Sự kiện mạng khác nhau cũng như có thể thực hiện nó trên hệ thống của riêng mình trong trường hợp chúng ta quên mật khẩu Trong bài viết này, chúng tôi sẽ tìm hiểu và thực hiện các cuộc tấn công với sự trợ giúp của công cụ Medusa trong Kali Linux
Trang 3Mục lục
Chương I Khái quát về medusa 5
1 Giới thiệu về Medusa 5
2 Các tính năng chính của ứng dụng. 5
Thử nghiệm song song dựa trên luồng: 5
Đầu vào của người dùng linh hoạt: 5
Thiết kế mô-đun: 5
Nhiều giao thức được hỗ trợ: 5
3 Cách cài đặt medusa 5
Trên Kali linux 6
Trên Debain, Ubuntu, Linux Mint 6
4 Các lệnh trong medusa 6
5 Tùy chọn mô-đun của medusa 11
Chương II Demo 23
Demo 1: Tấn công vét cạn sử dụng Medusa 23
Demo 2: Tấn công vét cạn sử dụng telnet 25
Kết luận 29
Tài liệu tham khảo 29
Trang 4Danh sách các thuật ngữ viết tắt
Trang 5Chương I Khái quát về medusa
1 Giới thiệu về Medusa
Medusa là 1 công cụ tấn công vét cạn đăng nhập theo mô-đun, tốc độ và song song Đó là 1 công cụ rất nhanh và mạnh Medusa được sử dụng để vét cạn các thông tin đăng nhập trong càng nhiều giao thức càng tốt, điều này cuối cùng dẫn đến việc thực thi lệnh từ xa Medusa hiện có hơn 21 mô-đun, một số trong
đó là : PcAnywhere, POP3, CVS, FTP, HTTP, IMAP, SMB, SMTP (VRFY), SNMP, SSHv2, MS-SQL, MySQL, NCP (NetWare), PostgreSQL, rexec, rlogin, rsh, Telnet, SVN, VNC, VmAuthd và một mô-đun bao bọc Kali linux đi kèm với Medusa được cài đặt sẵn
2 Các tính năng chính của ứng dụng
Thử nghiệm song song dựa trên luồng:
Thử nghiệm tấn công vét cạn có thể được thực hiện đồng thời với nhiều máy chủ, người dùng hoặc mật khẩu
Đầu vào của người dùng linh hoạt:
Thông tin mục tiêu (máy chủ/ người dùng / mật khẩu) có thể được chỉ định theo nhiều cách khác nhau Ví dụ: mỗi mục có thể là một mục nhập duy nhất hoặc một tệp chứa nhiều mục nhập Ngoài ra, định dạng tệp kết hợp cho phép người dùng tinh chỉnh danh sách mục tiêu của họ
Thiết kế mô-đun:
Mỗi mô-đun dịch vụ tồn tại dưới dạng tệp mod độc lập Điều này có nghĩa là không cần sửa đổi đối với ứng dụng cốt lõi để mở rộng danh sách các dịch vụ
được hỗ trợ cho hành vi vét cạn
Nhiều giao thức được hỗ trợ:
Nhiều dịch vụ hiện đang được hỗ trợ (ví dụ: SMB, HTTP, POP3, MS-SQL, SSHv2 và những dịch vụ khác)
3 Cách cài đặt medusa
Trang 6Trên Kali linux
Thường thì trên kali linux đã tổng hợp sẵn medusa
Để kiểm tra phiên bản kali linux đã được cài medusa hay chưa chúng ta chỉ cần nhập medusa trong cmd để biết
Trên Debain, Ubuntu, Linux Mint
Link download medusa: https://github.com/jmk-foofus/medusa
4 Các lệnh trong medusa
Trang 7Tệp chứa các mục kết hợp Các tệp kết hợp được phân tách bằng dấu hai chấm
và ở định dạng sau: máy chủ: người dùng: mật khẩu Nếu bất kỳ trường nào trong số ba trường được để trống, thông tin tương ứng phải được cung cấp dưới dạng một giá trị chung duy nhất hoặc dưới dạng danh sách trong tệp
Có thể có các kết hợp sau trong tệp kết hợp:
Trang 81.) foo: bar: fud 2.) foo: bar:
3.) foo ::
4.): bar: fud 5.): bar:
6.) :: fud 7.) foo :: fud
Medusa cũng hỗ trợ sử dụng tệp PwDump dưới dạng tệp kết hợp Định dạng của các tệp này phải là user: id: lm: ntlm ::: Chúng ta tìm kiếm ':::' ở cuối dòng đầu tiên để xác định xem tệp có chứa đầu ra PwDump hay không
-O [file]
Tệp để nối thông tin nhật ký vào Medusa sẽ ghi lại tất cả thông tin đăng nhập tài khoản được tìm thấy là hợp lệ hoặc gây ra lỗi không xác định Nó cũng sẽ ghi lại thời gian bắt đầu và dừng của một cuộc kiểm tra, cùng với các tham số gọi
-e [n/ s/ ns]
Kiểm tra mật khẩu bổ sung ([n] Không có mật khẩu, [s] Mật khẩu = Tên người dùng) Nếu cả hai tùy chọn đang được sử dụng, chúng phải được chỉ định cùng nhau ("-e ns") Nếu chỉ có một tùy chọn được gọi, hãy sử dụng "-e n" hoặc "-e s"
-d
Xóa tất cả mô-đun đã biết
Trang 9-T [NUM]
Tổng số máy chủ được kiểm tra đồng thời
Trang 104) tài khoản được tìm thấy 5) kiểm tra tài khoản 6) thông điệp chung
Trang 112) nguy hiểm 3) lỗi
4) cảnh báo 5) thông báo 6) thông tin 7) gỡ lỗi 8) gỡ lỗi -kiểm toán 9) gỡ lỗi - máy chủ 10) gỡ lỗi - mô- đun
-V
Phiên bản hiển thị
-Z [TEXT]
Cho phép tiếp tục cơ bản của quá trình quét trước đó Tham số được cung cấp
mô tả máy chủ nào đã được hoàn thành, máy chủ nào đã được kiểm tra một phần
và máy chủ nào chưa được khởi động Khi Medusa nhận được SIG ‐ INT, nó sẽ tính toán và hiển thị "sơ đồ lý lịch" Bản đồ này sau đó có thể được cung cấp cho lần chạy tiếp theo Ví dụ:
"medusa [OPTIONS PREVIOUSLY USED] -Z h6u1u2h8." Trong ví dụ cụ thể này, máy chủ 1-5 đã hoàn thành, máy chủ 6 đã hoàn thành một phần (người dùng 1 đã hoàn thành một phần và người dùng 2 trở lên chưa được khởi động), máy chủ 7 đã hoàn thành và máy chủ 8 trở lên chưa được khởi động Medusa sẽ phân tích cú pháp bản đồ này và bỏ qua các máy chủ và người dùng tương ứng Cần lưu ý rằng chỉ máy chủ và cấp người dùng, không vượt qua
5 Tùy chọn mô-đun của medusa
Trang 12Các mô-đun medusa có sẵn :
Afp.mod: mô-đun tấn công vét cạn cho các phiên AFP
Cvs.mod: mô-đun tấn công vét cạn cho các phiên CVS
Ftp.mod: mô-đun tấn công vét cạn cho các phiên FTP/FTPS
Http.mod: mô-đun tấn công vét cạn cho HTTP
Imap.mod : mô-đun tấn công vét cạn cho các phiên IMAP
Mssql.mod : mô-đun tấn công vét cạn cho các phiên MSSQL
Mysql.mod : mô-đun tấn công vét cạn cho các phiên MySQL
nntp.mod : mô-đun tấn công vét cạn cho các phiên NNTP
pcanywhere.mod :mô-đun tấn công vét cạn cho các phiên PcAnywhere pop3.mod : mô-đun tấn công vét cạn cho các phiên POP3
postgres.mod: Mô-đun Tấn công vét cạn cho các phiên PostgreSQL
rdp.mod: Mô-đun Tấn công vét cạn cho các phiên RDP (Microsoft
Terminal Server)
rexec.mod: Mô-đun Tấn công vét cạn cho các phiên REXEC
rlogin.mod: Mô-đun Tấn công vét cạn cho các phiên RLOGIN
rsh.mod: Mô-đun Tấn công vét cạn cho các phiên RSH
smbnt.mod: Mô-đun Tấn công vét cạn cho các phiên SMB (LM / NTLM / LMv2 / NTLMv2)
smtp-vrfy.mod:Mô-đun Tấn công vét cạn để xác minh tài khoản SMTP (VRFY / EXPN / RCPT TO)
smtp.mod: Mô-đun Tấn công vét cạn để Xác thực SMTP với TLS
snmp.mod: Mô-đun Tấn công vét cạn cho Chuỗi cộng đồng SNMP
ssh.mod: Mô-đun Tấn công vét cạn cho các phiên SSH v2
svn.mod: Mô-đun Tấn công vét cạn cho các phiên Subversion
telnet.mod: Mô-đun Tấn công vét cạn cho các phiên telnet
vmauthd.mod: Mô-đun Tấn công vét cạn cho VMware Authentication Daemon
vnc.mod: Mô-đun Tấn công vét cạn cho các phiên VNC
Trang 13web-form.mod: Mô-đun Tấn công vét cạn cho biểu mẫu web
wrapper.mod: Mô-đun trình bao bọc chung
MODE:? (NORMAL*, EXPLICIT, IMPLICIT)
EXPLICIT: AUTH TLS được định nghĩa trong RFC 4217
Explicit FTPS (FTP/SSL) kết nối với dịch vụ FTP Tuy nhiên, trước khi gửi bất kỳ thông tin đăng nhập nào, lệnh "AUTH TLS" được đưa ra và phiên SSL được thương lượng
IMPLICIT: FTP over SSL (990/tcp) FTPS ngầm yêu cầu thực hiện bắt tay SSL trước khi gửi bất kỳ lệnh FTP nào Dịch vụ này thường nằm trên tcp / 990 Nếu người dùng chỉ định tùy chọn này hoặc sử dụng tùy chọn "-n" (SSL), mô-đun sẽ mặc định ở chế độ này và tcp / 990
NORMAL Hành vi mặc định nếu không có MODE nào được chỉ định Xác thực được cố gắng rõ ràng Nếu máy chủ yêu cầu mã hóa cho người dùng nhất định FTPS rõ ràng được sử dụng
3) http
Các tùy chọn mô-đun có sẵn
Trang 14USER-AGENT:? (User-Agent Default: Mozilla/1.22 (compatible; MSIE 10.0; Windows 3.1))
DIR:? (Target directory Default "/")
AUTH:? (Authentication Type (BASIC/DIGEST/NTLM) Default: automatic)
DOMAIN:? [optional]
CUSTOM-HEADER:? Additional HTTP header
Nhiều tiêu đề hơn có thể được xác định bằng cách sử dụng tùy chọn này nhiều lần
Lưu ý: Hành vi mặc định của xác thực NTLM là sử dụng tên miền
do máy chủ cung cấp Để nhắm mục tiêu các tài khoản cục bộ chứ không phải tên miền, hãy sử dụng tùy chọn DOMAIN để tham chiếu hệ thống cục bộ: "-m DOMAIN: 127.0.0.1"
4) imap
Các tùy chọn mô-đun có sẵn:
TAG:? (Default: gerg)
AUTH:? (Authentication Type (LOGIN/PLAIN/NTLM) Default: automatic)
DOMAIN:? [optional]
Tùy chọn DOMAIN phải cung cấp miền được chỉ định một cách thích hợp, bất kể loại xác thực là gì Miền cũng có thể được cung cấp thông qua trường tên người dùng, nhưng định dạng có vẻ khác nhau theo loại xác thực
Trang 155) mssql
LƯU Ý: Phiên bản dành cho nhà phát triển MS-SQL hoặc thống đốc khối lượng công việc đồng thời của MSDE giới hạn bạn không quá năm kết nối đồng thời tới máy chủ cùng một lúc
6) mysql
Các tùy chọn mô-đun có sẵn:
PASS:? (PASSWORD*, HASH) Trong đó
PASSWORD: Sử dụng mật khẩu bình thường
HASH: Sử dụng hàm băm thay vì mật khẩu (Chỉ sử dụng hàm băm không phải SHA-1)
Trang 16Mô-đun sẽ truy vấn dịch vụ cho các phương thức được chấp nhận thông qua yêu cầu "AUTH"
USER (clear-text), SASL PLAIN, SASL LOGIN, and SASL NTLM
phương pháp xác thực được hỗ trợ
DOMAIN:? [optional]
thực NTLM Hành vi mặc định là sử dụng giá trị miền do máy chủ cung cấp
Trang 17những người dùng mà bạn nghi ngờ có thể có rhosts / hosts.equiv cho phép nguồn của bạn
và sau đó cố gắng kiểm tra thông tin xác thực đối với máy chủ Nếu tài khoản không tồn tại cục bộ trên máy chủ đang được kiểm tra, thì máy chủ đó sẽ truy vấn bộ điều khiển miền của nó
HASH: Sử dụng hàm băm NTLM thay vì mật khẩu
AUTH:? (LM, NTLM, LMv2*, NTLMv2)/ Tùy chọn đặt mức xác thực trình quản lý mạng LAN
Trang 18không Các ví dụ sau đây nêu bật cách ngắt câu trả lời
Trang 19MAILFROM:? [optional]
VERB:? (Verb/Command: VRFY/EXPN/RCPT TO Mặc định: RCPT TO
*** LƯU Ý: Tên miền địa chỉ đích phải được chỉ định trong trường mật khẩu ***
ACCESS:? (READ*, WRITE) Đặt cấp độ truy cập để kiểm tra với chuỗi cộng đồng
Trang 20phản hồi nào, chúng tôi sẽ kiểm tra chúng để xem chuỗi cộng đồng nào đã thành công Nếu ACCESS: WRITE được chỉ định, chúng tôi sẽ kiểm tra quyền ghi trên từng giá trị thành công trước đó Kỹ thuật này sẽ cho phép nhanh chóng cưỡng bức vũ phu Tuy nhiên, bạn nên cẩn thận với các giá trị TIMEOUT và SEND_DELAY để tránh gây ra sự cố với dịch vụ đích hoặc thiếu dữ liệu phản hồi
20) vnc
Các tùy chọn mô-đun có sẵn:
MAXSLEEP:?
Trang 21Đặt thời gian ngủ tối đa cho phép khi gặp phải độ trễ chống bạo lực VNC RealVNC Giá trị này tính bằng giây và, nếu không được đặt, giá trị mặc định là
60
DOMAIN:?
Đặt giá trị miền khi xác thực dựa trên tính năng MS-Logon của UltraVNC
Một số phiên bản của VNC được tích hợp chức năng chống bạo lực
RealVNC, ví dụ, cho phép 5 lần thử không thành công và sau đó thực thi độ trễ
10 giây Đối với mỗi lần thử tiếp theo, độ trễ sẽ tăng lên gấp đôi UltraVNC dường như cho phép 6 lần thử không hợp lệ và sau đó buộc phải trì hoãn 10 giây giữa mỗi lần thử tiếp theo Mô-đun này cố gắng xác định những tình huống này
và phản ứng thích hợp bằng cách gọi giấc ngủ () Người dùng có thể đặt giới hạn ngủ khi cưỡng bức RealVNC bằng cách sử dụng tham số MAXSLEEP Khi đã đạt đến giá trị này, mô-đun sẽ thoát
Cần lưu ý rằng mô-đun này hiện hỗ trợ các máy chủ VNC không có mật khẩu và chỉ có mật khẩu Ngoài ra, nó hỗ trợ tính năng MS-Logon của
UltraVNC có thể được sử dụng để cung cấp xác thực chuyển qua tài khoản Windows cục bộ và miền Trong trường hợp VNC chỉ có mật khẩu cơ bản, hãy cung cấp bất kỳ giá trị tên người dùng tùy ý nào
21) web-form
Các tùy chọn mô-đun có sẵn:
USER-AGENT:? User-agent value Default: "I'm not Mozilla, I'm Ming Mong"
FORM:? Target form to request Default: "/"
được gắn cờ là thành công nếu văn bản không có trong phản hồi của máy chủ Mặc định: "Login incorrect"
CUSTOM-HEADER:? Custom HTTP header
Trang 22Nhiều tiêu đề hơn có thể được xác định bằng cách sử dụng tùy chọn này nhiều lần
FORM-DATA:<METHOD>?<FIELDS>
Các phương thức và trường để gửi tới dịch vụ web Các phương thức hợp
lệ là GET và POST Dữ liệu biểu mẫu thực tế sẽ được gửi cũng phải được xác định ở đây Cụ thể là các trường: tên người dùng và mật khẩu Trường tên người dùng phải là trường đầu tiên, tiếp theo là trường mật khẩu
Mặc định: "post?username=&password="
22) wrapper
% H: Được thay thế bằng địa chỉ IP mục tiêu
% U: Đã thay thế bằng tên người dùng để kiểm tra
% P: Đã thay thế bằng mật khẩu để kiểm tra
Trang 23Chương II Demo
Demo 1: Tấn công vét cạn sử dụng Medusa
đầu cuối
dưới đây: sudo service ssh start
Trang 24B3: Để bẻ khóa mật khẩu cho dịch vụ ssh, hãy nhập lệnh dưới đây:
medusa –h 192.168.179.129 -u kali -P /home/kali/Desktop/Password.txt -M ssh
với
-h - được sử dụng để chỉ định Máy chủ mục tiêu hoặc địa chỉ IP
-u - có nghĩa là tên người dùng để kiểm tra
-P - chúng ta có thể sử dụng -p để kiểm tra một mật khẩu hoặc -P để sử dụng
một tệp văn bản chứa nhiều Mật khẩu cho Brute Force Attack
-M - Nó có nghĩa là tên của mô-đun để thực thi, ta đang sử dụng ssh ở đây
-n - Có nghĩa là số cổng
Trang 25Demo 2: Tấn công vét cạn sử dụng telnet
B1: kiểm tra các file
B2 : kiểm tra trong các file có chứa tài khoản và mật khẩu
Trang 26B3: kiểm tra kết nối với máy chủ mục tiêu
Trang 27-U là chỉ đến thư mục chứa tài khoản
-p là chỉ đến thư mục chứa mật khẩu
Trang 29Kết luận
Bài báo cáo đã trình bày được cái khái niệm tổng quát và tất cả các lệnh của medusa cùng với các mô-đun từ đó ứng dụng vào tấn công vét cạn lấy mật khẩu để thấy được cách mà các tin tặc có thể sử dụng để lấy mật khẩu từ xa
Bài báo cáo cũng tìm hiểu về các dạng tấn công của medusa để tìm ra giải pháp phòng chống tin tặc có thể xâm nhập và lấy đi các dữ liệu quan trọng trong máy tính
Tuy nhiên công cụ medusa vẫn cần chúng ta phải có file chứa mật khẩu hoặc tài khoản để có thể vét cạn và lấy được mật khẩu của mục tiêu và đó là yếu điểm lớn nhất của công cụ này
Trang 30Tài liệu tham khảo
[1] lalitmohantiwari7700, "Password Cracking with Medusa in Linux," 20 12
2020 [Online] Available:
https://www.geeksforgeeks.org/password-cracking-with-medusa-in-linux/
[2] J Mondloch, "Penetration Testing Tools," [Online] Available:
https://en.kali.tools/?p=200
[3] H4ck0, "Bruteforce Password Cracking With Medusa – Kali Linux," 23 4
2018 [Online] Available: cracking-medusa-kali-linux/