Sie sind hier
E-Book

Mehr Hacking mit Python

Eigene Tools entwickeln für Hacker und Pentester

AutorJustin Seitz
Verlagdpunkt
Erscheinungsjahr2015
Seitenanzahl182 Seiten
ISBN9783864917523
FormatePUB/PDF
KopierschutzWasserzeichen/DRM
GerätePC/MAC/eReader/Tablet
Preis29,90 EUR
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.

Kaufen Sie hier:

Horizontale Tabs

Leseprobe

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...

Blick ins Buch
Inhaltsverzeichnis
Vorwort7
Danksagungen8
Inhalt9
1 Einführung13
2 Ihre Python-Umgebung einrichten15
2.1 Kali Linux installieren15
2.2 WingIDE17
3 Das Netzwerk: Grundlagen23
3.1 Python-Networking – kurz und knapp23
3.2 TCP-Client24
3.3 UDP-Client25
3.4 TCP-Server25
3.5 Netcat ersetzen27
3.6 Einen TCP-Proxy entwickeln34
3.7 SSH mit Paramiko40
3.8 SSH-Tunneling44
4 Das Netzwerk: Raw Sockets und Sniffing49
4.1 Ein UDP-Host-Discovery-Tool entwickeln49
4.2 Paket-Sniffing unter Windows und Linux50
4.3 Decodierung der IP-Schicht52
4.4 ICMP decodieren56
5 MIT SCAPY das Netzwerk übernehmen63
5.1 E-Mail-Passwörter stehlen63
5.2 ARP-Cache-Poisoning mit Scapy66
5.3 PCAP-Verarbeitung71
6 Hacking im Web77
6.1 Die Socket-Bibliothek für das Web: urllib277
6.2 Open-Source-Webanwendungen78
6.3 Brute-Forcing von Verzeichnissen und Dateien81
6.4 Brute-Forcing der HTML-Formular-Authentifizierung85
7 Den Burp-Proxy erweitern93
7.1 Setup93
7.2 Burp Fuzzing95
7.3 Bing für Burp105
7.4 Website-Inhalte in Passwort-Gold verwandeln111
8 Command and Control per Github119
8.1 Einen GitHub-Account einrichten119
8.2 Module anlegen121
8.3 Trojaner-Konfiguration122
8.4 Einen GitHub-fähigen Trojaner entwickeln123
8.4.1 Pythons import-Funktionalität hacken125
9 Typische Trojaner-Aufgaben unter Windows129
9.1 Keylogging129
9.2 Screenshots132
9.3 Shellcode ausführen134
9.4 Sandbox-Erkennung136
10 Hacking-Spaß mit dem Internet Explorer141
10.1 Eine Art Man-in-the-Browser-Angriff141
10.1.1 Den Server aufbauen145
10.1.2 Die Probe aufs Exempel146
10.2 Daten ausschleusen per IE-COM146
11 Windows-Rechte ausweiten155
11.1 Voraussetzungen schaffen156
11.2 Einen Prozessmonitor entwickeln156
11.2.1 Prozessüberwachung mit WMI157
11.3 Windows-Token-Rechte160
11.4 Das Rennen gewinnen162
11.5 Code-Injection166
12 Offensive Forensik automatisieren169
12.1 Installation169
12.2 Profile170
12.3 Passwort-Hashes abgreifen170
12.4 Direkte Code-Injection174
Index181
www.dpunkt.de0

Weitere E-Books zum Thema: Netzwerke - Clouds - Datenbanken

Sichere Netzwerkkommunikation

E-Book Sichere Netzwerkkommunikation
Grundlagen, Protokolle und Architekturen Format: PDF

Netzwerke werden in allen Bereichen der IT eingesetzt, und es gibt zahlreiche Technologien zur sicheren Netzwerkkommunikation. Doch welche der verfügbaren Techniken lassen sich kombinieren und in der…

Sichere Netzwerkkommunikation

E-Book Sichere Netzwerkkommunikation
Grundlagen, Protokolle und Architekturen Format: PDF

Netzwerke werden in allen Bereichen der IT eingesetzt, und es gibt zahlreiche Technologien zur sicheren Netzwerkkommunikation. Doch welche der verfügbaren Techniken lassen sich kombinieren und in der…

Sichere Netzwerkkommunikation

E-Book Sichere Netzwerkkommunikation
Grundlagen, Protokolle und Architekturen Format: PDF

