Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
domainim — Uno strumento veloce e completo per la scansione delle reti organizzative | Kitploit
Strumenti/GitHubGitHub/pptx704/domainim
OSINT (Open Source Intelligence)RicognizioneMappatura della ReteScansione PorteEnumerazione DNS e SottodominiRaccolta InformazioniPenetration TestingAnalisi DNS
GitHubpptx704/domainim

domainim

Uno strumento veloce e completo per la scansione delle reti organizzative

Vedi Repository
1381332 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

DOMAINIM

Funzionalità • Utilizzo • Installazione • Utilizzo • Contribuire • Note Aggiuntive

Domainim è un veloce strumento di ricognizione dei domini per la scansione delle reti aziendali. Lo strumento mira a fornire una breve panoramica della struttura di un'organizzazione utilizzando tecniche come OSINT, brute force, risoluzione DNS, ecc.

Funzionalità

Funzionalità attuali (v1.0.1)-

  • Enumerazione dei sottodomini (2 motori + brute force)
  • Output intuitivo
  • Risoluzione dei record A (IPv4)

  • Enumerazione dei nomi host virtuali

  • Reverse DNS lookup

  • Rilevamento dei sottodomini wildcard (per il brute force)

  • Scansione di base delle porte TCP

  • I sottodomini sono accettati come input

  • Esportazione dei risultati in file JSON

Alcune funzionalità sono in fase di sviluppo. Vedi Funzionalità pianificate per maggiori dettagli.

Il progetto è ispirato da Sublist3r. Il modulo di scansione delle porte è fortemente basato su NimScan.

Installazione

Puoi compilare questo repository dal sorgente-

  • Clona il repository
root@kitploit:~
git clone [email protected]:pptx704/domainim
  • Compila il binario
root@kitploit:~
nimble build
  • Esegui il binario
root@kitploit:~
./domainim <dominio> [--ports=<porte>]

Oppure puoi semplicemente scaricare il binario dalla pagina delle release. Tieni presente che il binario è testato solo su sistemi basati su Debian.

Utilizzo

root@kitploit:~
./domainim <dominio> [--ports=<porte> | -p:<porte>] [--wordlist=<file> | l:<file> [--rps=<int> | -r:<int>]] [--dns=<dns> | -d:<dns>] [--out=<file> | -o:<file>]
  • <dominio> è il dominio da enumerare. Può anche essere un sottodominio.
  • --ports | -p è una specifica stringa delle porte da scansionare. Può essere uno dei seguenti:
    • all - Scansiona tutte le porte (1-65535)
    • none - Salta la scansione delle porte (predefinito)
    • t<n> - Scansiona le prime n porte (come nmap). Es. t100 scansiona le prime 100 porte. Il valore massimo è 5000. Se n è maggiore di 5000, verrà impostato a 5000.
    • singolo valore - Scansiona una singola porta. Es. 80 scansiona la porta 80
    • intervallo - Scansiona un intervallo di porte. Es. 80-100 scansiona le porte da 80 a 100
    • valori separati da virgola - Scansiona più porte. Es. 80,443,8080 scansiona le porte 80, 443 e 8080
    • combinazione - Scansiona una combinazione dei precedenti. Es. 80,443,8080-8090,t500 scansiona le porte 80, 443, da 8080 a 8090 e le prime 500 porte

Esempi

  • ./domainim nmap.org --ports=all
  • ./domainim google.com --ports=none --dns=8.8.8.8#53
  • ./domainim pptx704.com --ports=t100 --wordlist=wordlist.txt --rps=1500
  • ./domainim pptx704.com --ports=t100 --wordlist=wordlist.txt --outfile=results.json
  • ./domainim mysite.com --ports=t50,5432,7000-9000 --dns=1.1.1.1

Il menu di aiuto può essere accessibile con ./domainim --help o ./domainim -h.

root@kitploit:~
Usage:
    domainim <dominio> [--ports=<porte> | -p:<porte>] [--wordlist=<file> | l:<file> [--rps=<int> | -r:<int>]] [--dns=<dns> | -d:<dns>] [--out=<file> | -o:<file>]
    domainim (-h | --help)

Options:
    -h, --help              Mostra questa schermata.
    -p, --ports             Porte da scansionare. [default: `none`]
                            Può essere `all`, `none`, `t<n>`, singolo valore, intervallo, combinazione
    -l, --wordlist          Wordlist per il brute force dei sottodomini. Il brute force viene saltato per file non validi.
    -d, --dns               IP e Porta per il risolutore DNS. Deve essere un IPv4 valido con porta opzionale [default: default di sistema]
    -r, --rps               Query DNS al secondo [default: 1024 req/s]
    -o, --out               File JSON in cui verrà salvato l'output. Il nome del file deve terminare con `.json`

Examples:
    domainim domainim.com -p:t500 -l:wordlist.txt --dns:1.1.1.1#53 --out=results.json
    domainim sub.domainim.com --ports=all --dns:8.8.8.8 -t:1500 -o:results.json

Lo schema JSON per i risultati è il seguente-

root@kitploit:~
[
  {
    "subdomain": string,
    "data": [
      "ipv4": string,
      "vhosts": [string],
      "reverse_dns": string,
      "ports": [int]
    ]
  }
]

Un esempio JSON per nmap.org può essere trovato qui.

Contribuire

I contributi sono benvenuti. Sentiti libero di aprire una pull request o un issue.

