Nicht aus der Schweiz? Besuchen Sie lehmanns.de

Mehr Hacking mit Python (eBook)

Eigene Tools entwickeln für Hacker und Pentester

(Autor)

eBook Download: PDF | EPUB
2015 | 1. Auflage
182 Seiten
dpunkt (Verlag)
978-3-86491-753-0 (ISBN)

Lese- und Medienproben

Mehr Hacking mit Python -  Justin Seitz
Systemvoraussetzungen
Systemvoraussetzungen
23,90 inkl. MwSt
(CHF 23,35)
Der eBook-Verkauf erfolgt durch die Lehmanns Media GmbH (Berlin) zum Preis in Euro inkl. MwSt.
  • Download sofort lieferbar
  • Zahlungsarten anzeigen
Wenn es um die Entwicklung leistungsfähiger und effizienter Hacking-Tools geht, ist Python für die meisten Sicherheitsanalytiker die Sprache der Wahl. Doch wie genau funktioniert das? In dem neuesten Buch von Justin Seitz - dem Autor des Bestsellers 'Hacking mit Python' - entdecken Sie Pythons dunkle Seite. Sie entwickeln Netzwerk-Sniffer, manipulieren Pakete, infizieren virtuelle Maschinen, schaffen unsichtbare Trojaner und vieles mehr. Sie lernen praktisch, wie man • einen 'Command-and-Control'-Trojaner mittels GitHub schafft • Sandboxing erkennt und gängige Malware-Aufgaben wie Keylogging und Screenshotting automatisiert • Windows-Rechte mittels kreativer Prozesskontrolle ausweitet • offensive Speicherforensik-Tricks nutzt, um Passwort-Hashes abzugreifen und Shellcode in virtuelle Maschinen einzuspeisen • das beliebte Web-Hacking-Tool Burp erweitert • die Windows COM-Automatisierung nutzt, um einen Man-in-the-Middle-Angriff durchzuführen • möglichst unbemerkt Daten aus einem Netzwerk abgreift Eine Reihe von Insider-Techniken und kreativen Aufgaben zeigen Ihnen, wie Sie die Hacks erweitern und eigene Exploits entwickeln können.

Justin Seitz ist als leitender Sicherheitsexperte bei der Firma Immunity, Inc. beschäftigt, wo er seine Zeit mit Fehlersuche, Reverse Engineering, der Entwicklung von Exploits und dem Programmieren in Python verbringt. Er ist der Autor von 'Hacking mit Python - Fehlersuche, Programmanalyse, Reverse Engineering' (dpunkt.verlag, 2009), dem ersten Buch, in dem Python zur Sicherheitsanalyse eingesetzt worden ist.

Justin Seitz ist als leitender Sicherheitsexperte bei der Firma Immunity, Inc. beschäftigt, wo er seine Zeit mit Fehlersuche, Reverse Engineering, der Entwicklung von Exploits und dem Programmieren in Python verbringt. Er ist der Autor von "Hacking mit Python - Fehlersuche, Programmanalyse, Reverse Engineering" (dpunkt.verlag, 2009), dem ersten Buch, in dem Python zur Sicherheitsanalyse eingesetzt worden ist.

