Hacking mit Python (eBook)

Fehlersuche, Programmanalyse, Reverse Engineering

(Autor)

eBook Download: PDF
2009 | 1. Auflage
224 Seiten
dpunkt (Verlag)
978-3-89864-981-0 (ISBN)

Lese- und Medienproben

Hacking mit Python -  Justin Seitz
Systemvoraussetzungen
33,00 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen
Python wird mehr und mehr zur bevorzugten Programmiersprache von Hackern, Reverse Engineers und Softwaretestern, weil sie es einfach macht, schnell zu entwickeln. Gleichzeitig bietet Python die Low-Level-Unterstützung und die Bibliotheken, die Hacker glücklich machen. Hacking mit Python bietet eine umfassende Anleitung, wie man diese Sprache für eine Vielzahl von Hacking-Aufgaben nutzen kann. Das Buch erläutert die Konzepte hinter Hacking-Tools und -Techniken wie Debugger, Trojaner, Fuzzer und Emulatoren. Doch der Autor Justin Seitz geht über die Theorie hinaus und zeigt, wie man existierende Python-basierte Sicherheits-Tools nutzt - und wie man eigene entwickelt, wenn die vorhandenen nicht ausreichen. Sie lernen, wie man: - lästige Reverse Engineering- und Sicherheits-Aufgaben automatisiert - einen eigenen Debugger entwirft und programmiert - Windows-Treiber 'fuzzed' und mächtige Fuzzer von Grund auf entwickelt - Code- und Library-Injection, Soft- und Hard-Hooks und andere Software-Tricks vornimmt - gesicherten Traffic aus einer verschlüsselten Webbrowser-Session erschnüffelt - PyDBG, Immunity Debugger, Sulley, IDAPython, PyEMU und andere Software nutzt Die weltbesten Hacker nutzen Python für ihre Arbeit. Warum nicht auch Sie?

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?
Wie bewerten Sie den Artikel?
Bitte geben Sie Ihre Bewertung ein:
Bitte geben Sie Daten ein:
PDFPDF (Wasserzeichen)
Größe: 3,1 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: PDF (Portable Document Format)
Mit einem festen Seiten­layout eignet sich die PDF besonders für Fach­bücher mit Spalten, Tabellen und Abbild­ungen. Eine PDF kann auf fast allen Geräten ange­zeigt werden, ist aber für kleine Displays (Smart­phone, eReader) nur einge­schrä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.

Mehr entdecken
aus dem Bereich
Für Ein- und Umsteiger

von Bernd Klein

eBook Download (2021)
Carl Hanser Verlag GmbH & Co. KG
24,99
Für Ein- und Umsteiger

von Bernd Klein

eBook Download (2021)
Carl Hanser Verlag GmbH & Co. KG
24,99