Funzionalità Pianificate

  • Scansione porte TCP
  • Supporto scansione porte UDP
  • Risoluzione record AAAA (IPv6)
  • Server DNS personalizzato
  • Aggiunto brute force dei sottodomini usando una wordlist
  • Forzare brute force (anche se trovato sottodominio wildcard)
  • Aggiungere più motori per l'enumerazione dei sottodomini
  • Output su file (JSON)
  • Enumerazione di più domini
  • Dir e File busting

Altri

  • Aggiornato output verboso durante errori (v0.2.0)
  • Mostra barra di avanzamento per operazioni lunghe
  • Aggiungere barra di avanzamento per scansione porte singola
  • Aggiungere test
  • Aggiungere commenti e docstring

Note Aggiuntive

Questo progetto è ancora nelle fasi iniziali. Ci sono diverse limitazioni di cui sono a conoscenza.

I due motori che sto utilizzando (li chiamo motori perché Sublist3r fa lo stesso) hanno attualmente una sorta di limite di risposta. dnsdumpster può recuperare fino a 100 sottodomini. crt.sh randomizza anche i risultati in caso di troppi risultati. Un altro problema con crt.sh è che a volte restituisce un errore SQL. Quindi per alcuni domini, i risultati possono variare tra esecuzioni diverse. Ho intenzione di aggiungere più motori in futuro (almeno un motore di brute force).

Lo scanner di porte ha solo un timeout di tempo di risposta ping + 750ms. Questo potrebbe portare a falsi negativi. Poiché domainim non è progettato per la scansione delle porte ma per fornire una rapida panoramica, tali casi sono accettabili. Tuttavia, ho intenzione di aggiungere un flag per aumentare il timeout. Per lo stesso motivo, le porte filtrate non vengono mostrate. Per scansioni di porte più complete, consiglio di usare Nmap. Domainim inoltre non bypassa la limitazione della velocità (se presente).

Potrebbe sembrare che il modo in cui vengono stampati i vhost causi ripetizione.

Stampare come segue potrebbe essere stato meglio-

root@kitploit:~
ack.nmap.org, issues.nmap.org, nmap.org, research.nmap.org, scannme.nmap.org, svn.nmap.org, www.nmap.org
  ↳ 45.33.49.119
    ↳ Reverse DNS: ack.nmap.org. 

Ma in precedenza durante i test, ho trovato casi in cui non tutti gli IP sono condivisi dallo stesso insieme di vhost. Ecco perché ho deciso di mantenere questo formato.

Il server DNS potrebbe avere una qualche limitazione di velocità. Ecco perché ho aggiunto ritardi casuali (tra 0-300ms) per la risoluzione IPv4 per ogni query. Questo per non far arrivare tutte le query al server DNS in una volta sola, ma in modo più naturale. Per il metodo di brute force, il valore è tra 0-1000ms per impostazione predefinita, ma può essere modificato con il flag --rps | -t.

Una limitazione particolare che mi infastidisce è che il risolutore DNS non restituisce tutti gli IP per un dominio. Quindi è necessario fare più query per ottenere tutti (o la maggior parte) degli IP. Ma d'altra parte, non è possibile sapere quanti IP ci siano per un dominio. Devo ancora trovare una soluzione per questo. Inoltre, nim-ndns non supporta i record CNAME. Quindi, se un dominio ha un record CNAME, non verrà risolto. Sto aspettando una risposta dall'autore per questo.

Per ora, il brute force viene saltato se viene trovato un possibile sottodominio wildcard. Questo perché, se un dominio ha un sottodominio wildcard, il brute force risolverà IPv4 per tutti i possibili sottodomini. Tuttavia, questo salterà anche i sottodomini validi (es. scanme.nmap.org verrà saltato anche se non è un valore wildcard). Aggiungerò in seguito un flag --force-brute | -fb per forzare il brute force.

Lo stesso vale per l'enumerazione dei VHost per input di sottodomini. Poiché vengono restituiti URL che terminano con i sottodomini forniti, i sottodomini di domini simili non vengono considerati. Ad esempio, scannme.nmap.org non verrà stampato per ack.nmap.org, ma something.ack.nmap.org potrebbe esserlo. Potrei cercare tutti i sottodomini di nmap.org, ma ciò vanifica lo scopo di avere un sottodominio come input.

Licenza

Licenza MIT. Vedi LICENSE per il testo completo.

Scarica lo strumento
  • --dns | -d è l'indirizzo del server DNS. Deve essere un indirizzo IPv4 valido e può opzionalmente contenere il numero di porta-
    • a.b.c.d - Usa il server DNS a a.b.c.d sulla porta 53
    • a.b.c.d#n - Usa il server DNS a a.b.c.d sulla porta e
  • --wordlist | -l - Percorso del file wordlist. Questo viene utilizzato per il brute force dei sottodomini. Se il file non è valido, il brute force verrà saltato. Puoi ottenere una wordlist da SecLists. Una wordlist è anche fornita nella pagina delle release.
  • --rps | -r - Numero di richieste al secondo durante il brute force. Il valore predefinito è 1024 req/s. Da notare che le query DNS vengono effettuate in batch e il batch successivo viene eseguito solo dopo il completamento del precedente. Poiché le query possono essere limitate, aumentare il valore non garantisce sempre risultati più veloci.
  • --out | -o - Percorso del file di output. L'output verrà salvato in formato JSON. Il nome del file deve terminare con .json.