Skip to content

Releases: silfox70/netools

netools 0.6

Choose a tag to compare

@silfox70 silfox70 released this 01 Sep 22:03

Identificazione dei servizi e risoluzione dei nomi.

Novità

Identificazione dei servizi (opzione -b o --banner) — ogni porta
aperta viene interrogata per ricavare l'identità di ciò che ascolta.

Prima:

22/tcp  APERTA  172ms  ssh
80/tcp  APERTA  178ms  http

Adesso:

22/tcp  APERTA  172ms  ssh    SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.13
80/tcp  APERTA  178ms  http   Apache/2.4.7 (Ubuntu)

Non è un dettaglio estetico: quelle due righe dicono che dall'altra
parte c'è una Ubuntu 14.04, fuori supporto da anni. Il numero di porta
da solo non lo avrebbe mai detto.

Sono gestiti i tre comportamenti dei protocolli più diffusi. Alcuni si
presentano da soli appena la connessione si apre (SSH, SMTP, FTP,
POP3, IMAP); altri restano in attesa di una richiesta, e ricevono una
HEAD minima da cui si estrae l'intestazione Server; altri ancora
non dicono nulla in chiaro, e per questi si completa l'handshake TLS
ricavando versione del protocollo e nome comune del certificato — che
sugli apparati di gestione identifica il dispositivo meglio di
qualsiasi banner applicativo:

443/tcp  APERTA  2ms  https  TLS1.2 | cudy.net

L'opzione comporta l'invio di dati verso il servizio, e quindi una
traccia più evidente nei log del sistema interrogato: per questo non è
attiva di default.

Risoluzione inversa dei nomi nella scansione di rete. Gli host
attivi vengono risolti in parallelo, con un timeout indipendente da
quello delle sonde perché un indirizzo privo di record PTR fa attendere
il resolver fino alla propria scadenza. Su una rete dove il DNS inverso
è popolato, un elenco di indirizzi diventa un inventario leggibile.

Binari

File Sistema Architettura Note
netools-linux-amd64 Linux x86-64 server e desktop
netools-linux-386 Linux x86 32 bit sistemi datati
netools-linux-arm64 Linux ARM 64 bit Raspberry Pi 4/5, VM ARM
netools-linux-armv7 Linux ARM 32 bit Raspberry Pi 2/3
netools-darwin-arm64 macOS Apple Silicon M1 e successivi
netools-darwin-amd64 macOS Intel
netools-windows-amd64.exe Windows x86-64
netools-windows-arm64.exe Windows ARM 64 bit
netools-freebsd-amd64 FreeBSD x86-64 TrueNAS, pfSense

Binari statici: non richiedono runtime, librerie di sistema o privilegi
di amministratore.

Rispetto alla 0.5 le dimensioni sono raddoppiate, da 2.4 a circa 5 MB:
è il costo dell'implementazione TLS della libreria standard, che porta
con sé suite crittografiche, parser dei certificati e archivio delle
autorità di certificazione.

Uso

chmod +x netools-linux-amd64
./netools-linux-amd64 -b 10.0.0.5 storage
./netools-linux-amd64 scan 10.0.0.0/24

Su macOS un binario scaricato viene messo in quarantena da Gatekeeper:

xattr -d com.apple.quarantine netools-darwin-arm64

netools 0.5

Choose a tag to compare

@silfox70 silfox70 released this 30 Aug 21:41

Aggiunta la scoperta degli host attivi su una rete.

Novità

Sottocomando scan — dato un indirizzo di rete in notazione CIDR, elenca gli host attivi:

netools scan 192.168.1.0/24

Vengono usate due sonde indipendenti, ICMP echo e TCP su porte comuni, perché i due canali possono essere filtrati separatamente: un host con il ping bloccato da policy risponde comunque su una porta, e verrebbe dato per spento da una verifica basata sul solo ICMP. L'output segnala esplicitamente quali host rispondono su un canale soltanto.

Se il socket ICMP non è disponibile viene usata la sola sonda TCP, e la cosa è indicata nell'intestazione anziché passare sotto silenzio. Su macOS e su molte distribuzioni Linux ICMP funziona anche senza privilegi, grazie al socket ICMP non privilegiato.

