projectdiscovery httpx: HTTP-enumeráció nagy léptékben
Fordítói ügynök vagyok — angol Markdown szöveget alakítok át természetes, folyékony magyar nyelvre az OSINT kézikönyvhöz. Jelenleg nem kaptam lefordítandó Markdown tartalmat. Kérlek, küldd el a forrásszöveget (Markdown formátumban), és azonnal nekilátok a fordításnak.
OSINT-eszközök mélyreható bemutatása
Kinek: Biztonsági szakemberek
Van néhány ezer subdomained egy passive recon sweep-ből. Most ki kell derítened, melyek aktívak, mit szolgálnak ki, és milyen metadatát tudsz kinyerni, mielőtt az egyes endpointokhoz nyúlnál. Pontosan ezt a problémát oldja meg projectdiscovery/httpx — és jobban csinálja, mint a curl, httprobe és egy egyedi parser összetákolása.
Mit csinál valójában az httpx
Az httpx a ProjectDiscovery csapat által karbantartott nyílt forráskódú HTTP toolkit (github.com/projectdiscovery/httpx). Hoszt neveket vagy URL-eket fogad el stdin-en vagy fájlból, HTTP/HTTPS kéréseket küld a retryablehttp könyvtár segítségével, és hosztonként strukturált kimenetet ad vissza. A retryablehttp réteg a gyakorlatban sokat nyom a latban: az automatikus újrapróbálkozás konfigurálható backoff-fal csökkenti a hamis negatívokat, ha egyenetlen késleltetésű vagy enyhe rate limitet alkalmazó hálózatokon szkennelsz.
Egyetlen statikusan linkelt Go bináris, platformfüggetlen, egy sorban telepíthető. Ez az üzemeltetési alap.
Vizsgálati kategóriák a hivatalos dokumentációból:
- HTTP státuszkódok, válaszhossz, tartalomtípus
- HTML-cím kinyerése
- Webszerver- és technológia-ujjlenyomat-vételezés válasz fejléceken keresztül
- TLS tanúsítvány metaadatok (subject, SAN-ok, lejárat)
- Átirányítási lánc követése vagy elnyomása
- CDN- és WAF-detektálás
- Képernyőkép készítése headless Chromium segítségével
- Egyéni fejléc injektálás és tetszőleges HTTP-metódus támogatás
- JSON és CSV kimenet pipeline-os feldolgozáshoz
Ez a sokoldalúság egyetlen binárisban az, ami az httpx-et elkülöníti azoktól a szűkebb eszközöktől, amelyek csupán arra tudnak válaszolni: él-e a host, vagy sem.
A httpx helye a pipeline-ban
A külső felderítésnek legalább három fázisa van: az eszközazonosítás, a szolgáltatásazonosítás és a sebezhetőség-kutatás. A httpx a középső fázist uralja — ez a híd a nyers hostnevek és a hasznosítható endpoint-adatok között.
[Passive recon] [Service ID] [Vuln research]
amass / subfinder --> httpx --> nuclei / manual
dnsx / shuffledns (this tool) burp / ffuf
A ProjectDiscovery az eszközeit stdin/stdout-on keresztüli láncolásra tervezi, és a httpx a kanonikus középső réteg. Adj be neki subfinder vagy dnsx kimenetet; az NDJSON kimenete közvetlenül nuclei-ba kerül sablonszkenneléshez, vagy katana-be crawling-hoz. A ProjectDiscovery-stacken kívül bármi működik, ami newline-elválasztott JSON-t fogad: egyedi Python-szkriptek, Elasticsearch-betöltési pipeline-ok, táblázatos triázs.
httpx vs. az alternatívák
httprobe
httprobe (tomnomnom) azt ellenőrzi, hogy egy host HTTP-t vagy HTTPS-t szolgál-e ki. Ennyi. Gyors és minimális. Ha az egyetlen szükséges kimenet egy él/halott minősítés, és a lehető legkisebb függőséget akarod, httprobe indokolt választás. Amint státuszkódokra, oldalcímekre, TLS-adatokra vagy technológiacímkékre is szükséged van, a httpx minden kiegészítő eszköz nélkül felváltja.
curl / wget
curl egycélpontos vizsgálatnál és precíz kérések összeállításánál pótolhatatlan. Nem párhuzamosít nagy hostlistákon, nem állít elő strukturált, többmezős kimenetet, és nincs tömeges szkennelési újrapróbálkozási logikája. Ezek különböző kontextusra szánt eszközök — httpx tömeges enumerációhoz, curl manuális utánkövetéshez.
EyeWitness
Az EyeWitness képernyőképeket készít, és HTML-jelentést generál vizuális osztályozáshoz. A httpx is képes képernyőképre, de elsődleges értéke a strukturált, programozható kimenet. Nagy hatókörű munkánál, ahol a vizuális áttekintés az osztályozás része, mindkét eszköz futtatása és URL alapján való korrelálása ésszerű megközelítés — nem ugyanazért a szerepért versenyeznek.
Aquatone
Ugyanabba a kategóriába esik, mint az EyeWitness. A httpx a metaadat-kinyerést végzi; az Aquatone a vizuális réteget kezeli, ha arra is igény van. Bevált minta: a httpx-szel először szűrd le az élő készletet, majd a rövidebb listát add át az Aquatone-nak.
Shodan / Censys
A Shodan vagy Censys passzív szkennelési adatai egy korábbi pillanatfelvételt tükröznek, és előfordulhat, hogy nem egyeznek a célpont aktuális konfigurációjával. A httpx valós idejű, első kézből származó eredményeket ad a pontos hatókörödre. Shodan-t/Censys-t szélességért és történeti kontextusért, httpx-et az aktuális valóság megállapítására érdemes használni. Különböző kérdésekre adnak választ.
Egy Reprodukálható Recon Recept
Az alábbiak Debian/Ubuntu rendszert feltételeznek Go 1.21+ verzióval. macOS vagy Windows esetén módosítsd ennek megfelelően. Minden flag a hivatalos httpx README-ban dokumentált viselkedést tükrözi.
1. lépés — Telepítés
go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest
httpx -version
Vagy a ProjectDiscovery eszközkezelőn keresztül:
pdtm -install httpx
2. lépés — Hoszlista előkészítése
subfinder -d example.com -silent -o hosts.txt
Vagy manuális hosts.txt teszteléshez:
example.com
blog.example.com
dev.example.com
staging.example.com
3. lépés — Alap elérhetőség-ellenőrzés
httpx -l hosts.txt -silent -status-code -title -o results.txt
HTTP (80) és HTTPS (443) portokat ellenőriz hosztonként, kiírja a státuszkódokat és a HTML-címeket, az eredményt results.txt fájlba menti. A -silent elnyomja a bannerszöveget.
4. lépés — Bővített ujjlenyomat-gyűjtés
httpx -l hosts.txt \
-status-code \
-title \
-tech-detect \
-web-server \
-content-length \
-follow-redirects \
-threads 50 \
-timeout 10 \
-json \
-o enriched.jsonl
| Flag | Mit csinál |
|---|---|
-tech-detect | Wappalyzer-stílusú szignatúrákkal azonosítja a technológiákat |
-web-server | Kinyeri a Server válaszfejlécet |
-content-length | Rögzíti a válasz törzsének méretét |
-follow-redirects | Követi a 3xx átirányítási láncokat, jelenti a végső URL-t |
-threads 50 | Párhuzamosság; csökkentsd, ha rate limitbe futsz |
-timeout 10 | Kérésenként értelmezett timeout másodpercekben |
-json | NDJSON kimenet, soronként egy objektum |
5. lépés — TLS tanúsítvány-kinyerés
httpx -l hosts.txt \
-tls-probe \
-tls-grab \
-json \
-o tls_data.jsonl
A -tls-grab kinyeri a teljes tanúsítványláncot: subject, kiállító, SAN-ok, érvényességi időszak. A SAN-ok keresztbe-ellenőrzése a célpontlistán olyan, hatókörön belüli hoszokat hozhat felszínre, amelyeket a passive DNS elmulasztott — ez a lépés többet fog, mint amennyit az ember várna.
6. lépés — Szűrés és továbbítás
# Hosts returning 200, with titles
cat enriched.jsonl | jq -r 'select(.status_code == 200) | "\(.url) | \(.title)"'
# Hosts running nginx
cat enriched.jsonl | jq -r 'select(.webserver | test("nginx"; "i")) | .url'
# Pipe live URLs directly into nuclei
cat enriched.jsonl | jq -r 'select(.status_code == 200) | .url' | nuclei -t cves/ -o nuclei_findings.txt
A nyers hoszlistától a nuclei-kész bemenetig, néhány száz hoszt esetén normál kapcsolaton: tíz percen belül.
Termelési megjegyzések
Sebességkorlátozás. Az httpx alapértelmezett beállításai agresszívak. Ha a megbízás meghatározott sebességkorlátokat tartalmaz, csökkentsd a -threads értékét, és add hozzá a -rate-limit paramétert (kérés per másodperc). A termelési infrastruktúra ellen folytatott ellenőrizetlen szkennelés riasztásokat vált ki, és felboríthatja a hatóköri megállapodásokat.
NDJSON vs. JSON tömb. A -json NDJSON-t állít elő — soronként egy objektumot, nem JSON tömböt. Ha a downstream eszköz tömböt vár: jq -s '.' enriched.jsonl > enriched_array.json.
Képernyőképek. A -screenshot Chromium-kompatibilis böngészőt igényel a hoston. Headless szervereken ellenőrizd, hogy a Chromium telepítve van-e és megtalálható-e. Ha nincs, a kapcsoló nem produkál semmit és nem jelez hibaüzenetet — ez az egyébként megbízható eszköz kevés gyenge pontjainak egyike.
PDCP-integráció. A ProjectDiscovery felhőplatformja képes fogadni az httpx kimenetét közös triage és eszközleltár céljából. Csapatos red team vagy folyamatos monitoring esetén érdemes megfontolni a flat fájlok gépek közötti kezelésének alternatívájaként.
Az őszinte kompromisszumok
Az httpx a megfelelő eszköz tömeges HTTP-enumerációhoz egy strukturált recon pipeline-ban. Strukturált kimenete, újrapróbálkozási logikája és a ProjectDiscovery stack többi eleméhez — különösen a nuclei-hez — való natív átadási képessége gyorsabban bevethető, mint egycélú eszközök bármilyen egyenértékű kombinációja.
Ahol nem segít: mélységi manuális kéréskészítés (használj curl-t), historikus internetes kitettség (használj Shodan-t vagy Censys-t), illetve ember által olvasható vizuális jelentések mint elsődleges eredmény (használj EyeWitness-t). E határok ismerete rendben tartja a munkafolyamatot.
Ha már csak liveness-ellenőrzésekre használod az httpx-et, a bővített probe (4. lépés) és a TLS-kinyerés (5. lépés) gyorsan hozzáadható lépések, amelyek — különösen a SAN-keresztreferenciákon keresztül — jelet hoznak felszínre anélkül, hogy új függőségeket kellene bevonni.