Hacking mit Python (eBook)
224 Seiten
dpunkt (Verlag)
978-3-89864-981-0 (ISBN)
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.
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.
Vorwort 6
Danksagungen 8
Inhaltsverzeichnis 10
Einführung 14
1 Ihre Entwicklungsumgebung einrichten 16
1.1 Anforderungen an das Betriebssystem 16
1.2 Python 2.5 herunterladen und installieren 17
1.2.1 Python unter Windows installieren 17
1.2.2 Python unter Linux installieren 17
1.3 Einrichten von Eclipse und PyDev 19
1.3.1 Des Hackers bester Freund: ctypes 20
1.3.2 Dynamische Libraries nutzen 21
1.3.3 C-Datentypen konstruieren 23
1.3.4 Parameter per Referenz übergeben 25
1.3.5 Strukturen und Unions definieren 25
2 Debugger und Debugger-Design 28
2.1 Universal-CPU-Register 29
2.2 Der Stack 31
2.3 Debug-Events 33
2.4 Breakpunkte 34
2.4.1 Software-Breakpunkte 34
2.4.2 Hardware-Breakpunkte 37
2.4.3 Speicher-Breakpunkte 39
3 Entwicklung eines Windows-Debuggers 42
3.1 Prozess, wo bist Du? 42
3.2 Den Zustand der CPU-Register abrufen 50
3.2.1 Threads aufspüren 51
3.2.2 Alles zusammenfügen 52
3.3 Debug-Event-Handler implementieren 56
3.4 Der machtvolle Breakpunkt 60
3.4.1 Software-Breakpunkte 60
3.4.2 Hardware-Breakpunkte 65
3.4.3 Speicher-Breakpunkte 69
3.5 Fazit 73
4 PyDbg - ein reiner Python-Debugger für Windows 74
4.1 Breakpunkt-Handler erweitern 74
4.2 Handler für Zugriffsverletzungen 77
4.3 Prozess-Schnappschüsse 80
4.3.1 Prozess-Schnappschüsse erstellen 80
4.3.2 Alles zusammenfügen 82
5 Immunity Debugger - Das Beste beider Welten 86
5.1 Den Immunity Debugger installieren 86
5.2 Immunity Debugger - kurze Einführung 87
5.2.1 PyCommands 88
5.2.2 PyHooks 88
5.3 Entwicklung von Exploits 90
5.3.1 Exploit-freundliche Instruktionen finden 90
5.3.2 »Böse« Zeichen filtern 92
5.3.3 DEP unter Windows umgehen 95
5.4 Anti-Debugging-Routinen in Malware umgehen 99
5.4.1 IsDebuggerPresent 100
5.4.2 Prozessiteration unterbinden 100
6 Hooking 102
6.1 Soft Hooking mit PyDbg 102
6.2 Hard Hooking mit dem Immunity Debugger 107
7 DLL- und Code-Injection 114
7.1 Erzeugung entfernter Threads 114
7.1.1 DLL-Injection 116
7.1.2 Code-Injection 118
7.2 Zum Übeltäter werden 121
7.2.1 Dateien verstecken 121
7.2.2 Eine Hintertür codieren 122
7.2.3 Kompilieren mit py2exe 126
8 Fuzzing 130
8.1 Fehlerklassen 131
8.1.1 Pufferüberläufe 131
8.1.2 Integerüberläufe 132
8.1.3 Formatstring-Angriffe 134
8.2 Datei-Fuzzer 135
8.3 Weitere Überlegungen 141
8.3.1 Codedeckungsgrad (Code Coverage) 141
8.3.2 Automatisierte statische Analyse 142
9 Sulley 144
9.1 Sulley installieren 145
9.2 Sulley-Primitive 145
9.2.1 Strings 146
9.2.2 Trennsymbole 146
9.2.3 Statische und zufällige Primitive 146
9.2.4 Binäre Daten 147
9.2.5 Integerwerte 147
9.2.6 Blöcke und Gruppen 148
9.3 WarFTPD knacken mit Sulley 149
9.3.1 FTP - kurze Einführung 150
9.3.2 Das FTP-Protokollgerüst erstellen 151
9.3.3 Sulley-Sessions 152
9.3.4 Netzwerk- und Prozessüberwachung 153
9.3.5 Fuzzing und das Sulley-Webinterface 154
10 Fuzzing von Windows-Treibern 158
10.1 Treiberkommunikation 159
10.2 Treiber-Fuzzing mit dem Immunity Debugger 160
10.3 Driverlib - das statische Analysetool für Treiber 163
10.3.1 Gerätenamen aufspüren 164
10.3.2 Die IOCTL-Dispatch-Routine aufspüren 165
10.3.3 Unterstützte IOCTL-Codes aufspüren 167
10.4 Einen Treiber-Fuzzer entwickeln 169
11 IDAPython - Scripting für IDA Pro 174
11.1 IDAPython installieren 175
11.2 IDAPython-Funktionen 176
11.2.1 Utility-Funktionen 176
11.2.2 Segmente 176
11.2.3 Funktionen 177
11.2.4 Cross-Referenzen 177
11.2.5 Debugger-Hooks 178
11.3 Beispielskripten 179
11.3.1 Aufspüren von Cross-Referenzen auf gefährliche Funktionen 179
11.3.2 Codeabdeckung von Funktionen 181
11.3.3 Stackgröße berechnen 182
12 PyEmu - der skriptfähige Emulator 186
12.1 PyEmu installieren 186
12.2 PyEmu-Übersicht 187
12.2.1 PyCPU 187
12.2.2 PyMemory 188
12.2.3 PyEmu 188
12.2.4 Ausführung 188
12.2.5 Speicher- und Register-Modifier 188
12.2.6 Handler 189
12.3 IDAPyEmu 194
12.3.1 Funktionen emulieren 196
12.3.2 PEPyEmu 199
12.3.3 Packer für Executables 200
12.3.4 UPX-Packer 200
12.3.5 UPX mit PEPyEmu entpacken 201
Index 206
Erscheint lt. Verlag | 24.8.2009 |
---|---|
Verlagsort | Heidelberg |
Sprache | deutsch |
Themenwelt | Mathematik / Informatik ► Informatik ► Netzwerke |
Informatik ► Programmiersprachen / -werkzeuge ► Python | |
Schlagworte | Debugging • Debugging; Hacking; Programmierung; Python • Hacking • Programmierung • Python |
ISBN-10 | 3-89864-981-4 / 3898649814 |
ISBN-13 | 978-3-89864-981-0 / 9783898649810 |
Haben Sie eine Frage zum Produkt? |
Größe: 3,1 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.
Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich