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.