Releases: silfox70/netools
Release list
netools 0.6
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
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
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.