Exploits (C, VB und Winsock)

hi

bei exploits wird ja häufig solche sachen wie die hier verschickt

x88x13x00x00x00x00x00x00x88x13x00x00

jetzt meine frage, brauche ich hierführ wirklich C zum schicken oder geht auch VB? und wird mit diesen zahlen und buchstaben noch mehr gemacht, ausser einfach an den verwundbaren port geschickt?

help thx

hi

Hallo

bei exploits wird ja häufig solche sachen wie die hier
verschickt

x88x13x00x00x00x00x00x00x88x13x00x00

jetzt meine frage, brauche ich hierführ wirklich C zum
schicken oder geht auch VB?

Du kannst das auch mit VB schicken, aber dann kannst du meistens die Schwachstellen nicht ausnuetzen.
Das sind meist anweisungen eine bestimmte Funktion aufzurufen, das geht in C wesentlich einfacher (s.u.)

und wird mit diesen zahlen und
buchstaben noch mehr gemacht, ausser einfach an den
verwundbaren port geschickt?

Ja.
Es wird ausgefuehrt.
Das ist fast immer Maschinencode der in irgendein array reingeschrieben wird. Wenn ueber das Ende des Arrays geschrieben wird kommen diese Daten manchmal in den Bereich des Arbeitsspeichers in dem die Befehle stehen, dann wird der Code eventuell irgendwann ausgefuehrt.

=> wenn du exploiten willst musst du C lernen (und Assembler)

Gruesse,
Moritz

Du kannst das auch mit VB schicken, aber dann kannst du
meistens die Schwachstellen nicht ausnuetzen.

?

Das sind meist anweisungen eine bestimmte Funktion aufzurufen,
das geht in C wesentlich einfacher (s.u.)

was meinst du damit? kannt du mir ein praxis beispiel gegen?

gb

Hi,
ein konkretes Beispiel hab ich nicht, ich noch keinen exploit geschrieben.
Aber nehmen wir mal an du hast einen service gefunden der ein Passwort nicht laenger als 100 Zeichen erwartet, das aber nicht ueberprueft.
Dann schickst du (egal mit welcher Programmiersprache, kannst es auch per telnet machen :wink: 100 Zeichen muell, z.b. aaaaaaa…aaa
und dahinter maschinen-code. Am besten besorgt man sich 'nen C-Compiler der kompakten Maschinencode erzeugt. Dann schreibst du in C eine Funktion, die deinen eigentlichen Exploit macht, z.B. ein root-shell oeffnet. Das kompilierst du, schaust dir an an welcher Adresse der einstiegspunkt der funktion ist und schreibst hinter die aaaaa’s ganz oft in maschinensprache den Befehl zu dieser Adresse zu springen, z.B.
jmp 0xAABB3401
jmp 0xAABB3401
jmp 0xAABB3401

usw.
Wenn jetzt irgendwann mal der IP (instruction pointer) auf den so ueberschriebenen Speicherbereich springt wird deine Funktion aufgerufen - so einfach *sic* ist dass :wink:

Wenn du heise.de liest findest du ab und zu Veroeffentlichungen ueber sicherheitsluecken, manchmal mit Link zur originalen Homepage wo der Exploit erschien…

Ich hoffe du hast das kapiert und auch kapiert, dass es gar nicht so einfach ist einen ordentlichen exploit zu schreiben - und dass du sehr viel C und Assembler lernen musst wenn du was attackieren willt :wink:

Viel Spass und wenig Erfolg wuenscht dir
Moritz

1 Like