Thursday 27 February 2014

Nmap truyền kì - Hồi 2 - Port Scanning Techniques Overview

Port Scanning Techniques: nmap có rất nhiều phương pháp để sử dụng. Nhưng chỉ có một phương pháp được sử dụng tại một thời điểm, ngoại trừ UDP scan (-sU) có thể kết hợp với bất kì một trong các loại TCP scan. Các loại scan ở dạng -s<C>, <C> thường là kí tự đầu tiên của loại scan đó (ngoại trừ FTP bounce scan (-b)).
Ta sẽ đi lướt qua từng loại kĩ thuật scanning mà nmap cung cấp, cụ thể như thế nào thì sẽ giới thiệu sau.
-sS : TCP SYN Stealth - Đây là phương pháp phổ biến nhất vì tốc độ của nó khá nhanh. Khả năng ẩn danh tốt hơn connect scan, và làm việc với tất cả chức năng của TCP stacks (không giống như scan với mục đích đặc biệt như FIN scan)
-sT : TCP Connect - Phương pháp này sử dụng system call connect(), thay vì sử dụng raw packet như các phương pháp khác, phương pháp này được sử dụng bởi unprivileges user và đối với các target ipv6 vì SYN scan không hoạt động trong trường hợp này.
-sU : UDP - Không nên bỏ qua các udp port, rất nhiều lỗ hổng bảo mật.
-sF, -sX, -SN : TCP FIN, Xmas, NULL - Các loại scan này với mục đích đặc biệt để vượt qua fw thăm dò hệ thống phía sau chúng. Thật không may chúng dựa trên hành vi của hệ thống thường là không biểu hiện ra.
-sA : TCP ACK - được sử dụng để tìm ra fw ruleset. Nó giúp xác định fw rule ở dạng stateful hay không. Điểm yếu của nó là không phân biệt được open với closed port.
-sW : TCP Window - cũng giống như ACK scan, ngoại trừ nó có khả năng phát hiện port open với closed port.
-sM : TCP Maimon - loại này giống với FIN scan, nhưng có thêm ACK flag. Cho phép nó vượt qua nhiều packet filtering fw, điểm yếu là nó làm làm được việc với ít hệ thống hơn FIN scan.
-SI <zombie host> : TCP Idle - là loại khó phát hiện nhất trong tất cả, và nó có thể exploit trusted IP relationships. Không may nó cũng rất chậm và phức tạp.
-sO : IP Protocol - xác định giao thức IP nào (TCP, ICMP, IGMP ...) được hỗ trợ bởi target. Đây đơn giản không phải là port scan, vì nó thay đổi con số protocol trong IP header thay vì port của TCP hay UDP. Nó có thể sử dụng option -p để chọn protocol number sẽ được scan.
-b : TCP FTP bounce - this deprecated scan type tricks FTP servers into performing port scans by proxy. Most FTP servers are now patched to prevent this, but it is a good way to sneak through restrictive fw when it works.

OK, Vậy bây giờ ta sẽ chọn port nào để thực hiện scan đây? Mặc định, nmap scan 1000 port phổ biến nhất trong file nmap-services tương ứng với loại giao thức nó được yêu cầu. Cách khác, ta có thể chỉ định -F (fast) để chọn 100 port phổ biến nhất đối với từng loại giao thức hay --top-ports để chỉ ra số lượng port để scan. Khi ta muốn chỉ định một port range nào đó, hay một số port nhất định thôi, ta có thể sử dụng option -p.
-p 22 : chỉ định một port duy nhất là port 22.
-p ssh : chỉ định bằng tên, khi sử dụng tên có thể khớp với nhiều port khác.
-p 22,25,80 : chỉ định nhiều port chung với nhau. Chú ý, khi không có giao thức nào được chỉ định, tất cả các port được chỉ định sẽ được sử dụng cho bất kì phương pháp nào được chỉ định trên command-line. Nếu TCP scan sử dụng là SYN scan (-sS), port 22,25 và 80 sẽ được scan tương ứng với các dịch vụ SSH, SMTP và HTTP. Nếu protocol scan (-sO), đó sẽ là 3 IP protocol tương ứng với XNS IDP, Leaf-1 và ISO-IP.

-p80-85,443,8000-8005 : chỉ đinh port range, các port tương ứng sẽ là 80,81,82,83,84,85,443,8000,8001,8002,8003,8004,8005.
-p-100,60000- : tương ứng với 1-100, 60000-65535.
-p- : tất cả các port (trừ port 0)
-pT:21,23,110,U:53,111,137,161 : phân loại từng loại port cho từng giao thức.
-p http* : ta có thể sử dụng wildcard để tìm tất cả các port bắt đầu bằng http như http(80) http-mgmt(280), https(443), http-proxy(8080).
-p 1-1023,[1024-] : để port trong ngoặc kép để chỉ định các port chỉ được scan khi nó nằm trong file nmap-services. Trong trường hợp này, sẽ scan tất cả các port từ 1-1023, và các port cao được đăng kí trong file nmap-services.