Vorwort 7
Danksagungen 8
Inhalt 9
1 Einführung 13
2 Ihre Python-Umgebung einrichten 15
2.1 Kali Linux installieren 15
2.2 WingIDE 17
3 Das Netzwerk: Grundlagen 23
3.1 Python-Networking – kurz und knapp 23
3.2 TCP-Client 24
3.3 UDP-Client 25
3.4 TCP-Server 25
3.5 Netcat ersetzen 27
3.6 Einen TCP-Proxy entwickeln 34
3.7 SSH mit Paramiko 40
3.8 SSH-Tunneling 44
4 Das Netzwerk: Raw Sockets und Sniffing 49
4.1 Ein UDP-Host-Discovery-Tool entwickeln 49
4.2 Paket-Sniffing unter Windows und Linux 50
4.3 Decodierung der IP-Schicht 52
4.4 ICMP decodieren 56
5 MIT SCAPY das Netzwerk übernehmen 63
5.1 E-Mail-Passwörter stehlen 63
5.2 ARP-Cache-Poisoning mit Scapy 66
5.3 PCAP-Verarbeitung 71
6 Hacking im Web 77
6.1 Die Socket-Bibliothek für das Web: urllib2 77
6.2 Open-Source-Webanwendungen 78
6.3 Brute-Forcing von Verzeichnissen und Dateien 81
6.4 Brute-Forcing der HTML-Formular-Authentifizierung 85
7 Den Burp-Proxy erweitern 93
7.1 Setup 93
7.2 Burp Fuzzing 95
7.3 Bing für Burp 105
7.4 Website-Inhalte in Passwort-Gold verwandeln 111
8 Command and Control per Github 119
8.1 Einen GitHub-Account einrichten 119
8.2 Module anlegen 121
8.3 Trojaner-Konfiguration 122
8.4 Einen GitHub-fähigen Trojaner entwickeln 123
8.4.1 Pythons import-Funktionalität hacken 125
9 Typische Trojaner-Aufgaben unter Windows 129
9.1 Keylogging 129
9.2 Screenshots 132
9.3 Shellcode ausführen 134
9.4 Sandbox-Erkennung 136
10 Hacking-Spaß mit dem Internet Explorer 141
10.1 Eine Art Man-in-the-Browser-Angriff 141
10.1.1 Den Server aufbauen 145
10.1.2 Die Probe aufs Exempel 146
10.2 Daten ausschleusen per IE-COM 146
11 Windows-Rechte ausweiten 155
11.1 Voraussetzungen schaffen 156
11.2 Einen Prozessmonitor entwickeln 156
11.2.1 Prozessüberwachung mit WMI 157
11.3 Windows-Token-Rechte 160
11.4 Das Rennen gewinnen 162
11.5 Code-Injection 166
12 Offensive Forensik automatisieren 169
12.1 Installation 169
12.2 Profile 170
12.3 Passwort-Hashes abgreifen 170
12.4 Direkte Code-Injection 174
Index 181
www.dpunkt.de 0

2 Ihre Python-Umgebung einrichten


Das ist der langweiligste, aber dennoch ein sehr wichtiger Teil dieses Buches. Hier richten wir eine Umgebung ein, in der Sie Python-Programme entwickeln und testen können. Wir absolvieren einen Crashkurs zur Einrichtung einer Kali Linux-VM (virtuellen Maschine) und installieren eine nette IDE, sodass Sie alles haben, was Sie zur Entwicklung von Code benötigen. Am Ende dieses Kapitels sollten Sie alle Übungen und Codebeispiele in Angriff nehmen können, die im Rest des Buches auf Sie zukommen.

Bevor Sie loslegen, müssen Sie den VMWare Player1 herunterladen und installieren. Sie sollten auch einige Windows-VMs vorbereiten, einschließlich Windows XP und Windows 7, vorzugsweise in der 32-Bit-Version.

2.1 Kali Linux installieren


Kali ist der Nachfolger der von Offensive Security entwickelten BackTrack-Linux-Distribution, die von Grund auf als Penetrationstest-Betriebssystem konzipiert wurde. Es wird mit einer ganzen Reihe vorinstallierter Tools ausgeliefert und basiert auf Debian Linux, d.h., Sie können eine Vielzahl von Tools und Bibliotheken nachinstallieren.

Besorgen Sie sich zuerst ein Kali-VM-Image von der folgenden URL: http://images.kali.org/Kali-Linux-1.1.0c-vm-486.7z2. Laden Sie das Image herunter und entpacken Sie es. Durch einen Doppelklick wird es dann im VMWare Player gestartet. Der Standardbenutzername lautet root und das Passwort toor. Sie sollten in einer vollständigen Kali-Desktop-Umgebung landen (siehe Abbildung 2–1).

Abb. 2–1 Der Kali-Linux-Desktop

Zuerst wollen wir nun sicherstellen, dass die korrekte Version von Python installiert ist. Im gesamten Buch arbeiten wir mit Python 2.7. In der Shell (Applications › Accessories › Terminal) führen Sie den folgenden Befehl aus:

root@kali:~# python --version
Python 2.7.3
root@kali:~#

