Hướng Dẫn Sử Dụng Nmap Chi Tiết
Nmap (Network Mapper) là một trong những công cụ quét mạng và kiểm tra bảo mật phổ biến nhất. Bài viết này sẽ hướng dẫn chi tiết cách sử dụng Nmap từ cơ bản đến nâng cao.
1. Cài Đặt Nmap
Trên Debian/Ubuntu:
sudo apt install nmap
Trên RHEL/CentOS:
sudo yum install nmap
2. Giới thiệu về Nmap Scripting Engine (NSE)
Nmap Scripting Engine (NSE) là một trong những tính năng mạnh mẽ và linh hoạt nhất của Nmap. NSE cho phép người dùng:
- Viết và chia sẻ các script để tự động hóa nhiều tác vụ mạng.
- Thực thi song song các script với tốc độ và hiệu quả cao.
- Sử dụng ngôn ngữ Lua và thư viện NSE để kết nối với Nmap.
NSE phân loại script theo các nhóm chức năng như: auth, broadcast, brute, default, discovery, dos, exploit, external, fuzzer, intrusive, malware, safe, version và vuln.
3. Tấn Công Brute Force với NSE
3.1. Liệt kê script brute force
Để xem danh sách các script brute force có sẵn:
ls /usr/share/nmap/scripts/*brute*
Hoặc sử dụng lệnh:
locate *.nse |grep brute
3.2. Cách Sử Dụng NSE để Brute-Force Mật Khẩu
1. Quét FTP
Để kiểm tra mật khẩu của máy chủ FTP:
nmap -p21 --script ftp-brute.nse --script-args userdb=users.txt,passdb=pass.txt <IP_target>
Giải thích:
-p21
: Quét cổng 21, cổng mặc định của FTP.--script ftp-brute.nse
: Sử dụng script brute-force cho FTP.--script-args userdb=users.txt,passdb=pass.txt
: Sử dụng danh sách tên đăng nhập và mật khẩu từ các fileusers.txt
vàpass.txt
.
2. Tấn công mật khẩu SSH
SSH thường được bảo vệ tốt, nhưng với từ điển tên và mật khẩu, bạn có thể brute-force như sau:
nmap -p22 --script ssh-brute.nse --script-args userdb=users.txt,passdb=pass.txt <IP_target>
Giải thích:
-p22
: Quét cổng 22, cổng mặc định của SSH.--script ssh-brute.nse
: Sử dụng script brute-force cho SSH.
3. Quét Telnet
Telnet là một giao thức ít được sử dụng do không bảo mật, nhưng bạn vẫn có thể brute-force:
nmap -p23 --script telnet-brute.nse --script-args userdb=users.txt,passdb=pass.txt <IP_target>
Giải thích:
-p23
: Quét cổng 23, cổng mặc định của Telnet.--script telnet-brute.nse
: Sử dụng script brute-force cho Telnet.
4. Tấn công SMB
SMB thường được sử dụng trong mạng nội bộ để chia sẻ tệp. NSE cung cấp script kiểm tra mật khẩu SMB:
nmap -p445 --script smb-brute.nse --script-args userdb=users.txt,passdb=pass.txt <IP_target>
Giải thích:
-p445
: Quét cổng 445, cổng mặc định của SMB.--script smb-brute.nse
: Sử dụng script brute-force cho SMB.
5. Brute-Force PostgreSQL
Dùng script sau để tấn công cơ sở dữ liệu PostgreSQL:
nmap -p5432 --script pgsql-brute --script-args userdb=users.txt,passdb=pass.txt <IP_target>
Giải thích:
-p5432
: Quét cổng 5432, cổng mặc định của PostgreSQL.--script pgsql-brute
: Sử dụng script brute-force cho PostgreSQL.
6. Tấn công MySQL
Đối với máy chủ MySQL, sử dụng script:
nmap -p3306 --script mysql-brute --script-args userdb=users.txt,passdb=pass.txt <IP_target>
Giải thích:
-p3306
: Quét cổng 3306, cổng mặc định của MySQL.--script mysql-brute
: Sử dụng script brute-force cho MySQL.
7. Brute-Force HTTP
HTTP form-based authentication thường sử dụng giao diện web để đăng nhập. NSE hỗ trợ brute-force bằng cách:
nmap -p80 --script=http-form-brute --script-args "userdb=users.txt,passdb=pass.txt,http-form-brute.path=/login" <IP_target>
Giải thích:
-p80
: Quét cổng 80, cổng mặc định của HTTP.--script=http-form-brute
: Sử dụng script brute-force cho HTTP.http-form-brute.path=/login
: Đường dẫn đến trang đăng nhập.
4. Lưu Ý Khi Sử Dụng Nmap
- Pháp lý: Việc kiểm tra hoặc brute-force trên các máy chủ không thuộc quyền sở hữu của bạn có thể vi phạm pháp luật.
- Hiệu quả: Đảm bảo bạn sử dụng đúng từ điển người dùng và mật khẩu để tăng xác suất thành công.
- An toàn mạng: Luôn sử dụng trong môi trường thí nghiệm hoặc có sự cho phép rõ ràng.
5. Kết Luận
Nmap và NSE là công cụ mạnh mẽ để kiểm tra an ninh mạng. Việc sử dụng đúng cách giúp bạn phát hiện và xử lý các lỗ hổng bảo mật, từ đó nâng cao khả năng phòng thủ mạng.
Bạn đã thử nghiệm Nmap với NSE chưa? Hãy chia sẻ trải nghiệm của bạn!