Phân tích một cuộc tấn công (Phần 1)
Don Parker
Chúng tôi đã giới thiệu cho các bạn trong phần một những thông tin có thể quan sát được trong khi mở chuỗi gói được gửi bởi Nmap. Chuỗi đã gửi bắt đầu với một phản hồi của ICMP echo để xác định xem máy tính hoặc mạng đã được gán với địa chỉ IP chưa.
Thêm vào đó, chúng ta còn có thể đoán được mạng của máy tính bị tấn công là mạng được xây dựng trên Windows bằng cách dựa vào ttl trong gói phản hồi ICMP echo mà nó gửi trả về. Những gì nên thực hiện lúc này là tiếp tục quan sát các gói còn lại trong trình quét Nmap, và tìm ra thông tin còn lại để có thể biết được hồ sơ của mạng nạn nhân.
Tiếp tục
10:52:59.078125 IP (tos 0x0, ttl 49, id 9808, offset 0, flags [none], proto: TCP (6), length: 40) 192.168.111.17.37668 > 192.168.111.23.80: ., cksum 0xfd46 (correct), ack 85042526 win 2048
0x0000: 4500 0028 2650 0000 3106 0407 c0a8 6f11 E..(&P..1.....o.
0x0010: c0a8 6f17 9324 0050 67d1 a55e 0511 a55e ..o..$.Pg..^...^
0x0020: 5010 0800 fd46 0000 P....F..
10:52:59.078125 IP (tos 0x0, ttl 128, id 397, offset 0, flags [none], proto: TCP(6), length: 40) 192.168.111.23.80 > 192.168.111.17.37668: R, cksum 0x6813 (correct), 85042526:85042526(0)win 0
0x0000: 4500 0028 018d 0000 8006 d9c9 c0a8 6f17 E..(..........o.
0x0010: c0a8 6f11 0050 9324 0511 a55e 0511 a55e ..o..P.$...^...^
0x0020: 5004 0000 6813 0000 0000 0000 0000 P...h.........
Hai gói ở trên xuất hiện sau các gói ICMP mà chúng ta đã quan sát trong phần 1. Nmap đã gửi một gói ACK đến IP mạng nạn nhân là 192.168.111.23 trên cổng 80. Dưới dạng thông tin giả mạo chúng ta không có được toàn bộ vấn đề ở đây. Chỉ thấy được rằng gói ACK đã nhận từ kẻ tấn công một gói RST phản hồi, vì ACK này không được mong đợi. Bản chất là nó không thuộc về một kết nối đã được thiết lập trước đó. Chúng ta vẫn có một ttl 128 tương ứng với ttl đã quan sát từ trước.
10:52:59.296875 IP (tos 0x0, ttl 58, id 45125, offset 0, flags [none], proto: TCP (6), length: 40) 192.168.111.17.37644 > 192.168.111.23.21: S, cksum 0x37ce (correct), 2010644897:2010644897(0) win 3072
0x0000: 4500 0028 b045 0000 3a06 7111 c0a8 6f11 E..(.E..:.q...o.
0x0010: c0a8 6f17 930c 0015 77d8 01a1 0000 0000 ..o.....w.......
0x0020: 5002 0c00 37ce 0000 P...7...
10:52:59.296875 IP (tos 0x0, ttl 128, id 398, offset 0, flags [DF], proto: TCP (6), length: 44) 192.168.111.23.21 > 192.168.111.17.37644: S, cksum 0x4f58 (correct), 1685290308:1685290308(0) ack 2010644898 win 64240
0x0000: 4500 002c 018e 4000 8006 99c4 c0a8 6f17 E..,..@.......o.
0x0010: c0a8 6f11 0015 930c 6473 7d44 77d8 01a2 ..o.....ds}Dw...
0x0020: 6012 faf0 4f58 0000 0204 05b4 0000 `...OX........
10:52:59.296875 IP (tos 0x0, ttl 128, id 110, offset 0, flags [none], proto: TCP(6), length: 40) 192.168.111.17.37644 > 192.168.111.23.21: R, cksum 0xca50 (correct), 2010644898:2010644898(0) win 0
0x0000: 4500 0028 006e 0000 8006 dae8 c0a8 6f11 E..(.n........o.
0x0010: c0a8 6f17 930c 0015 77d8 01a2 77d8 01a2 ..o.....w...w...
0x0020: 5004 0000 ca50 0000 P....P..
Theo sau quá trình trao đổi gói ACK và RST, chúng ta có thể thấy gói SYN thật đã được gửi từ hacker đến mạng nạn nhân, minh chứng trong gói với chữ S in đậm. Vấn đề này cho ta có thể suy luận ra rằng gói SYN/ACK phản hồi về từ mạng nạn nhân trên cổng 21 của nó. Quá trình trao đổi này sau đó được kết thúc bởi gói RST được gửi trở về từ máy tính của hacker đến mạng nạn nhân. Ba gói này lúc này giữ rất nhiều thông tin phong phú về sự giả mạo.
Chúng ta cũng có ttl 128 từ máy tính nạn nhân, nhưng cũng có win64240. Tuy giá trị này không có trong danh sách, nó quả thực là một size mà tôi đã thấy nhiều lần trước đây từ Win32 (các phiên bản 32 bit của Microsoft Windows như Win NT, 2K, XP và 2K3). Tính năng hạn chế khác của máy tính Windows là rằng khả năng đoán trước số các IP ID. Trong trường hợp này, chúng ta chỉ có một giá trị IP ID. Chúng ta cần ít nhất giá trị nữa trước khi có thể tự tin nói rằng máy tính này là một máy tính sử dụng Windows của Microsoft. Lưu ý rằng, hãy quan sát các gói còn lại từ quá trình quét của Nmap.
10:52:59.312500 IP (tos 0x0, ttl 59, id 54025, offset 0, flags [none], proto: TCP (6), length: 40) 192.168.111.17.37644 > 192.168.111.23.80: S, cksum 0x3393 (correct), 2010644897:2010644897(0) win 4096
0x0000: 4500 0028 d309 0000 3b06 4d4d c0a8 6f11 E..(....;.MM..o.
0x0010: c0a8 6f17 930c 0050 77d8 01a1 0000 0000 ..o....Pw.......
0x0020: 5002 1000 3393 0000 P...3...
10:52:59.312500 IP (tos 0x0, ttl 128, id 399, offset 0, flags [DF], proto: TCP (6), length: 44) 192.168.111.23.80 > 192.168.111.17.37644: S, cksum 0x7913 (correct), 1685345101:1685345101(0) ack 2010644898 win 64240
0x0000: 4500 002c 018f 4000 8006 99c3 c0a8 6f17 E..,..@.......o.
0x0010: c0a8 6f11 0050 930c 6474 534d 77d8 01a2 ..o..P..dtSMw...
0x0020: 6012 faf0 7913 0000 0204 05b4 0000 `...y.........
10:52:59.312500 IP (tos 0x0, ttl 128, id 111, offset 0, flags [none], proto: TCP(6), length: 40) 192.168.111.17.37644 > 192.168.111.23.80: R, cksum 0xca15 (correct), 2010644898:2010644898(0) win 0
0x0000: 4500 0028 006f 0000 8006 dae7 c0a8 6f11 E..(.o........o.
0x0010: c0a8 6f17 930c 0050 77d8 01a2 77d8 01a2 ..o....Pw...w...
0x0020: 5004 0000 ca15 0000 P.......
Mẩu thông tin đầu tiên mà hacker quan sát là để xem xem số IP ID có tăng đến 399 không. IP DI này quả thực là 399 như chúng ta có thể quan sát ở phần giữa gói. Với thông tin này, hacker khá tự tin rằng máy tính nạn nhân hắn đang tấn công là Windows NT, 2K , XP, hoặc 2K3. Cũng quan sát trong chuỗi gói này là cổng 80 trên mạng nạn nhân dường như có một dịch vụ, minh chứng bởi gói SYN/ACK, gói SYN/ACK được xác định bằng việc thẩm định trường flag trong TCP header, trong trường hợp này giá trị hex gạch chân là 12 hoặc 18 với hệ thập phân. Giá trị này có thể phát hiện được bằng giá trị SYN flag 2 được bổ sung vào giá trị ACK flag 16.
Liệt kê
Khi hacker biết được cả hai cổng 21 và 80 đều mở cho doanh nghiệp, anh ta sẽ chuyển sang trạng thái liệt kê. Những gì anh này cần biết lúc này là kiểu webserver đang lắng nghe cho các kết nối là gì. Sẽ vô nghĩa đối với hacker này nếu sử dụng một lỗ hổng Apache trên một IIS web server. Với lưu ý đó kẻ tấn công sẽ mở cmd.exe session và tìm ra chủng loại mạng.
C:\>nc.exe 192.168.111.23 80
GET slslslls
HTTP/1.1 400 Bad Request
Server: Microsoft-IIS/5.0
Date: Mon, 06 Aug 2007 15:11:48 GMT
Content-Type: text/html
Content-Length: 87
The parameter is incorrect.
C:\>
Chúng ta có thể quan sát chủng loại mạng đã được đánh dấu ở trên hoặc cú pháp nc.exe mà hacker đánh vào địa chỉ IP của nạn nhân cũng như cổng 80. Khi vào được, hacker sẽ đánh thêm vào HTTP của phương thức GET và theo sau là một số câu sai ngữ pháp. Hành động này có thể làm cho webserver của mạng nạn nhân gửi ngược trở về thông tin hệ thống của nó khi nó không hiểu yêu cầu là gì. Chính vì vậy mà chúng tự nhiên liệt kê những thông tin cần thiết cho hacker. Hacker lúc này có thể biết được rằng hắn đang ở trong Microsoft IIS 5.0. Tin tuyệt vời hơn nữa vì hacker có một số khai thác lỗ hổng đối với phiên bản này.
Kết luận
Với việc thực hiện quét mạng của nạn nhân bằng cách sử dụng Nmap, hacker có thể nhận được một loạt các gói dư liệu quan trọng sau đó. Bên trong các gói dữ liệu này, như chúng ta đã nhìn thấy, chứa đầy đủ thông tin để hacker có thể lợi dụng vào các lỗ hổng trong kiến trúc, hệ điều hành và chủng loại mạng cũng như kiểu máy chủ.
Tóm lại, với cách này, hacker có thể nắm được các thông tin chính về host, kiến trúc và dịch vụ được cung cấp. Với các thông tin này trong tay, hacker có thể tiến hành một tấn công vào webserver của mạng nạn nhân. Trong phần sau chúng tôi sẽ giới thiệu thêm về những tấn công nào hacker có thể dùng để tấn công vào người dùng trong trường hợp này.