CHƯƠNG II Quét (SCANNING)
Giới thiệu về Scanning
Nếu như footprinting là xác định các thông tin mục tiêu thì Scanning là công cụ dùng để quét và tìm kiếm các cổng. Trong chương I chúng ta đã đề cập đến danh sách các mạng cùng với các dải địa chỉ IP qua Whois và vùng mục tiêu. Các kỹ thuật đó đã cung cấp cho chúng ta những thông tin của vùng mục tiêu như địa chỉ IP, số điện thoại, DNS servers và mail servers. Trong chương này chúng ta sẽ học cách xác định rằng hệ thống mục tiêu đang lắng nghe và tiếp vận với mạng internet bằng cách sử dụng các kỹ thuật như ping, post scans và các công cụ khác.
Một điều rất quan trọng phải ghi nhớ là địa chỉ IP mà chúng ta đã liệt kê chưa chắc nó đã là điạ chỉ trên mạng internet. Chúng ta phải kiểm tra từng dải địa chỉ IP xem nó có còn tồn tại hay không??? Nếu có, bao nhiêu cổng đang mở và lắng nghe ở cổng bao nhiêu???
Và bây giờ chúng ta hãy bắt đầu với SCANNING.
Xác định xem hệ thống mục tiêu còn hoạt động hay không.
Một trong những bước cơ bản là chúng ta phải sắp xếp các mạng và các khối mạng nhằm xác định xem từng khối mạng có còn hoạt động hay không bằng cách dùng câu lệnh ping sweep với các dải IP của từng mạng. Lệnh ping được sử dụng để gửi các gói ICMP (Giao thức tạo thông điệp điều khiển của Internet).
Giao thức tạo thông điệp điều khiển của Internet
ICMP là một giao thức báo lỗi hoạt động hợp nhất với IP. Nếu có lỗi trong mạng, chẳng hạn như thiếu một trong các đường dẫn, IP gửi một thông điệp lỗi ICMP bên trong IP datagram. Vì vậy ICMP yêu cầu IP như một cơ cấu vận chuyển. Các router sẽ gửi các thông điệp ICMP đáp ứng cho các datagram không thể phân phối được. Router đặt thông điệp vào trong IP datagram và gửi nó ngược trở lại nơi xuất phát của datagram mà nó đã không thể phân phối được.
Lệnh ping sử dụng ICMP như một sự thăm dò để tìm ra trạm có thể đến được. Ping sẽ gói thông điệp ICMP echo request (yêu cầu nhắc lại) vào trong datagram và gửi nó đến đích đã chọn. Người dùng chọn đích đến bằng cách chỉ ra điạ chỉ IP hoặc tên của đích đến trong dòng lệnh với dạng như sau:
Ping 100.50.25.1
Khi đích nhận được thông điệp echo request, nó sẽ đáp ứng bằng cách gửi một thông điệp ICMP đáp lại echo. Nếu không có sự đáp lại trong một khoảng thời gian, ping sẽ gửi tiếp echo request nhiều lần. Nếu sau một khoảng thời gian không có lời đáp lại, ping sẽ hiển thị thông điệp cho biết đích không thể đạt đến được. Một ứng dụng khác dùng ICMP là traceroute, dùng để cung cấp một danh sách tất cả các router dọc theo đường dẫn đến một đích xác định naò đó.
cho hệ thống mục tiêu và thu nhận những thông tin ICMP phản hồi từ mục tiêu cho phép chúng ta biết được rằng mục tiêu có còn tồn tại trên mạng hay không. Với các mạng vừa và nhỏ thì lệnh ping có thể chấp nhận dùng để xác định mục tiêu, nhưng với các mạng lớn thì nó lại có ít tác dụng hoặc không hiệu quả. Quét mạng ở lớp A với lệnh ping có thể mất đến cả tiếng đồng hồ. Tuy nhiên chúng ta cũng còn rất nhiều các công cụ khác để xác định xem mục tiêu của chúng ta còn tồn tại hay không. Dưới đây là một vài ví dụ:
Để thực hiện lệnh ping sweep, chúng ta có vô số các công cụ sẵn có trên hệ thống chạy UNIX hoặc Windows NT.
Chúng ta thử với lệnh fping (
http://packetstorm.securify.com/exploit_Code_Archive/fping.tar.gz )
Không giống như lệnh ping sweep truyền thống là chờ cho đến khi có tín hiệu phản hồi của từng hệ thống trước khi chuyển sang hệ thống khác, fping được sử dụng để gửi liên tục các gói tin . Do đó lệnh fping sẽ nhanh hơn rất nhiều so với lệnh ping. Lệnh fping có 2 cách sử dụng: cách thứ nhất là cung cấp các dải IP đầu vào và cách thứ hai là theo file. Đọc theo file thì dễ hơn, thông thường thì phải tạo ra các dòng địa chỉ IP theo từng dòng.
192.168.51.1
192.168.51.2
192.168.51.3
192.168.51.4
…
192.168.51.253
192.168.51.254
và sau đó sử dụng –f để đọc.
[stunami] $ fping –f in.txt
192.168.51.1 is alive
192.168.51.2 is alive
192.168.51.3 is alive
192.168.51.4 is alive
…
192.168.51.253 is alive
192.168.51.254 is alive
Tham số –a của lệnh fping chỉ thể hiện rằng hệ thống vẫn còn tồn tại. Chúng ta có thể kết hợp với tham số -d để giải quyết với hostname nếu chúng ta chọn. Thông thường chúng ta sử dụng tham số -a với shell scrípt và tham số -d khi chúng ta quan tâm đến hệ thống mục tiêu mà có host name duy nhất. Có tuỳ chọn khác là tham số -f., đọc từ file.
Kiểu fping –h dùng để liệt kê tất cả các tuỳ chọn.
Một công cụ khác được sử dụng trong suốt cuồn sách này là công cụ nmap
http://www.insecure.org/nmap )
[stunami] nmap –sp 192.168.1.0/24
Starting nmap V. 2.53 by fyodor@insecure.org ( www.insecure.org/nmap/ )
Host (192.168.1.0) seems to be a subnet broadcast
address (returned 3 extra pings).
Host (192.168.1.1) appears to be up.
Host (192.168.1.10) appears to be up.
Host (192.168.1.11) appears to be up.
Host (192.168.1.15) appears to be up.
Host (192.168.1.20), appears to be up.
Host (192.168.1.50) appears to be up.
Host (192.168.1.101) appears to be up.
Host (192.168.1.102) appears to be up.
Host (192.168.1.255) seem tobe a subnet broadcast address (returned 3 extra pings)
Nmap run complete – 256 address (10 host up) scanned in 21 seconds.
Chúng ta cũng có các công cụ khác như Rhino9
http://www.nmrc.org/files/snt ) hoặc Ping Sweep from SolarWinds
http://www.solarwinds.net ).
Công cụ . Windows ping sweep như WS_Ping ProPack
www.ipswitch.com) and NetScanTools
www.nwpsw.com). Các công cụ về sau này có khả năng quét được cả các mạng nhỏ. Tuy nhiên chúng chăc chắn là sẽ quét chậm hơn các công cụ như Pinger và ping Sweep
Có thể bạn sẽ tự hỏi nếu như ICMP bị chặn lại bởi mục tiêu của bạn, vâng đây chính là câu hỏi thường gặp. Đó là vấn đề thường xảy ra khi mà gói tin ICMP bị chặn lại bởi router phía ngaòi hoặc bị tường lưả.
Khi mà ICMP bị chặn lại, chúng ta có thêm một số các công cụ hoặc kỹ thuật khác dùng để xác định xem hệ thống có còn hoạt động hay không.
Khi ICMP bị chặn lại, công cụ hữu hiệu đó là port scanning (Công cụ này sẽ được đề cập chi tiết ở cuối chương này).
Khi quét cổng, chúng ta thường hay quét các cổng thường dùng của các địa chỉ IP, chúng ta có thể xác định được host nào đang tồn tại, đang mở cổng số bao nhiêu, cồng nào đang lắng nghe. Kỹ thuật này cần nhiều thời gian và cũng không phải là công cụ cuối cùng.
Một công cụ sử dụng cho kỹ thuật quét cổng là nmap, như chúng ta đã được giới thiệu nmap cho phép chúng ta xem được các thông tin ICMP. Có một thuận lợi hơn với chúng ta là công cụ quét TCP ping scan. với port 80.
Hãy tham khảo ví dụ sau:
[tsunami] nmap -sP -PT80 192.168.1.0/24
TCP probe port is 80
Starting nmap V. 2.53
Host (192.168.1.0) appears to be up.
Host (192.168.1.1) appears to be up.
Host shadow (192.168.1.10) appears to be up.
-Host (192."16S-:-1.11) appears to be up. :
Host (192.168.1.15) appears to be up.
Host (192.168.1.20) appears to be up.
Host (192.168.1.50) appears to be up.
Host (192.168.1.101) appears to be ,up.
Host (192.168.1.102) appears to be up.
Host (192.168.1.255) appears to be up.
Nmap run completed (10 hosts up) scanned in 5 seconds
Như bạn đã thấy, phương pháp này khá hiệu quả khi xác định hệ thống có còn tồn tại hay không khi mà bị chặn ICMP. Điều đó chứng tỏ rằng sử dụng phương pháp này có thể có hiệu quả với các cổng khác như SMTP (25), POP (110), AUTH (113), IMAP (143).
Công cụ hping (http:/ /www.hping.org/)
[jack]# hping2 192.168.0.2 -8 -p 80 -f
HPING 192.168.0.2 (ethO 192.168.0.2): 8 set, 40 data pytes
60 pytes from 192.168.0.2: flags=8A seq=O ttl=64 id=418 win=5840 time=3.2 ms
60 pytes from 192.168.0.2: flags=8A seq=l ttl=64 id=420 win=5840 time=2.1 ms
60 bytes from,192.168.0.2: flags=8A seq=2 tt1=64 id=422 win=5840 time=2.0 ms
---192.168.0.2 hping statistic ---
3 packets tramitted, 3 packets received, 0% packet loss
Công cụ tiếp theo là icmpenum, from Simple Nomad
http://www.nmrc.org/files/sunix/icmpenum-l.l.l.tgz ).
This utility is a handy ICMP enumeration tool that will allow you to quickly identify systems that are alive by sending thetra. ditional ICMP ECHO packets, as well as ICMP TIME STAMP REQUEST and ICMP INFO
requests. Thus, if ingress ICMP ECHO packets are dropped by a border router or firewall,
it may still be possible to identify systems using an alternate ICMP type:
[shadow] icmpenum -i2 -c 192.168.1.0
192.168.1.1 is up
192.168.1.10 is up
,. "
192.168.1.11 is up
192.168.1.15 is up
192.168.1.20.is up
192.168.1.103 is up
Trong ví dụ này, chúng tôi liệt kê lớp mạng C với dải IP 192.168.1.0 bằng cách sử dụng một gói ICMP. Tuy nhiên sức mạnh thực của icmpenum là để xác định hệ thống sử dụng các gói spoofef để tránh bị phát hiện. Kỹ thuật này là có khả năng bởi vì icmpenum cung cấp các gói spoofed với tuỳ chọn -s và lắng nghe thông tin phản hồi một cách thụ động với sự chuyển đổi sang -p.
Tóm tắt: bước này cho phép chúng ta xác định được chính xác hệ thống nào đang tồn tại bằng ICMP hoặc bằng cách quét cổng có lựa chọn. Ngoài các 255 địa chỉ lớp C chúng ta có thể xác định được một vài host đang tồn tại và nó chính là mục tiêu để chúng ta truy vấn sau này.