Ritentativi ICMP (opzione -r, default 2) — ICMP non prevede ritrasmissione, quindi un pacchetto perso significa host dichiarato spento. Gli indirizzi silenziosi vengono ritentati, e gli host che rispondono solo dopo il primo tentativo sono segnalati come tali: è un indizio di collegamento poco affidabile, tipicamente wifi con segnale debole.

Correzione della classificazione degli errori su Windows — i codici Winsock non coincidono con gli errno POSIX. Senza la mappatura corretta una porta chiusa veniva riportata come errore generico, e chi leggeva l'output non aveva modo di accorgersene.

Porte separate da spazi oltre che da virgole. In precedenza gli argomenti in eccesso venivano ignorati senza alcun avviso.

Binari

File Sistema Architettura Note
netools-linux-amd64 Linux x86-64 server e desktop
netools-linux-386 Linux x86 32 bit sistemi datati
netools-linux-arm64 Linux ARM 64 bit Raspberry Pi 4/5, VM ARM
netools-linux-armv7 Linux ARM 32 bit Raspberry Pi 2/3
netools-darwin-arm64 macOS Apple Silicon M1 e successivi
netools-darwin-amd64 macOS Intel  
netools-windows-amd64.exe Windows x86-64  
netools-windows-arm64.exe Windows ARM 64 bit  
netools-freebsd-amd64 FreeBSD x86-64 TrueNAS, pfSense

Binari statici: non richiedono runtime, librerie di sistema o privilegi di amministratore.

Uso

Su Linux, macOS e FreeBSD il file va reso eseguibile:

chmod +x netools-linux-amd64
./netools-linux-amd64 10.0.0.5 storage
./netools-linux-amd64 scan 10.0.0.0/24

Su macOS un binario scaricato viene messo in quarantena da Gatekeeper e va sbloccato:

xattr -d com.apple.quarantine netools-darwin-arm64

Note sulla scansione di rete

La prima scansione di una rete è sempre la più lenta: la cache ARP è vuota e ogni indirizzo richiede una risoluzione preliminare. Su una /24 la differenza fra la prima e la seconda esecuzione può essere di un fattore cinque.

Valori alti di -c saturano gli apparati di rete e producono falsi negativi. Se i risultati variano fra esecuzioni successive il valore è troppo alto: su una rete domestica -c 10 è già sufficiente.

La scoperta di host è a tutti gli effetti un'attività di ricognizione: su infrastrutture non proprie va concordata in anticipo.

netools 0.3

Choose a tag to compare

@silfox70 silfox70 released this 28 Aug 17:12

Chi non ha Go installato scarica direttamente quello per il suo sistema invece di dover compilare.

MAC: Gatekeeper blocca gli eseguibili scaricati da internet che non sono firmati e notarizzati da Apple. Chi lo scarica vede "impossibile aprire perché lo sviluppatore non può essere verificato".
Si aggira con xattr -d com.apple.quarantine netools-darwin-arm64

Prima versione pubblica.

Verifica lo stato delle porte TCP di un host distinguendo una porta chiusa
(RST ricevuto) da una filtrata da un firewall (nessuna risposta).

Binari

File Sistema Architettura Note
netools-linux-amd64 Linux x86-64 server e desktop più recenti
netools-linux-386 Linux x86 32 bit sistemi datati
netools-linux-arm64 Linux ARM 64 bit Raspberry Pi 3/4/5, VM ARM
netools-darwin-arm64 macOS Apple Silicon M1 e successivi
netools-windows-amd64.exe Windows x86-64

Tutti i binari sono statici e non richiedono runtime o librerie installate.
Non servono privilegi di amministratore.

Come si usa

Il file va reso eseguibile su Linux e macOS:

chmod +x netools-linux-amd64
./netools-linux-amd64 10.0.0.5 storage

Su macOS il binario scaricato viene messo in quarantena da Gatekeeper e va sbloccato:

xattr -d com.apple.quarantine netools-darwin-arm64

Novità di questa versione

  • Classificazione corretta degli errori di rete anche su Windows: i codici Winsock
    non coincidono con gli errno POSIX, e senza la mappatura una porta chiusa veniva
    segnalata come errore.
  • Le porte possono essere separate da spazi oltre che da virgole; in precedenza
    gli argomenti in eccesso venivano ignorati senza alcun avviso.

Per la documentazione completa si veda il README.