Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Virenschutz · Tools & Aggressive Software Tips zum Kampf gegen gegen Viren, Trojaner, CryptoSoft und Programme, die erstellt wurden um Schaden anzurichten, werden hier behandelt. Aber auch Tools aus dem Security Bereich sind hier richtig.

Wie funktioniert Netcat

Diskussion: Wie funktioniert Netcat im Forum Virenschutz · Tools & Aggressive Software, in der Kategorie Security Area; Anzeige Hi! Ich wüsste gerne mehr darüber wie genau netcat oder allgemein ein Programm das eine Shell einrichtet funktioniert. Ich ...

Antwort
Alt 27.08.06, 14:49   #1 (permalink)
 
Registriert seit: 12.04.06
blobbo Leistung: Facit NTK
Likes: 0
Standard Wie funktioniert Netcat

Anzeige

Hi!
Ich wüsste gerne mehr darüber wie genau netcat oder allgemein ein Programm das eine Shell einrichtet funktioniert.
Ich kann leider c++ nicht gut genug um mir den Source anzugucken.
Also was ich mir denk ist, dass der Verkehr auf einem Port angenommen und an ein Programm weitergeleitet wird. In diesem Fall cmd.
Andersherum wird die Ausgabe zurück gesendet.
Und wie genau funktioniert es das Ergebnis abzufangen?

Ok also eigentlich weiss ich selbst nich so ganz.. ;(
Ich würde nur gerne mehr darüber wissen also wenn ihr irgendwelche Quellen oder Wissen habt das ihr teilen wollt wäre ich sehr dankbar :)

blobbo ist offline   Mit Zitat antworten
Alt 27.08.06, 15:30   #2 (permalink)
 
Registriert seit: 30.05.05
v01d Leistung: Facit NTK
Likes: 0
Standard

netcat verbindet sich einfach mit dem port. die shell kommt vom telnetserver. mann kann ja auch mit netcat nen port öffnen (mit -l glaub ich).
probiers mal. öffne nen port mit netcat und verbinde dich dann wieder mit netcat. was du beim client eingibst, sollte beim server ankommen.
=> es macht also im prinzip nicht viel, außer verbindung herstellen.
v01d ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 27.08.06, 15:49   #3 (permalink)
Themenstarter
 
Registriert seit: 12.04.06
blobbo Leistung: Facit NTK
Likes: 0
Standard

Aber es ist doch auch möglich die Verbindung an eine Anwendung zu leiten und das Ergebnis zurückzuschicken oder!?
Wie funktioniert das?
Oder klappt es nur bei Dosanwendungen wie cmd
blobbo ist offline   Mit Zitat antworten
Alt 27.08.06, 16:50   #4 (permalink)
 
Benutzerbild von ERit
 
Registriert seit: 31.03.05
ERit Leistung: Facit NTK
Likes: 0
Standard

Code:
nc -l -p1000 -d -e cmd.exe -L
-l öffnet das port.
-p das lokale port.
-e anwendung.
-L bei abbruch der verbindung wieder neu starten.

soviel ich weis kann man mit -c anwendungen ausführen, bzw. halt unter linux shell commands. steht aber alles in der hilfe: nc -h
edit2: mit -e lassen sich alle anwendungen ausführen. das problem dabei wären vielleicht progis mit oberfläche? versuchs doch einfach und verbinde dich mit "telnet 127.0.0.1 1000"

lg
ERit ist offline   Mit Zitat antworten
Alt 27.08.06, 17:38   #5 (permalink)
Themenstarter
 
Registriert seit: 12.04.06
blobbo Leistung: Facit NTK
Likes: 0
Standard

Das hatte ich schon gefunden.
Ich wollte vorallem die programmiertechnische Seite verstehn. Ich kann mir nicht wirklich vorstellen wir das gemacht wird.
blobbo ist offline   Mit Zitat antworten
Alt 27.08.06, 17:42   #6 (permalink)
 
