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.
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?
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:
1.1.2 Nmap port scanning
Mô tả
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:
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)
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)
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:
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:”
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:
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.
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:
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:
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”.
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:
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).
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.
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.
Bước 2: Chọn “File” -> “SMB”-> “Export Objects” -> SMB/SMB2.
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 .
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.
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.1.2 Nmap port scanning
Mô tả
- TCP SYN Stealth scan
- TCP Connect scan
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.
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)
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)
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.
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:”
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.
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.
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”
- Để 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ụ:
- Nếu ta muốn tìm thông tin với một giao thức cụ thể. Ví dụ HTTP
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:
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”.
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:
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).
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.
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.
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 .
Chỉnh sửa lần cuối bởi người điều hành: