Netcat Print
Written by Quzart   
Wednesday, 20 February 2008 16:05

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.
Netcat

 

 

Downloaden en installeren

Netcat 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 leggen

Dit 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 maken

Met 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 versturen

De 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 openen

Je 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.

Last Updated ( Saturday, 23 February 2008 15:03 )