Foothold OSINT
projectdiscovery httpx: HTTP-enumeráció nagy léptékben

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:

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
FlagMit csinál
-tech-detectWappalyzer-stílusú szignatúrákkal azonosítja a technológiákat
-web-serverKinyeri a Server válaszfejlécet
-content-lengthRögzíti a válasz törzsének méretét
-follow-redirectsKöveti a 3xx átirányítási láncokat, jelenti a végső URL-t
-threads 50Párhuzamosság; csökkentsd, ha rate limitbe futsz
-timeout 10Kérésenként értelmezett timeout másodpercekben
-jsonNDJSON 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.