Registriert seit: 30.05.05
v01d Leistung: Facit NTK
Likes: 0
Standard

naja. mit netcat -l wird halt ein socket geöffnet, in listenmodus geschaltet und wartet dann verbindungen ab. je nachdem wird dann eingehender traffic nach stdout und eventuelle ausgaben einer anwendung (z.b. cmd) über pipes dann versendet.

als client wird einfach ein connect() gemacht, wobei eingehende pakete nach stdout geschrieben werden und eingaben von stdin werden an den peer gesendet.
v01d ist offline   Mit Zitat antworten
Alt 27.08.06, 19:12   #7 (permalink)
 
Registriert seit: 23.05.05
Xalon Leistung: Facit NTK
Xalon eine Nachricht über ICQ schicken
Likes: 0
Standard

Code:
#define _WIN32_WINNT 0x500


#include <stdio.h>
#include <winsock2.h>
#include <iostream>
#include <cstdio>
#include <windows.h>
using namespace std;

int main(void)
{
  SOCKET s,s1;
  WSADATA wsa;
  SOCKADDR_IN addr;
  STARTUPINFO sinfo;
  PROCESS_INFORMATION pi;
  long rc;
    
  WSAStartup(MAKEWORD(2,2),&wsa);
 	
  memset(&addr,0,sizeof(addr));
  addr.sin_family=AF_INET;
  addr.sin_port=htons(1415);
  addr.sin_addr.s_addr=ADDR_ANY;

  s1=WSASocket(AF_INET,SOCK_STREAM,IPPROTO_TCP,0,0,0);

  rc=bind(s1,(SOCKADDR*)&addr,sizeof(addr));
while(1)
 {
  rc=listen(s1,10);
  s=accept(s1,NULL,NULL);

  ZeroMemory(&sinfo,sizeof(sinfo));
  ZeroMemory(&pi,sizeof(pi));
  sinfo.hStdInput = (HANDLE)s;
  sinfo.hStdOutput = (HANDLE)s;
  sinfo.hStdError = (HANDLE)s;     
  sinfo.cb = sizeof (STARTUPINFO);
  sinfo.dwFlags = sinfo.dwFlags | STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
  sinfo.wShowWindow = SW_HIDE;

  CreateProcess(NULL,"cmd.exe",NULL,NULL,TRUE,0,NULL,NULL,&sinfo,&pi);

  WaitForSingleObject(pi.hProcess,INFINITE);
 }
  closesocket(s);
  closesocket(s1);
  return 0;
}
Hier ist der Source eines "TelnetServers"
Xalon ist offline   Mit Zitat antworten
Alt 27.08.06, 20:34   #8 (permalink)
Themenstarter
 
Registriert seit: 12.04.06
blobbo Leistung: Facit NTK
Likes: 0
Standard

Mh ok danke!
Also wird praktisch nur eine Verbindung aufgebaut und als Prozess cmd geöffnet!?
Und wie wird das dann an den Prozess übergeben?
Ich kenn nur von Visual Basic sendkeys aber so wird es wohl auf gar keinen Fall funktionieren
blobbo ist offline   Mit Zitat antworten
Alt 28.08.06, 12:10   #9 (permalink)
 
Registriert seit: 30.05.05
v01d Leistung: Facit NTK
Likes: 0
Standard

Du erstellst ein socket. Das hat ja auch nen Eingabe- und Ausgabepuffer. In dem STARTUPINFO struct kannst du Festlegen, welches Handle du für Eingabe (STDIN) und Ausgabe(STDOUT,STDERR) verwenden willst.
Wenn du jetzt mit WSASocket ein Socket erstellst, kannst du dies hier einfach als E/A-Handle angeben (Achtung. Ein mit socket() erstelltes Handle funktioniert nicht).
Das heißt, anstatt die Ausgabe am bildschirm anzuzeigen wird die Ausgabe von CMD einfach an den gerade Verbundenen Netzwerkpartner (peer) gesendet, der es dann auf seinem Bildschirm anzeigt. Genauso gehts dann mit den Eingaben, die werden vom peer eingegeben und über Netzwerk dann empfangen und "ausgeführt".
v01d ist offline   Mit Zitat antworten
Alt 28.08.06, 19:16   #10 (permalink)
Themenstarter
 
