tags: dns Bruteforce_Subdomain DNS_Bruteforce
for sub in $(cat /opt/wordlists/SecList/Discovery/DNS/subdomains-top1million-110000.txt);do dig $sub.inlanefreight.htb @10.129.66.77 | grep -v ';\|SOA' | sed -r '/^\s*$/d' | grep $sub | tee -a subdomains.txt;done
ns.inlanefreight.htb. 604800 IN A 127.0.0.1
mail1.inlanefreight.htb. 604800 IN A 10.129.18.201
app.inlanefreight.htb. 604800 IN A 10.129.18.15
| grep -v ';\|SOA'
Questo comando serve a escludere (invert match, opzione -v) le righe indesiderate.
-
;: L’output didigutilizza il punto e virgola per i commenti e i metadati (come;; QUESTION SECTION:,;; SERVER:, ecc.). Rimuovendo le righe che contengono;, elimini tutta l’intestazione e le statistiche finali. -
SOA: Il record Start of Authority appare spesso anche nelle risposte negative (quando un sottodominio non esiste) o nella sezione “Authority”. Rimuovendo le righe con “SOA”, si evita di salvare risultati falsi positivi o ridondanti, concentrandosi solo sulle risposte valide (come i recordAoCNAME). -
\|: È l’operatore logico “OR”. Dice a grep di rimuovere la riga se trova un punto e virgola OPPURE la stringa “SOA”.
2. | sed -r '/^\s*$/d'
Questo comando utilizza sed (Stream Editor) per rimuovere le righe vuote rimaste dopo la prima pulizia.
-
-r: Abilita le espressioni regolari estese. -
/^\s*$/: È l’espressione regolare (regex) che identifica le righe vuote.-
^: Inizio della riga. -
\s*: Qualsiasi numero di spazi bianchi (spazi o tabulazioni). -
$: Fine della riga.
-
-
d: Sta per “delete”. Cancella le righe che corrispondono alla regex.
3. | grep $sub
Questo è un filtro di conferma.
-
Mantiene solo le righe che contengono effettivamente il nome del sottodominio che stai cercando in quel momento nel ciclo (
$sub). -
Serve a garantire che l’output salvato sia pertinente al sottodominio testato, scartando eventuali altre righe di “rumore” che potrebbero essere sopravvissute ai filtri precedenti.
4. | tee -a subdomains.txt
Questo comando gestisce l’output finale.
-
tee: Legge dallo standard input e scrive l’output in due direzioni contemporaneamente: lo mostra a schermo (standard output) e lo scrive in un file. -
-a: Sta per “append”. Invece di sovrascrivere il filesubdomains.txtogni volta (che cancellerebbe i risultati precedenti), aggiunge il nuovo risultato alla fine del file esistente.
5. ;done
- Segna semplicemente la fine del blocco di istruzioni (
do ... done) del cicloforin Bash.