Scanning
Nếu Foot Printing là thu thập tất cả thông tin có liên quan đến tổ chức đích thì Scan là một bước xác định xem trong mớ bòng bong kia thì cái nào là “xài được” bằng các đợt quét ping, quét cổng và các công cụ phát hiện tự động

Nếu kỹ thuật zone transfer cho ta 1 địa chỉ IP thì scan sẽ giúp ta xác định xem nó ở port nào và nó có phải là một IP thực hay không. Có một số server hiển thị cả các IP của mạng tư ( thí dụ như 10.10.10.0 ). Một địa chỉ IP như thế không thể định tuyến ( xem http://www.ietf.org/rfc/rfc1918.txt để biết thêm chi tiết)

+ Quét Ping mạng : Ngòai quét ping truyền thống bằng cách mở cửa sổ DOS và tyoe lệnh Ping như chúng ta đều biết, còn một số kiểu quét ping khác như :
+ Fping: dùng trong Unix ( http://ftp.tamu.edu/pub/Unix/src ) fping là một trình tiện ích gửi đi các yêu cầu mass ping theo kiểu song song vì thế fping quét được nhiều địa chỉ IP hơn so với ping
+ Nmap ( http://insecure.org/nmap ) : Có lẽ không cần nói nhiều về trình tiện ích này , có khá nhiều hướng dẫn đầy đủ cách sử dụng và chức năng của nmap trên mạng. Nmap cung cấp khả năng quét ping với tùy chọn -sP
+ Pinger : dùng cho Windows, sản phẩm miễn phí của Rhino9 ( http://207.98.195.250/software/ ) là một trong các trình tiện ích nhanh nhất sẳn có
+ Ping Sweep : Sản phẩm của Solarwinds, chạy khá nhanh, nhưng công cụ này có thể làm bão hòa một mạng có tuyến nối kết chậm ( Cái này xài ở VN ko ổn nên ko giới thiệu chi tiết )
+ WS Ping Proback ( http://www.ipswich.com ) và các công cụ netscan ( http://www.nwpsw.com ) đủ để quét một mạng nhỏ, tiện dụng và giao diện đơn giản , tuy nhien khá chậm so với pinger và ping sweep . Người mới bắt đầu nên sử dụng lọai này !

Về cơ bản thì ping là quá trình gửi và nhận các gói tin ICMP (Internet Control Messaging Protocol ) . Vậy nếu ICMP bị phong tỏa bởi quản trị mạng của chuyên khu đích thì sao ? Trường hợp điển hình là khi type lệnh ping một domain mà không nhận được hồi âm nào , lúc đó ICMP tại bộ định tuyến biên bị phong tỏa hoặc có một fire wall đã được thiết lập . Trong trường hợp này ta có hai lựa chọn :
+ Bỏ qua quét ping mà thực hiện quét cổng (port Scan) : Sẽ đề cập ở phần sau của bài viết này .
+ Thực hiện ping TCP:
– Dùng Nmap với tùy chọn -PT . Tùy chọn này sẽ gửi các gói tin TCP SYN đến mạng đích và đợi đáp ứng, các hệ chủ “còn sống” sẽ đáp ứng bằng một gói tin TCP SYN/ACK. Phương pháp này khá hiệu quả để xác định xem hệ chủ có còn sống hay không cho dù chuyên khu đã phong tỏa ICMP .Bạn nên lặp lại kiểu quét này vài lần trên các cổng chung như SMTP (25) , POP (110) , IMAD ( 143 ) , hoặc các cổng có thể là duy nhất đối với các chuyên khu nhất định
– HPing ( http://www.kyuzz.org/antirez/ ) là một trình tiện ích ping TCP khác có công năng bổ sung TCP qua mặt cả Nmap . Hping cho phép người dùng điều khiển các tùy chọn cụ thể về gói tin TCP có thể cho phép nó đi qua một số thiết bị kiểm sóat truy cập nhất định. Nhờ ấn định cổng đích với tùy chọn -P , bạn có thể phá vỡ vài thiết bị kiểm sóat truy cập tương tự như kỹ thuật trace route đã nêu ở Part I có thể dùng Hping để thực hiện các đợt quét ICMP và có thể phân mảnh [ fragment ] các gói tin có tiềm năng phớt lờ một số thiết bị kiểm soát truy cập .Hping sẽ được đề cập chi tiết hơn ở phần sau

Tóm lại , bước này cho phép xác định một cách chính xác các hệ thống còn sống hay không thông qua ICMP hoặc thông qua cổng quét chọn lọc . Làm như vậy, ta đã giảm bớt đáng kể tiến trình ấn định đích, tiết kiệm thời gian trắc nghiệm và thu hẹp trọng tâm của các hoạt động .

+ Truy vấn ICMP : Bạn có thể thu thập tất cả các kiểu thông tin quý giá về một hệ thống bằng cách đơn giản gửi một gói tin ICMP cho nó , các công cụ có thể down load tại http://securityfocus.com
+ Quét cổng (port scan): đến lúc này , ta đã định danh các hệ thống còn sống bằng cách dùng các đợt quét ping ICMP hoặc TCP và đã thu thập được một ít thông tin ICMP . Giờ đây ta đã sẵn sàng tiến trình quét cổng từng hệ thống. Quét cổng là tiến trình nối với các cổng TCP và UDP trên hệ đích để xác định các dịch vụ đang chạy hoặc đang ở trạng thái LISTENNING . Ta phải định danh các cổng đang lắng chờ nếu như muốn xác định kiểu hệ điều hành và các ứng dụng đang dùng. Các dịch vụ hoạt động đang lắng chờ (listenning) có thể cho phép một người dùng trái phép giành được quyến truy cập các hệ thống bị cấu hình sai. Sau đây,ta coi như các hệ thống mà ta đã định danh ở bước trên là còn sống ( alive ) , mục tiêu của việc quét cổng là :
+ Định danh các dịch vụ TCP và UDP đang chạy trên hệ đích
+ Định danh kiểu hệ điều hành của hệ đích
+ Định danh các ứng dụng cụ thể hoặc các phiên bản của một dịch vụ cụ thể

Các kiểu quét : trước khi giới thiệu các công cụ quét cổng chủ yếu, ta phải xét qua các kỹ thuật quét cổng sẵn dùng :

* Quét nối TCP : kiểu quét này nối với cổng đích và hòan thành một đợt bắt tay ba chiều đầy đủ ( SYN , SYN/ACK , ACK ) hệ đích có thể dễ dàng phát hiện nó . Tiến trình bắt tay ba chiều TCP gồm :
= Gửi gói tin SYN đến hệ phục vụ
= Nhận gói tin SYN/ACK từ hệ phục vụ
= Gửi gói tin ACK đến hệ phục vụ

* Quét TCP SYN : kỹ thuật này là việc thực hiện một tuyến nối TCP đầy đủ, nghĩa là : gửi gói tin SYN đến cổng đích , ta có thể suy ra nó nằm trong trạng thái listenning. Nếu nhận được một RST/ACK nó thường cho thấy cổng đang không lắng chờ: một RST/ACK sẽ được gửi bởi hệ thống thực hiện quét cổng để một tuyến nồi đầy đủ không bao giờ được thiết lập.Kỹ thuật này có ưu điểm là mang tính lén lút hơn một tuyến nối TCP đầy đủ

* Quét TCP FIN : kỹ thuật này gửi một gói tin FIN cho cổng đích. Dựa trên RFC 793 ( http://www.ietf.org/rfc/rfc0793.txt ) hệ đích sẽ gửi trả một RTS cho tất cả các cổng đã đóng.Kỹ thuật này thường chỉ làm việc trên các ngăn xếp TCP/IP gốc Unix

* Quét TCP Xmas Tree : Kỹ thuật này gửi một gói tin FIN , URG và PUSH cho cổng đích dựa trên RFC 793, hệ đích sẽ gửi trả một RST của tất cả các cổng đã đóng.
* Quét TCP Null : giống TCP Xmas Tree
* Quét UDP : Kỹ thuật này gửi một gói tin UDP cho cổng đích. Nếu cổng đích đáp ứng bằng một thông điệp “ICMP port unreachable “, cổng đã đóng. Ngược lại, nếu không nhận được thông điệp trên, ta có thể suy ra cổng mở ! Độ chính xác của kỹ thuật này tùy thuộc nhiều vào yếu tố có liên quan đến việc sử dụng các tài nguyên mạng và hệ thống. Khi thực hiện các đợt quét cổng UDP, có thể sẽ cho kết quả khác nhau . Một số thực thi IP sẽ gửi trả tất cả các RTS của tất cả các cổng đã quét dẫu chúng có đang lắng chờ hay không

* Định danh các dịch vụ TCP và UDP đang chạy : trình tiện ích của một công cụ quét cổng tốt nhất là một thành phần quan trọng của tiến trình in dấu ấn. Tuy có nhiều bộ quét cổng sẵn dùng cho cả Unix và NT , nhưng tôi sẽ đề cập đến một số bộ quét cổng thông dụng và nhanh :

– Strobe :strobe là một trong những bộ quét TCP nhanh và đáng tin cậy sẵn dùng , được viết bởi Julian Arrange ( ftp.win.or.jp/pup/network/misc/strobe-105.ta.gz ) Một số tính năng chính của Strobe bao gồm khả năng tối ưu hóa các tài nguyên mạng, hệ thống và quét hệ đích một cách có hiệu quả . Ngòai tính hiệu quả , phiên bản 1.04 của strobe về sau sẽ nắm giữ các banner kết hợp của từng cổng mà chúng nối với . Điều này có thể giúp định danh hệ điều hành lẫn dịch vụ đang chạy . Tính năng nắm giữ banner sẽ được nói nhiều hơn ở Part III
Tuy nhiên Strobe cũng có một số nhược điểm là không cung cấp khả năng quét UDP và hệ đích có thể dễ dàng phát hiện

– Up_Scan : Nếu Strobe cung cấp khả năng quét TCP thì Up_Scan là một trong những bộ quét UDP tin cậy nhất ( http://wwdsilx.wwdsi.com ) Nhược điểm : dễ bị phát hiện

– Netcat : trình tiện ích này có thể thực hiện rất nhiều công việc , cũng như nmap, nóp là công cụ không thể thiếu trong hacking cũng như security. Để quét TCP và UDP , ta sử dụng các tùy chọn -v và -vv , -z, -wz, -u

– PortPro và PortScan: trong WinNT thì portPro và PortScan là hai trình tiện ích quét cổng nhanh nhất.PortPro cùa StOrM ( http://securityfocus.com )và portScan là sản phẩm của Rhad. PortScan cung cấp một miền các cổng để quét trong khi portpro đơn giản gia số các cổng của nó, nhưng cả hai đều không cung cấp các miền địa chỉ IP .Portpro là một trong những công cụ quét cổng nhanh nhất sẵn dùng , tuy nhiên càc tùy chọn của nó còn hạn chế !

– Ngòai ra, công cụ quét cổng mạnh nhất vẫn là nmap ( đã giới thiệu ở phần trước )

Các công cụ phát hiện tự động
+ Cheops ( http://www.marko.net/cheops/ ) cung cấp khả năng quét ping, trace route , khả năng quét cổng và tính năng phát hiện hệ điều hành
+ Tkined là một phần của bộ Scotty có tại http://wwwhome.cs.wtwente.nl/~choenw/Scotty/ là một bộ sọan thào mạng được viết trong TCL tích hợp các công cụ quản lý mạng khác nhau ,cho phép bạn phát hiện các mạng IP