Registriert seit: 12.04.06
blobbo Leistung: Facit NTK
Likes: 0
Standard

Ok danke, is ja sehr interessant!
Dann muss ich mich mal mehr ins thema Sockets reinlesen.
blobbo ist offline   Mit Zitat antworten
Alt 24.09.06, 17:02   #11 (permalink)
 
Registriert seit: 23.09.06
muh_baris Leistung: Facit NTK
Likes: 0
Standard

><
http://www.c-worker.ch
><
muh_baris ist offline   Mit Zitat antworten
Alt 24.09.06, 17:49   #12 (permalink)
Senior Member
 
Registriert seit: 03.09.05
Lesco Leistung: Facit NTK
Likes: 0
Standard

Zitat:
Original von muh_baris
><
http://www.c-worker.ch
><
Also ich habe nur mal kurz einen Blick auf eins von den Tutorials geworfen und mir ist sowas hier aufgefallen:
Code:
char hostname[512];
printf("Enter Hostname: ");
gets(hostname);
Wenn der Rest des Codes ähnlich aussieht, dann sollte man die Seite am besten ganz schnell wieder vergessen.
Lesco ist offline   Mit Zitat antworten
Alt 24.09.06, 17:55   #13 (permalink)
 
Registriert seit: 30.05.05
v01d Leistung: Facit NTK
Likes: 0
Standard

Zitat:
Original von Lesco
Zitat:
Original von muh_baris
><
http://www.c-worker.ch
><
Also ich habe nur mal kurz einen Blick auf eins von den Tutorials geworfen und mir ist sowas hier aufgefallen:
Code:
char hostname[512];
printf("Enter Hostname: ");
gets(hostname);
Wenn der Rest des Codes ähnlich aussieht, dann sollte man die Seite am besten ganz schnell wieder vergessen.
Der Code dient zu lernzwecken und soll übersichtlich sein, nicht sicher.
Und die Tutorials sind die besten über sockets die's im Netz gibt.
v01d ist offline   Mit Zitat antworten
Alt 25.09.06, 15:40   #14 (permalink)
Senior Member
 
Registriert seit: 03.09.05
Lesco Leistung: Facit NTK
Likes: 0
Standard

Zitat:
Original von v01d

Der Code dient zu lernzwecken und soll übersichtlich sein, nicht sicher.
Und die Tutorials sind die besten über sockets die's im Netz gibt.
Gerade Code der zu Lernzwecken dient sollte sicher sein, da viele Leute den Code lesen und sonst die Fehler übernehmen. Es wäre außerdem genauso einfach und lesbar gewesen fgets() zu verwenden. Solchen Code wie ich zitiert habe sollte man einfach nicht verwenden, egal ob zu Lernzwecken oder nicht.
Lesco ist offline   Mit Zitat antworten
Alt 25.09.06, 16:04   #15 (permalink)
 
Registriert seit: 23.09.06
muh_baris Leistung: Facit NTK
Likes: 0
Standard

@Lesco
stimmt!
aber ne bessere seite findet man nicht
oder?
muh_baris ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Security Area » Virenschutz · Tools & Aggressive Software » Wie funktioniert Netcat
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
netcat funst nicht LionC Applikationen 5 09.03.08 19:12
bei NetCat Installation FleaZ Linux/UNIX 10 06.06.07 18:55
Suche NetCat Tutorial 20SamSpade06 Network · LAN, WAN, Firewalls 4 30.09.06 18:25
Telnet Verbindung per netcat Conair0001 Linux/UNIX 15 15.05.04 10:13


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61