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

[HaBo]

 
Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme.

HowTO shellcode development ?

Diskussion: HowTO shellcode development ? im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hallo, ich hab mir vor ein paar Tagen ein Buch "hacking - the art of exploitation" von nem Kumpel ...

Antwort
Alt 01.06.05, 17:32   #1 (permalink)
 
Registriert seit: 11.02.05
poebel Leistung: Facit NTK
Likes: 0
Standard HowTO shellcode development ?

Anzeige

Hallo, ich hab mir vor ein paar Tagen ein Buch "hacking - the art of exploitation" von nem Kumpel ausgeliehen. Glücklicherweise hat der Verlag gleich mal online ;-)
Iist super geschrieben aber ein haken hat das Ding doch ... (war klar oder ?)
es wird nicht erklärt wie der Autor auf den inhalt des Arrays "shellcode" kommt.

so sieht das aus:

Code:
char shellcode[] =
"\x31\xc0\xb0\x46\x31\xdb\x31\xc9\xcd\x80\xeb\x16\x5b\x31\xc0"
"\x88\x43\x07\x89\x5b\x08\x89\x43\x0c\xb0\x0b\x8d\x4b\x08\x8d"
"\x53\x0c\xcd\x80\xe8\xe5\xff\xff\xff\x2f\x62\x69\x6e\x2f\x73"
"\x68";
hier ist der ganze Quellcode:

http://www.nostarch.com/extras/hacking/chap2/exploit.c

Meine Frage wie hat der diesen shellcode entwickelt ?
poebel ist offline   Mit Zitat antworten
Alt 01.06.05, 19:01   #2 (permalink)
Member of Honour
 
Benutzerbild von ivegotmail
 
Registriert seit: 28.05.03
ivegotmail Leistung: Z3
Likes: 1
Standard

Zitat:
Erstellen von Shellcodes

Zur Erzeugung von Shellcode kann der auszuführende Befehl in C geschrieben und mit einem Compiler übersetzt werden. Das erzeugte Programm wird nun disassembliert (rückübersetzt) und die Funktionsweise des Programms in Assemblersprache nachprogrammiert. Viele Instruktionen können aber weggelassen oder verkürzt werden. Da in C Strings durch ein 0-Byte terminiert werden, dürfen Shellcodes für C-Programme keine 0-Bytes enthalten. Evtl. müssen noch weitere Filter umgangen werden. Da Shellcodes aber auch alphanumerisch sein können, ist dies ein lösbares Problem. Mit einem Debugger können nun die hexdezimalen Befehle (Opcodes) ausgelesen und zu einem String zusammengefügt werden.

Anstatt Befehle auf dem Stack auszuführen, was nicht immer möglich ist (z.B. bei OpenBSD), kann man auch Adressen von Funktionen und Parametern auf dem Stack ablegen. Auch so lässt sich Code ausführen. Dieses Verfahren wird return into libc genannt.
http://de.wikipedia.org/wiki/Shellcode

beispiel zur programmierung von shellcode: http://www.phrack.org/phrack/49/P49-14

in dem buch Forbidden Code wird das programmieren von shellcode auch recht ausführlich beschrieben.

edit: ich seh grad dass "hacking - the art of exploitation" (englisch) das gleiche buch ist wie "Forbidden Code" (deutsch). dann müsste doch ein kapitel übers shellcode schreiben in deinem buch drin sein?!
__________________
http://livehabo.hackerboard.de | http://livebb.sourceforge.net
ivegotmail ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 01.06.05, 22:44   #3 (permalink)
Themenstarter
 
Registriert seit: 11.02.05
poebel Leistung: Facit NTK
Likes: 0
Standard

Ja auf wikipedia hät ich eigentlich auch kommen müssen ;-)

Mein Problem an dem Buch "Forbidden Code" ist nur das ich Windowshellcodes schreiben will, hätte ich vielleicht erwähnen sollen. In Windows kann ich ja schlecht Linux Systemcalls benutzen.

Ich versuch mich gerade daran die WinExec() funktion zu dissamblieren - nur wie soll ich die Adresse der funktion herrausbekommen ? damit ich die "callen" kann.
poebel ist offline   Mit Zitat antworten
Alt 02.06.05, 02:00   #4 (permalink)
Member of Honour
 
Benutzerbild von ivegotmail
 
Registriert seit: 28.05.03
ivegotmail Leistung: Z3
Likes: 1
Standard

Zitat:
Original von poebel
Ich versuch mich gerade daran die WinExec() funktion zu dissamblieren - nur wie soll ich die Adresse der funktion herrausbekommen ? damit ich die "callen" kann.
mit dem programm kannst du zB die absolute adresse rausfinden:
http://www.vividmachines.com/shellcode/arwin.c
in deinem fall müsstest du das programm folgendermaßen aufrufen:
"arwin.exe kernel32.dll WinExec" ("arwin.exe library funktion")

andere möglichkeit wäre zb über ollydbg
- File -> open: C:\winnt\system32\kernel32.dll
- "Launch LOADDLL.EXE?" -> Ja
- Debug -> Call DLL Export
- oben in der dropdownlist stehen alle funktionen und davor jeweils die adresse
__________________
http://livehabo.hackerboard.de | http://livebb.sourceforge.net
ivegotmail ist offline   Mit Zitat antworten
Alt 02.06.05, 09:18   #5 (permalink)
Themenstarter
 
Registriert seit: 11.02.05
poebel Leistung: Facit NTK
Likes: 0
Standard

Danke !
und guck mal hier: >

http://www.vividmachines.com/shellcode/shellcode.html (na ok du wirst es eh wissen ^^)
poebel ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Code Kitchen » HowTO shellcode development ?
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
Windows Driver Development[fertig] sw33tlull4by Code Kitchen 2 05.08.09 12:45
GTK+ 2.0 development headers RemoteC Linux/UNIX 4 10.06.07 10:42
The Process of Software Development dutchman2006 Doppelte Beiträge 3 07.05.07 17:17
Windows Sofware Development Kit Hilfe Raptor Code Kitchen 12 04.02.04 18:57
Shellcode KDSBest Code Kitchen 3 24.12.03 13:25


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