Originale: Esempi utili di netcat su Linux
Autore: Dan Nanni
Data di pubblicazione: 27 gennaio 2014
Traduzione: A.Panin
Data del trasferimento: 7 settembre 2016
Comunemente definita il "coltellino svizzero" delle reti TCP/IP, l'utilità è uno strumento estremamente flessibile che consente di fare praticamente qualsiasi cosa. azioni possibili con socket TCP/UDP su Linux. È uno degli strumenti più popolari per diagnosticare e sperimentare le reti tra gli amministratori di sistema.
Tieni presente che quando usi nc per accettare connessioni su porte conosciute servizi di rete(0-1023) avrai bisogno dei privilegi di root. In tutti gli altri casi sono sufficienti i normali diritti dell'utente per il corretto funzionamento di nc.
Il comando seguente consiste nell'inviare un pacchetto UDP di prova con un ritardo di 1 secondo alla porta 5000 dell'host remoto con l'indirizzo fornito.
$ echo -n "pippo" | nc -u -w1 192.168.1.8 5000
Il comando seguente serve per scansionare le porte dagli intervalli ed elencare le porte aperte.
$ nc -vnz -w 1 192.168.233.208 1-1000 2000-3000
$nc -lp 5000 > mio.jpg
$nc hostB.com 5000< my.jpg
Su un host denominato hostB.com (host):
$nc -l 5000 | tarxvf-
Su un host denominato hostA.com (lato trasmittente):
$ tar cvf - /percorso/della/dir | nc hostB.com 5000
Il comando precedente consente di elencare le porte aperte, accettando UDP su un server remoto.
Il comando seguente consente di ricevere messaggi (stringhe di testo) su una determinata porta UDP.
$ nc -u host locale 5000
Tienilo presente dato comando completerà il suo lavoro immediatamente dopo aver ricevuto il primo messaggio. Se vuoi ricevere una serie di messaggi dovrai utilizzare ciclo while nel seguente modo:
$ mentre è vero; do nc -u localhost 5000; Fatto
Su un server remoto:
$nc -lp 5000 | sudo dd of=/backup/sdb.img.gz
Sul nodo locale dove HDD:
$ dd if=/dev/sdb | gzip -c | nc remote_server.com 5000
Sull'host locale:
$nc -lp 5000 | gunzip -c | sudo dd of=/dev/sdb
Sul server remoto in cui è archiviato il file immagine di duro disco (ad esempio, /backup/sdb.img.gz):
$ cat /backup/sdb.img.gz | nc my_local_host.com 5000
Eseguire il comando seguente per avviare un server Web che servirà una pagina Web denominata test.html ai client che si connettono sulla porta 8000.
$ mentre è vero; fare nc -lp 8000< test.html; done
Verifica ora la disponibilità della pagina web navigando con il tuo browser web su: http://
$ mentre è vero; fai sudo nc -lp 80< test.html; done
Sul primo nodo (192.168.233.203):
$nc -lp 5000
Sul secondo nodo:
$nc 192.168.233.203 5000
Dopo aver eseguito i due comandi precedenti, tutti i caratteri digitati nella finestra del terminale su uno dei nodi appariranno nella finestra del terminale dell'altro nodo.
Sull'host remoto (192.168.233.208):
$ nc -lp 5000 -e /bin/bash
Sull'host locale:
$nc 192.168.233.208 5000
Dopo aver eseguito il comando precedente sull'host locale, sarai in grado di eseguire qualsiasi comando sull'host remoto attraverso la finestra del terminale dell'host locale. I comandi verranno eseguiti sull'host remoto e l'output di questi comandi verrà visualizzato nella finestra del terminale dell'host locale. Questo approccio può essere utilizzato per creare una backdoor su un host remoto.
I comandi precedenti creano una pipe denominata proxypipe e utilizzano l'utilità nc per reindirizzare tutte le connessioni TCP sulla porta 5000 dell'host locale a http://www.google.com tramite una pipe bidirezionale. Dopo aver eseguito questi comandi, sarai in grado di accedere pagina iniziale motore di ricerca Sistemi Google entrando in barra degli indirizzi indirizzo del browser web http://127.0.0.1:5000.
I comandi precedenti consentono di utilizzare l'utilità nc per creare un server proxy che supporti Protocollo SSL, che consente di stabilire connessioni al sito web google.com.
Sul server di streaming video (192.168.233.208):
$ gatto video.avi | nc -l 5000
Sul sistema client:
$nc 192.168.233.208 5000 | mplayer -vo x11 -cache 3000 -
I seguenti comandi consentono all'utilità nc di utilizzare un indirizzo IPv6 quando accetta connessioni su una porta TCP. Ciò potrebbe essere necessario nel processo di verifica della correttezza delle impostazioni di indirizzamento IPv6 nella rete.
$ nc -6 -l 5000 $ sudo netstat -nap | grep 5000 tcp6 0 0:::5000:::* ASCOLTA 4099/nc
Ciao caro lettore X!
Penso che questo disegno possa essere definito un mini-test "Sei un hacker?". Prova a dirlo
significa questo gattino buffo. Ebbene, se sorgono ancora difficoltà, sappi che di fronte a te c'è la cosa più amata da tutte le persone avanzate, in un modo o nell'altro
legato alla Rete e il suo nome è Netcat.
Netcat è un'utilità che ti consente di leggere e trasmettere dati in rete
connessioni. In altre parole, Netcat ti permette di connetterti a qualsiasi cosa e di fare qualsiasi cosa. Netcat è assolutamente autosufficiente, con un uso corretto può sostituirne qualsiasi strumento software, incluso anche a te noto
Apache. Quindi, proprio versione semplice Netcat ti consente di creare TCP e Connessioni UDP da qualsiasi a qualsiasi porta, può "ascoltare" le connessioni in entrata (e puoi dire al "gattino" di attendere le connessioni solo dagli indirizzi e anche dalle porte specificate!), può scansionare le porte, risolvere query DNS, inviare qualsiasi comando da input standard, eseguire in anticipo azioni predefinite, in risposta alla connessione che il "gattino" sta ascoltando, eseguire un Hex-dump dei dati inviati e ricevuti, e molto, molto altro ancora...
Tuttavia, penso che si sarebbe dovuto dire fin dall'inizio che Netcat può fare tutto; e le possibilità del suo utilizzo sono limitate solo dal livello della tua conoscenza e della tua immaginazione. Inizialmente, Netcat è stato concepito come un'utilità Unix, ma come capisci, non potevano esserci appassionati che non avrebbero portato il "gattino" su Windows. Puoi trovare facilmente entrambe le versioni nei motori di ricerca per "Netcat". Ma i vantaggi, ovviamente, vanno agli Unix-oids, che, durante la compilazione, possono modificare leggermente il "gattino" e quindi attivare le "funzionalità aggiuntive" che sono disabilitate per impostazione predefinita.
Se hai mai utilizzato "attacchi software", o semplicemente exploit, probabilmente avrai notato che più della metà di loro utilizza Netcat in un modo o nell'altro. Ciò è dovuto principalmente al fatto che Netcat non modifica mai i dati in entrata (così come i dati in uscita), a differenza, ad esempio, di un client Telnet, che prima interpreta i dati in entrata e solo dopo te li fornisce. Ecco perché Netcat è diventato un potente strumento per trovare e sfruttare le vulnerabilità, grazie al quale Bugtraq è stato riempito con centinaia di nuovi messaggi.
Ma, se la ricerca delle vulnerabilità non è di tuo gradimento, puoi provare a utilizzare Netcat come browser web o, ad esempio, come client di posta elettronica; soprattutto da quando in Internet Explorer-e e Outlook ha trovato buchi "freschi", il buon vecchio Unicode, eh... Inoltre, i nostri ragazzi russi eccellevano in questo campo (!L'orgoglio nazionale sta giocando!). Se stai leggendo questo articolo utilizzando Explorer, vai a vedere come funziona il tuo "Asino"
pieno di buchi .
Successivamente passerai a Netcat: non molto conveniente, ma
sicuro... Ed infine, esempi di utilizzo “avanzato” di Netcat
(Unix):
Fai attenzione, tutto viene fatto sotto forma di script di shell, quindi puoi modificare qualsiasi cosa se necessario.
Per Sim voglio dirti addio. Leggi i manuali e buona fortuna con l'apprendimento dell'iconica utility Netcat!
P.S./Private/: Il sito http://georgy.h1.ru/ è stato chiuso da me. Una volta per tutte. Grazie a tutti coloro che sono stati miei ospiti.
Questo è il secondo post di una serie di articoli sulle utilità Unix che dovresti conoscere. In questo articolo vi presento l'utility netcat o semplicemente nc.
L'utilità Netcat viene spesso definita una sorta di "coltellino svizzero". buon senso questa parola. La funzionalità di netcat è utile quanto la versatilità e la praticità di un collaudato coltellino svizzero tascabile. Alcune delle sue funzionalità includono la scansione delle porte, il trasferimento di file, l'ascolto delle porte e può essere utilizzato come backdoor.
Nel 2006, netcat si è classificata al 4° posto nella classifica 100 Utilities sicurezza della rete", quindi è sicuramente lo strumento da conoscere.
Se ricordi, ho detto che netcat è il coltellino svizzero. Cosa sarebbe questo coltello se non potesse essere usato come un coltello normale? Questo è il motivo per cui netcat può essere utilizzato al posto del normale telnet:
$nc www.google.com 80
In realtà è più conveniente del normale telnet perché puoi terminare la connessione in qualsiasi momento premendo Ctrl+C e gestisce i dati binari come al solito (nessuna sequenza di escape, niente).
È possibile aggiungere l'opzione "-v" per visualizzare i risultati delle azioni in modo più dettagliato e l'opzione (-vv) per ottenere statistiche su quanti byte sono stati trasferiti durante la sessione di connessione corrente.
Netcat può essere utilizzato come server. Se lo esegui come di seguito, ascolterà sulla porta 12345 (su tutte le interfacce):
$nc -l -p 12345
Ora se ti connetti alla porta 12345 di questo host, qualunque cosa digiti verrà inviata al lato remoto, il che ci dice che netcat può essere utilizzato come server di chat. Esegui su uno dei computer:
# Sul computer A con IP 10.10.10.10 $ nc -l -p 12345
E connettiti ad esso da un altro:
# Sul computer B$nc 10.10.10.10 12345
Ora entrambe le parti possono parlare!
Questo modo di parlare, in cui entrambe le parti possono parlare tra loro, rende possibile l'utilizzo di nc per le operazioni di I/O di rete! Ad esempio, è possibile inviare un'intera directory da un computer a un altro collegando tar tramite nc sul primo computer e reindirizzando l'output a un altro processo tar sul secondo.
Supponiamo di voler trasferire file dalla directory /data del computer A con IP 192.168.1.10 al computer B (con qualsiasi IP). È semplice:
# Sulla macchina A con IP 192.168.1.10 $ tar -cf - /data | nc -l -p 6666 # Sul computer B $ nc 192.168.1.10 6666 | tar-xf-
Non dimenticare di combinare la pipeline con il Pipe Viewer descritto nell'articolo precedente per vedere le statistiche sulla velocità del trasferimento!
Un singolo file può essere inviato più semplicemente:
# Sul computer A con IP 192.168.1.10 $ cat file | nc -l -p 6666 # Sulla macchina B $ nc 192.168.1.10 6666 > file
Puoi anche copiare e ripristinare un intero disco utilizzando nc:
# Sulla macchina A con IP 192.168.1.10 $ cat /dev/hdb | nc -l -p 6666 # Sulla macchina B $ nc 192.168.1.10 6666 > /dev/hdb
Nota: l'opzione "-l" non può essere utilizzata con "-p" sui computer Mac! La soluzione è semplicemente sostituire “-l -p 6666? con “-l 6666?. Come qui:
# ora nc è in ascolto sulla porta 6666 per Computer Mac$nc -l 6666
Un uso eccezionale di netcat è la scansione delle porte. Netcat no strumento migliore per tale lavoro, ma se la cava (il migliore, ovviamente, è nmap):
$ nc -v -n -z -w 1 192.168.1.2 1-1000 (Sconosciuto) 445 (microsoft-ds) aperto (Sconosciuto) 139 (netbios-ssn) aperto (Sconosciuto) 111 (sunrpc) aperto (Sconosciuto) 80 ( www) aperto (SCONOSCIUTO) 25 (smtp): connessione scaduta (SCONOSCIUTO) 22 (ssh) aperto
L'opzione "-n" impedisce le ricerche DNS, "-z" non attende una risposta dal server e "-w 1? imposta il timeout della connessione su 1 secondo.
Un altro uso non banale di netcat è come proxy. È possibile inoltrare sia la porta che l'host. Guarda questo esempio:
$nc -l -p 12345 | www.google.com 80
Questo comando avvia nc sulla porta 1234 e reindirizza tutte le connessioni a google.com:80. Se ora ti connetti a questo computer sulla porta 12345 ed effettui una richiesta, scoprirai che non riceverai alcun dato in risposta. Questo è corretto perché non abbiamo impostato un canale bidirezionale. Se aggiungi un secondo canale, riceverai i tuoi dati su una porta diversa:
$nc -l -p 12345 | nc www.google.com 80 | nc -l -p 12346
Dopo aver inviato una richiesta sulla porta 12345, ricevi i dati di risposta sulla porta 12346.
Probabilmente la caratteristica più potente di netcat è eseguire qualsiasi processo come server:
$ nc -l -p 12345 -e /bin/bash
L'opzione "-e" genera l'esecuzione di input e output reindirizzati tramite un socket di rete. Ora se ti connetti all'host sulla porta 12345 puoi usare bash:
$ nc localhost 12345 ls -las totale 4288 4 drwxr-xr-x 15 utenti pkrumins 4096 2009-02-17 07:47 . 4 drwxr-xr-x 4 utenti pkrumins 4096 2009-01-18 21:22 .. 8 -rw------- 1 utenti pkrumins 8192 2009-02-16 19:30 .bash_history 4 -rw-r- -r-- 1 pkrumins utenti 220 2009-01-18 21:04 .bash_logout ...
Le implicazioni sono che nc è uno strumento popolare per gli hacker ed è molto facile creare una backdoor con esso. SU Server Linux puoi eseguire /bin/bash e su Windows cmd.exe e avere il pieno controllo nelle tue mani.
Questo è tutto quello che volevo dire. Conosci altri trucchi utili di Netcat che non sono trattati qui?
Se hai Debian o un sistema basato su Debian come Ubuntu, procedi come segue:
$ sudo aptitude installa netcat
Se hai Fedora o un sistema basato su Fedora come CentOS, esegui:
$ sudo yum installa netcat
Se hai Slackware, FreeBSD, NetBSD, Solaris o Mac, scarica i sorgenti nc e fai:
$ tar -zxf nc-version.tar.gz $ cd nc-version $ ./configure && sudo make install
Un altro modo per farlo su un Mac se disponi di MacPorts:
$ sudo porta installa netcat
Su Slackware, puoi installarlo come pacchetto dalla directory dei pacchetti:
$ sudo installpkg nc-1.10-i386-1.tgz
Se hai Windows, scarica il port di Windoze da securityfocus.
Il manuale dell'utilità può essere trovato in man nc.
Goditi il tuo tempo con nc, fino alla prossima volta!
nc [-46bCDdhklnrStUuvZz] [-I lunghezza][-io intervallo][-O lunghezza][-P nome_utente_proxy][-P porta_origine][-Q secondi][-S fonte][-T la parola chiave][-V rtable] [-w tempo scaduto][-X protocollo_proxy][-X indirizzo_proxy[:porta]] [destinazione] [porta]-4 | forze nc per utilizzare solo indirizzi IPv4. |
-6 | forze nc per utilizzare solo indirizzi IPv6. |
-B | Consenti trasmissione. |
-C | Invia come fine riga. |
-D | Abilita il debug sul socket. |
-D | Non tentare di leggere da stdin . |
-H | Stampa l'aiuto nc. |
-IO lunghezza | Specifica la dimensione del buffer di ricezione TCP. |
-io intervallo | Specifica un intervallo di tempo di ritardo tra le righe di testo inviate e ricevute. Inoltre, provoca un ritardo tra le connessioni a più porte. |
-K | forze nc per rimanere in ascolto per un'altra connessione dopo che la connessione corrente è stata completata. È un errore utilizzare questa opzione senza il file -l opzione. |
-l | Utilizzato per specificarlo nc dovrebbe attendere una connessione in entrata anziché avviare una connessione a un host remoto. È un errore utilizzare questa opzione insieme a -P, -S, O -z opzioni. Inoltre, eventuali timeout specificati con il file -w le opzioni vengono ignorate. |
-N | Non eseguire ricerche DNS o servizi su indirizzi, nomi host o porte specificati. |
-O lunghezza | Specifica la dimensione del buffer di invio TCP. |
-P nome_utente_proxy | Specifica un nome utente da presentare a un server proxy che richiede l'autenticazione. Se non viene specificato alcun nome utente, l'autenticazione non verrà tentata. Al momento l'autenticazione proxy è supportata solo per i proxy HTTP CONNECT. |
-P porta_origine | Specifica la porta di origine che nc deve utilizzare, soggetta a limitazioni di privilegi e disponibilità. |
-Q secondi | dopo EOF su stdin, attendi il numero di secondi specificato e poi esci. Se i secondi sono negativi, attendi per sempre. |
-R | Specifica che le porte di origine o di destinazione devono essere scelte in modo casuale anziché sequenziale all'interno di un intervallo o nell'ordine in cui le assegna il sistema. |
-S | Abilita l'opzione di firma RFC 2385 TCP MD5. |
-S fonte | Specifica l'interfaccia utilizzata per inviare i pacchetti. Per i socket di datagrammi del dominio UNIX, specifica il file socket temporaneo locale da creare e utilizzare in modo che i datagrammi possano essere ricevuti. È un errore utilizzare questa opzione insieme a -l opzione. |
-T la parola chiave | Modifica il valore TOS IPv4. la parola chiave potrebbe essere uno di critico, inetcontrol, basso costo, basso ritardo, netcontrol, portata, affidabilità o uno dei punti codice DiffServ: ef, af11 ... af43, cs0 ... cs7; o un numero in formato esadecimale o decimale. |
-T | Cause nc per inviare risposte RFC 854 DON"T e WON"T alle richieste RFC 854 DO e WILL. Ciò rende possibile utilizzare nc per creare script di sessioni telnet. |
-U | Specifica l'utilizzo dei socket del dominio UNIX. |
-u | Utilizza UDP invece dell'opzione predefinita di TCP. Per i socket del dominio UNIX, utilizzare un socket di datagramma anziché un socket di flusso. Se viene utilizzato un socket di dominio UNIX, viene creato un socket di ricezione temporaneo in /tmp a meno che il file -S viene data la bandiera. |
-V rtable | Imposta la tabella di routing da utilizzare. Il valore predefinito è 0. |
-v | Avere nc fornire un output più dettagliato. |
-w tempo scaduto | Connessioni che non possono essere stabilite o che sono inattive timeout dopo timeout secondi. IL -w flag non ha alcun effetto sul file -l opzione, cioè nc ascolterà per sempre una connessione, con o senza -w bandiera. L'impostazione predefinita non prevede alcun timeout. |
-X protocollo_proxy | Richiede che nc utilizzi il protocollo specificato quando comunica con il server proxy. I protocolli supportati sono " 4 " (CALZE v.4), " 5 " (CALZE v.5) e " Collegare" (proxy HTTPS). Se il protocollo non è specificato, viene utilizzata la versione 5 di SOCKS. |
-X indirizzo_proxy[:porta] | Lo richiede nc dovrebbe connettersi alla destinazione utilizzando un proxy su indirizzo_proxy E porta. Se porta non viene specificato, viene utilizzata la porta nota per il protocollo proxy (1080 per SOCKS, 3128 per HTTPS). |
-Z | Modalità DCCP. |
-z | Specifica che nc dovrebbe cercare solo i demoni in ascolto, senza inviare loro alcun dato. È un errore utilizzare questa opzione insieme a -l opzione. |
destinazione può essere un indirizzo IP numerico o un nome host simbolico (a meno che il file -N viene data l'opzione). In generale è necessario specificare una destinazione, a meno che il file -l viene fornita l'opzione (nel qual caso viene utilizzato l'host locale). Per i socket del dominio UNIX, è richiesta una destinazione ed è il percorso del socket a cui connettersi (o su cui ascoltare se il file -l viene data l'opzione).
port può essere un singolo numero intero o un intervallo di porte. Gli intervalli sono nel modulo nn-mm. In generale, è necessario specificare una porta di destinazione, a meno che il file -U viene data l'opzione.
È abbastanza semplice creare un modello client/server molto semplice utilizzando nc. Su una console, avvia nc in ascolto su una porta specifica per una connessione. Per esempio:
NC -l 1234
nc ora è in ascolto sulla porta 1234 per una connessione. Su una seconda console (o una seconda macchina), connettiti alla macchina e alla porta in ascolto su:
NC 127.0.0.1 1234
Ora dovrebbe esserci una connessione tra le porte. Qualunque cosa digitata sulla seconda console verrà concatenata alla prima e viceversa. Dopo che la connessione è stata stabilita nc non gli importa quale lato viene utilizzato come "server" e quale come "client". La connessione può essere terminata utilizzando un EOF (" ^D’).
Non c'è -C O -e opzione nel moderno netcat, ma puoi comunque eseguire un comando dopo aver stabilito la connessione reindirizzando i descrittori di file. Fai attenzione qui perché aprire una porta e consentire a chiunque sia connesso di eseguire comandi arbitrari sul tuo sito è PERICOLOSO. Se hai davvero bisogno di farlo, ecco un esempio:
Sul lato "server":
Rm-f /tmp/f; mkfifo /tmp/f cat /tmp/f | /bin/sh -i 2>&1 | nc -l 127.0.0.1 1234 > /tmp/f
Dal lato "cliente":
nc host.esempio.com 1234
(prompt della shell da host.example.com)
Inizia utilizzando nc per ascoltare su una porta specifica, con l'output catturato in un file:
nc -l 1234 > nomefile.out
Utilizzando una seconda macchina, collegarsi all'ascolto nc processo, alimentandogli il file da trasferire:
nc host.esempio.com 1234< filename.in
Una volta trasferito il file, la connessione si chiuderà automaticamente.
A volte è utile parlare con i server "manualmente" anziché tramite un'interfaccia utente. Può aiutare nella risoluzione dei problemi, quando potrebbe essere necessario verificare quali dati un server sta inviando in risposta ai comandi emessi dal client. Ad esempio, per recuperare la home page di un sito web:
Printf "GET / HTTP/1.0\r\n\r\n" | nc host.esempio.com 80
Tieni presente che questo mostra anche le intestazioni inviate da la rete server. Possono essere filtrati utilizzando uno strumento come sed, se necessario.
È possibile creare esempi più complicati quando l'utente conosce il formato delle richieste richieste dal server. Come altro esempio, un'e-mail può essere inviata a un server SMTP utilizzando:
NC [-C] host locale 25<< EOF HELO host.example.com MAIL FROM:< >RCPT A:< >DATI Corpo dell'e-mail. . ESCI DA EOF
Potrebbe essere utile sapere quali porte sono aperte e quali servizi eseguono su una macchina di destinazione. IL -z la bandiera può essere usata per dirlo nc per segnalare porte aperte, anziché avviare una connessione. Di solito è utile attivare l'output dettagliato su stderr utilizzando questa opzione insieme a -v opzione.
Nc -zv host.example.com 20-30 Connessione alla porta host.example.com 22 riuscita! Connessione alla porta host.example.com 25 riuscita!
L'intervallo di porte è stato specificato per limitare la ricerca alle porte 20 - 30 e viene scansionato in ordine crescente.
Puoi anche specificare un elenco di porte da scansionare, ad esempio:
nc -zv host.example.com 80 20 22 nc: connessione a host.example.com 80 (tcp) non riuscita: connessione rifiutata nc: connessione a host.example.com 20 (tcp) non riuscita: connessione rifiutata Connessione a host.example.com Il trasferimento .com è riuscito!
Le porte vengono scansionate in base all'ordine fornito.
In alternativa, potrebbe essere utile sapere quale software server è in esecuzione e quali versioni. Queste informazioni sono spesso contenute nei banner di auguri. Per recuperarli è necessario prima stabilire una connessione, e poi interrompere la connessione una volta recuperato il banner. Ciò può essere ottenuto specificando un piccolo timeout con il comando -w flag, o magari inviando un comando "QUIT" al server:
Echo "QUIT" | nc host.example.com 20-30 SSH-1.99-OpenSSH_3.6.1p2 Mancata corrispondenza del protocollo. 220 host.example.com Ricevitore SMTP IMS versione 0.84 Pronto
Apre una connessione TCP alla porta 42 Di host.esempio.com, utilizzando la porta 31337 come porta di origine, con un timeout di 5 secondi.
nc -u host.esempio.com 53 nc -x10.2.3.4:8080 -Xconnect -Pruser host.esempio.com 42
Come nell'esempio precedente, ma questa volta abilitando l'autenticazione proxy con nome utente " ruser"se la procura lo richiede.
ifconfig- Visualizza o modifica la configurazione delle interfacce di rete.
In questo articolo esaminerò la popolare utility di rete netcat e alcuni trucchi utili per utilizzarla.
Netcat è un'utilità Unix che consente di stabilire connessioni TCP e UDP, ricevere dati da lì e trasmetterli. Nonostante la sua utilità e semplicità, molti non sanno come usarlo e lo bypassano ingiustamente.
Utilizzando questa utilità, è possibile eseguire alcuni passaggi durante l'esecuzione dei test di penetrazione. Ciò può essere utile quando la macchina attaccata non ha (o attirerà l'attenzione) pacchetti installati, ci sono restrizioni (ad esempio, dispositivi IoT/embedded), ecc.
Cosa si può fare con netcat:
In generale, utilizzando netcat, è possibile sostituire parte delle utilità Unix, quindi questo strumento può essere considerato una sorta di combinazione per eseguire determinate attività.
In molti casi, se è necessario controllare un particolare host, utilizzano telnet o i propri servizi per identificare l'host o il banner. Come netcat può aiutarci:
nc: connessione a 192.168.1.100 12345 (tcp) non riuscita: connessione rifiutata
Connessione alla porta 192.168.1.100 22 riuscita!
SSH-2.0-OpenSSH
Con tale scansione non ci sarà alcuna connessione alla porta, ma solo l'output di una connessione riuscita:
nc: connessione a 192.168.1.100 porta 20 (tcp) non riuscita: connessione rifiutata
nc: connessione a 192.168.1.100 porta 21 (tcp) non riuscita: connessione rifiutata
trovato 0 associazioni
trovato 1 collegamenti:
1: bandiere=82
outif en0
origine 192.168.1.100 porta 50168
dst 192.168.1.100 porta 22
informazioni sulla classifica non disponibili
Informazioni ausiliarie TCP disponibili
Connessione alla porta 22 192.168.1.100 riuscita!
nc: connectx alla porta 192.168.1.100 porta 23 (tcp) non riuscita: connessione rifiutata
nc: connectx alla porta 192.168.1.100 porta 24 (tcp) non riuscita: connessione rifiutata
Sono necessari i privilegi di root per scansionare le porte UDP con nmap. Se non ci sono, in questo caso ci può aiutare anche l'utility netcat:
Connessione alla porta 192.168.1.100 5555 riuscita!
Questo può essere utile quando si interagisce con i dispositivi di rete.
Dopo il primo messaggio, l'output verrà interrotto. Se devi ricevere più messaggi, devi utilizzare while true:
Trasferimento di file. Usando netcat, puoi sia ricevere file che trasferire file su un host remoto:
Netcat può fungere da semplice server web per visualizzare pagine html.
Utilizzando un browser all'indirizzo: http://netcat host:8888/index.html. Per utilizzare la porta numero 80 del server web standard, dovrai eseguire nc con privilegi di root:
Sul primo nodo (192.168.1.100):
Sul secondo nodo:
Dopo aver eseguito i comandi, tutti i caratteri immessi nella finestra del terminale su uno qualsiasi dei nodi appariranno nella finestra del terminale dell'altro nodo.
Usando netcat, puoi organizzare una comoda shell inversa:
Ora puoi connetterti dall'host remoto:
Non bisogna arrendersi se non ci sono determinati strumenti, spesso piuttosto ingombranti, a volte il compito può essere risolto con mezzi improvvisati.