Trong quá trình dò quét hệ thống, một trong những vấn đề đặt ra là các hệ thống IDS, Logs sẽ ghi nhận thông tin về IP Attacker, để không bị phát hiện các Attacker mới nghĩ ra các phương thức khác nhau tránh bị ghi nhận lại. Hôm nay tôi sẽ giới thiệu các bạn phương thức Idle-scan, kiểu quét này được Antirez (người viết phần mềm Hping2) đưa ra năm 1998.
Nguyên lý của Idle scan là scan thông qua 1 zombie thay vì sử dụng phương thức gửi packet trực tiếp đến đối tượng. Target nếu ghi logs hay khóa IP sẽ chỉ thực hiện trên zombie.
Idle-scan sử dụng một số điểm chính trong TCP protocol sau:
- Khi target nhận packet với cờ SYN sẽ trả lời với một packet bật cờ SYN/ACK nếu port mở, ngược lại sẽ trả lời với packet cờ RST.
- Nếu một máy tính nhận packet với cờ SYN/ACK nó sẽ trả lời với cờ RST. Nếu nhận packet với RST sẽ bỏ qua mà không trả lời.
Tùy OS với TCP/IP stack thiết kế tương ứng với mỗi packet trả lời trường IPID sẽ tăng 1, dựa vào điểm này attacker có thể đếm được số packet zombie gửi đi.
2. Nguyên lý:
1. Ban đầu attacker sẽ gửi đến zombie gói SYN/ACK và chờ gói RST, attacker ghi nhận lại IPID (trường hợp này là 1033):
2. Bước 2 attacker dùng IP zombie (giả IP) gửi packet SYN đến target cần quét port. Nếu target mở port sẽ gửi trả lại zombie SYN/ACK. Zombie nhận packet SYN/ACK lần 2 cũng sẽ trả lời với RST nhưng giá trị IPID tăng 1 (IPID=1034).
Nếu target đóng port sẽ trả lại zombie RST do đó zombie sẽ bỏ qua packet mà không trả lời.
3. Bước cuối cùng attacker gửi lại SYN/ACK đến zombie. Nếu IPID tăng nghĩa là port target mở, còn không nghĩa là trước đó zombie nhận RST từ target->port đóng.
3. Hiện thực idle-scan trên Nmap:
Theo sơ đồ trên, Attacker thử scan port 23 trên máy Target (Nên dùng thêm -PN để bỏ qua ping thử Target, nếu không nmap sẽ gửi gói ICMP trực tiếp đến Target)
Hình ảnh này đã được thay đổi kích thước. Click vào đây để xem hình ảnh gốc với kích thước là 1021x799 |
1. Từ packet 5 đến 16 là quá trình Nmap khảo sát trước IPID của zombie. Nmap gửi liên tục SYN/ACK và chờ RST để ghi lại IPID. Tại packet thứ 6 IPID là 1178 và packet 8 là 1179,...packet 16: 1183 => IPID tăng.
Hình ảnh này đã được thay đổi kích thước. Click vào đây để xem hình ảnh gốc với kích thước là 1021x799 |
Hình ảnh này đã được thay đổi kích thước. Click vào đây để xem hình ảnh gốc với kích thước là 1021x799 |
2. Từ packet 17 đến 24 Nmap giả lập Target mở port, nó dùng IP Target thử xem IPID có vẫn tiếp tục tăng nếu trả target gửi SYN/ACK.
Hình ảnh này đã được thay đổi kích thước. Click vào đây để xem hình ảnh gốc với kích thước là 1021x799 |
Hình ảnh này đã được thay đổi kích thước. Click vào đây để xem hình ảnh gốc với kích thước là 1021x799 |
Vẫn tăng. IPID tiếp theo là 1184 ,và đến packet 24 IPID là: 1187.
3.Packet 25,26 là để kiểm tra lại sau khi giả lập Target mở port. Nmap gửi lại SYN/ACK. IPID lúc này là 1188
Hình ảnh này đã được thay đổi kích thước. Click vào đây để xem hình ảnh gốc với kích thước là 1021x799 |
4. Sau khi kiểm tra mọi thứ hoạt động tốt, nmap bắt đầu SYN Target với IP của zombie: packet 27. Do mở port nên Target trả lời SYN/ACK cho zombie (packet 28), zombie trả lời RST và IPID tăng lên 1189 (packet 29).
Hình ảnh này đã được thay đổi kích thước. Click vào đây để xem hình ảnh gốc với kích thước là 1021x799 |
5. Packet 30,31 nmap kiểm tra lại IPID: 1190 ==> kết luận port mở.
Hình ảnh này đã được thay đổi kích thước. Click vào đây để xem hình ảnh gốc với kích thước là 1021x799 |
6. Nmap thử lại lần nữa: packet 32,33.
Hình ảnh này đã được thay đổi kích thước. Click vào đây để xem hình ảnh gốc với kích thước là 669x266 |
Trên Linux/Unix/freeBSD mới TCP/IP stack được fix, các packet RST trả về đều được set IPID=0 nên không dùng được cho kiểu scan này. Tốt nhất nên sử dụng Idle scan với zombie sử dụng HĐH Windows.
Link: http://nhatnghe.com/forum/showthread.php?t=29360