🛡️→⚔️ Decoy-Hunter: Vượt Qua Chiêu Thức "Mở Tất Cả Cổng" trong An Ninh Mạng
Chiêu thức đánh lừa phòng thủ rất mạnh mẽ — nhưng không vô hình.
Công cụ này giúp các đội đỏ và chuyên gia thử nghiệm xâm nhập cắt xuyên qua tiếng ồn của các dịch vụ giả và tìm ra bề mặt tấn công thực sự.
🔥 Vấn Đề: Chiêu Thức "Tất Cả Các Cổng Đều Mở"
Trong các kiến trúc phòng thủ hiện đại, việc gây nhầm lẫn cho kẻ tấn công bằng cách làm cho mọi cổng TCP đều có vẻ mở ngày càng trở nên phổ biến. Điều này thường được thực hiện bằng các quy tắc iptables đơn giản:
iptables -t nat -A PREROUTING -i eth0 -p tcp -m conntrack --ctstate NEW -j REDIRECT --to-ports 1234
while sleep 1; do nc -nv -lp 1234; done
Hoặc các công cụ tiên tiến hơn như portspoof, công cụ này trả về các banner dịch vụ ngẫu nhiên trên mỗi cổng.
Mục tiêu? Làm lãng phí thời gian của kẻ tấn công, kích hoạt các cảnh báo giả trong các công cụ quét và che giấu các dịch vụ thực sự giữa hàng nghìn dịch vụ giả.
Nhưng có một điều cần lưu ý: hầu hết các triển khai đánh lừa đều bị lỗi.
portspooftrả về các banner khác nhau trong mỗi lần quét → dễ bị phát hiện.- Các mô phỏng banner tĩnh (ví dụ: sử dụng phản hồi từ
nmap-service-probes) thiếu logic giao thức. - Các dịch vụ giả thường phản hồi với bất kỳ đầu vào nào bằng cùng một chuỗi tĩnh — trong khi các dịch vụ thực sự không hoạt động như vậy.
Điều này tạo ra cơ hội cho phản công đánh lừa.
🕵️♂️ Giới Thiệu decoy-hunter
decoy-hunter là một công cụ quét tàng hình, nhận thức về giao thức được thiết kế để:
- Phát hiện các dịch vụ giả sau các cái bẫy "tất cả cổng đều mở",
- Xác định các dịch vụ thực sự, có thể khai thác ẩn giấu trong tiếng ồn,
- Hoạt động với mã hóa lưu lượng để tránh bị phát hiện bởi người phòng thủ.
Khác với nmap -sV, có thể bị đánh lừa bởi các banner giả nhất quán, decoy-hunter:
- Sử dụng các
nmap-service-probesthực sự để gửi các yêu cầu khách hàng hợp lệ, - Xác thực hành vi giao thức, không chỉ là các banner,
- Hỗ trợ TCP + UDP lên đến cổng 10,000 (hoặc toàn bộ dải),
- Mô phỏng thời gian và mẫu yêu cầu giống như con người.
🧠 Cách Hoạt Động
1. Khảo Sát Thực Tế
Thay vì gửi các chuỗi thô, decoy-hunter:
- Gửi các yêu cầu HTTP hợp lệ với
User-Agentthực, - Khởi tạo các cuộc bắt tay TLS trên các cổng HTTPS,
- Sử dụng SMTP
EHLO, FTPUSER, RedisPING, v.v., - Tận dụng cơ sở dữ liệu
nmap-service-probeschính thức để đảm bảo độ chính xác.
2. Xác Thực Giao Thức
Một dịch vụ SSH giả có thể trả về SSH-2.0-OpenSSH_8.9, nhưng:
- Nó sẽ không hoàn tất một cuộc trao đổi khóa,
- Nó sẽ không phản hồi đúng với các gói bị hỏng,
- Nó có thể trả lời với một banner SSH trên cổng 8080 — điều này rất nghi ngờ.
decoy-hunter kiểm tra:
- Phản hồi có khớp với trạng thái giao thức dự kiến không?
- Dịch vụ có đồng nhất qua nhiều lần khảo sát không?
- Nó chỉ phản hồi với một loại khảo sát, bỏ qua các loại khác không?
3. Mã Hóa Lưu Lượng (Chống Phát Hiện)
Để tránh bị đánh dấu là một công cụ quét:
- Độ trễ ngẫu nhiên giữa các kết nối (
0.2–2.0s), - Độ đồng thời hạn chế (mặc định: 15),
- Không phát tán dữ liệu mạnh mẽ,
- Sử dụng TLS nơi cần thiết (ví dụ, cổng 443),
- Không lặp lại các mẫu giống hệt nhau.
🔒 Mục tiêu: Làm cho lưu lượng trông giống như một người dùng tò mò hoặc một khách hàng được cấu hình sai — không phải là một công cụ thử nghiệm xâm nhập.
🚀 Bắt Đầu Nhanh
1. Cài Đặt các Phụ Thuộc
pip install tqdm
2. Tải về nmap-service-probes
wget https://raw.githubusercontent.com/nmap/nmap/master/nmap-service-probes
3. Chạy một lần quét
# Quét 10k cổng TCP hàng đầu
python3 decoy_hunter.py 192.168.1.10
# Bao gồm UDP (chậm hơn)
python3 decoy_hunter.py target.com -sU -c 5
# Các cổng tùy chỉnh
python3 decoy_hunter.py 10.0.0.5 -p 22,80,443,8080,1234
Kết Quả Mẫu
[REAL] 22/tcp mở ssh (qua passive/NULL) → SSH-2.0-OpenSSH_8.9p1
[FAKE] 8080/tcp mở http (qua GetRequest) → SSH-2.0-OpenSSH_8.9p1 ← 🚩 Không khớp!
[REAL] 443/tcp mở http (qua GetRequest) → HTTP/1.1 200 OK
Lưu ý: Banner SSH trên cổng 8080 → dấu hiệu rõ ràng của việc đánh lừa.
🛠️ Điểm Nổi Bật Kỹ Thuật
| Tính Năng | Mô Tả |
|---|---|
Hỗ trợ đầy đủ nmap-service-probes |
Phát hiện dịch vụ chính xác sử dụng cơ sở dữ liệu chính thức của Nmap |
Async I/O với asyncio |
Quét nhanh, có thể mở rộng mà không bị chặn |
| Quét UDP + TCP | Bao phủ cả hai lớp truyền tải |
| Chế độ tàng hình | Thời gian ngẫu nhiên, yêu cầu thực tế, độ đồng thời thấp |
| Thanh tiến trình | Phản hồi hình ảnh với tqdm |
Không phụ thuộc bên ngoài (ngoại trừ tqdm) |
Python thuần, dễ dàng chạy ở bất kỳ đâu |
📚 Tại Sao Điều Này Quan Trọng
Chiêu thức đánh lừa phòng thủ là một chiến thuật hợp lệ và hữu ích — nhưng nó không nên tạo ra cảm giác an toàn sai lầm. Là những người thuộc đội đỏ và hacker đạo đức, chúng ta phải:
- Hiểu các mẹo phòng thủ,
- Phát triển công cụ để nhìn thấu chúng,
- Giúp tổ chức kiểm tra hiệu quả của các lớp đánh lừa của họ.
decoy-hunter không chỉ là một công cụ quét — nó là một khung phản công đánh lừa cho bề mặt tấn công hiện đại.
🤝 Đóng Góp
Phát hiện ra một dịch vụ giả mà decoy-hunter đã bỏ lỡ?
Có ý tưởng để cải thiện việc mã hóa hoặc phạm vi khảo sát?
→ Pull requests rất được hoan nghênh!
→ Các vấn đề và yêu cầu tính năng được khuyến khích.
⚠️ Lưu Ý Pháp Lý & Đạo Đức
Công cụ này chỉ dành cho thử nghiệm xâm nhập và nghiên cứu được ủy quyền.
Không bao giờ quét các hệ thống mà bạn không sở hữu hoặc không có sự cho phép rõ ràng để thử nghiệm.
📦 Cấu Trúc Kho Lưu Trữ
decoy-hunter/
├── decoy_hunter.py # Công cụ CLI chính
├── probes.py # Logic khảo sát & mã hóa
├── service_probes_parser.py # Phân tích nmap-service-probes
├── nmap-service-probes # (Tải về riêng)
├── README.md # Tài liệu này
└── requirements.txt # tqdm
💡 Cảm Hứng Từ
- portspoof
- Phát hiện Dịch vụ Nmap
- Nghiên cứu đánh lừa phòng thủ bởi MITRE Engenuity, CrowdStrike, và nhiều tổ chức khác
🔍 An ninh thực sự không chỉ là ẩn giấu — mà là sự kiên cường.
Sử dụng
decoy-hunterđể đảm bảo rằng các phòng thủ của bạn được kiểm tra, không chỉ trang trí.
Tác Giả: [KL3FT3Z]
Giấy Phép: MIT
GitHub: github.com/toxy4ny/decoy-hunter