|
Netcat is een tool dat connecties kan leggen over het netwerk. Waarschijnlijk zul je er het meest van mee gebruik maken bij 'bannergrabben'. Als je een connectie legt met een andere computer dan komt er soms een welkomstekst te staan, hiermee kun je naagaan welke software er op een computer zit.
Downloaden en installerenNetcat kun je hier downloaden, unzippen in een map, en dan is ie te bereiken via commandline. Dit zijn de opties van Netcat ( draaiend onder Windows XP, maar ik dacht dat het op elk platform hetzelfde werkte, misschien moet je in *NIX admin zijn ).
Y:\>nc -h [v1.10 NT] connect to somewhere: nc [-options] hostname port[s] [ports] ... listen for inbound: nc -l -p port [options] [hostname] [port] options: -d detach from console, stealth mode
-e prog inbound program to exec [dangerous!!] -g gateway source-routing hop point[s], up to 8 -G num source-routing pointer: 4, 8, 12, ... -h this cruft -i secs delay interval for lines sent, ports scanned -l listen mode, for inbound connects -L listen harder, re-listen on socket close -n numeric-only IP addresses, no DNS -o file hex dump of traffic -p port local port number -r randomize local and remote ports -s addr local source address -t answer TELNET negotiation -u UDP mode -v verbose [use twice to be more verbose] -w secs timeout for connects and final net reads -z zero-I/O mode [used for scanning] port numbers can be individual or ranges: m-n [inclusive] Y:\>_
Een connectie leggenDit is waarschijnlijk de optie die je het vaakst zal gebruiken is gewoon een connectie leggen. Laten we eens een connectie leggen naar mijn website:
Y:\>nc fronted.quzart.nl 80 GET / HTTP/1.1
HTTP/1.1 400 Bad Request Date: Mon, 05 Nov 2007 15:28:24 GMT Server: Apache/2 Content-Length: 293 Connection: close Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>400 Bad Request</title> </head><body> <h1>Bad Request</h1> <p>Your browser sent a request that this server could not understand.<br /> </p> <hr> <address>Apache/2 Server at localhost" Port 80</address> </body></html>
Y:\>_
Ik heb in de command lijn gezecht dat Netcat een connectie moet leggen naar fronted.quzart.nl op poort 80. Daarna stuurde ik de request 'GET / HTTP/1.1' op (twee enters erachter) en kreeg wat eronder stond terug. Van 'HTTP/1.1 400 Ba' ... 'charset=iso-8859-1' is de header. En de rest is de eigenlijke response. Wat kunnen we hieruit opmaken? De server die deze server runt is een Apache 2 httpd. Nou is dit niet zo heel erg, want er zijn veel verschillende versies, dus veel heb je er niet aan. Maar toch, het is iets. Een open poort makenMet Netcat kun je ook een open poort maken: ( -l = listen, -p = poort )
nc -l -p 8080
Hiermee heb je poort 8080 geopend, en alle data die op poort 8080 binnen komt krijg je op het scherm te zien. Probeer maar eens een verbinding ernaar te maken met:
Y:\>nc localhost 8080 Hello fasd
Ik heb een connectie gemaakt naar localhost op poort 8080, en erin getyped: 'Hello[enter]fasd'. Dit krijg je dan te zien op de netcat die aan het luisteren is:
Y:\>nc -l -p 8080 Hello fasd
Dit kun je bijvoorbeeld ook op school gebruiken om met je vrienden te chatten :P, tja MSN is verboden eh? Data versturenDe sturende computer:
Y:\>echo "asdfjahsdjh aflsjdf aljsdhfasjhdl fkshd asjdhfl">testje.txt Y:\>dir Het volume in station Y heeft geen naam. Het volumenummer is 3091-CEAB Map van Y:\ 05-11-2007 16:49 <DIR> . 05-11-2007 16:49 <DIR> .. 18-10-2007 15:23 316 banner.txt 30-10-2007 17:34 527 clearTasklist.bat 18-10-2007 15:14 <DIR> Metasploit 19-10-2007 14:44 10 mount.bat 27-10-2007 16:31 <DIR> server 01-11-2007 16:27 <DIR> setups 20-10-2007 10:21 693 shellme.bat 05-11-2007 16:49 51 testje.txt 28-10-2007 12:11 <DIR> tools 19-10-2007 14:43 11 unmount.bat 6 bestand(en) 1.608 bytes 6 map(pen) 30.833.586.176 bytes beschikbaar
Y:\>more testje.txt | nc -l -p 8080
Y:\>_
En de ontvangende computer:
Y:\>nc localhost 8080 > testje2.txt ^C
Y:\>dir Het volume in station Y heeft geen naam. Het volumenummer is 3091-CEAB
Map van Y:\
05-11-2007 16:50 <DIR> . 05-11-2007 16:50 <DIR> .. 18-10-2007 15:23 316 banner.txt 30-10-2007 17:34 527 clearTasklist.bat 18-10-2007 15:14 <DIR> Metasploit 19-10-2007 14:44 10 mount.bat 27-10-2007 16:31 <DIR> server 01-11-2007 16:27 <DIR> setups 20-10-2007 10:21 693 shellme.bat 05-11-2007 16:49 51 testje.txt 05-11-2007 16:50 51 testje2.txt 28-10-2007 12:11 <DIR> tools 19-10-2007 14:43 11 unmount.bat 7 bestand(en) 1.659 bytes 6 map(pen) 30.833.586.176 bytes beschikbaar
Y:\>more testje2.txt "asdfjahsdjh aflsjdf aljsdhfasjhdl fkshd asjdhfl"
Y:\>
( ^C = [ctrl]+[C] ) Shell/Command line openenJe kan ook een port openen en als iemand daar dan een connectie naar legt dat diegene dan een shell terugkrijgt.
Y:\>nc -l -e cmd.exe -p 8080
En je kunt er ook een connectie naar leggen met:
Y:\>nc localhost 8080 Microsoft Windows XP [versie 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp.
Y:\>dir Y:\ dir Y:\ Het volume in station Y heeft geen naam. Het volumenummer is 3091-CEAB
Map van Y:\
08-11-2007 17:10 <DIR> . 08-11-2007 17:10 <DIR> .. 18-10-2007 15:23 316 banner.txt 30-10-2007 17:34 527 clearTasklist.bat 18-10-2007 15:14 <DIR> Metasploit 19-10-2007 14:44 10 mount.bat 27-10-2007 16:31 <DIR> server 01-11-2007 16:27 <DIR> setups 20-10-2007 10:21 693 shellme.bat 07-11-2007 16:07 <DIR> tools 19-10-2007 14:43 11 unmount.bat 5 bestand(en) 1.557 bytes 6 map(pen) 21.857.869.824 bytes beschikbaar
Y:\>
Natuurlijk kun je '-e cmd.exe' ook vervangen voor 'cmd', 'command.com', 'command'. Als je een shell wilt openen op linux dan kun je dit doen met '/bin/bash'. Ik vind dit vooral handig omdat je vrijwel niets op de computer hoeft te installeren (bijvoorbeeld een SSH server). Je hoeft alleen maar Netcat te downloaden voor het platform waarop je werkt. |