Mạng là một chủ đề rộng lớn đối với nhiều người mới tìm hiểu. Có các lớp và giao thức khác nhau, và nhiều công cụ tiện ích mà phải nắm rõ để có thể
sử dụng hiệu quả Lưu ý: Bài viết này sẽ hướng dẫn bạn sử dụng Nmap để quét Ipv4, tuy nhiên vẫn quét được Ipv6 nếu có thêm tùy chọn cho Nmap Port là gì ? Có rất nhiều lớp trong mô hình mạng nói chung, lớp vận chuyển đóng vai trò cung cấp các thông tin liên lạc giữa các ứng dụng hệ thống với nhau, và lớp này thì được kết nối với Port. Một số điều lưu ý mà bạn cần biết về port - Port là một số hiệu ID cho 1 ứng dụng nào đó. Một số thuật ngữ mà bạn cần nắm rõ
Cổng thì được xác định từ số 1 đến số thứ 65535. Trong đó
Một số Port (cổng) thông dụng trong internet:
Bạn có thể xem các cổng của các ứng dụng bằng cách xem tài liệu hướng dẫn của ứng dụng đó. Ngoài ra, để xem chi tiết về các cổng, bạn gõ lệnh sau để xem less /etc/services Các port thông dụng trong Linux . . . tcpmux 1/tcp # TCP port service multiplexer echo 7/tcp echo 7/udp discard 9/tcp sink null discard 9/udp sink null systat 11/tcp users daytime 13/tcp daytime 13/udp netstat 15/tcp qotd 17/tcp quote msp 18/tcp # message send protocol . . . Để kiểm tra xem máy tính của bạn đang mở những port nào thì dùng lệnh sau netstat -plunt Đây là kết quả Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 785/sshd tcp6 0 0 :::22 :::* LISTEN 785/sshd
Các chức năng của nmap:
Cài đặt Nmap Bạn sử dụng 2 lệnh sau apt-get update apt-get install nmap Hướng dẫn Scan port với NMap Sử dụng nmap + Xác định mục tiêu Việc đầu tiên khi sử dụng nmap là xác định mục tiêu cần quét, mục tiêu có thể là 1 domain, 1 IP, 1 dải địa chỉ IP, 1 danh sách (file) các IP và domain. Ví dụ:
+ Phát hiện các host trong mạng (host discovery) Tại sao cần host discovery, đối với 1 mục tiêu xác định thì có vẻ không cần thiết nhưng đối với mục tiêu là 1 dải mạng với hàng nghìn host, việc quét hàng nghìn port trên mỗi host sẽ tốn rất nhiều thời gian vì vậy việc xác định các host đang chạy sẽ rút ngắn thời gian trong quá trình quét. nmap sử dụng một số kĩ thuật sau để thực hiện host discovery:
Khi gửi các gói tin trên tới 1 port của mục tiêu nếu nmap nhận được phản hồi (có thể là SYN-ACK, RST, các gói tin ICMP) thì nmap sẽ coi host đó tồn tại trong mạng, không quan tâm đến trạng thái của port. Nếu không nhận được gói tin phản hồi thì nmap sẽ coi là host không tồn tại. Mặc đinh nmap sử dụng gói tin ICMP echo request, ICMP timespam request, TCP SYN to port 443, TCP ACK to port 80, tương đương với –PE –PP –PS443 –PA80 Sử dụng tùy chọn –sn (No port scan) để thực hiện quá trình host discovery (nmap sẽ dừng lại sau khi xác định các host đang chạy và không thực hiện việc quét port). Tùy chon –Pn để bỏ qua host discovery nmap sẽ chuyển qua quá trình quét port. *Bạn có thể thực hành Nmap tới server của Nmap tại địa chỉ
scanme.nmap.org Các lệnh phổ biến trong Nmap 1, Quét hệ điều hành của Server nmap -O remote_host Nếu server báo down , thì bạn sử dụng lệnh sau nmap -PN remote_host Sử dụng "-" hoặc "/24" để quét nhiều host / server cùng lúc nmap -PN xxx.xxx.xxx.xxx-yyy 2, Quét một mạng rộng hơn nmap -sP network_address_range 3, Quét mà không tra cứu DNS (Điều này sẽ giúp bạn quét nhanh hơn) nmap -n remote_host 4, Quét một port cụ thể thay vì quét chung các port thông dụng nmap -p port_number remote_host 5, Quét kết nối TCP, Nmap sẽ thực hiện việc quét bắt tay 3 bước nmap -sT remote_host 6, Quét kết nối UDP nmap -sU remote_host 7, Quét TCP và UDP từng port (Khá lâu để hoàn tất) nmap -n -PN -sT -sU -p- remote_host 8, Quét TCP SYN scan (-sS): nmap -sS remote_host 9, Quét vời các cờ -sN, -sF, -sX nmap -PN -p port_number -sN remote_host 10, Quét xác định phiên bản của dịch vụ đang chạy trên host nmap -PN -p port_number -sV remote_host Chi tiết về các kĩ thuật quét TCP SYN scan (-sS): nmap gửi một gói tin TCP-SYN tới 1 port của mục tiêu. Nếu nhận được ACK_SYN thì port đó đang ở trạng thái open, nmap sẽ gửi gói tin RST để đóng kết nối thay vì gửi ACK để hoàn tất quá trình bắt tay 3 bước (vì thế kỹ thuật này còn được gọi là half open scan). Nếu nhận được RST thì port đó ở trạng thái close. Nếu sau 1 số lần gửi mà không nhận được trả lời hoặc nhận được ICMP type 3 (unreachable error) thì port đó ở trạng thái filtered (đã bị firewall chặn).
UDP scan (-sU): nmap gửi gói tin UDP tới 1 port của mục tiêu nếu nhận được gói tin ICMP port unreachable error (type 3, code 3) thì port đó ở trạng thái close. Nếu nhận được ICMP unreachable errors (type 3, codes 1, 2, 9, 10, or 13) thì port đó ở trạng thái filtered. Nếu không nhận được gì thì port ở trạng thái open|filtered. Nếu nhận được gói tin UDP thì port đó ở trạng thái open TCP NULL, FIN, and Xmas scans (-sN, -sF, -sX): đây là kỹ thuật sư dụng các gói tin TCP với không có cờ nào được bật cờ FIN được bật cờ FIN, PSH và URG được bật 3 kỹ thuật này được gộp chung vào 1 nhóm vì chúng cho kết quả giống nhau. Khi 3 loại gói tin này được gửi đi nếu nhận được RST thì port ở trạng thái close, nếu nhận được các loại gói tin ICMP (type 3, code 1, 2, 3, 9, 10, or 13) thì port ở trạng thái filtered, còn nếu không nhận được gói tin trả lời thì port ở trạng thái open|filtered Ngoài ra nmap còn có 1 số tùy chọn với các kỹ thuật khác nâng cao (-sY,-sM, -sO, -sZ, -sI) có thể tham khảo thêm tại http://nmap.org/book/man-port-scanning-techniques.html + Lựa chọn port và thứ tự quét. Mặc định nmap sẽ quét 1000 port phổ biến nhất (xem tại file nmap-service) với thứ tụ ngẫu nhiên. Tùy chọn –p : lựa chọn chính xác các port cần quét, nếu quét đồng thời nhiều giao thức thì thêm các chữ cái đứng trước số port T: TCP, U: UDP, S: SCTP, or P: IP Protocol. Ví dụ: Trong trường hợp này nmap sẽ quét các port UDP 53 và 4000, quét các port TCP 444, từ 1 đến 100, từ 8000 đến 8010 bằng kỹ thuật SYN scan. Tùy chon –F (Fast scan): nmap quét 100 port phổ biến nhất thay vì mặc định 1000 port. Tùy chọn –top-ports : quét n port phổ biến nhất. Tùy chọn –r: thứ tự quét các port từ thấp lên cao thay vì mặc định là ngẫu nhiên. + Xác đinh dịch vụ, phiên bản, hệ điều hành. Mặc định sau khi quét các port, nmap sẽ xác định dịch vụ đang chạy trên các port dựa vào file nmap-services (các port mặc định của từng service) tuy nhiên một số server cấu hình các dịch vụ không chạy trên các cổng mặc định. Để xác định rõ port nào chạy dịch vụ nào nmap sử dụng tùy chọn –sV. Với tùy chọn này nmap sẽ xác định được dịch vụ và phiên bản phần mềm chạy trên từng port dựa vào banner khi kết nối với port đó Các port và dịch vụ tương ứng nmap xác định dựa trên port mặc định. Các port và dịch vụ, phiên bản phần mềm nmap xác định khi có tùy chọn –sV Ở trên nmap xác định port 444 chạy https thay vì mặc định snpp. Nmap hỗ trợ việc xác định hệ điều hành bằng tùy chọn –O. Nmap xác định hệ điều hành dựa trên TCP/IP stack fingerprint của mục tiêu (ví dụ như Sequence Number, window size, các Options và thứ tự của chúng trong TCP header, Identification number trong IP header, …). Có thể tham khảo thêm tại http://nmap.org/book/man-os-detection.html + Nmap hỗ trợ chạy các script đặc biệt: Nmap Scripting Engine (NSE) là một trong những chức năng linh hoạt và mạnh mẽ nhất của Nmap. Nó cho phép người dùng viêt và chia sẻ những đoạn script đơn giản để thực hiện những công việc khác nhau trong lĩnh vực networking một cách tự động. Những đoạn script có thể sử dụng để phát hiện các lỗ hổng, thậm chí khai thác các lỗ hổng. Các script (.nse file) nằm trong thư mục script khi cài đặt nmap, người dùng có thể tùy biến chỉnh sửa, thêm các scirpt khác. Để thực hiện chức năng này của nmap sử dụng tùy chọn –script |||[,…] Đọc thêm tại http://nmap.org/book/nse-usage.html#nse-categories Script trace route theo geoIP Script phát hiện lỗ hổng MS08-067 trên port 445 của windows XP + Lưu lại kết quả quét Cuối cùng Nmap cho phép người dùng có thể lưu lại kết quả quét của mình dưới dạng text hoặc xml (có thể dùng kết quả làm đầu vào cho một số công cụ khác) với các tùy chọn: -oN (normal output) -oX (xml output) |