E-Book, Deutsch, 224 Seiten
Seitz Hacking mit Python
1. Auflage 2009
ISBN: 978-3-89864-981-0
Verlag: Rheinwerk Verlag
Format: PDF
Kopierschutz: 1 - PDF Watermark
Fehlersuche, Programmanalyse, Reverse Engineering
E-Book, Deutsch, 224 Seiten
ISBN: 978-3-89864-981-0
Verlag: Rheinwerk Verlag
Format: PDF
Kopierschutz: 1 - PDF Watermark
Justin Seitz ist als Sicherheitsingenieur bei der Firma Immunity, Inc., beschäftigt, wo er einen Großteil seiner Arbeitszeit für Softwaretests, Reverse Engineering, Python-Entwicklung und Analyse von Malware aufwendet.
Autoren/Hrsg.
Weitere Infos & Material
1;Vorwort;6
2;Danksagungen;8
3;Inhaltsverzeichnis;10
4;Einführung;14
5;1 Ihre Entwicklungsumgebung einrichten;16
5.1;1.1 Anforderungen an das Betriebssystem;16
5.2;1.2 Python 2.5 herunterladen und installieren;17
5.2.1;1.2.1 Python unter Windows installieren;17
5.2.2;1.2.2 Python unter Linux installieren;17
5.3;1.3 Einrichten von Eclipse und PyDev;19
5.3.1;1.3.1 Des Hackers bester Freund: ctypes;20
5.3.2;1.3.2 Dynamische Libraries nutzen;21
5.3.3;1.3.3 C-Datentypen konstruieren;23
5.3.4;1.3.4 Parameter per Referenz übergeben;25
5.3.5;1.3.5 Strukturen und Unions definieren;25
6;2 Debugger und Debugger-Design;28
6.1;2.1 Universal-CPU-Register;29
6.2;2.2 Der Stack;31
6.3;2.3 Debug-Events;33
6.4;2.4 Breakpunkte;34
6.4.1;2.4.1 Software-Breakpunkte;34
6.4.2;2.4.2 Hardware-Breakpunkte;37
6.4.3;2.4.3 Speicher-Breakpunkte;39
7;3 Entwicklung eines Windows-Debuggers;42
7.1;3.1 Prozess, wo bist Du?;42
7.2;3.2 Den Zustand der CPU-Register abrufen;50
7.2.1;3.2.1 Threads aufspüren;51
7.2.2;3.2.2 Alles zusammenfügen;52
7.3;3.3 Debug-Event-Handler implementieren;56
7.4;3.4 Der machtvolle Breakpunkt;60
7.4.1;3.4.1 Software-Breakpunkte;60
7.4.2;3.4.2 Hardware-Breakpunkte;65
7.4.3;3.4.3 Speicher-Breakpunkte;69
7.5;3.5 Fazit;73
8;4 PyDbg - ein reiner Python-Debugger für Windows;74
8.1;4.1 Breakpunkt-Handler erweitern;74
8.2;4.2 Handler für Zugriffsverletzungen;77
8.3;4.3 Prozess-Schnappschüsse;80
8.3.1;4.3.1 Prozess-Schnappschüsse erstellen;80
8.3.2;4.3.2 Alles zusammenfügen;82
9;5 Immunity Debugger - Das Beste beider Welten;86
9.1;5.1 Den Immunity Debugger installieren;86
9.2;5.2 Immunity Debugger - kurze Einführung;87
9.2.1;5.2.1 PyCommands;88
9.2.2;5.2.2 PyHooks;88
9.3;5.3 Entwicklung von Exploits;90
9.3.1;5.3.1 Exploit-freundliche Instruktionen finden;90
9.3.2;5.3.2 »Böse« Zeichen filtern;92
9.3.3;5.3.3 DEP unter Windows umgehen;95
9.4;5.4 Anti-Debugging-Routinen in Malware umgehen;99
9.4.1;5.4.1 IsDebuggerPresent;100
9.4.2;5.4.2 Prozessiteration unterbinden;100
10;6 Hooking;102
10.1;6.1 Soft Hooking mit PyDbg;102
10.2;6.2 Hard Hooking mit dem Immunity Debugger;107
11;7 DLL- und Code-Injection;114
11.1;7.1 Erzeugung entfernter Threads;114
11.1.1;7.1.1 DLL-Injection;116
11.1.2;7.1.2 Code-Injection;118
11.2;7.2 Zum Übeltäter werden;121
11.2.1;7.2.1 Dateien verstecken;121
11.2.2;7.2.2 Eine Hintertür codieren;122
11.2.3;7.2.3 Kompilieren mit py2exe;126
12;8 Fuzzing;130
12.1;8.1 Fehlerklassen;131
12.1.1;8.1.1 Pufferüberläufe;131
12.1.2;8.1.2 Integerüberläufe;132
12.1.3;8.1.3 Formatstring-Angriffe;134
12.2;8.2 Datei-Fuzzer;135
12.3;8.3 Weitere Überlegungen;141
12.3.1;8.3.1 Codedeckungsgrad (Code Coverage);141
12.3.2;8.3.2 Automatisierte statische Analyse;142
13;9 Sulley;144
13.1;9.1 Sulley installieren;145
13.2;9.2 Sulley-Primitive;145
13.2.1;9.2.1 Strings;146
13.2.2;9.2.2 Trennsymbole;146
13.2.3;9.2.3 Statische und zufällige Primitive;146
13.2.4;9.2.4 Binäre Daten;147
13.2.5;9.2.5 Integerwerte;147
13.2.6;9.2.6 Blöcke und Gruppen;148
13.3;9.3 WarFTPD knacken mit Sulley;149
13.3.1;9.3.1 FTP - kurze Einführung;150
13.3.2;9.3.2 Das FTP-Protokollgerüst erstellen;151
13.3.3;9.3.3 Sulley-Sessions;152
13.3.4;9.3.4 Netzwerk- und Prozessüberwachung;153
13.3.5;9.3.5 Fuzzing und das Sulley-Webinterface;154
14;10 Fuzzing von Windows-Treibern;158
14.1;10.1 Treiberkommunikation;159
14.2;10.2 Treiber-Fuzzing mit dem Immunity Debugger;160
14.3;10.3 Driverlib - das statische Analysetool für Treiber;163
14.3.1;10.3.1 Gerätenamen aufspüren;164
14.3.2;10.3.2 Die IOCTL-Dispatch-Routine aufspüren;165
14.3.3;10.3.3 Unterstützte IOCTL-Codes aufspüren;167
14.4;10.4 Einen Treiber-Fuzzer entwickeln;169
15;11 IDAPython - Scripting für IDA Pro;174
15.1;11.1 IDAPython installieren;175
15.2;11.2 IDAPython-Funktionen;176
15.2.1;11.2.1 Utility-Funktionen;176
15.2.2;11.2.2 Segmente;176
15.2.3;11.2.3 Funktionen;177
15.2.4;11.2.4 Cross-Referenzen;177
15.2.5;11.2.5 Debugger-Hooks;178
15.3;11.3 Beispielskripten;179
15.3.1;11.3.1 Aufspüren von Cross-Referenzen auf gefährliche Funktionen;179
15.3.2;11.3.2 Codeabdeckung von Funktionen;181
15.3.3;11.3.3 Stackgröße berechnen;182
16;12 PyEmu - der skriptfähige Emulator;186
16.1;12.1 PyEmu installieren;186
16.2;12.2 PyEmu-Übersicht;187
16.2.1;12.2.1 PyCPU;187
16.2.2;12.2.2 PyMemory;188
16.2.3;12.2.3 PyEmu;188
16.2.4;12.2.4 Ausführung;188
16.2.5;12.2.5 Speicher- und Register-Modifier;188
16.2.6;12.2.6 Handler;189
16.3;12.3 IDAPyEmu;194
16.3.1;12.3.1 Funktionen emulieren;196
16.3.2;12.3.2 PEPyEmu;199
16.3.3;12.3.3 Packer für Executables;200
16.3.4;12.3.4 UPX-Packer;200
16.3.5;12.3.5 UPX mit PEPyEmu entpacken;201
17;Index;206




