ICMP-Injektionsfehler mit Nemesis unter Mac OS

892
Stefan Midjich

Dies begann mit einer einfachen Aufgabe: Senden Sie ein ICMP-Paket vom Typ 8 und Code 0 an einen Host in meinem Netzwerk. Da ich meinen Mac für alles benutze, habe ich Nemesis mit macports installiert und den folgenden Befehl ausprobiert.

sudo nemesis icmp -i 8 -c 0 -P ./payload -D 172.16.148.133 

Dies führte zu einem Fehler.

ERROR: Incomplete packet injection. Only wrote -1 bytes.  ICMP Injection Failure 

Und seitdem konnte ich Nemesis icmp von zwei bekannten, guten Mac-Computern überhaupt nicht verwenden, ich bekomme immer denselben Fehler.

Als ich bemerkte, dass ich dies bemerkte, kompilierte ich es einfach auf einem FreeBSD 8.2-System aus Ports, Nemesis 1.4 Build 26, genauso wie unter OS X.

Funktioniert wie es soll, keine Fehler, glücklicher Benutzer. :)

Aber ich möchte mich nicht jedes Mal bei einem FreeBSD-System anmelden, wenn ich Nemesis verwenden möchte. Was ist also hier los? Ich habe versucht, Nemesis 1.4 Build 26 aus dem Quellcode von Sourceforge zu kompilieren und eine Verknüpfung zu der von MacPorts in / opt installierten Libnet-Datenbank herzustellen.

Hinweis: Ich habe versucht, diesen Nemesis-Befehl auf beiden Systemen über ein Root-Terminal auszuführen, nicht nur über Sudo.

1
Nur hier fischen, aber was ist, wenn Sie `sudo -s` versuchen und dann den Befehl ausführen? squircle vor 12 Jahren 0
@squircle dasselbe Problem. Bei FreeBSD verwende ich nicht einmal sudo, ich habe nur ein Root-Terminal geöffnet. Ich habe dies auch unter OS X versucht, dasselbe Problem. Stefan Midjich vor 12 Jahren 0
Nun, das tut 'sudo -s'; Öffnen Sie ein Root-Terminal. Ich denke, es ist kein Berechtigungsproblem ... squircle vor 12 Jahren 0

1 Antwort auf die Frage

0
Majenko

Das sieht aus wie ein Versagen von libnet. Aus dem Quellcode der Nemesis:

if (got_link) n = libnet_write_link_layer(l2, device, pkt, icmp_packetlen); else n = libnet_write_ip(sockfd, pkt, icmp_packetlen);  if (verbose == 2) nemesis_hexdump(pkt, icmp_packetlen, HEX_ASCII_DECODE); if (verbose == 3) nemesis_hexdump(pkt, icmp_packetlen, HEX_RAW_DECODE);  if (n != icmp_packetlen) { fprintf(stderr, "ERROR: Incomplete packet injection. Only wrote " "%d bytes.\n", n); } 

Der Fehler liegt also in libnet_write_ip()oder libnet_write_link_layer().

Ich würde empfehlen, libnet manuell neu zu kompilieren und Nemesis mit dieser neuen Kopie zu verknüpfen.

Sie haben meine Gedanken gelesen und auch den Quellcode. Vielen Dank. Stefan Midjich vor 12 Jahren 0