TL;DR

Uncover là CLI tool của ProjectDiscovery cho phép tìm host bị lộ trên internet bằng cách query đồng thời 14 search engine chỉ với 1 lệnh. Output thẳng ra stdout - chain trực tiếp với httpx, nuclei, hay bất kỳ tool nào khác. MIT license, viết bằng Go, 2.9k sao GitHub, v1.2.0 (tháng 11/2025).

Uncover terminal demo - query Shodan, FOFA, Censys cùng lúc và in kết quả ip:port ra stdout

Recon truyền thống có vấn đề gì?

Nếu bạn đã từng làm recon, bạn biết quy trình quen thuộc: mở tab Shodan, copy kết quả, qua Censys làm lại, qua FOFA, rồi merge tay. Mỗi engine có cú pháp riêng, giới hạn riêng, và data cũng khác nhau. Bỏ qua một nguồn là bỏ qua một phần attack surface tiềm năng.

Điều khiến recon multi-source khó tự động hóa không phải kỹ thuật - mà là friction: mỗi engine cần setup riêng, output format riêng, merge kết quả thủ công. Uncover xóa toàn bộ friction đó.

Bên dưới nắp capô

Uncover là Go wrapper gọi API của 14 search engine đồng thời:

  • Classic recon engines: Shodan, Censys, FOFA, Hunter, Quake, ZoomEye
  • Specialized intel: Netlas, CriminalIP, PublicWWW, HunterHow
  • Broader coverage: Google, Onyphe, Driftnet, NerdyData

Kết quả từ tất cả các nguồn được chuẩn hóa về format ip:port hoặc hostname, tag theo nguồn (vd: [shodan], [censys]), và drop thẳng ra stdout. Không UI, không dashboard, không friction. Mỗi dòng output là một host ready để pipe sang tool tiếp theo.

Kiến trúc Go đồng nghĩa với concurrency thực sự - 14 engine chạy song song, không tuần tự. Kết quả đến ngay khi engine nào trả về, không chờ engine chậm nhất.

Chạy thử trong 5 phút

Cài đặt (yêu cầu Go 1.21+):

go install -v github.com/projectdiscovery/uncover/cmd/uncover@latest

Config API keys tại ~/.config/uncover/provider-config.yaml, sau đó:

# Query đơn trên 3 engine
uncover -q "apache" -e shodan,censys,fofa

# Pipe từ stdin, tăng limit lên 200
echo "nginx 1.18" | uncover -e shodan,fofa -l 200

# Chain hoàn chỉnh: discovery - probe - vuln scan
uncover -q "ssl:target.com" | httpx | nuclei -t cves/

# JSON output để xử lý thêm
uncover -q "jira" -e shodan,censys -j | jq '.ip'

Không có API key? Shodan-IDB là engine miễn phí hoàn toàn, hoạt động với IP/CIDR input:

echo "192.168.1.0/24" | uncover  # Shodan-IDB, không cần key

Những thứ đáng chú ý

API key randomization: Thêm nhiều key cho cùng 1 engine vào config - Uncover xoay vòng tự động. Tránh rate limit mà không cần code thêm, đặc biệt hữu ích khi chạy large-scale recon.

Output linh hoạt: Chọn field cần thiết với -f ip, -f port, -f host hoặc kết hợp. JSON output với -j để pipe vào jq. Raw API response với -r khi cần debug kết quả từ engine cụ thể.

Shorthand per-engine flags: Thay vì -e shodan,censys,fofa, dùng shorthand: -s (shodan), -sd (shodan-idb), -cs (censys), -ff (fofa), -ze (zoomeye), -cl (criminalip)...

Awesome search queries: Flag -asq tích hợp preset query cho asset discovery - không cần nhớ cú pháp riêng của từng engine.

Rate limiting: -rl 10 (requests/giây) và -rlm 100 (requests/phút) để tránh bị ban khi query lớn.

So với chạy từng engine một

UncoverQuery từng engine tay
Setup1 lần duy nhấtLặp lại mỗi session
Coverage14 engine song songTuần tự, dễ bỏ sót
Merge kết quảTự động, stdoutThủ công, copy-paste
Pipeline integrationNative stdin/stdoutKhông có
Chi phí toolMiễn phí (MIT)Miễn phí

Ưu thế lớn nhất không phải là tốc độ - mà là coverage. Một target có thể không xuất hiện trên Shodan nhưng có trên FOFA hoặc Netlas. Chạy đủ 14 nguồn đảm bảo bạn không bỏ sót attack surface nào do giới hạn data của từng engine.

Biết giới hạn trước khi dùng

Default chỉ lấy 100 results - nhớ tăng với -l khi cần. Và quan trọng hơn: bản thân Uncover miễn phí, nhưng API keys thì không. Shodan Pro bắt đầu từ $49/tháng, Censys cũng ở mức tương tự. Dùng đủ 14 engine đồng nghĩa với chi phí subscription đáng kể.

Engine duy nhất thực sự free: Shodan-IDB - nhưng chỉ hoạt động với IP/CIDR input, không hỗ trợ text query tùy ý.

Ai nên thêm vào workflow ngay

  • Bug bounty hunters: giai đoạn initial recon, cần attack surface rộng nhất có thể
  • Pentesters: asset discovery nhanh trước khi đi sâu vào exploitation
  • Security researchers: tìm instance của software/version cụ thể đang chạy trên toàn internet
  • Red teamers: identify internet-exposed infra của target trước khi bắt đầu engagement

Nếu bạn đang dùng Shodan CLI, đây là bước upgrade tự nhiên nhất - thêm 13 nguồn data khác trong khi workflow không thay đổi gì cả.

Nguồn: projectdiscovery/uncover, ProjectDiscovery Blog.