Wenn Sie das von mir weiter oben empfohlene Image heruntergeladen haben, wird Python 2.7 automatisch installiert. Bitte beachten Sie, dass einige Codebeispiele aus diesem Buch mit anderen Versionen von Python nicht funktionieren.

Nun wollen wir nützliche Python-Paketmanagement-Tools in Form von easy_install und pip installieren. Diese ähneln dem Paketmanager apt, da sie es erlauben, Python-Bibliotheken direkt zu installieren, ohne sie manuell herunterladen, entpacken und installieren zu müssen. Wir installieren beide Pakete durch Eingabe des folgenden Befehls:

root@kali:~#: apt-get install python-setuptools python-pip

Sobald die Pakete installiert sind, können wir einen kurzen Test machen, indem wir das Modul installieren, das wir in Kapitel 8 verwenden, um einen GitHub-basierten Trojaner zu bauen. Geben Sie den folgenden Befehl in Ihrem Terminal ein:

root@kali:~#: pip install github3.py

Die Ausgabe im Terminal sollte anzeigen, dass die Bibliothek heruntergeladen und installiert wurde.

Dann öffnen wir eine Python-Shell und prüfen, ob die Bibliothek korrekt installiert wurde:

root@kali:~#: python
Python 2.7.3 (default, Mar 14 2014, 11:57:14)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import github3
>>> exit()

Sind Ihre Ergebnisse nicht mit diesen identisch, ist Ihre Python-Umgebung nicht korrekt konfiguriert und Sie haben große Schande über uns gebracht! In diesem Fall müssen Sie sicherstellen, dass alle obigen Schritte ausgeführt wurden und die korrekte Kali-Version installiert wurde.

Denken Sie daran, dass der Code für die meisten Beispiele in diesem Buch in verschiedenen Umgebungen entwickelt werden kann, einschließlich Mac, Linux und Windows. Es gibt einige Windows-spezifische Kapitel, aber das lasse ich Sie zu Beginn des jeweiligen Kapitels wissen.

Nachdem wir nun eine virtuelle Maschine für das Hacking eingerichtet haben, wollen wir eine Python-IDE für die Entwicklung installieren.

2.2 WingIDE


Eigentlich bin ich kein Verfechter kommerzieller Software, doch WingIDE ist die beste IDE, mit der ich in den letzten sieben Jahren bei Immunity gearbeitet habe. WingIDE bietet alle gängigen IDE-Funktionalitäten wie Autovervollständigung und die Beschreibung von Funktionsparametern, doch sind es vor allem die Debugging-Fähigkeiten, die es von anderen IDEs abhebt. Im Folgenden gebe ich einen kurzen Überblick über die kommerzielle Version von WingIDE, aber natürlich können Sie die Version nutzen, die sich für Sie am besten eignet.3

Sie können WingIDE von http://www.wingware.com/ herunterladen; ich empfehle die Testversion (Trial), damit Sie aus erster Hand einige der Features erleben können, die in der kommerziellen Version zur Verfügung stehen.

Sie können auf jeder gewünschten Plattform entwickeln, doch zumindest am Anfang sollten Sie WingIDE auf Ihrer Kali-VM installieren. Wenn Sie meinen

Anweisungen bis hierhin gefolgt sind, sollten Sie das 32-Bit-deb-Paket für WingIDE herunterladen und in Ihrem Benutzerverzeichnis speichern. Öffnen Sie dann ein Terminal und führen Sie den folgenden Befehl aus:

root@kali:~# dpkg -i wingide5_5.0.9-1_i386.deb

Damit sollte WingIDE problemlos installiert werden. Kommt es zu Installationsfehlern, sind möglicherweise einige Abhängigkeiten nicht erfüllt. In diesem Fall führen Sie einfach den folgenden Befehl aus:

root@kali:~# apt-get -f install

Damit sollten alle fehlenden Abhängigkeiten aufgelöst und WingIDE installiert werden. Um sicherzustellen, dass es korrekt installiert wurde, starten Sie das Programm über den Kali-Desktop (siehe Abb. 2–2).

Abb. 2–2 WingIDE im Kali-Desktop starten

Öffnen Sie nun eine neue (leere) Python-Datei. Folgen Sie mir nun bei einem kurzen Überblick einiger nützlicher Features. Erst einmal sollte der Bildschirm aussehen wie in Abbildung 2–3, d.h., der Haupt-Editierbereich befindet sich oben links, und unten sind eine Reihe von Tabs aufgeführt.