Netzwerke werden in allen Bereichen der IT eingesetzt, und es gibt zahlreiche Technologien zur sicheren Netzwerkkommunikation. Doch welche der verfügbaren Techniken lassen sich kombinieren und in der…

Sichere Netzwerkkommunikation

E-Book Sichere Netzwerkkommunikation
Grundlagen, Protokolle und Architekturen Format: PDF

Netzwerke werden in allen Bereichen der IT eingesetzt, und es gibt zahlreiche Technologien zur sicheren Netzwerkkommunikation. Doch welche der verfügbaren Techniken lassen sich kombinieren und in der…

Microsoft ISA Server 2006

E-Book Microsoft ISA Server 2006
Leitfaden für Installation, Einrichtung und Wartung Format: PDF

Im Januar 2005 ist mein erstes Buch zum Thema ISA Server 2004 erschienen. Die Erstauflage war bereits nach wenigen Monaten ausverkauft, was offensichtlich bedeutet, dass der Bedarf nach Informationen…

Microsoft ISA Server 2006

E-Book Microsoft ISA Server 2006
Leitfaden für Installation, Einrichtung und Wartung Format: PDF

Im Januar 2005 ist mein erstes Buch zum Thema ISA Server 2004 erschienen. Die Erstauflage war bereits nach wenigen Monaten ausverkauft, was offensichtlich bedeutet, dass der Bedarf nach Informationen…

Veritas Storage Foundation®

E-Book Veritas Storage Foundation®
High End-Computing für UNIX, Design und Implementation von Hochverfügbarkeitslösungen mit VxVM und VCS Format: PDF

Hochkonzentrierter und praxisorientierter Kurs zur 'Veritas Storage Foundation': Storage Virtualisierung (Teil 1) erzeugt virtuelle Diskspeicher, die bei Kompatibilität zu ihren physischen…

Veritas Storage Foundation®

E-Book Veritas Storage Foundation®
High End-Computing für UNIX, Design und Implementation von Hochverfügbarkeitslösungen mit VxVM und VCS Format: PDF

Hochkonzentrierter und praxisorientierter Kurs zur 'Veritas Storage Foundation': Storage Virtualisierung (Teil 1) erzeugt virtuelle Diskspeicher, die bei Kompatibilität zu ihren physischen…

Veritas Storage Foundation®

E-Book Veritas Storage Foundation®
High End-Computing für UNIX, Design und Implementation von Hochverfügbarkeitslösungen mit VxVM und VCS Format: PDF

Hochkonzentrierter und praxisorientierter Kurs zur 'Veritas Storage Foundation': Storage Virtualisierung (Teil 1) erzeugt virtuelle Diskspeicher, die bei Kompatibilität zu ihren physischen…

Weitere Zeitschriften

arznei-telegramm

arznei-telegramm

Das arznei-telegramm® informiert bereits im 53. Jahrgang Ärzte, Apotheker und andere Heilberufe über Nutzen und Risiken von Arzneimitteln. Das arznei-telegramm®  ist neutral und ...

caritas

caritas

mitteilungen für die Erzdiözese FreiburgUm Kindern aus armen Familien gute Perspektiven für eine eigenständige Lebensführung zu ermöglichen, muss die Kinderarmut in Deutschland nachhaltig ...

SPORT in BW (Württemberg)

SPORT in BW (Württemberg)

SPORT in BW (Württemberg) ist das offizielle Verbandsorgan des Württembergischen Landessportbund e.V. (WLSB) und Informationsmagazin für alle im Sport organisierten Mitglieder in Württemberg. ...

DHS

DHS

Die Flugzeuge der NVA Neben unser F-40 Reihe, soll mit der DHS die Geschichte der "anderen" deutschen Luftwaffe, den Luftstreitkräften der Nationalen Volksarmee (NVA-LSK) der ehemaligen DDR ...

e-commerce magazin

e-commerce magazin

e-commerce magazin Die Redaktion des e-commerce magazin versteht sich als Mittler zwischen Anbietern und Markt und berichtet unabhängig, kompetent und kritisch über ...

building & automation

building & automation

Das Fachmagazin building & automation bietet dem Elektrohandwerker und Elektroplaner eine umfassende Übersicht über alle Produktneuheiten aus der Gebäudeautomation, der Installationstechnik, dem ...