Phát hiện một số kiểu tấn công nhờ wireshark – Phần 2

hungp

Whi-----
27/12/2014
49
72 bài viết
Phát hiện một số kiểu tấn công nhờ wireshark – Phần 2
Trong bài viết này mình sẽ hướng dẫn cách phát hiện được một số kiểu tấn công hoặc thu thập thông tin qua việc bắt các gói tin bằng wireshark. Bài viết này sẽ chia làm 2 phần để dễ theo dõi hơn. Ở phần 1 này mình đã đi vào phân tích 3 kiểu: DoS/DdoS, ARP Spoof, Analysing malware (tham khảo: https://whitehat.vn/forum/thao-luan...-kieu-tan-cong-mang-bang-wireshark-%96-phan-1 ). Vậy trong phần 2 này mình sẽ đi vào phân tích 3 kiểu: Thu thập thông tin mạng, Detecting Host Exploitation, Data Recovery.

wireshark.png

1. Thu thập thông tin mạng

1.1 NMAP Host Discovery & Port Scanning

1.1.1 NMAP Host Discovery

Mô tả

Đây là kỹ thuật sử dụng NMAP Ping để quét phát hiện một máy chủ đang hoạt động trên Internet (không thực hiện việc quét cổng).

Dấu hiệu nhận biết
Kết luận
Để xác định máy chủ của mình có đang bị quét bởi nmap hay không? Ta kiểm tra xem có tồn tại 4 gói tin này được gửi tới server hay không?
  • Gói tin ICMP Echo không có dữ liệu.
  • Gói tin TCP SYN tới port 443.
  • Gói tin TCP ACK tới port 80.
  • Gói tin ICMP timestamp.
Ví dụ:
Một máy với địa chỉ 10.2.32.163 dùng nmap để quét server có địa chỉ 45.33.49.119. Vậy để server 45.33.49.119 phát hiện là đang có máy sử dụng nmap quét thì lần lượt kiểm tra xem có tồn tại 4 gói tin sau hay không?
Để kiểm tra các gói ta dùng lần lượt các bộ lọc sau:
  • (ip.flags == 0x00) && (icmp.type == 8 && icmp.code == 0) && (icmp.seq == 0) && (not data)
  • (ip.flags == 0x00) && (tcp.flags == 0x0002) && (tcp.dstport == 443)
  • (ip.flags == 0x00) && (tcp.flags == 0x0010) && (tcp.dstport == 80)
  • (ip.flags == 0x00) && (icmp.type == 13 && icmp.code== 0) && (icmp.seq == 0) && (icmp[8:4] == 00:00:00:00) && (not data)

1.jpg

1.1.2 Nmap port scanning
Mô tả

  • TCP SYN Stealth scan
Đây là kiểu quét mà kẻ tấn công chỉ gửi một gói tin SYN, sau đó đợi nhận lại một gói tin SYN/ACK phản ứng từ port lắng nghe. Nếu nhận được gói tin trả lại, nmap sẽ gửi một RST để ngắt kết nối đó, không hoàn thành bắt tay 3 bước.
  • TCP Connect scan
Đối với kiểu quét này thì gần giống với TCP SYN Stealth scan, nhưng ở đây Nmap sẽ hoàn thành việc bắt tay 3 bước.

Dấu hiệu nhận biết
Kết luận
Để nhận biết 2 kiểu quét này ta nhìn:
  • Số lượng các gói tin SYN được gửi từ một nguồn.
  • Kích thước các gói tin là giống nhau.
  • Với kiểu quét TCP SYN Stealth thì Don’t Fragment flag được set 0 và chỉ có duy nhất TCP Option: Maximum Segment Size (MSS).
  • Với kiểu quét TCP Connect thì Don’t Fragment flag được set 1 và thiếu lập đầy đủ TCP Option.
Ví dụ:
Một máy với địa chỉ 192.168.2.10 sử dụng nmap để quét các cổng của máy chủ.
Với kiểu TCP SYN Stealth ta dùng bộ lọc sau:
(ip.flags == 0x00) && (tcp.flags == 0x0002) && (tcp.option_kind == 2) && not (tcp.option_kind == 3 || tcp.option_kind ==4)

2.jpg

Với kiểu TCP Connect ta dùng bộ lọc sau:
(ip.flags == 0x02) && (tcp.flags == 0x0002) && (tcp.option_kind == 2 && tcp.option_kind ==3 && tcp.option_kind ==4)

3.jpg

2. Quét lỗ hổng Web Server

Mô tả

Một kẻ tấn công để khai thác được một web server thì phải biết nó đang tồn tại các lỗ hổng nào thì mới có thể bắt đầu khai thác. Vậy việc thu thập được các thông tin lỗ hổng trên web server là một bước rất quan trọng đối với kẻ tấn công. Có một số tool hay dùng như Nikto, tool này ngoài việc quét lỗ hổng, nó còn bao gồm việc quét thư mục traversal để cố gắng truy cập vào.

Dấu hiệu nhận biết

Kết luận:


Để phát hiện máy chủ web server của mình đang bị quét thì ta nhìn:
  • Số lượng gói tin HTTP với kiểu GET được gửi đến.
  • Nhìn vào User-Agent. Nếu sử dụng tool ví dụ như Nikto thì sẽ có chữ ký “Nikto/2.1.0”
  • Nhìn vào trường “Info” sẽ thấy các đoạn kiểu “../”, đây là các gói tin kẻ tấn công gửi đi để lấy các thư mục traversal trên server.
Ví dụ:
Một kẻ tấn công với địa chỉ IP 192.168.126.111 sử dụng Nikto để quét một web server
Để biết được server mình đang bị quét ta sử dụng bộ lọc “http.request.uri contains 2e:2e:2f:”

4.jpg

3. Detecting Host Exploitation

3.1 FTP Account/Password Guessing & Brute Force Attack

Mô tả


Đây là kiểu tấn công Brute Force vào FTP server.

Dấu hiếu nhận biết tấn công

Kết luận: Để nhận biết kiểu tấn công qua việc phân tích gói tin thì ta nhìn vào:
  • Số lượng lớn các gói tin FTP được gửi đến.
  • Nhìn trường “Info” ta sẽ thấy các request với những “USER” và “PASS” là khác nhau được gửi đến để thử mật khẩu đăng nhập.
Ví dụ:

Mình sử dụng một máy có ip 10.2.32.163 tấn công brute force vào FTP server có ip 10.10.0.16.

5.jpg

4. Data Recovery
Ngoài việc gây tổn hại đến hệ thống, kẻ tấn công sẽ cố gắng duy trì kết nối với cơ sở hạ tầng của nạn nhân. Họ thường sẽ tải lên các bộ công cụ, chèn backdoors, hoặc trích xuất dữ liệu nhạy cảm từ các máy bị xâm nhập. Vậy ở đây qua việc phân tích gói tin ta sẽ tìm kiếm các file kẻ tấn công đã tải lên, hoặc các file nhạy cảm mà đã bị kẻ tấn công tải về.

4.1 Xác định các file dữ liệu trong các gói tin

4.1.1 Tìm kiếm theo phần mở rộng tập tin

Mô tả


Tìm kiếm theo phần mở rộng tập tin phổ biến ví dụ như *.doc, *.pdf, *.exe.

Dấu hiệu nhận biết

Kết luận: Để xác định việc server có bị tải file lên hoặc bị tải các file nhạy cảm thì có thể sử dụng filter sau trên wireshark:
  • “fram contains “.gz”
6.jpg
  • Để tìm được nhiều gói tin chứa tập tin với đuôi mở rộng khác nhau ta dùng “matches”. Ví dụ:
7.png


8.jpg
  • Nếu ta muốn tìm thông tin với một giao thức cụ thể. Ví dụ HTTP
9.jpg

4.2. Tìm kiếm theo nội dung đã biết hoặc chuỗi nhạy cảm

Mô tả

Dấu hiệu nhận biết


Kết luận: Để tìm các nội dung mà kẻ tấn công đã tải về ta có thể sử dụng toán tử “matches” của wireshark.

Ví dụ: Bộ lọc sau hiển thị các dữ liệu được lưu trữ trong thư mục “/etc/passwd” và”/etc/shadow:

10.png


11.jpg

Tìm theo chữ ký tập tin header

Wireshark có thể tìm kiếm cho các loại tập tin cụ thể, sử dụng chữ ký phần header của tập tin.
Ví dụ: Một file thực thi của windows có giá trị tiêu đề file” “MZ” (giá trị hex: 0x4d5a), kèm theo một chuỗi giá trị: “This Program must be run under Win32” hoặc “This program cannot be run in DOS”.

12.jpg

5. Manual Data Recovery of SMTP Data Attachments

Mô tả


Email có thể được sử dụng như một cơ chế vận chuyển, gửi nội dung độc hại thông qua một cuộc tấn công spear-phishing với mục tiêu là nhân viên, hoặc nó có thể được sử dụng như một phương tiện để exfiltrate dữ liệu.

Dấu hiệu nhận biết

Để nhận biết được các file đính kèm ta thực hiện các bước sau:

Bước 1: Sử dụng bộ lọc wireshark để xác định vị trí các gói SMTP với file đính kèm:

13.jpg

Bước 2: chọn “Follow TCP stream” (màu đỏ dữ liệu gửi bởi client, màu xanh gửi từ server).

14.png

Bước 3: Thẻ MIME delimits mỗi tập tin đính kèm bắt đầu sau “Content-Disposition:…” và kết thúc như hình dưới.

15.png

Bước 4: Copy đoạn trong thẻ MIME và giải mã Base64.

6. Data Recovery using Wireshark

Mô tả


Để phát hiện các nội dung độc hại qua các gói tin HTTP hoặc SMB.

Dấu hiệu nhận biết

Để phát hiện được nội dung, ta thực hiện các bước sau:

Bước 1: Filter các gói tin SMB2.

16.jpg

Bước 2: Chọn “File” -> “SMB”-> “Export Objects” -> SMB/SMB2.

17.png

Bài viết của mình đã xong, mong phần nào giúp ích cho các bạn sớm phát hiện các dấu hiệu tấn công đến server của mình :D .
 
Chỉnh sửa lần cuối bởi người điều hành:
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Nếu kẻ tấn công không dùng Nmap để thăm dò mà dùng tool khác thì phân tích đầu tiên có phát hiện ra không bạn?
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Thẻ
wireshark
Bên trên