Phân tích một tấn công (Phần 1) - 22/12/2007 11h:3 Don Parker Loạt bài này sẽ dựa trên một lỗ hổng hệ thống mạng. Những gì sẽ giới thiệu trong bài đã là một tấn công thực sự, bắt đầu từ thăm dò đến liệt kê, khai thác dịch vụ mạng và kết thúc các chiến lược khai thác gửi thông báo. Tất cả các bước này sẽ được quan sát ở mức gói dữ liệu, và sau đó sẽ được giải thích một cách cụ thể. Có thể quan sát và hiểu được một tấn công ở mức gói dữ liệu là một điều cực kỳ quan trọng cho cả các quản trị viên hệ thống (sys admin) và các nhân viên bảo mật mạng. Đầu ra của các tường lửa, Hệ thống phát hiện xâm phạm (IDS) và các thiết bị bảo mật khác sẽ luôn luôn được sử dụng để có thể xem được lưu lượng mạng thực sự. Nếu bạn không hiểu những gì đang nhìn thấy tại mức gói dữ liệu thì tất cả những công nghệ bảo mật mạng mà bạn có sẽ trở thành vô nghĩa. Các công cụ được sử dụng cho việc mô phỏng một tấn công mạng là: • Nmap • IPEye • Tcpdump • Metasploit Framework • Netcat • SolarWinds TFTP Server • Tftp client • FU Rootkit Bước thiết lập Có rất nhiều hành động quét trên Internet ngày nay, không đề cập đến hành động của worm và các dạng malware khác như virus. Tất cả chúng sẽ chỉ như tạp nhiễu vô hại với các mạng máy tính được bảo vệ tốt. Những gì chúng ta nên xem xét là một người đang chủ tâm nhắm đến một mạng máy tính. Bài này sẽ thừa nhận rằng kẻ tấn công đã tấn công vào nạn nhân của hắn và đã thực hiện các nghiên cứu trước như tìm ra địa chỉ IP và các địa chỉ mạng của nạn nhân. Kẻ tấn công này có thể cũng đã cố gắng khai thác thông tin như các địa chỉ email có liên quan đến mạng đó. Kiểu thông tin này là rất quan trọng trong trường hợp kẻ tấn công đã tìm nhưng không có cách nào vào mạng sau khi đã thực hiện các hành động quét, liệt kê và giả mạo nó. Các địa chỉ email mà hắnđã thu lượm được sẽ rất hữu dụng trong việc thiết lập lên một tấn công trình khách bằng cách thử và mời người dùng vào một website mã độc thông qua một liên kết trong email. Những kiểu tấn công đó sẽ được giới thiệu trong các bài sau. Cách thức thực hiện Chúng ta nên quan sát các hành động của một hacker khi hắn thực hiện công việc quét, và liệt kê mạng nạn nhân. Công cụ đầu tiên mà hacker sử dụng là Nmap. Mặc dù Nmap có khá ít ký hiệu IDS nhưng nó vẫn là một công cụ khá hữu dụng và được sử dụng nhiều. Chúng ta có thể xem thông qua cú pháp được sử dụng bởi hacker trong màn hình nhỏ hiển thị bên trên, hacker đã chọn cổng 21 và 80 vì hắn có một số khai thác có thể sử dụng thông qua Metasploit Framework. Không chỉ điều đó mà còn cả hai dịch vụ hệ thống và giao thức mà hắn hiểu khá tốt. Được hiển thị khá rõ là rằng hắn đang sử dụng quét SYN, đây là kiểu quét cổng được sử dụng thông dụng nhất. Đó cũng là do thực tế là khi một dịch vụ sử dụng TCP đang nghe trên một cổng nhận được gói SYN thì nó sẽ gửi trở lại một gói SYN/ACK (phúc đáp). Gói SYN/ACK chỉ thị rằng một dịch vụ quả thực đang nghe và đang chờ đợi kết nối. Tuy nhiên vấn đề tương tự lại không giống với UDP, nó lại dựa trên các dịch vụ như DNS (DNS cũng sử dụng TCP nhưng nó hầu như sử dụng UDP đối với phần lớn các phiên giao dịch của nó). Cú pháp được liệt kê dưới đây là đầu ra mà Nmap thu lượm được từ các gói nó đã gửi, nhưng chính xác hơn là từ các gói nó nhận với tư cách là kết quả của quét SYN mà nó đã thực hiện. Chúng ta có thể thấy rằng bề ngoài có vẻ có cả các dịch vụ FTP và HTTP được cung cấp. Chúng ta không thực sự quan tâm đến địa chỉ MAC vì vậy sẽ bỏ qua điều đó. Các công cụ như Nmap không thường xuyên có lỗi nên nó thường rất tốt cho việc thẩm định thông tin của bạn ở mức gói dữ liệu để bảo đảm cho sự chính xác. Không chỉ vậy mà nó cũng cho phép quan sát được cả các gói trở lại, từ mạng nạn nhân để có thể thu thập được các thông tin kiến trúc, dịch vụ và host từ đó. Hãy tra cứu các gói dữ liệu Có một số chương trình được cung cấp ngày nay sẽ khai phá được các gói và tìm ra những thông tin cần thiết như kiểu hệ điều hành, thông tin về kiến trúc, ví dụ như x86 hay SPARC và nhiều vấn đề khác nữa. Đó chưa phải là đủ nhưng nó cũng quan trọng khi chúng ta đang tìm hiểu về việc cho phép một chương trình thực hiện công việc cho chúng ta. Với lưu ý đó, chúng ta hãy xem xét đến dấu vết gói Nmap và tìm ra một số thông tin nào đó về mạng nạn nhân. 10:52:59.062500 IP (tos 0x0, ttl 43, id 8853, offset 0, flags [none], proto: ICMP (1), length: 28) 192.168.111.17 > 192.168.111.23: ICMP echo request seq 38214, length 8 0x0000: 4500 001c 2295 0000 2b01 0dd3 c0a8 6f11 E ." .+ .o. 0x0010: c0a8 6f17 0800 315a 315f 9546 o .1Z1_.F 10:52:59.078125 IP (tos 0x0, ttl 128, id 396, offset 0, flags [none], proto: ICMP (1), length: 28) 192.168.111.23 > 192.168.111.17: ICMP echo reply seq 38214, length 8 0x0000: 4500 001c 018c 0000 8001 d9db c0a8 6f17 E .o. 0x0010: c0a8 6f11 0000 395a 315f 9546 0000 0000 o .9Z1_.F 0x0020: 0000 0000 0000 0000 0000 0000 0000 Thể hiện trong hai gói dữ liệu ở trên là loạt mở từ Nmap. Những gì nó thực hiện là gửi một yêu cầu ICMP echo đến mạng nạn nhân. Bạn sẽ thấy rằng nó không được trang bị tại một cổng nào đó, bởi vì ICMP không sử dụng các cổng, nhưng lại được quản lý bởi bộ thông báo lỗi ICMP xây dựng bên trong ngăn xếp giao thức TCP/IP. Gói ICMP này cũng được dán nhãn bằng một số duy nhất, trong trường hợp này là 38214 để giúp ngăn xếp TCP/IP có thể kiểm tra được lưu lượng trả về, và liên kết nó với gói ICMP trước đó đã gửi. Gói tin ngay trên là đáp trả từ một mạng nạn nhân, trong biểu mẫu của một đáp trả (reply) ICMP echo. Cũng tính đến cả số chuỗi 38214. Chính vì vậy hacker biết được rằng có một máy tính hoặc một mạng đằng sau địa chỉ IP đó. Chuỗi gói ICMP đang mở này là lý do tại sao Nmap có một ký hiệu IDS cho nó. Tùy chọn khám phá ICMP host có thể bị vô hiệu hóa trong Nmap nếu muốn. Loại thông tin gì có thể được thu lượm thông qua kết quả của gói trả lời ICMP echo từ mạng nạn nhân? Trong thực tế ở đây không có nhiều thông tin giúp chúng ta nắm được về mạng. Mặc dù vậy vẫn có thể sử dụng những đòn sơ bộ tại những chỗ liên quan đến hệ điều hành. Thời gian để cư trú một trường và giá trị bên cạnh nó được đánh dấu tô đậm trong gói trên. Giá trị 128 cho thấy một sự thật rằng máy tính này có thể là một máy tính chạy hệ điều hành Windows. Trong khi đó giá trị ttl lại không trả lời một cách chính xác như những gì về có liên quan đến hệ điều hành, nó sẽ được căn cứ cho các gói kế tiếp mà chúng ta sẽ xem xét. Kết luận Trong phần một này, chúng ta đã xem xét về một quá trình quét đối với một mạng trong một tấn công cho hai cổng cụ thể bằng Nmap. Đến đây, kẻ tấn công này đã biết chắc chắn rằng có một máy tính hoặc một mạng máy tính cư trú tại địa chỉ IP đó. Trong phần 2 của loạt bài này, chúng tôi sẽ tiếp tục giới thiệu đến các bạn phần kết của nghiên cứu về dấu vết của gói này, và tìm ra những mẩu thông tin còn lại. . proto: ICMP (1 ) , length: 28) 19 2 .16 8 .11 1.23 > 19 2 .16 8 .11 1 .17 : ICMP echo reply seq 38 214 , length 8 0x0000: 4500 001c 018 c 0000 80 01 d9db c0a8 6f17 E .o 10 :52:59.062500 IP (tos 0x0, ttl 43, id 8853, offset 0, flags [none], proto: ICMP (1 ) , length: 28) 19 2 .16 8 .11 1 .17 > 19 2 .16 8 .11 1.23: ICMP echo request seq 38 214 , length