Abb. 2–3 WingIDE-Layout

Nun wollen wir ein paar Zeilen einfachen Beispielcode eingeben, um einige der nützlichen Funktionen von WingIDE vorzustellen, darunter auch die Tabs »Debug Probe« und »Stack Data«. Geben Sie den folgenden Code im Editor ein:

def sum(number_one,number_two):
    number_one_int = convert_integer(number_one)
    number_two_int = convert_integer(number_two)

    result = number_one_int + number_two_int

    return result
def convert_integer(number_string):

    converted_integer = int(number_string)
    return converted_integer
answer = sum("1","2")

Zugegeben, dieses Beispiel ist doch arg gestellt, doch es zeigt sehr gut, wie man sich mit WingIDE das Leben leichter macht. Sichern Sie den Code unter einem beliebigen Dateinamen, klicken Sie dann auf den Menüpunkt Debug und wählen Sie dann die Option Select Current as Main Debug File, wie in Abbildung 2–4 zu sehen.

Abb. 2–4 Aktuelles Python-Skript zum Debugging auswählen

Nun setzen Sie einen Breakpunkt in der folgenden Zeile:

return converted_integer

Zu diesem Zweck klicken Sie den linken Rand an oder drücken die F9-Taste. Am Rand erscheint daraufhin ein kleiner roter Punkt. Führen Sie das Skript nun aus, indem Sie F5 drücken. Die Ausführung wird am Breakpunkt angehalten. Klicken Sie den Reiter Stack Data an und es erscheint eine Seite wie in Abbildung 2–5.

Im Reiter »Stack Data« finden wir einige nützliche Informationen, etwa den Zustand aller lokalen und globalen Variablen beim Erreichen des Breakpunkts. Das erlaubt das Debugging komplexeren Codes, bei dem die Variablen während der Ausführung untersucht werden müssen, um Fehlern auf die Spur zu kommen. Wenn Sie die Dropdown-Leiste anklicken, sehen Sie auch den aktuellen Aufrufstack (Call-Stack). Dieser sagt Ihnen, welche Funktion die Funktion aufgerufen hat, in der Sie sich gerade befinden. Sehen Sie sich den Stacktrace in Abbildung 2–6 an.

Abb. 2–5 Anzeige der Stackdaten beim Erreichen eines Breakpunkts

Abb. 2–6 Der aktueller Stacktrace

Wir können sehen, dass convert_integer von der sum-Funktion in Zeile 3 unseres Python-Skripts aufgerufen wurde. Das ist sehr praktisch bei rekursiven Funktionen, oder wenn eine Funktion von vielen verschiedenen Stellen aufgerufen wird. Die Nutzung des »Stack Data«-Tabs wird in Ihrer Karriere als Python-Entwickler sehr hilfreich sein!

Das nächste wichtige Feature ist der Tab »Debug Probe«. Dieser Tab ermöglicht es Ihnen, in eine Python-Shell zu wechseln, die innerhalb des aktuellen Kontexts beim...

Erscheint lt. Verlag 9.10.2015
Verlagsort Heidelberg
Sprache deutsch
Themenwelt Mathematik / Informatik Informatik Netzwerke
Schlagworte Backtrack Linux • Exploit • Exploits • Kali • Kali Linux • Linux • Metasploit • Penetration Testing • Pentesting • security
ISBN-10 3-86491-753-0 / 3864917530
ISBN-13 978-3-86491-753-0 / 9783864917530
Haben Sie eine Frage zum Produkt?
PDFPDF (Wasserzeichen)
Größe: 8,2 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.

EPUBEPUB (Wasserzeichen)
Größe: 20,4 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: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belle­tristik und Sach­büchern. Der Fließ­text wird dynamisch an die Display- und Schrift­größe ange­passt. Auch für mobile Lese­geräte ist EPUB daher gut geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software 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 eine kostenlose App.
Geräteliste und zusätzliche Hinweise

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
Das umfassende Handbuch

von Martin Linten; Axel Schemberg; Kai Surendorf

eBook Download (2023)
Rheinwerk Computing (Verlag)
CHF 29,20