Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8...

80
• Schlüsseltechniken für jedes Testfeld durch praxisnahe Beispiele verstehen und anwenden • Alle gängigen Open-Source-Tools für Penetrationstests ausführlich erklärt • Eigenes Labor für Penetrationstests kostengünstig einrichten Jeremy Faircloth Pentesting mit Open Source Professionelle Penetrationstests mit kostenloser und quelloffener Software

Transcript of Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8...

Page 1: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

• Schlüsseltechniken für jedes Testfeld durch praxisnaheBeispiele verstehen und anwenden

•Alle gängigen Open-Source-Tools für Penetrationstests ausführlich erklärt• Eigenes Labor für Penetrationstests kostengünstig einrichten

Jeremy Faircloth

Pentesting mit Open SourceProfessionelle Penetrationstests mit kostenloser und quelloffener Software

Page 2: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

Jeremy Faircloth

Pentesting mit Open Source

60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

Page 3: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

Jeremy Faircloth

Pentesting mit Open SourceProfessionelle Penetrationstests mit kostenloser und quelloffener Software

• Schlüsseltechniken für jedes Testfeld durch praxisnahe Beispiele verstehen und anwenden

• Alle gängigen Open-Source-Tools für Penetrationstests ausführlich erklärt• Eigenes Labor für Penetrationstests kostengünstig einrichten

60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 3

Page 4: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

Bibliografische Information der Deutschen Bibliothek

Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie;detaillierte Daten sind im Internet über http://dnb.ddb.de abrufbar.

Alle Angaben in diesem Buch wurden vom Autor mit größter Sorgfalt erarbeitet bzw. zusammengestellt und unterEinschaltung wirksamer Kontrollmaßnahmen reproduziert. Trotzdem sind Fehler nicht ganz auszuschließen. DerVerlag und der Autor sehen sich deshalb gezwungen, darauf hinzuweisen, dass sie weder eine Garantie noch diejuristische Verantwortung oder irgendeine Haftung für Folgen, die auf fehlerhafte Angaben zurückgehen, überneh-men können. Für die Mitteilung etwaiger Fehler sind Verlag und Autor jederzeit dankbar. Internetadressen oder Ver-sionsnummern stellen den bei Redaktionsschluss verfügbaren Informationsstand dar. Verlag und Autor übernehmenkeinerlei Verantwortung oder Haftung für Veränderungen, die sich aus nicht von ihnen zu vertretenden Umständenergeben. Evtl. beigefügte oder zum Download angebotene Dateien und Informationen dienen ausschließlich dernicht gewerblichen Nutzung. Eine gewerbliche Nutzung ist nur mit Zustimmung des Lizenzinhabers möglich.

© 2017 Franzis Verlag GmbH, 85540 Haar bei München

Alle Rechte vorbehalten, auch die der fotomechanischen Wiedergabe und der Speicherung in elektronischen Medien. Das Erstellen und Verbreiten von Kopien auf Papier, auf Datenträgern oder im Internet, insbesondere als PDF, ist nur mit ausdrücklicher Genehmigung des Verlags gestattet und wird widrigenfalls strafrechtlich verfolgt.

Die meisten Produktbezeichnungen von Hard- und Software sowie Firmennamen und Firmenlogos, die in diesem Werk genannt werden, sind in der Regel gleichzeitig auch eingetragene Warenzeichen und sollten als solche betrachtet werden. Der Verlag folgt bei den Produktbezeichnungen im Wesentlichen den Schreibweisen der Hersteller.

Satz und Übersetzung: G&U Language & Publishing Services GmbH, Flensburgart & design: www.ideehoch2.de

ISBN 978-3-645-20545-0

60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 4

Page 5: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

5

InhaltsverzeichnisDanksagungen ...................................................................................15

Der Autor ...........................................................................................17

Einleitung ..........................................................................................19

Überblick und Lernschwerpunkte ...................................................................... 19

Zielpublikum ...................................................................................................... 19

Der Aufbau dieses Buches .................................................................................20

Schlusswort .......................................................................................................23

1. Das Handwerkszeug .................................................................... 25

1.1 Einführung .............................................................................................25

1.2 Ziele .......................................................................................................26

1.3 Vorgehensweise .....................................................................................26

1.4 Grundlegende Technologien ..................................................................28

1.4.1 Live-CDs .................................................................................................28

1.4.2 ISO-Images ............................................................................................30

1.4.3 Bootfähige USB-Laufwerke .................................................................... 31

1.4.4 Eine persistente Live-CD erstellen ..........................................................33

1.5 Open-Source-Werkzeuge .......................................................................34

1.5.1 Tools zum Erstellen von Live-CDs ...........................................................35

1.5.2 Werkzeugsätze für Penetrationstests .....................................................39

1.5.3 Ziele für Penetrationstests .....................................................................47

1.6 Fallstudie: Die Werkzeuge im Einsatz .....................................................50

1.7 Praktische Übung ...................................................................................57

1.7.1 Zusammenfassung .................................................................................58

Page 6: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

6 Inhaltsverzeichnis

2. Aufklärung ................................................................................... 59

2.1 Einführung .............................................................................................59

2.2 Ziele .......................................................................................................60

2.3 Eine Methodik für die Aufklärung ...........................................................63

2.4 Informationsgewinnung aus öffentlichen Quellen ..................................65

2.4.1 Grundlegende Technologien ..................................................................65

2.4.2 Vorgehensweise .....................................................................................67

2.4.3 Open-Source-Werkzeuge .......................................................................74

2.4.4 Informationsgewinnung aus öffentlichen Quellen: Zusammenfassung .................................................................................87

2.5 Footprinting ...........................................................................................87

2.5.1 Grundlegende Technologien ..................................................................88

2.5.2 Vorgehensweise .....................................................................................95

2.5.3 Open-Source-Werkzeuge ..................................................................... 100

2.5.4 Footprinting: Zusammenfassung ..........................................................112

2.6 Informationsbeschaffung über Personen ..............................................112

2.6.1 Grundlegende Technologien .................................................................113

2.6.2 Beziehungen .........................................................................................113

2.6.3 Open-Source-Werkzeuge ......................................................................117

2.6.4 Informationsbeschaffung über Personen: Zusammenfassung ..............121

2.7 Verifizierung ..........................................................................................121

2.7.1 Grundlegende Technologien .................................................................121

2.7.2 Vorgehensweise ................................................................................... 123

2.7.3 Open-Source-Werkzeuge ......................................................................131

2.7.4 Verifizierung – Zusammenfassung ....................................................... 135

2.8 Fallstudie: Die Werkzeuge im Einsatz ................................................... 135

2.8.1 Informationsgewinnung aus öffentlichen Quellen, Footprinting und Verifizierung für ein mit dem Internet verbundenes Netzwerk .............. 135

2.8.2 Footprinting ..........................................................................................141

2.8.3 Zusammenfassung der Fallstudie......................................................... 145

Page 7: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

7Inhaltsverzeichnis

2.9 Praktische Übung ................................................................................. 145

2.10 Zusammenfassung ............................................................................... 146

3. Scan und Auflistung ...................................................................147

3.1 Einführung ........................................................................................... 147

3.2 Ziele ..................................................................................................... 147

3.2.1 Bevor Sie beginnen .............................................................................. 148

3.2.2 Scans und Auflistungen – wozu? .......................................................... 149

3.3 Scans ................................................................................................... 150

3.3.1 Vorgehensweisen ................................................................................. 150

3.3.2 Grundlegende Technologien .................................................................151

3.3.3 Open-Source-Werkzeuge ..................................................................... 155

3.4 Auflistung ............................................................................................ 166

3.4.1 Vorgehensweise ................................................................................... 166

3.4.2 Grundlegende Technologien ................................................................ 167

3.4.3 Open-Source-Werkzeuge ..................................................................... 172

3.5 Fallstudien: Die Werkzeuge im Einsatz ................................................. 187

3.5.1 Extern .................................................................................................. 187

3.5.2 Intern ................................................................................................... 188

3.5.3 Heimliche Vorgehensweise ...................................................................191

3.5.4 Lauter IDS-Test .................................................................................... 193

3.6 Praktische Übung ................................................................................. 195

3.7 Zusammenfassung ............................................................................... 196

4. Netzwerkgeräte ..........................................................................197

4.1 Ziele ..................................................................................................... 197

4.2 Vorgehensweise ................................................................................... 198

4.3 Grundlegende Technologien ................................................................ 199

4.3.1 Switches ..............................................................................................200

Page 8: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

8 Inhaltsverzeichnis

4.3.2 Router ..................................................................................................202

4.3.3 Firewalls ...............................................................................................203

4.3.4 IPv6......................................................................................................204

4.4 Open-Source-Werkzeuge .....................................................................206

4.4.1 Footprinting-Werkzeuge .......................................................................206

4.4.2 Scanwerkzeuge ....................................................................................209

4.4.3 Auflistungswerkzeuge .......................................................................... 213

4.4.4 Exploit-Werkzeuge ............................................................................... 214

4.5 Fallstudie: Die Werkzeuge im Einsatz ................................................... 221

4.6 Praktische Übung .................................................................................226

4.7 Zusammenfassung ...............................................................................227

5. Webanwendungen und -dienste ................................................ 229

5.1 Einführung ...........................................................................................229

5.2 Ziel .......................................................................................................230

5.2.1 Schwachstellen von Webservern: Geschichtlicher Abriss .....................230

5.2.2 Webanwendungen: Die neue Herausforderung .................................... 231

5.3 Vorgehensweise ...................................................................................232

5.3.1 Testen des Webservers ........................................................................233

5.3.2 Testen von CGIs und Standardseiten ....................................................234

5.3.3 Testen von Webanwendungen..............................................................235

5.4 Grundlegende Technologien ................................................................236

5.4.1 Grundlagen der Ausnutzung von Webservern ......................................236

5.4.2 Ausnutzung von CGIs und Standardseiten ...........................................240

5.4.3 Ausnutzung von Webanwendungen ..................................................... 241

5.5 Open-Source-Werkzeuge .....................................................................245

5.6 Fallstudie: Die Werkzeuge im Einsatz ...................................................257

5.7 Praktische Übung .................................................................................264

5.8 Zusammenfassung ...............................................................................265

Page 9: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

9Inhaltsverzeichnis

6. Datenbankdienste hacken ......................................................... 267

6.1 Ziel .......................................................................................................267

6.2 Grundlegende Technologien ................................................................268

6.2.1 Grundlegende Terminologie .................................................................268

6.2.2 Datenbankinstallation..........................................................................270

6.2.3 Kommunikation ....................................................................................272

6.2.4 Ressourcen und Überwachung .............................................................272

6.3 Microsoft SQL Server ...........................................................................273

6.3.1 Benutzer ..............................................................................................273

6.3.2 Richtlinien zum Erstellen von Passwörtern ...........................................274

6.3.3 Rollen und Berechtigungen ..................................................................274

6.3.4 Gespeicherte Prozeduren .....................................................................275

6.3.5 Open-Source-Werkzeuge .....................................................................276

6.4 Oracle .................................................................................................. 281

6.4.1 Benutzer .............................................................................................. 281

6.4.2 Rollen und Rechte ................................................................................282

6.4.3 Gespeicherte Prozeduren .....................................................................283

6.4.4 Open-Source-Werkzeuge .....................................................................283

6.5 Fallstudie: Die Werkzeuge im Einsatz ................................................... 291

6.6 Praktische Übung .................................................................................294

6.7 Zusammenfassung ...............................................................................295

7. Unternehmensanwendungen testen ......................................... 297

7.1 Ziel .......................................................................................................297

7.2 Grundlegende Technologien ................................................................298

7.2.1 Was sind Unternehmensanwendungen? ..............................................298

7.2.2 Mehrschichtige Architektur ..................................................................300

7.2.3 Integration ........................................................................................... 301

7.3 Vorgehensweise ...................................................................................304

Page 10: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

10 Inhaltsverzeichnis

7.4 Open-Source-Werkzeuge .....................................................................307

7.5 Fallstudie: Die Werkzeuge im Einsatz ...................................................322

7.6 Praktische Übung .................................................................................325

7.7 Zusammenfassung ...............................................................................326

8. Clientseitige Angriffe und Social Engineering ........................... 327

8.1 Ziel .......................................................................................................327

8.2 Phishing ...............................................................................................328

8.2.1 Vorgehensweisen .................................................................................329

8.2.2 Walfang ................................................................................................332

8.2.3 Grundlegende Technologien ................................................................334

8.2.4 Open-Source-Werkzeuge .....................................................................338

8.3 Angriffe in sozialen Medien ..................................................................345

8.3.1 Vorgehensweise ...................................................................................345

8.3.2 Grundlegende Technologien ................................................................347

8.3.3 Open-Source-Werkzeuge ..................................................................... 351

8.4 Maßgeschneiderte Malware.................................................................357

8.4.1 Vorgehensweise ...................................................................................357

8.4.2 Grundlegende Technologien ................................................................359

8.4.3 Open-Source-Werkzeuge .....................................................................363

8.5 Fallstudie: Die Werkzeuge im Einsatz ...................................................368

8.6 Praktische Übung .................................................................................375

8.7 Zusammenfassung ...............................................................................375

9. Penetrationstests in drahtlosen Netzwerken ..............................377

9.1 Ziel .......................................................................................................378

9.2 Vorgehensweise ...................................................................................378

9.3 Grundlegende Technologien ................................................................379

9.3.1 Schwachstellen in WLANs ....................................................................379

Page 11: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

11Inhaltsverzeichnis

9.3.2 Die Entwicklung von WLAN-Schwachstellen .........................................380

9.3.3 Werkzeuge für Penetrationstests in drahtlosen Netzwerken ................383

9.4 Open-Source-Werkzeuge .....................................................................392

9.4.1 Werkzeuge zur Informationsbeschaffung .............................................392

9.4.2 Footprinting-Werkzeuge .......................................................................398

9.4.3 Auflistungswerkzeuge .......................................................................... 401

9.4.4 Werkzeuge zur Überprüfung auf Schwachstellen .................................402

9.4.5 Exploit-Werkzeuge ...............................................................................402

9.4.6 Bluetooth-Schwachstellen ...................................................................420

9.4.7 Bluetooth-Schwachstellen ausnutzen ..................................................428

9.4.8 Gefahren von Bluetooth .......................................................................430

9.5 Fallstudie: Die Werkzeuge im Einsatz ...................................................430

9.6 Praktische Übung .................................................................................432

9.7 Zusammenfassung ...............................................................................433

10. Ein Labor für Penetrationstests einrichten ................................ 435

10.1 Ziele .....................................................................................................436

10.2 Vorgehensweise ...................................................................................436

10.2.1 Das Labor entwerfen ............................................................................437

10.2.2 Das Labor aufbauen .............................................................................450

10.2.3 Der Betrieb des Labors.........................................................................454

10.3 Grundlegende Technologien ................................................................456

10.3.1 Was ist Virtualisierung?........................................................................457

10.3.2 Virtualisierung im Zusammenhang mit Penetrationstests ....................457

10.3.3 Virtualisierungsarchitektur ..................................................................458

10.4 Open-Source-Werkzeuge .....................................................................460

10.4.1 Xen.......................................................................................................460

10.4.2 VirtualBox ............................................................................................ 461

10.4.3 GNS3, Dynagen und Dynamips ............................................................462

10.4.4 Weitere Werkzeuge ..............................................................................463

Page 12: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

12 Inhaltsverzeichnis

10.5 Fallstudie: Die Werkzeuge im Einsatz ...................................................463

10.6 Praktische Übung .................................................................................465

10.7 Zusammenfassung ...............................................................................466

Stichwortverzeichnis ......................................................................468

Page 13: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

Für meine Frau Christina Faircloth

In all den Jahren, in denen ich nun schon Fachbücher schreibe, gab es eine einzige Konstante in meinem Leben, nämlich meine liebe Frau Christina. In dieser Zeit hat es in der Welt, in der IT-Branche und in unserem Leben viel Aufruhr gegeben. Es ist ein wunderbares Gefühl, zu wissen, dass es immer jemanden gibt, auf den man zählen kann und der einem als Stütze dient, wenn mal wieder alles durcheinander geht. Vielen Dank, Chris; du bist es, die mein Leben lebenswert macht.

Jeremy Faircloth

Page 14: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1
Page 15: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

15

Danksagungen

Es ist mir eine Ehre, eine weitere Ausgabe dieses Leitfadens für Open-Source-Werkzeuge für Penetrationstester zu schreiben. Für diese Ausgabe brauchte ich insgesamt mehr als zwei Jahre Zeit und habe dabei mehr Hardware durchschmoren lassen, als mir lieb war. Ich musste auch enorme Mengen an Bandbreite nutzen und viele Nächte durchmachen, um ein Werkzeug dazu zu bringen, genau das zu tun, was es tun soll, wenn sich die ganze Technologie gegen mich verschworen hatte.

Wie bei der vorherigen Ausgabe haben mich auch diesmal wieder viele Menschen unter-stützt, wofür ich ihnen allen äußerst dankbar bin. An erster Stelle steht wie immer meine stets geduldige und verständnisvolle Frau Christina. Ihre Unterstützung meiner Arbeit ist es, was mich weitermachen lässt. Ohne dich könnte ich es nicht schaffen, Chris. Ich danke dir, dass du es weiterhin mit mir aushältst, wenn ich gerade mal wieder viel Zeit damit verbringe, die Tastatur zu bearbeiten und verzweifelt mit dem Kopf dagegen zu schlagen. Um den Rasen kümmere ich mich bald. Versprochen.

Ein Dankeschön geht auch an Chris Katsaropoulos und Anna Valutkevich bei Syngress, die mir die Gelegenheit für dieses Projekt gegeben und mir die ganze Zeit über Hilfe, Ratschlag, Rückmeldung und Unterstützung geboten haben. Ohne Herausgeber wie Syn-gress, die uns Fachautoren die Chance bieten, unsere Gedanken zu Papier zu bringen und an die Welt zu richten, wäre ein solches Projekt nicht möglich. Ich trage schon seit 2001 zu Syngress-Büchern bei, und die Erfahrungen, die ich dabei während der letzten anderthalb Jahrzehnte gemacht habe, waren stets außerordentlich.

In diesem Buch geht es vor allem um Open-Source-Werkzeuge. Daher bin ich der Open-Source-Community und den Sicherheitsforschern, die ihre Kenntnisse und ihre Zeit bei-getragen haben, großen Dank schuldig. Früher haben Sicherheitsexperten ihre Geheim-nisse für sich bewahrt und niemandem mitgeteilt, weil sie Angst davor hatten, sonst ihren technologischen Vorsprung zu verlieren. Als Community haben wir zum Glück gelernt, dass uns das Teilen von Wissen nicht schwächt, sondern anderen die Gelegenheit gibt, auf unserer Arbeit aufzubauen und sie zu verbessern. Daher möchte ich allen Mitgliedern der Open-Source-Community danken. Ohne euch würde es dieses Buch nicht geben. Das Gleiche gilt für alle, die ihr Wissen in Blogeinträgen, Newsgroup-Antworten und Artikeln freigebig vermitteln und anderen Menschen beim Lernen helfen. Dank dieser Personen ist die Welt der Technik besser geworden.

In dieser vierten Ausgabe habe ich wirklich das Gefühl, auf den großartigen Vorleistun-gen anderer aufzubauen. Der gesamte Stoff dieses Buches basiert auf den Ideen meiner

Page 16: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

16

Vorgänger aus der ersten und zweiten Ausgabe. Diesen Autoren und Gutachtern danke ich für die Grundlage, die sie dabei gelegt haben und die ich an die technischen Verbes-serungen und Änderungen im Laufe der Jahre anpassen durfte. Ich danke auch Mike Rogers für die fachliche Durchsicht meiner Arbeit. Befehle auszuprobieren, die ein an-derer geschrieben hat, die Grammatik zu prüfen und für Korrektheit zu sorgen, ist nicht gerade die spannendste Arbeit, aber sie ist unverzichtbar, um ein gutes Buch auf den Markt zu bekommen, weshalb ich sie sehr schätze.

In den letzten beiden Jahren habe ich mit vielen Personen über dieses Buch gesprochen, und ich bin mir sicher, dass ich in dieser Danksagung einige von ihnen unerwähnt gelas-sen habe. Dafür möchte ich mich entschuldigen und mich gleichzeitig aus tiefstem Herzen für die Unterstützung bedanken, die sie mir geboten haben.

Page 17: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

17

Der Autor

Jeremy Faircloth (CISSP, Security+, CCNA, MCSE, MCP+I, A+) ist in der IT-Branche tätig und hat Erfahrungen mit einem breiten Spektrum von Technologien sowie mit dem Management von technischen Teams in verschiedenen Fortune-50-Unternehmen. Er ist Mitglied der Society for Technical Communication. Er setzt seine Fachkenntnisse ein, um anderen zu helfen, ihr Wissen zu erweitern, und seine Schulungen und Veröffentlichun-gen werden von anderen IT-Profis als Quellen genutzt. Mit seinen mehr als 20 Jahren praktischer IT-Erfahrung wurde er schon als »IT-Universalgelehrter« bezeichnet und hat sich zu einem Fachmann für viele Bereiche wie Webentwicklung, Datenbankverwaltung, Unternehmenssicherheit, Netzwerkdesign, Unternehmensanwendungen und Projekt-management entwickelt. Als Autor hat er zu mehr als einem Dutzend Fachbücher über verschiedene Themen beigetragen und gibt Kurse auf vielen dieser Gebiete.

Page 18: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1
Page 19: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

19

Einleitung

Überblick und LernschwerpunktePenetrationstests werden oft mehr als eine Kunst und weniger als eine Wissenschaft ange-sehen, aber auch ein Künstler braucht die richtigen Pinsel, um seine Arbeit gut zu machen. Es gibt viele kommerzielle und Open-Source-Werkzeuge für Penetrationstests, aber es ist oft schwer herauszufinden, welche Tools zur Verfügung stehen und welche sich für eine bestimmte Aufgabe am besten eignen. In den folgenden zehn Kapiteln sehen wir uns eine große Menge Open-Source-Tools für Penetrationstester an und erklären dabei jeweils, wie sie eingesetzt werden und in welchen Situationen sie angebracht sind.

Die kommerziellen Werkzeuge sind oft teuer und zu stark automatisiert, um für alle Situa-tionen eines Penetrationstests geeignet zu sein. Es gibt viele gängige Situationen, in denen Open-Source-Tools Ihre Bedürfnisse besser erfüllen und dabei auch kostengünstiger sind als ihre kommerziellen Gegenstücke. Alle in diesem Buch besprochenen Werkzeuge sind quelloffen und für Sie als Penetrationstester zugänglich.

ZielpublikumDieses Buch ist für Menschen gedacht, die sich für Penetrationstests interessieren oder professionell auf diesem Gebiet tätig sind. Die Beschreibungen sind bewusst ausführlich genug gehalten, sodass Leser, die keine Erfahrungen mit den Technologien für Penetra-tionstests haben, sie verstehen und daraus lernen können, ohne dabei Personen zu lang-weilen, die täglich damit umgehen. Die gesamte Leserschaft, ob alte Hasen oder Neulinge, soll wertvolle Einsichten in die Technologien, Techniken und Open-Source-Werkzeuge für Penetrationstests gewinnen können.

Darüber hinaus sollen hier auch Personen, die auf Gebieten wie der Datenbank-, Netz-werk-, System- oder Anwendungsverwaltung tätig sind, Kenntnisse darüber erlangen, wie Penetrationstester in ihrem jeweiligen Bereich vorgehen, damit sie lernen können, was sie von einem solchen Test zu erwarten haben. Das kann die Sicherheit der Anwendungen und der Infrastruktur eines Unternehmens verbessern und zu einer besser geschützten Umgebung führen.

Page 20: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

20 Einleitung

Neben Penetrationstestern können auch andere Sicherheits- und Überwachungsmitar-beiter dieses Buch als Nachschlagewerk nutzen, um für die Sicherheit einer Umgebung zu sorgen. Auch wenn Sie selbst keine Penetrationstests durchführen, kann es hilfreich sein zu wissen, wonach wir Penetrationstester Ausschau halten, damit Sie die richtigen Tech-nologien und Richtlinien verwenden, um die kritischsten Bereiche Ihres Unternehmens sicherer zu gestalten.

Der Aufbau dieses BuchesDieses Buch besteht aus insgesamt zehn Kapiteln, die sich jeweils auf ein bestimmtes Gebiet von Penetrationstests konzentrieren. Jedes Kapitel wiederum ist in die Festlegung der Ziele auf dem jeweiligen Gebiet, die Vorgehensweise für Penetrationstests auf dem Gebiet, die grundlegenden Technologien und die Vorstellung der Open-Source-Werk-zeuge gegliedert. Außerdem enthält jedes Kapitel eine praxisnahe Fallstudie, in der die beschriebenen Werkzeuge in einem realistischen Szenario angewendet werden. Abgerun-det wird dies durch eine praktische Übung in jedem Kapitel, die Ihnen die Gelegenheit gibt, das Gelernte anzuwenden.

Es ist zwar nicht unbedingt notwendig, dieses Buch von der ersten bis zur letzten Seite zu lesen, doch es ist empfehlenswert, da sich einige der späteren Kapitel auf Erklärungen der früheren stützen. Beispielsweise geht es in Kapitel 7 um Tests von Unternehmensanwen-dungen, wozu Sie die in den Kapiteln 1 bis 6 besprochenen Gebiete gut kennen sollten. Erfahrene Penetrationstester, die lediglich Informationen über die in einem bestimmten Kapitel vorgestellten neuen Werkzeuge benötigen, können jedoch direkt zu diesem Kapitel vorblättern und später die anderen überfliegen, um sich noch ein paar Tipps zu holen. Die folgenden kurzen Angaben zeigen Ihnen, was Sie in den einzelnen Kapiteln erwartet.

Kapitel 1: Das Handwerkszeug

Im ersten Kapitel sehen wir uns einige der wichtigsten Open-Source-Werkzeugsätze für Penetrationstests an. Sämtliche in diesem Buch vorgestellten Tools sind zwar auch einzeln erhältlich, aber es spart eine Menge Zeit und Mühe, sich ein Paket zu beschaffen, das alle oder zumindest die meisten der von Ihnen benötigten Werkzeuge einschließt. Dabei sehen wir uns an, wie die Werkzeugsätze aufgebaut sind, wie Sie sie ändern oder Ihre eigenen erstellen können und wie sie eingesetzt werden. Außerdem besprechen wir, wie Sie Ziele für Penetrationstests erstellen und nutzen können, um die Anwendung der Werkzeuge zu üben.

Page 21: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

21 Einleitung

Kapitel 2: Aufklärung

Die wichtigste Ressource für Penetrationstester ist nicht etwa ein Werkzeug, sondern In-formation. Wenn wir uns Informationen über unser Ziel beschaffen, versetzen wir uns in eine Lage, in der wir unsere Aufgabe wirkungsvoll erfüllen und unseren Penetrationstest gründlich durchführen können. Darum geht es in diesem Kapitel. Wir beschäftigen uns hier mit der Aufklärung und damit, so viel wie möglich über unser Ziel in Erfahrung zu bringen, bevor wir damit in Kontakt treten. Dieser Teil eines Penetrationstests läuft ge-wöhnlich sehr heimlich ab und ist der erste Schritt, um die Informationen zu gewinnen, die wir benötigen, um unseren Test voranzutreiben.

Kapitel 3: Scan und Auflistung

In diesem Kapitel geht es darum, die bei der Aufklärung gewonnen Daten zu nutzen und zu erweitern. Beim Scannen und Auflisten geht es darum, so viel wie möglich über das Ziel zu lernen, um alle erforderlichen Einzelheiten für den eigentlichen Test zu gewin-nen. Dazu gehört es, in Erfahrung zu bringen, welche Computer vorhanden sind, welche Betriebssysteme auf ihnen laufen und welche Dienste auf ihnen verfügbar sind. In dieser Phase des Penetrationstests gehen wir schon etwas invasiver vor und berühren zum ersten Mal das Ziel. Die über Scans und Auflistung gewonnen Informationen bilden die Grund-lage für unsere anschließenden dienst- oder systemspezifischen Tests.

Kapitel 4: Netzwerkgeräte

Zu den wichtigsten Ressourcen eines Unternehmens gehört die Netzwerkausrüstung. In diesem Kapitel betrachten wir Netzwerkgeräte aus dem Blickwinkel von Penetrationstests. Das schließt nicht nur Netzwerkgeräte ein, um eine Verbindung von Punkt A zu Punkt B bereitzustellen, sondern auch alle anderen Geräte, die es in einem Netzwerk geben kann. Da Netzwerkgeräte ein so wichtiger Bestandteil der Infrastruktur eines Unternehmens sind, bilden sie einen offensichtlichen Schwerpunkt für Penetrationstests. Wenn es Ihnen gelingt, in ein Netzwerkgerät einzudringen, können Sie damit Daten gewinnen, die Ihnen den Zugriff auf viele andere Ziele im Netzwerk erlauben und Ihre Arbeit als Penetrations-tester erheblich erleichtern.

Kapitel 5: Webanwendungen und -dienste

In der Infrastruktur vieler Unternehmen spielen Webserver und Webanwendungen eine entscheidende Rolle, weshalb sich Penetrationstester häufig auf dieses Gebiet konzentrie-ren. Webanwendungen weisen oft sehr viele Schwachstellen auf. Ein kleiner Fehler bei der Programmierung einer Webanwendung kann schon ausreichen, um ein System für einen Penetrationstester ganz zu öffnen. In diesem Kapitel beschäftigen wir uns mit diesem The-ma. Dabei geht es sowohl um die Software des Webservers als auch um die Webanwen-dungen, die darauf laufen.

Page 22: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

22 Einleitung

Kapitel 6: Datenbankdienste hacken

In diesem Kapitel konzentrieren wir uns auf eine ganz besondere Art von Dienst, näm-lich auf relationale Datenbankmanagementsysteme. Datenbanken sind eine wichtige Komponente aller größeren Unternehmen und bieten uns als Penetrationstester einen Angriffsweg. Aufgrund von Bugs in der Software, Fehlkonfigurationen und mangel-haften Sicherheitspraktiken weisen viele Datenbanken Schwachstellen auf, die wir ausnutzen können, um an geheime Daten zu gelangen oder in Systeme einzudringen. In diesem Kapitel sehen wir uns verschiedene Datenbanksysteme, die Durchführung von Penetrationstests an diesen Systemen und die dafür geeigneten Open-Source- Werkzeuge an.

Kapitel 7: Unternehmensanwendungen testen

Unternehmensanwendungen gehören bei Penetrationstests in Firmen zu den wichtigsten Zielen. Das liegt nicht nur an ihrem Umfang, sondern auch an den kritischen Daten, die sie enthalten. In diesem Kapitel wenden wir unsere Kenntnisse aus allen bisherigen Kapi-teln an, um zu zeigen, wie solche Anwendungen getestet werden können. Dabei bespre-chen wir, was Unternehmensanwendungen sind, warum sie so wichtig sind und welchen Stellenwert sie in unserem Testplan einnehmen.

Kapitel 8: Clientseitige Angriffe und Social Engineering

Zu den Daten, die wir bei Aufklärung, Scans und Auflistungen gewonnen haben, können auch Informationen über Clientcomputer und Personen gehören. Bei vielen Penetra-tionstests gilt die Nutzung dieser Angaben als legitimer Angriffsweg. Sie können sie als Eintrittspunkt in die Systeme betrachten, in die Sie eindringen wollen. In diesem Kapitel sprechen wir über Social Engineering und andere Vorgehensweisen, bei denen Sie die Schwächen von Personen und Clientarbeitsstationen ausnutzen. Wir sehen uns dabei auch an, wie Sie soziale Medien im Rahmen eines Penetrationstests einsetzen können.

Kapitel 9: Penetrationstests in drahtlosen Netzwerken

In allen vorherigen Kapiteln ging es um Systeme, mit denen wir über ein Netzwerk kom-munizieren können. Wie aber gewinnen wir Zugriff auf das Netzwerk, wenn wir keine direkte Verbindung haben? In diesem Kapitel besprechen wir drahtlose Netzwerke, ihre Funktionsweise und ihre Verwendung in Unternehmen. Drahtlose Netzwerke können ei-nen Eintrittspunkt in das Firmennetz darstellen, das wir testen wollen, aber auch selbst das Ziel eines Tests sein. Hier sehen wir uns nicht nur Penetrationstests an drahtlosen Netzwer-ken an, sondern auch die Verwendung von verwandten Technologien wie Bluetooth.

Page 23: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

23 Einleitung

Kapitel 10: Ein Labor für Penetrationstests einrichten

Als Penetrationstester brauchen Sie ein Labor, um einige Arten von Tests durchzuführen und um Ihre Fähigkeiten durch Üben zu verbessern. In diesem Kapitel geht es darum, was Labors für Penetrationstests enthalten müssen und wie Sie sie einrichten können. Da ein nicht abgesichertes Testlabor große Gefahren heraufbeschwören kann, liegt einer der Schwerpunkte in diesem Kapitel auf der Sicherheit. Wir besprechen eine Reihe von Werkzeugen für solche Labors sowie Technologien wie die Virtualisierung, mit der Sie die Kosten für den Aufbau Ihres Labors reduzieren können. Am Ende dieses Kapitels sollten Sie in der Lage sein, Ihr eigenes sicheres Penetrationstestlabor einzurichten und darin die in diesem Buch vorgestellten Tools beherrschen zu lernen.

SchlusswortFür mich war es eine wunderbare Erfahrung, dieses Buch zu schreiben, und ich hoffe, dass Sie auch Spaß beim Lesen haben. Wie viel Erfahrung wir auch immer haben mögen, es kommen täglich Innovationen, neue Ideen und neue Werkzeuge auf, und es gibt immer Gelegenheit, etwas Neues zu lernen. Ich hoffe, dass Ihnen dieses Buch als eine gute Ein-führung dient oder Ihnen die Gelegenheit gibt, Ihre Kenntnisse über Penetrationstests mithilfe von Open-Source-Werkzeugen zu erweitern.

Page 24: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1
Page 25: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

1Das Handwerkszeug

1.1 EinführungDie Qualität unserer Arbeit als Penetrationstester hängt neben Fähigkeiten, Erfahrung und Vorstellungskraft auch von der Qualität unserer Werkzeuge ab. Durch die Zusam-menstellung eines hervorragenden Werkzeugkastens können wir unsere Arbeit besser, schneller und hochwertiger ausführen. Im weiteren Verlauf dieses Buches sehen wir uns die einzelnen Werkzeuge und ihre Anwendung an, in diesem Kapitel geht es um die Zu-sammenstellung der Werkzeuge.

Wir werden uns dabei auch über einige Technologien unterhalten, die es Ihnen ermögli-chen, Ihre Werkzeugsammlung leicht und sicher zu transportieren. Auch eine Sammlung physischer Werkzeuge bewahren Sie ja schließlich am besten in einem Werkzeugkasten auf. Des Weiteren sprechen wir über einige Möglichkeiten, Zielsysteme für Penetrations-tests zu erstellen. In Kapitel 10 geht es darum, wie Sie ein Testlabor einrichten, aber hier geht es um einige der Werkzeuge, die Sie darin nutzen.

Dieses Kapitel ist nicht so spannend wie die restlichen, da wir hier keine Penetrationstests durchführen. Es ist jedoch wichtig, sich ein solides Grundwissen über die Werkzeuge zu verschaffen, die Ihnen als Penetrationstester zur Verfügung stehen, bevor Sie lernen, wie

Page 26: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

26 1 Das Handwerkszeug

Sie diese Werkzeuge in der Praxis anwenden. Wenn wir Ihnen später zeigen, wie Sie ein bestimmtes Werkzeug einsetzen, können Sie viel Zeit sparen, wenn sich dieses Werkzeug bereits in Ihrer Sammlung befindet.

1.2 ZieleDas Ziel dieses Kapitels besteht darin, zu lernen, welche Open-Source-Werkzeugsätze es für Penetrationstests gibt, wie sie aufgebaut sind und wie Sie sie anpassen können. Außerdem besprechen wir einige Werkzeuge zum Erstellen von Zielsystemen. Um diese Ziele zu erreichen, sehen wir uns zunächst an, wie und warum diese Werkzeugsätze her-gestellt werden und wie sie funktionieren. Dann besprechen wir einige Open-Source-Werkzeugsätze und ihre Anwendung für Penetrationstests. Als Letztes führen wir eine Fallstudie mit einem der verfügbaren Werkzeugsätze durch und geben Ihnen in einer praktischen Übung die Gelegenheit, das Gelernte anzuwenden.

Heutzutage stehen viele Open-Source-Werkzeugsätze für Penetrationstests zur Verfügung, die Ihnen die Arbeit erleichtern. Früher musste sich jeder Penetrationstester selbst eine Sammlung seiner bevorzugten Werkzeuge zusammenstellen, sie manuell aktualisieren, Masterkopien für den Fall von Beschädigungen aufbewahren und selbst nachforschen, wie sich neue Werkzeuge einsetzen ließen. Dafür ging ein großer Teil der Arbeitszeit drauf, anstatt ihn der »richtigen« Arbeit zur Überprüfung der Sicherheit eines Kunden zu wid-men. Da diese Zeit im Allgemeinen nicht in Rechnung gestellt werden kann, war das ein echtes Problem.

1.3 VorgehensweiseDie allgemeine Vorgehensweise, um einen Satz von Werkzeugen für Penetrationstests zu-sammenzustellen, zielt darauf ab, möglichst wenig Zeit auf die Pflege der Werkzeuge und möglichst viel auf das eigentliche Testen aufzuwenden. Dazu beginnen Sie entweder mit einer Reihe von Werkzeugen, die eigens für die von Ihnen durchgeführte Art von Penetra-tionstests geeignet sind, oder mit solchen, die sich für eine breite Palette von Zwecken ein-setzen lassen. Das entspricht der Auswahl eines besonderen Messers für einen bestimmten Zweck (z. B. eines Messers mit schmaler Klinge zum Filetieren) oder eines Schweizer Mes-sers für verschiedene Situationen.

Wenn Sie Ihren eigenen Werkzeugkasten zusammenstellen, wählen Sie im Allgemeinen Ihre bevorzugten oder am häufigsten verwendeten Werkzeuge aus. In einen Satz, der für den öffentlichen Gebrauch bestimmt ist, nehmen Sie dagegen lieber eine breitere Auswahl von Werkzeugen auf, sodass damit breiter gefasste Bedürfnisse für Penetrationstests erfüllt werden können. Das ist die Vorgehensweise, die von den Anbietern solcher Sets gewöhn-lich verfolgt wird.

Page 27: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

27 1.3 Vorgehensweise

Als Nächstes steht die Entscheidung an, welches Betriebssystem Sie verwenden möch-ten. Es gibt eine Reihe von Penetrationstestwerkzeugen für Microsoft Windows, doch für Linux stehen mehr zur Verfügung. Die Frage ist nur, welche Linux-Distribution Sie aus dem reichhaltigen Angebot auswählen sollen. Unter anderem gibt es folgende weit ver-breitete Distributionen:

• Ubuntu

• Fedora

• openSUSE

• Debian GNU/Linux

• Mandriva Linux

• Slackware Linux

• Gentoo Linux

Viele davon sind bereits als Grundlage von Werkzeugsätzen für Penetrationstests einge-setzt worden. Wofür Sie sich entscheiden, hängt nicht nur von technischen Überlegungen, sondern von Ihren persönlichen Vorlieben ab. Auch die jeweilige Ausrichtung und der Releasezeitplan der Distributionen spielen eine Rolle bei dieser Entscheidung.

Nachdem Sie die Werkzeuge und das Betriebssystem ausgewählt haben, stellt sich die Fra-ge, wie Sie die Werkzeuge ausführen wollen. Wollen Sie die gesamte Software dauerhaft auf einem Desktop, Laptop o. Ä. installieren oder in einer virtuellen Maschine? Wollen Sie den Start von einem optischen Medium (CD/DCD), von einem Flash-Laufwerk oder einer SD-Karte vornehmen? Entscheiden Sie sich für die Vorgehensweise, die sich am bes-ten für Ihre Bedürfnisse eignet. Sie alle weisen jeweils ihre eigenen Vor- und Nachteile auf.

Wenn Sie sich beispielsweise für eine Installation auf der Festplatte entscheiden, müssen Sie sich im Klaren darüber sein, dass eine Beschädigung aufgrund einer fehlerhaften In-stallation eines Werkzeugs oder eines falschen Befehls eine komplette Neuinstallation oder Wiederherstellung von einem Backup erfordern kann. Auf der anderen Seite können Sie Änderungen an dem Werkzeugsatz relativ leicht vornehmen und sich darauf verlassen, dass diese Änderungen auch beim nächsten Start des Systems noch vorhanden sind. Diese Vorgehensweise ist nicht so gut portierbar, bietet aber den Vorteil der hohen Geschwindig-keit der Festplatte und erleichtert das Festhalten von Änderungen.

Ein Start von CD oder DVD funktioniert bei einigen Werkzeugsätzen sehr gut, doch nicht alle Betriebssysteme ermöglichen eine solche Vorgehensweise. Außerdem muss der Com-puter, den Sie verwenden, über ein entsprechendes Laufwerk verfügen, und Sie müssen aufpassen, dass Sie die CD/DVD nicht zerkratzen oder auf andere Weise beschädigen. Da Änderungen nach dem Abschalten verloren gehen, ist das Risiko von Beschädigungen der Software geringer, aber dafür sind auch Ihre Möglichkeiten eingeschränkt, Änderungen zu speichern, um Ihre Werkzeuge auf dem neuesten Stand zu halten.

Eine weitere Möglichkeit besteht in der Verwendung eines USB-Laufwerks oder einer SD-Karte. Dies ähnelt dem Start von CD/DVD, bringt aber seine eigenen Vor- und Nach-teile mit sich. Nicht alle Systeme erlauben einen Start von einem USB-Laufwerk, und

Page 28: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

28 1 Das Handwerkszeug

noch weniger ermöglichen einen Start von einer SD-Karte. Mit einer korrekten Parti-tionierung können Sie einen USB/SD-Werkzeugsatz für Penetrationstests vorhalten, bei dem Änderungen möglich sind. Das bedeutet, dass alle Änderungen, die Sie im laufenden Betriebssystem vornehmen, in einer besonderen Partition gespeichert und beim nächsten Start des Werkzeugsatzes erneut angewendet werden. Ein solcher »persistenter Live-USB-Build« bietet den Vorteil, dass Sie zu einem definierten Grundzustand zurückkehren kön-nen, indem Sie die Partition für die Änderungen entfernen. Alternativ können Sie auf dem USB-Laufwerk auch ein Betriebssystem einrichten, das wie auf einer normalen Festplatte les- und schreibbar ist.

Unabhängig davon, ob Sie das Betriebssystem auf einer Festplatte installieren oder ein bootfähiges Image erstellen, müssen Sie als Nächstes die Werkzeuge installieren. Viele der verfügbaren Open-Source-Tools sind von den gleichen Komponenten abhängig, manch-mal jedoch von unterschiedlichen Versionen. Beispielsweise kann es in der allerneuesten Version eines Treibers etwas geben, was mit einigen Ihrer ausgewählten Werkzeuge nicht kompatibel ist. Das müssen Sie bei der Installation der Werkzeuge stets bedenken. Inkom-patibilitäten zu beheben und die richtigen Voraussetzungen bereitzustellen ist ein sehr zeitraubender und anstrengender Vorgang.

1.4 Grundlegende TechnologienEs gibt einige grundlegende Technologien, die Sie berücksichtigen müssen, wenn Sie Ih-ren Werkzeugsatz zusammenstellen. In diesem Abschnitt sehen wir uns an, wie Live-CDs funktionieren und wie Sie sie erstellen und ändern können. Außerdem sprechen wir da-rüber, wie Sie ISO-Images (International Organization for Standardization) verwenden, wie Sie USB-Laufwerke bootfähig machen und wie Sie eine persistente Live-CD erstellen.

1.4.1 Live-CDs

Eine Live-CD ist im Grunde genommen eine CD oder DVD mit einer bootfähigen Version eines Betriebssystem, die so abgewandelt wurde, dass es nicht nötig ist, Dateien auf den Startdatenträger zu schreiben. Dadurch können Sie reine Lesemedien verwenden, um ein voll funktionsfähiges Betriebssystem zu starten, wobei auch auf die Festplatten des Sys-tems keine Daten dauerhaft geschrieben werden. Das System muss nicht einmal über eine Festplatte verfügen, da es alles, was es braucht, auf dem optischen Medium findet.

Live-CDs kamen Anfang bis Mitte der 1990er Jahre auf. Heutzutage gibt es Live-CDs für viele der gebräuchlichen Betriebssysteme und Distributionen. Da die meisten Betriebs-systeme Platz für temporäre Dateien benötigen, werden die Live-CDs so eingerichtet, dass diese Dateien im Arbeitsspeicher oder (was jedoch seltener ist) an einem bestehenden Speicherort auf einer Festplatte des Systems erstellt. Dateien, die der Benutzer während der Verwendung der Live-CD erstellt und behalten möchte, werden gewöhnlich auf ein USB-Laufwerk oder ebenfalls auf eine Partition der Festplatte geschrieben.

Page 29: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

29 1.4 Grundlegende Technologien

Eine Live-CD erstellen

Je nach verwendetem Betriebssystem gibt es unterschiedliche Möglichkeiten, eine Live-CD zu erstellen. Bei Microsoft Windows besteht die am häufigsten verwendete Methode darin, das Windows Assessment and Deployment Kit (ADK) zu nutzen. Es kann kostenlos von Microsoft heruntergeladen werden und bietet unter anderem die Möglichkeit, eine startfähige Windows-CD oder -DVD zu erstellen. Mit diesem Tool und einer lizenzierten Original-DVD von Microsoft Windows können Sie schnell und einfach ein startfähiges Image anlegen. Die Verwendung dieses Werkzeugs führen wir im Abschnitt »Open-Sour-ce-Werkzeuge« vor.

Unter Linux ist es etwas komplizierter, eine Live-CD zu erstellen. Die genaue Vorgehens-weise hängt außerdem von der Distribution ab. Bei Ubuntu müssen Sie eine Reihe von Verzeichnissen anlegen, zusätzliche Pakete auf einem bestehenden Linux-System ins-tallieren, das Betriebssystem kopieren, so ändern, dass es korrekt funktioniert, eine be-stimmte Verzeichnisstruktur gestalten und schließlich die CD oder DVD brennen. Alle diese Schritte und eine ausführliche Anleitung finden Sie auf https://help.ubuntu.com/community/MakeALiveCD/DVD/BootableFlashFromHarddiskInstall.

Bei Fedora ist der Vorgang etwas einfacher. Dort gibt es das Paket livecd-tools mit dem Werkzeug livecd-creator, das folgende Schritte ausführt:

1. Es richtet eine Datei für das Dateisystem ext3 ein, die alle Daten für die Live-CD enthält.

2. Es hängt diese Datei als Loopgerät in das Dateisystem ein, sodass es ein Installations-wurzelverzeichnis gibt.

3. Es hängt bestimmte Kerneldateisysteme (/dev, /dev/pts, /proc, /sys, /selinux) mit --bind im Installationswurzelverzeichnis ein.

4. Es legt in einer Konfigurationsdatei die erforderlichen Pakete und die Standardkonfigu-rationsoptionen fest. Diese Datei hat das gleiche Format, das auch für die Installation eines Systems mithilfe von kickstart verwendet wird.

5. Es installiert die erforderlichen Pakete mit yum. Dazu verwendet es die in der kick-start-Datei angegebenen Repositorys.

6. Optional führt es Skripte aus, die in der Konfigurationsdatei angegeben sind.

7. Es benennt das gesamte Installationswurzelverzeichnis um (SELinux).

8. Es erstellt eine Live-CD-spezifische initramfs passend zu dem installierten Kernel.

9. Es hängt die im Installationswurzelverzeichnis bereitgestellten Kerneldateisysteme aus.

10. Es hängt das Installationswurzelverzeichnis aus.

11. Es erstellt das Dateisystem squashfs, das nur die Standarddatei ext3/4 enthält (Kom-primierung).

12. Es konfiguriert den Bootlader.

13. Es erstellt eine bootfähige ISO-9669-CD/DVD.

Page 30: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

30 1 Das Handwerkszeug

Das erleichtert den Vorgang zum Erstellen einer Live-CD erheblich. Die vollständige Dokumentation dazu finden Sie auf http://fedoraproject.org/wiki/How_to_create_and_use_Fedora_Live_CD.

Live-CDs ändern

Die Änderung einer Live-CD ähnelt der Neuerstellung, allerdings haben Sie hier bereits eine Grundlage, die die Arbeit erleichtert. Im Prinzip wird dabei der Inhalt der Live-CD in einen Arbeitsbereich verlagert und dort geändert, indem beispielsweise Dateien hinzu-gefügt, vorhandene Dateien abgewandelt oder gelöscht werden. Richtig kompliziert wird dieser Vorgang, wenn Sie Pakete installieren und die neue Live-CD mit diesen aktualisier-ten Versionen erstellen müssen.

Es gibt zwei Möglichkeiten dafür. Bei der ersten installieren Sie das Betriebssystem auf einem Computer, aktualisieren Dateien und Pakete nach Bedarf und bündeln diese ab-gewandelte Version dann als neue Live-CD. Alternativ können Sie die komprimierten Images einhängen, die beim Erstellen einiger Arten von Live-CDs angelegt werden, sie aktualisieren und dann aus diesen veränderten Images die neue Live-CD bilden. Diese Methode wird unter anderem bei Knoppix üblicherweise eingesetzt. Ein Beispiel für eine vergleichbare Methode für Ubuntu finden Sie auf https://help.ubuntu.com/community/LiveCDCustomization.

1.4.2 ISO-Images

Allen diesen Methoden zum Erstellen einer Live-CD ist gemeinsam, dass Sie am Ende ein Image auf das optische Medium schreiben. Dabei handelt es sich gewöhnlich um ein ISO-Image. Dies ist eine standardisierte Methode, alle Daten, die auf die CD oder DVD ge-schrieben werden sollen, in eine einzige Datei zu packen. Anstatt einer Verzeichnisstruktur mit vielen verschiedenen Dateien haben Sie nur es nur noch mit einer einzigen Datei zu tun, die Sie auf eine Festplatte und gleichzeitig auf ein optisches Medium schreiben kön-nen. Dazu gibt es eine Reihe von Werkzeugen.

In Windows 7 und höheren Versionen ist eine Funktion eingebaut, um ein ISO-Image auf einen optischen Datenträger zu brennen. In früheren Versionen war es dazu erforderlich, den ISO-Recorder oder entsprechende kostenlose oder kommerzielle Werkzeuge zu ver-wenden. In Linux wird für diesen Zweck gewöhnlich das Dienstprogramm cdrecord ver-wendet (das zur Sammlung cdrtools gehört). Eine Kommandozeile für dieses Werkzeug sieht beispielsweise wie folgt aus:

cdrecord myimage.iso

Dadurch wird das ISO-Image mit der höchsten Geschwindigkeit auf das erste gefundene optische Laufwerk gebrannt. Laut Standarderstellung wird dabei eine Daten-CD erstellt.

Page 31: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

31 1.4 Grundlegende Technologien

1.4.3 Bootfähige USB-Laufwerke

Ein bootfähiges USB-Laufwerk zu erstellen ähnelt im Prinzip dem Vorgang, eine bootfä-hige CD oder DVD anzulegen. In beiden Fällen müssen die erforderlichen Dateien und Datenstrukturen auf das zu verwendende Medium kopiert werden. Die Festplatte muss darüber hinaus bootfähig gemacht werden. Beim Brennen eines ISO-Images auf einen optischen Datenträger ist das gewöhnlich schon passiert, und der Booteintrag wird beim Schreiben des Images erstellt. Bei USB-Laufwerken dagegen erfolgt dies nicht automa-tisch, sondern muss manuell durchgeführt werden.

Dazu gibt es eine Reihe von Methoden. Sie reichen vom Erstellen eines Bootsektors auf dem USB-Laufwerk mit Windows-Bordmitteln bis zum Erstellen eines multibootfähigen, menügesteuerten Systems mithilfe verschiedener Dienstprogramme. Hier stellen wir zwei Beispiele vor, nämlich eines für Windows und eines für Linux.

Ein bootfähiges USB-Laufwerk unter Windows 10 erstellen

Mit dieser Methode erstellen Sie ein bootfähiges USB-Laufwerk mit Windows. Dabei wird das Laufwerk mit NTFS formatiert. Wie Sie dazu vorgehen müssen, wird in der folgenden Anleitung beschrieben. Führen Sie diese Schritte auf einem Computer mit Windows 10 aus.

WarnungWenn Sie beim Erstellen eines bootfähigen USB-Laufwerks einen falschen Befehl geben, kann Ihre Festplatte formatiert werden! Lassen Sie daher die entsprechen-de Vorsicht walten. Am besten ist es, diesen Vorgang auf einem Testsystem oder auf einem Rechner durchzuführen, dessen Verlust Sie verschmerzen können.

1. Öffnen Sie eine Eingabeaufforderung mit Administratorberechtigungen.

2. Führen Sie den Befehl diskpart aus.

3. Geben Sie den Befehl list disk ein, um zu ermitteln, welches der Laufwerke das USB-Laufwerk ist.

4. Geben Sie den Befehl select disk X, wobei Sie X durch die Nummer des USB-Lauf-werks ersetzen.

5. Führen Sie den Befehl clean aus, um das Laufwerk zu löschen.

6. Führen Sie den Befehl createpartition primary aus, um eine neue primäre Partition auf dem USB-Laufwerk zu erstellen.

7. Führen Sie den Befehl select partition 1 aus, um die neu erstellte Partition auszu-wählen.

Page 32: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

32 1 Das Handwerkszeug

8. Führen Sie den Befehl active aus, um die neue Partition als aktiv zu kennzeichnen.

9. Führen Sie den Befehl format fs=ntfs aus, um das Laufwerk zu formatieren.

10. Führen Sie die Befehle assign und exit aus, um den Formatierungsvorgang abzu-schließen.

11. Führen Sie den Befehl bootsect.exe /nt60 X: aus, wobei Sie anstelle von X den Lauf-werksbuchstaben angeben, den Sie dem USB-Laufwerk zuweisen möchten.

12. Wenn der Befehl abgeschlossen ist, wird an der Aufforderung die Meldung Bootcode was successfully updated on all target volumes angezeigt.

Ein bootfähiges USB-Laufwerk unter Linux erstellen

Unter Linux gibt es für diesen Vorgang verschiedene Dienstprogramme. Eines davon, nämlich UNetbootin, werden wir im Abschnitt »Open-Source-Werkzeuge« besprechen. Um den Vorgang manuell durchzuführen, gehen Sie wie folgt vor:

WarnungAuch hier gilt wieder, dass Sie bei der Verwendung der falschen Befehle Ihre Fest-platte formatieren können. Seien Sie also entsprechend vorsichtig!

1. Führen Sie den Befehl fdisk /dev/sda aus (unter der Voraussetzung, dass das USB-Laufwerk dem Gerät sda zugewiesen ist.)

2. Geben Sie d ein, um eine Partition zu löschen.

3. Geben Sie l ein, um die Partition 1 auszuwählen. (Wenn es auf dem USB-Laufwerk nur eine Partition gibt, wird sie wahrscheinlich automatisch ausgewählt.)

4. Geben Sie n und dann p ein, um eine neue primäre Partition zu erstellen.

5. Geben Sie 1 ein, um die Partition 1 auszuwählen. Drücken Sie die Eingabetaste, um den vorgegebenen Startzylinder zu akzeptieren.

6. Geben Sie die gewünschte Größe für die Partition ein, z. B. +4G für eine 4-GB-Partition.

7. Geben Sie t ein, um den Typ der Partition zu ändern.

8. Geben Sie l ein, um die Partition 1 auszuwählen. (sie wird wahrscheinlich automatisch ausgewählt.)

9. Geben Sie b ein und wählen Sie fat32 als Partitionstyp aus.

10. Machen Sie die erste Partition aktiv, indem Sie a gefolgt von 1 eingeben.

Page 33: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

33 1.4 Grundlegende Technologien

11. Geben Sie w ein, um die Änderungen zu schreiben.

12. Führen Sie den Befehl mkfs.vfat /dev/sda1 aus, um die neue Partition zu formatieren.

13. Führen Sie den Befehl grub-install /dev/sda aus, um den GRUB-Bootlader auf dem USB-Laufwerk zu installieren. (Hinweis: Damit das funktionieren kann, muss Grub installiert sein. Zur Installation auf Debian verwenden Sie den Befehl apt-get install grub.)

HinweisDiese Anleitungen sind nur Beispiele. Je nachdem, welche Pakete Sie installiert haben und wie die Festplatte auf dem Computer strukturiert ist, können Sie da-bei wechselnden Erfolg erzielen.

1.4.4 Eine persistente Live-CD erstellen

Der größte Nachteil einer Live-CD besteht darin, dass beim Herunterfahren des Sys-tems jegliche Änderungen verloren gehen. Das kann durchaus aus ein Vorteil sein, da das Bootimage dadurch nicht geändert werden kann und daher sicher ist. Aber wäre es nicht schön, beides zugleich erreichen zu können? Damit kommt das Prinzip der »persistenten« Live-CD ins Spiel.

Dabei handelt es sich um eine mit Linux erstellte Live-CD, die über einige besondere Merkmale verfügt. Das Kernbetriebssystem ist nach wie vor schreibgeschützt, doch Sie können Änderungen an einem eigenem Speicherort ablegen. Das ist besonders praktika-bel, wenn Sie ein bootfähiges USB-Laufwerk als Medium verwenden, denn darauf können Sie problemlos schreiben, ohne die Festplatten des über die Live-CD gestarteten Systems ändern zu müssen. Zurzeit ist dies in Ubuntu möglich.

Wenn Sie die Anweisungen im Abschnitt »Ein bootfähiges USB-Laufwerk unter Linux er-stellen« befolgt haben, sind Sie schon auf halbem Wege zum Ziel. Es sind nur noch einige zusätzliche Schritte erforderlich, um eine geeignete Partition für die dauerhafte Speiche-rung von Änderungen zu erstellen. Nachdem Sie die primäre Partition erstellt haben, müs-sen Sie anschließend noch die folgenden Vorgänge ausführen, um eine zweite Partition anzulegen und zu formatieren.

TippDie Dateisysteme ext3 und ext4 eigenen sich gut hierfür. Wenn auf Ihrem USB-Laufwerk jedoch wenig Platz ist, sollten Sie stattdessen ext2 verwenden.

Page 34: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

34 1 Das Handwerkszeug

1. Führen Sie den Befehl fdisk /dev/sda aus (unter der Voraussetzung, dass das USB-Laufwerk dem Gerät sda zugewiesen ist.)

2. Geben Sie n und dann p ein, um eine neue primäre Partition zu erstellen.

3. Geben Sie 2 ein, um die Partition 2 auszuwählen. Drücken Sie die Eingabetaste, um den vorgegebenen Startzylinder zu akzeptieren.

4. Geben Sie die gewünschte Größe für die Partition ein, z. B. +4G für eine 4-GB-Partition.

5. Geben Sie t ein, um den Typ der Partition zu ändern.

6. Geben Sie 2 ein, um die Partition 2 auszuwählen.

7. Geben Sie 83 ein, um Linux als Partitionstyp auszuwählen.

8. Geben Sie w ein, um die Änderungen zu schreiben.

9. Führen Sie den Befehl mkfs.ext3 -b 4096 -L casper-rw /dev/sda2 aus, um die neue Partition zu formatieren und als casper-rw zu bezeichnen.

HinweisAnstelle des USB-Laufwerks können Sie auch eine Loopbackdatei auf der Fest-platte des Systems verwenden. Dazu ist eine leicht abweichende Konfiguration erforderlich. Einzelheiten finden Sie auf https://help.ubuntu.com/community/LiveCD/Persistence.

Diese Methode gilt zurzeit der Abfassung dieses Buches nur für Ubuntu. Es kann aber durchaus sein, dass sie auch von anderen Distributionen unterstützt wird. Um sie zu nut-zen, müssen Sie den Kernel anweisen, im Persistenzmodus zu starten. Dazu müssen Sie der Argumentliste für den Kernel persistent hinzufügen. Das können Sie manuell beim Start, aber auch innerhalb des Bootladers tun. Falls Sie die Änderungen verwerfen und wieder zu Ihrer ursprünglichen Live-CD zurückkehren wollen, löschen Sie einfach die Partition casper-rw.

1.5 Open-Source-WerkzeugeEs sind eine Reihe von Open-Source-Werkzeugen und -Werkzeugsätzen erhältlich, die Ihnen bei Penetrationstests helfen können. In diesem Abschnitt besprechen wir einige der Werkzeuge, die schon im Abschnitt »Grundlegende Technologien« erwähnt wurden, und gehen dann zu zwei weiteren Arten von Tools über. Wir gehen auch auf einige Werkzeug-sätze ein, die mehrere Open-Source-Tools umfassen, und sehen uns Ziele für Penetra-tionstests an, die zu Testzwecken zur Verfügung stehen.

Page 35: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

35 1.5 Open-Source-Werkzeuge

HinweisNicht alle in diesem Abschnitt besprochenen Werkzeuge sind tatsächlich Open-Source-Tools. Manchmal kann die Verwendung von nicht quelloffenen oder kommerziellen Werkzeugen wie Windows ADK unvermeidbar sein, wenn es kei-ne vergleichbaren Open-Source-Tools gibt. Nach Möglichkeit bevorzugen wir hier jedoch quelloffene Werkzeuge.

1.5.1 Tools zum Erstellen von Live-CDs

Zum Abschluss unserer Erörterung von Live-CDs sehen wir uns einige Werkzeuge zu ihrer Erstellung an. Als Erstes sprechen wir über die von Microsoft zur Verfügung ge-stellten Tools Windows AIK und Windows ADK, mit denen wir eine Windows-Live-CD anlegen können. Des Weiteren betrachten wir einige nicht von Microsoft stammende Werkzeuge für diesen Zweck wie Win8.1SE. Als Letztes geht es um UNetbootin, das sowohl für Windows als auch für Linux zur Verfügung steht, und um das Windows-Tool Rufus.

Windows ADK und AIK

Im Abschnitt »Grundlegende Technologien« haben wir schon kurz das von Microsoft be-reitgestellte Windows Assessment and Deployment Kit oder kurz ADK gestreift. Dabei handelt es sich um die Windows-10-Version des Windows-8-Tools Windows Automated Installation Kit (AIK), das Sie kostenlos von http://www.microsoft.com/de-de/download/details.aspx?id=5753 herunterladen können. Das ADK für Windows 10 wiederum erhal-ten Sie ebenfalls kostenlos auf https://developer.microsoft.com/de-de/windows/hardware/windows-assessment-deployment-kit. Damit können Sie bootfähige Windows-Live-CDs und USB-Laufwerke erstellen, die die grundlegenden Betriebssystemdateien enthalten. Wie viele Features auf dem Medium installiert werden, können Sie entscheiden, aber Sie sollten dabei denken, dass jedes zusätzliche Merkmal weiteren Platz einnimmt. Da-her müssen Sie sorgfältig zwischen dem Funktionsumfang des Images und dem dafür erforderlichen Speicherplatz abwägen. Darüber hinaus wird nur eine begrenzte Auswahl von Voraussetzungen vorinstalliert, und viele Anwendungen können ohne die fehlenden Kernbibliotheken nicht ausgeführt werden.

HinweisADK und AIK sind sich hinsichtlich der Verwendung sehr ähnlich. Viele Be-fehle und Vorgänge funktionieren in beiden Programmen. Da Windows 10 die aktuellere Version ist, verwenden wir in der folgenden Anleitung ADK.

Page 36: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

36 1 Das Handwerkszeug

Die Installation von ADK ist sehr einfach. Dabei werden automatisch einige neue Ver-knüpfungen in Windows angelegt. Wenn Sie die Verknüpfung Deployment and Imaging Tools Environment als Administrator starten, wird eine besondere Eingabeaufforderung geöffnet. Hier können Sie alle erforderlichen Befehle ausführen, um eine Windows-Live-CD zu erstellen. Um das grundlegende Live-CD-Image zu erstellen und bereitzustellen, verwenden Sie die folgenden Befehle:

1. copype amd64 c:\pe-amd64

2. dism /mount-image /imagefile:c:\pe-amd64\media\sources\boot.wim/index:1 /mount-dir:c:\pe-amd64\mount

Wenn Sie die Live-CD noch mit weiteren Paketen ausstatten möchten, z. B. Windows Management Instrumentation (WMI) oder Skripting, müssen Sie diese und die zuge-hörigen Sprachpakete dem Image hinzufügen. Dazu verwenden Sie folgende Befehle:

1. Nachdem Sie die zuvor aufgeführten Schritte durchgeführt haben, befindet sich die Eingabeaufforderung im Verzeichnis C:\Program Files (x86)\Windows Kits\8.1\As-sessment and Deployment Kit\Deployment Tools. Geben Sie cd.. ein, um eine Ver-zeichnisebene höher zu gelangen.

2. Geben Sie cd "windows preinstallation environment\amd64\WinPE_OCs" ein und drü-cken Sie die Eingabetaste. (Die Anführungszeichen sind erforderlich.)

3. dism /image:c:\pe-amd64\mount /add-package /packagepath:winpe-wmi.cab

4. dism /image:c:\pe-amd64\mount /add-package /packagepath:en-us\winpe-wmi_en-us.cab

5. dism /image:c:\pe-amd64\mount /add-package /packagepath:winpescripting.cab

6. dism /image:c:\pe-amd64\mount /add-package /packagepath:en-us\winpe-scripting_en-us.cab

Anschließend kann die Bereitstellung des Live-CD-Images aufgehoben werden. Um die vorgenommenen Änderungen zu verwerfen, verwenden Sie den Schalter /discard, ande-renfalls /commit:

dism /unmount-image /mountdir:c:\pe-amd64\mount /commit

Abschließend machen Sie aus dem Image mit folgendem Befehl ein bootfähiges USB-Laufwerk oder eine bootfähige CD:

makewinpemedia /UFD c:\pe-amd64 J:

In diesem Beispiel ist J: der Laufwerksbuchstabe, unter dem das USB-Laufwerk bereitge-stellt ist. Geben Sie stattdessen den tatsächlichen Laufwerksbuchstaben für das Gerät an.

Page 37: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

37 1.5 Open-Source-Werkzeuge

Win8.1SE

Auch mit Win8.1SE können Sie Windows-Live-CDs erstellen. Geschrieben wurde dieses Tool von TheOven.org. Zurzeit ist es auf http://win81se.cwcodes.net erhältlich. Es ist nicht quelloffen, aber kostenlos erhältlich. Win8.1SE führt eine Reihe von Skripten aus, die ein maßgeschneidertes Image für eine Windows-Live-CD erstellen. Diese Skripte installieren nützliche Softwareanwendungen wie diejenigen von PortableApps.com. Außerdem kön-nen Sie die Optionen in dem Tool durchgehen und die Skripte anpassen, um ein genau auf Ihre Bedürfnisse zugeschnittenes Image mit allen benötigen Anwendungen für Ihre Windows-Live-CD anzulegen. Abb. 1.1 zeigt einen Screenshot dieses Werkzeugs mit eini-gen der Optionen.

HinweisZurzeit der Abfassung dieses Buches war Win 10 PE SE bei TheOven noch in der Entwicklung. Daher zeigen wir hier noch die Vorgängerversion. Sie sollten aber bei allen Werkzeugen stets die neueste Version verwenden, die für Ihre Zwecke geeignet ist.

Nach der entsprechenden Anpassung der Konfigurationsskripte können Sie das Image für die Windows-Live-CD erstellen, indem Sie auf das Symbol Play klicken und die Skripte aus-führen. Je nach ausgewählten Optionen kann das Image auch gleich automatisch auf das USB-Laufwerk oder die CD geschrieben werden. Alternativ können Sie auch einfach ein ISO-Image generieren lassen, das Sie dann später auf das vorgesehene Medium schreiben.

Abbildung 1.1: Win8.1SE

Page 38: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

38 1 Das Handwerkszeug

Rufus

Rufus ist eine Open-Source-Lösung, um auf einfache Weise bootfähige USB-Geräte zu erstellen. Zurzeit steht diese Software auf http://rufus.akeo.ie/ zur Verfügung. Damit kön-nen Sie ein ISO-Image formatieren, Bootinformationen dafür festlegen und es auf ein USB-Gerät übertragen. Dieses Werkzeug ist sehr leistungsfähig und äußerst schnell. Eine Rufus-Beispielkonfiguration, um ein bootfähiges USB-Laufwerk auf der Grundlage eines Win8.1SE-Images zu erstellen, sehen Sie in Abb. 1.2.

Abbildung 1.2: Rufus

UNetbootin

UNetbootin ist ein Open-Source-Tool, das Sie auf http://unetbootin.sourceforge.net sowohl für Windows als auch für Linux erhalten. Damit können Sie nicht nur ein bootfähiges USB-Laufwerk erstellen, sondern auch verschiedene Linux-Images auf lokalen Festplatten installieren. Eine sehr praktische Funktion ist der eingebaute Distributions-Downloader, mit dem Sie einfach eine Linux-Distribution auswählen können, woraufhin sich das Tool um den Rest kümmert. Des Weiteren können Sie mit UNetbootin bootfähige Laufwerke von eigenen ISO-Images erstellen. Abb. 1.3 zeigt die Verwendung von UNetbootin zur Installation von Ubuntu auf einem USB-Laufwerk.

Die Verwendung ist ziemlich einfach. Das Tool kümmert sich auch darum, dass alle hinter den Kulissen erforderlichen Schritte erledigt werden, darunter die Partitionierung, die Ein-richtung der Dateien und die Kennzeichnung des Laufwerks als bootfähig. Dadurch ver-ringert UNetbootin die zum Erstellen bootfähiger Laufwerke erforderliche Zeit erheblich.

Page 39: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

39 1.5 Open-Source-Werkzeuge

WarnungDenken Sie daran, dass Dienstprogramme wie UNetbootin eine bootfähige Par-tition auf dem USB-Ziellaufwerk erstellen. Wenn Sie versehentlich Ihre Festplatte als Ziel auswählen, können Sie damit deren Master-Boot-Record überschreiben, sodass sie für das normale Betriebssystem unbrauchbar wird.

Abbildung 1.3: UNetbootin

1.5.2 Werkzeugsätze für Penetrationstests

Im Laufe der Jahre sind viele Werkzeugsätze für Penetrationstests zusammengestellt worden. Es scheint fast so, als käme jeden Monat ein neuer hinzu; wenn nicht gar jede Woche! Es gibt verschiedene sehr hervorragende Sätze, wobei es natürlich immer darauf ankommt, was für Bedürfnisse Sie haben. Die verschiedenen Werkzeugsätze weisen oft eine Reihe gleicher oder ähnlicher Werkzeuge auf. Die wichtigsten Unterschiede beste-hen in dem zugrunde liegenden Betriebssystem und in den besonderen Werkzeugen oder Konfigurationen. Wir können in diesem Buch nicht auf sämtliche Werkzeugsätze für Penetrationstests eingehen, aber wir wollen im Folgenden einige der gängigeren be-sprechen.

Page 40: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

40 1 Das Handwerkszeug

Kali Linux

Kali Linux ist die zurzeit wahrscheinlich am weitesten verbreitete Sammlung von Werk-zeugen für Penetrationstests. Sie können Sie als ISO-, als ARM- und als VMware-Image von http://www.kali.org herunterladen. Die aktuelle Version ist Kali Linux 1.0.7. Entwickelt wurde Kali Linux aus dem sehr beliebten BackTrack Linux, das wir in der vorherigen Aus-gabe dieses Buches ausgiebig genutzt haben.

Kali Linux kann als Live-CD ausgeführt, auf einer Festplatte installiert und in einer virtuellen Maschine verwendet werden und funktioniert unter allen drei Umständen gleich gut. Darüber hinaus wird Kali Linux inzwischen auch auf ARM-Geräten wie Tab-lets und Smartphones verwendet, weshalb es auch Distributionen für diese Architektur gibt. Nachdem Sie sich angemeldet haben, können Sie die in der Distribution enthal-tenen Werkzeuge ausführen. In Kali Linux stehen Hunderte davon zur Verfügung. Am besten ist es daher, das Betriebssystem zu starten und dann nachzusehen, ob das Werk-zeug, das Sie haben wollen, bereits enthalten ist. Abb. 1.4 zeigt eine kleine Auswahl der vielen Tools in Kali Linux.

Abbildung 1.4: Tools in Kali Linux

Page 41: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

41 1.5 Open-Source-Werkzeuge

Samurai Web Testing Framework

Eine der besseren Werkzeugsammlungen für Webpenetrationstests ist das Samurai Web Testing Framework, das auf http://samurai.inguardians.com/ zur Verfügung steht. Es ist ei-gens zur Überprüfung von Websites gedacht und enthält alle dafür erforderlichen Dienst-programme. Sie können es in einem Format für eine Live-CD herunterladen, aber auch auf einer Festplatte oder einem USB-Laufwerk installieren. Abb. 1.5 zeigt das Samurai Web Testing Framework als Live-CD mit einigen Werkzeugen für Webdienste.

Abbildung 1.5: Samurai Web Testing Framework

Wie Sie in dem Screenshot erkennen können, ist die Liste der in dieser Distribution enthaltenen Werkzeuge nicht sehr lang. Das Framework umfasst aber alle erforderlichen Tools für Penetrationstests von Webanwendungen. Dies ist ein Beispiel für eine hoch-spezialisierte Werkzeugsammlung, die für einen ganz bestimmten Bereich von Weban-wendungen zugeschnitten ist.

Page 42: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

42 1 Das Handwerkszeug

Network Security Toolkit

Das Network Security Toolkit hat Fedora zur Grundlage und kann von http://www. networksecuritytoolkit.org/nst/index.html heruntergeladen werden. Es ist kostenlos er-hältlich, aber es gibt auch eine Pro-Ausgabe, für die häufigere Aktualisierungen geplant sind als bei der kostenlosen Version, um sie zeitnäher auf dem neuesten Stand zu halten. Dieses Toolkit umfasst eine Menge von Werkzeugen und hat wie die meisten der anderen hier besprochenen Sammlungen die Form einer startfähigen Live-CD.

Eines der wichtigsten Merkmale von NST ist die erweiterte Webbenutzerschnittstelle (Web User Interface, WUI), die eigens für Penetrationstests gestaltet wurde. Dadurch können Penetrationstester in dem mitgelieferten Webbrowser schnell die Werkzeuge finden und ausführen, die sie brauchen. Abb. 1.6 zeigt die Webschnittstelle von NST.

Abbildung 1.6: NST

Page 43: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

43 1.5 Open-Source-Werkzeuge

Arudius

Arudius ist eine auf http://www.tdisecurity.com/tdi-labs/arudius.htm erhältliche Live-CD von TDI Security. Mit einer ISO-Größe von nur 209 MB hat sie einen sehr geringen Speicherbedarf. Das macht sie vor allem in Situationen geeignet, in denen es auf den Platz ankommt. Neben einer hervorragenden Auswahl von Sicherheitswerkzeugen ent-hält Arudius auch einige von TDI entwickelte Dienstprogramme wie Netzwerksniffer für Instant Messaging und Peer-to-Peer-Anwendungen. Die Liste der im Lieferumfang inbegriffenen Werkzeuge ist vor allem angesichts der Größe der Distribution beeindru-ckend. Abb. 1.7 zeigt, wie die Arudius-Live-CD nach dem Start aussieht.

Abbildung 1.7: Arudius

Wie in dem Screenshot zu sehen ist, können Sie nach dem Start mit dem Befehl startx die grafische Konsole aufrufen. In den Menüs dieser grafischen Oberfläche können Sie eine Reihe von Werkzeuge ausführen und sich die komplette Liste anschauen.

Page 44: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

44 1 Das Handwerkszeug

Operator

Operator ist eine Distribution auf der Grundlage von Debian, die mithilfe von Knop-pix geladen und vollständig im Arbeitsspeicher ausgeführt wird. Sie steht auf http://www.ussysadmin.com/operator/ zur Verfügung und enthält Hunderte von Paketen und Anwendungen, darunter eine erhebliche Menge von Tools zur Netzwerk- und Sicher-heitsanalyse. Je nachdem, welches Betriebssystem Sie bevorzugen, kann diese Sammlung genau die richtige für Ihre Bedürfnisse sein und Sie mit allen Werkzeugen versorgen, die Sie brauchen. Andere Distributionen bringen zwar noch mehr Tools mit, aber Ope-rator weist eine sehr saubere Benutzeroberfläche auf und enthält in seinem Abschnitt Opera tor_Extras/Notes einige interessante Informationen zu einer Reihe von Themen. Die Oberfläche von Operator sehen Sie in Abb. 1.8.

Abbildung 1.8: Operator

Page 45: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

45 1.5 Open-Source-Werkzeuge

Pentoo

Die Distribution Pentoo basiert auf Gentoo Linux. Ihr Schwerpunkt liegt auf Penetra-tionstests im Allgemeinen, was sich auch in der Auswahl der mitgelieferten Werkzeuge zeigt. Eines der interessantesten Merkmale dieser Distribution ist ihre Verstärkung, so-dass sie sowohl für Penetrationstests als auch für den täglichen Gebrauch genutzt werden kann. Penetrationstester, die ihre Arbeitswerkzeuge von ihrem normalen Betriebssystem getrennt halten wollen, halten zwar nicht nach einer solchen Eigenschaft Ausschau, doch wenn sie ihre Werkzeuge immer griffbereit haben wollen, ist dies ein Vorteil. Pentoo ist zurzeit auf http://www.pentoo.ch/download erhältlich. In Abb. 1.9 sehen Sie einige der in dieser Distribution verfügbaren Werkzeuge.

Abbildung 1.9: Pentoo

Wie bei anderen hier besprochenen Distributionen können Sie auch hier die grafische Konsole mit dem Befehl startx aufrufen. Beim ersten Start werden Sie dazu aufgefordert, eine einfache Konfiguration der grafischen Schnittstelle durchzuführen. Danach können Sie die verfügbaren Tools nach Bedarf nutzen.

Page 46: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

46 1 Das Handwerkszeug

Matriux

Die Distribution Matriux basiert auf Debian und enthält eine erhebliche Menge von Werk-zeugen. Wie viele der anderen hier besprochenen Distributionen kann auch Matriux als Live-CD ausgeführt und als Hostbetriebssystem installiert werden. Besonders interessant an Matriux ist die Bereitstellung forensischer Tools, mit denen Sie die Distribution sowohl als Werkzeugsammlung für Penetrationstests als auch für forensische Aufgaben nutzen können. Zurzeit steht sie unter http://www.matriux.com/index.php?page=download zur Verfügung.

Nach der Installation von Matriux werden Sie aufgefordert, sich daran anzumelden. Die Standardanmeldeinformationen dafür sind matriux/toor. Nach der Anmeldung sehen Sie eine grafische Benutzeroberfläche mit strukturierten Menüs, die die verfügbaren Werk-zeuge zeigen (zu sehen in Abb. 1.10).

Abbildung 1.10: Matriux

Page 47: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

47 1.5 Open-Source-Werkzeuge

BackBox

Die letzte Distribution für Penetrationstests, die wir uns in diesem Abschnitt ansehen, ist BackBox Linux. Sie gewinnt eine immer größere Anhängerschaft für die Durchführung von Penetrationstests in verschiedenen Umgebungen. Zurzeit erhalten Sie sie auf http://www.backbox.org. Der Schwerpunkt liegt darauf, geeignete Werkzeuge für verschiedene Aufgaben bereitzustellen, ohne den Benutzer zu überfordern. Einen Screenshot der Dis-tribution mit einigen der verfügbaren Werkzeugkategorien und Werkzeuge sehen Sie in Abb. 1.11.

Abbildung 1.11: BackBox Linux

1.5.3 Ziele für Penetrationstests

Unabhängig davon, ob Sie in einem Pen-Testing-Team eines weltweiten Großunterneh-mens arbeiten oder gerade erst in einem Kabuff in Ihrer Wohnung die ersten Schritte wagen, brauchen Sie Ziele, an denen Sie sich üben können. Wenn Sie die finanzielle Unter-stützung eines Unternehmens haben, handelt es sich bei den Zielen gewöhnlich um inter-ne Systeme oder um Kunden, die Sie für einen Penetrationstest unter Vertrag genommen haben. Falls Sie dagegen keine Systeme zur Hand haben, müssen Sie sie selbst einrichten und hoffen, dass Sie bei der Überprüfung dieser Systeme etwas lernen können. Diese Auf-gabe ist für Penetrationstester oft frustrierend und kann sie zum Aufhören veranlassen.

Page 48: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

48 1 Das Handwerkszeug

Diese Lücke füllen Live-CDs oder Images mit Zielen für Penetrationstests. Sie stellen für Penetrationstester eine Möglichkeit bereit, in einer sicheren Umgebung ihre Fähigkeiten zu üben und neue Fertigkeiten zu erwerben. Je nach dem verwendeten Ziel können Sie damit fast sämtliche Aspekte von Penetrationstests ausprobieren. Natürlich ist in dieser Welt nichts perfekt, sodass auch solche Live-CDs ihre Nachteile aufweisen. Wenn Sie ein Testlabor einrichten, um die Arbeit im Netzwerk und Angriffe auf Netzwerkgeräte zu ler-nen, dann bieten Ihnen diese CDs nicht unbedingt das, was Sie brauchen. Außerdem ist es schwer, Social Engineering in einem Labor zu üben, weshalb Ihnen Live-CD dabei auch nicht helfen können.

Die Verwendung von Live-CDs zur Simulation von Servern in einem Testlabor bietet jedoch auch erhebliche Vorteile. Der größte sind die Kosten. Labors sind gewöhnlich ziemlich ausgedehnt und teuer. Durch die Verwendung von Live-CDs können Sie die Kosten jedoch niedrig halten. Ein weiterer Vorteil ist die Zeit. Es kommt nicht selten vor, dass Sie bei einem Angriff auf ein System einen Dienst beschädigen oder eine notwen-dige Datei löschen, was es erforderlich macht, die Anwendung oder vielleicht sogar das ganze Betriebssystem neu zu laden. Wenn Sie bei der Verwendung einer Live-CD etwas irreparabel beschädigen, brauchen Sie die CD lediglich neu zu starten, um wieder auf das ursprüngliche System zurückzugreifen.

PenTest-CDs von De-ICE.net

De-ICE.net bietet kostenlos verschiedene Live-CDs mit realistischen Szenarien auf der Grundlage der Linux-Distribution Slax an. Auf diesen Datenträgern finden Sie mehrere Anwendungen, von denen einige angreifbar sind und andere nicht – ganz wie im richtigen Leben. Der Vorteil der Verwendung dieser Live-CDs besteht darin, dass Sie in Ihrem Labor keinen Server einrichten müssen. Sie legen einfach die CD ein, starten das System von der CD neu und haben auf diese Weise schon nach wenigen Minuten einen vollständig funk-tionsfähigen Server zur Verfügung, den Sie zu hacken versuchen können. Herunterladen können Sie die Live-CDs von http://hackingdojo.com/dojo-media/.

Ein weiterer Vorteil der PenTest-Live-CDs von De-ICE.net besteht darin, dass Sie verschie-dene Schwierigkeitsgrade bieten, sodass Penetrationstester unterschiedliche Fertigkeiten damit üben können. Zurzeit gibt es Schwierigkeitsgrad 1 und 2, wobei für Grad 1 zwei ver-schiedene Live-CDs zur Verfügung stehen. Darüber hinaus wurden von der Community weitere Schwierigkeitsgrade gestaltet, die auf demselben Speicherort vorgehalten werden. Jeder weist seine eigenen Schwachstellen auf. Durch den Versuch, die Systeme dieser Live-CDs zu knacken, erwerben Sie eine erhebliche Menge von Fähigkeiten für Penetrations-tests und üben sich im Gebrauch der Werkzeuge. Die Lernwirkung bei der Verwendung dieser Live-CDs kann nicht genug betont werden.

Page 49: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

49 1.5 Open-Source-Werkzeuge

Damn Vulnerable Web Application

Damn Vulnerable Web Application (DVWA) ist eine PHP/MySQL-Webanwendung mit einer Reihe bekannter Schwachstellen. Sie steht auf http://www.dvwa.co.uk/ zur Verfü-gung und ermöglicht es Ihnen, verschiedene Techniken auszuprobieren, die eigens auf Schwachstellen in Webanwendungen abzielen. Penetrationstests an Webanwendungen behandeln wir ausführlich in Kapitel 5.

Sie können DVWA als Live-CD, aber auch einfach als Ausführungsstack erhalten, der heruntergeladen und auf einem vorhandenen System installiert wird. In beiden Fällen können Sie damit die in diesem Buch beschriebenen Werkzeuge und Techniken zur Über-prüfung von Webanwendungen üben.

Mutillidae

Eine weitere großartige Webanwendung zum Üben von Penetrationstests ist Mutillidae, verfügbar auf http://www.irongeek.com/i.php?page=mutillidae/mutillidae-deliberatelyvul-nerable-php-owasp-top-10. Diese Anwendung wird auf einem Webserver mit XAMPP in-stalliert und nutzt Apache, PHP und MySQL. Sie weist die wichtigsten zehn vom OWASP (Open Web Application Security Project) genannten Webschwachstellen auf, die überdies so umgesetzt sind, dass sie sich leicht zeigen lassen. Mutillidae stellt ein hervorragendes Ziel für Penetrationstests dar. In Kapitel 5 verwenden wir diese Anwendung, um einige Schwachstellen vorzuführen.

WebGoat

Mutillidae veranschaulicht die wichtigsten zehn vom OWASP genannten Webschwachstel-len, doch das OWASP hat mit WebGoat auch eine eigene Anwendung für diesen Zweck entwickelt, die Sie auf http://www.owasp.org/index.php/Category:OWASP_WebGoat_Project finden. Sie weist eine Reihe von Schwachstellen auf, ist leicht zu verwenden und in sich abgeschlossen. In den komprimierten Dateien sind die Java-Laufzeitumgebung (JRE) und eine vorkonfigurierte Tomcat-Instanz bereits vorhanden, sodass Sie lediglich das Archiv auspacken und das Startskript ausführen müssen.

TippIn der Voreinstellung antwortet WebGoat nur auf der Loopback-Adresse (127.0.0.1). Daher ist es am besten, diese Anwendung auf dem Computer ein-zurichten, auf dem Sie Ihre Tools ausführen.

Page 50: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

50 1 Das Handwerkszeug

OldApps.com

Bei Penetrationstests müssen Sie manchmal Schwachstellen in einer bestimmten Versi-on einer bestimmten Anwendung untersuchen, beispielsweise um nach einem möglichen Pufferüberlauf in einer älteren Version eines Programms zu forschen, die bei einem Kun-den installiert ist. Softwarehersteller bieten jedoch gewöhnlich nur die neuesten Versionen ihrer Produkte an. Warum sollten Sie auch Versionen mit möglichen Sicherheitslücken weiterhin vorhalten?

In einem solchen Fall können Sie versuchen, die Anwendung auf http://oldapps.com zu finden. Dort finden Sie eine große Zahl von Anwendungen, von denen jeweils verschie-dene Versionen bereitgestellt werden. Beispielsweise erhalten Sie dort zurzeit mehr als 50 verschiedene Versionen von AOL Instant Manager. Sollte Ihr Kunde eine ältere Version dieser Software benutzen, können Sie genau diese Version herunterladen und testen, auch wenn es sie beim Hersteller nicht mehr gibt.

Metasploitable

Metasploitable wird von derselben Gruppe hergestellt, die auch Metasploit entwickelt hat, und ist ein hervorragendes Ziel, um Penetrationstests zu üben. Die Distribution finden Sie zurzeit auf http://sourceforge.net/projectgs/metasploitable/ in der Form eines VM-Images. Wie die anderen Ziele, die wir hier besprochen haben, weist es eine Reihe von Schwach-stellen auf, an denen Sie verschiedene Techniken ausprobieren können, um Ihre Fähigkei-ten zu verbessern. Metasploitable basiert auf Ubuntu Linux und kann in VM-Produkten ausgeführt werden, z. B. inVMware oder Virtualbox.

WarnungDenken Sie daran, dass diese Ziele für Penetrationstests absichtlich mit Schwach-stellen gespickt sind! Wenn Sie sie außerhalb Ihrer isolierten Laborumgebung oder wider jede Vernunft sogar im öffentlichen Internet zugänglich machen, so können Sie sich darauf verlassen, dass sie geknackt werden. Anschließend können sie genutzt werden, um andere Systeme in Ihrem Netzwerk anzugreifen. Führen Sie Ihre Tests auf sichere Weise durch und isolieren Sie die Ziele jederzeit!

1.6 Fallstudie: Die Werkzeuge im EinsatzIn der letzten Ausgabe dieses Buches haben wir Ihnen gezeigt, wie Sie sich eine Sammlung von Werkzeugen für Penetrationstests zusammenstellen können. Dabei ging es vor allem darum, ein bootfähiges USB-Laufwerk anzulegen und so einrichten, dass es sich jegli-che Änderungen merkt. In dieser Ausgabe legen wir den Schwerpunkt darauf, in unseren

Page 51: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

468

Stichwortverzeichnis

Symbole21st Century Fox 113, 329802.11 379802.11i 380802.15.1 3795220.22-M 445

AAd-hoc-Labor 450ADK 29, 35AES 380, 386AFRINIC 123AIK 35Airbase-ng 407Aircrack-ng

Enthaltene Tools 406PTW-Angriff 415Standardangriffsmodus 415WEP knacken 407

Aircrack-ptw 382Airdecap-ng 407Airdecloak-ng 407Airdrop-ng 407Aireplay-ng

ARP-Pakete 412Chopping 410Entauthentifizierung 404Fragmentierungsangriff 409Gefälschte Authentifizierung 409Paketinjektion 412Übersicht 407Verbindung mit Zugriffspunkt aufneh-

men 409Airgraph-ng 407Airmon-ng 406, 408, 416Airodump-ng

Filterung 412Injektion beobachten 413

Kanalwahl 408Übersicht 406

Airolib-ng 407Airserv-ng 407Airtun-ng 407AIX 172Angriffe

Als Tastatur getarntes Schadmedium 367

Anmeldeinformationen abrufen 343Arduino 367ARP-Fälschung 200, 205AT-Dienstangriffe 421Befehlsausführung 242, 278, 280Botnetz 358Browser-Exploits 343Chopping 381, 388, 410Codeausführung 240Cookiediebstahl 244Credential Harvester 343Cross-Site Scripting 244Dateisystemdurchlauf 242DoS 205, 217Drahtlose Netzwerke 383, 387Entauthentifizierung 389, 405, 407,

416Exploit-Werkzeuge 214FMS (Fluhrer-Mantin-Shamir) 387Fragmentierungsangriff 407, 409HSRP-Generator 220Identitätsfälschung 244Informationsbeschaffung 242Java-Applet 343LEAP 390Malware 278Malware auf USB-Geräten 367Man-in-the-Middle-Angriff 201, 205,

383Massen-E-Mail-Angriff 340Meterpreter 293, 324

Page 52: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

469 Stichwortverzeichnis

Mssql_payload 292Neighbor Discovery 205OBEX-Angriffe 421Paketinjektion 389, 407PTW 388, 415Pufferüberlauf 236Rechteerhöhung 282Reinjektion 389Remoteshell 310Siteübergreifende Skriptausführung

244Soziale Medien 345SQL-Injektion 243Stackpufferüberlauf 239Tab Nabbing 343Teensy 367Verzeichnisdurchlauf 242VPNs 391Webanwendungen 241Web Jacking 343WEP 387Windows PowerShell-Injektion 343WPA 389WPA2 380XSS 244

ANIC 123Antennen 384Antennenverstärkung 385Anweisungszeiger 238Apache 230Arduino 367ARIN 123ARM-Geräte 40ARP-Fälschung

IPv6 205Vorgehensweise 200

ARP-Pakete 389, 406, 412ARP-Scan 157Arudius 43Asleap 381ASN 92ASS 212Assemblersprache 359AT-Dienstangriffe 421

AufklärungBiLE 78Cyberziel 60Definition 59Domänennamenerweiterung 71Erreichbare IP-Adressen 61Footprinting 64, 87Gitrob 84Gründe 60Informationen für Phishing nutzen

330Informationsbeschaffung über

Personen 64, 112Informationsgewinnung aus öffentli-

chen Quellen 60, 63, 65Linkanalyse 70Methodik 63Netcraft 75Nicht offensichtliche Beziehungen 78Organisationsdiagramm 65OSINT Siehe Informationsgewin-

nung aus öffentlichen QuellenPhasen 63Reale Welt 68Relevante IP-Adressen 61, 62Relevanz von Informationen 65Soziale Medien 349Struktur der Zielorganisation 61Suchmaschinen 66Top-Level-Domänen 71Unterschied zu Scans und Auflistung

59Verifizierung 121Vitalitätsprüfung 64, 148Werkzeuge 74Whois 100Zielgerichtete Aufklärung 72Zweck 60

Aufklärung in der realen Welt 68Auflistung

Aktiv/Passiv 168Automatisierung 186Bannerabruf 168Betriebssystemidentifizierung 166, 169Datenbanken 264, 287

Page 53: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

470 Stichwortverzeichnis

Dienstidentifizierung 168Drahtlose Netzwerke 401Einführung 166Fingerprinting 169Grundlegende Technologien 167Httprint 178IKE-scan 179Nbtscan 184NetBIOS 185Netzwerkgeräte 213Nmap-Skripte 186Oracle 287RPC-Auflistung 168rpcinfo 168SMB 185SNMP 171, 181Snmpenum.pl 183Snmpwalk 181Vorgehensweise 166VPNs 180Webserver 178Werkzeuge 172, 213, 401

AuthentifizierungCommunitystrings 171EAP 387Einfache Authentifizierung 216Einmalige Anmeldung 301Entauthentifizierung 389, 405Fälschen 409Gemischter Modus 273Hydra 216Identitätsfälschung 244LEAP 390MS-CHAPv2 390Oracle 283Passwörter 216PSK-crack 180Router 216Schwachstellen 244SNMP 171SQL Server 273Unternehmensanwendungen 301, 307VPNs 180, 391Webanwendungen 244WEP-Netzwerk 386Windows-Authentifizierung 273

WPA/WPA2 386Zugriffspunkte 409Zwei-Faktor-Authentifizierung 391

Autorisierung 244Autorun 366awk 140, 159AXFR-Anforderungen 89

BBackBox 47Bannerabruf

Funktionsweise 168Manipulierte Banner 168Netcat 175Nmap 173Telnet 168

Befehlsausführung 242Benutzerdefinierte Fehlermeldungen 235Berechtigungen

Datenbanken 271Gespeicherte Prozeduren 283Rechteerhöhung 282Rollen 271

BetriebssystemeAIX 172Fingerprinting 169, 172Identifizierung 166, 169, 172IPv6-Unterstützung 205ISO-Image 30Kali Linux 40Linux 29Live-CD 28MIB-Unterstützung 182SunOS 172Testlabors 452Virtualisierung 458Virtuelle Maschinen 52VMware ESXi 458Werkzeugsatz 27Windows 10 35

BiLEBiLE.pl 78BiLE-weigh.pl 81Einführung 78Ergebnisse mit awk sortieren 140

Page 54: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

471 Stichwortverzeichnis

Gewichungsalgorithmus 81HTTrack 78Installation 79tld-expand.pl 83Websites analysieren 139

Bing 131Blaster 446Bluetooth

802.15.1 379AT-Dienstangriffe 421Datenverkehr überwachen 427Entdeckung 422Gefahren 430Hcitool 423Keylogger 421Kopplung 421, 428LTK-Austausch 428Nicht erkennbare Geräte finden 424OBEX-Angriffe 421PINs 421, 428Recherche 428Scan 423, 427Schwachstellen 420, 421Sicherheitsmodi 420Spektralanalyse 426Statische Verbindungsschlüssel 421Ubertooth One 427Verschlüsselung 421

Bootfähige USB-LaufwerkeDateisysteme 33Einführung 31Linux 32Partition 31, 32Partition für dauerhafte Speicherung

33Persistent 33Rufus 38UNetbootin 38Vorsichtsmaßnahmen 31, 39Windows 31

Botnetz 358Broadcast-Beacon 383Browser

Browser-Exploits 343Schwachstellen 337

Tab Nabbing 343Windows PowerShell-Injektion 343

Browser Autopwn 343Btscanner 424Buenobank 221

CC/C++ 360CCMP 380ccTLDs 88CD/DVD

Beschriften 443Entsorgung und Bereinigung 444Infektion 443Live-CD 28Nicht abgeschlossene Sitzung 443Werkzeugsätze 27

cdrecord 30cdrtools 30CGI

CGI-Skripte auf Webservern 240Schwachstellen 234

ChoppingAireplay-ng 410Anzahl zu erfassender Pakete 388Vorgehensweise 388WEP 381

Church of WiFi 382, 417Cisco Global Exploiter 217Cisco HTTP Configuration Arbitrary

Administrative Access 219Cisco IOS 202CNAME 90, 188Codeanalyse 234Communitystrings 171, 181, 199, 215CONNECT 282Connectors (Sapyto) 311Cookiediebstahl 244CoWPAtty

Einführung 416Im Voraus berechnete Hashtabellen

417, 418, 432Optionen 417

Crackle 428

Page 55: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

472 Stichwortverzeichnis

Crawler 66CRC-32 380CRC/ICV 388createpartition 31Credential Harvester 343CRM-Systeme 301Cross-Site Scripting 244CUDA 418Cyberziel 60

DDachboden Labs 381Damn Vulnerable Web Application 49Dateisystemdurchlauf 242Datenbankadministrator 270Datenbanken

Administratorkonto 273, 275, 277Anmeldeinformationen ermitteln 284Auflistung 264, 287Authentifizierung 273Befehlsausführung 278, 280Bekannte Standardseiten und unsiche-

re CGIs 234Berechtigungen 271Besitzer 273, 275Datenbankadministrator 270Datenbankmanagementsysteme 268Datenbankserver 272

scannen 291Datensätze 269DBO 273, 275Einführung 267Erstellen 270Gespeicherte Prozeduren 275Informationen abrufen 280Kommunikation 272Konfiguration 271Konten knacken 277Meterpreter 293Nachträgliche Einführung von Sicher-

heitsmaßnahmen 271National Digital Forecast Database

314Nicht bereinigte Benutzereingaben 243

Ports 272Primärschlüssel 269Rechteerhöhung 282Relationales Datenmodell 268Remoteshell 310Ressourcenverbrauch 272Rollen 271sa 273, 275, 277Scan 254Schadcode hochladen 278Schwachstellen 270Sichten 269SID 272, 283SQL 269SQL-Injektion 243, 254Sqlmap 254Standardbenutzer 270Standardpasswörter 270sysadmin 273Systemadministrator 273, 275, 277Tabellen 269

auflisten 290Überwachungsprotokolle 272Unternehmensanwendungen 300Verbindung aufnehmen 272, 283Werkzeuge 276, 283Wettervorhersage 314WiGLE.net 393Windows-Authentifizierung 273

DatenbankmanagementsystemeDefinition 268Installation 270MySQL 281Oracle 281SQL Server 273

date (Zeitstempelwerkzeug) 167DBA 270, 282DBO 273, 275Deep Packet Inspection 203De-ICE.net 48DES 390DHCP 205, 220Dienstidentifizierung

Nmap 211Router 199

Page 56: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

473 Stichwortverzeichnis

Scan auf der Anwendungsschicht 211UDP 211Verschleierungstaktik 168

Dig 103, 142Dinh, Viet 113, 330DirBuster 256discoverConnectors 312diskpart 31Distanzvektorprotokolle 202DMZ 449DNS

Anfrage 89Aufbau 88AXFR-Anforderungen 89Brute-Force-Abfrage 97, 142ccTLDs 88Dig 103Dnsenum.pl 105Dnsmap 134Domäneneinträge abrufen 97Domänennamenerweiterung 71, 83,

140DynDNS 187Einträge 90Footprinting 91Forward-Abfragen 141Genehmigungen für den Angriff auf

DNS-Server 62Generische TLDs 88gTLDs 88host (Befehl) 104ICANN 88Identische Forward- und Reverse-

Einträge 92Ländercodes 88Mailserver 94MX-Einträge 94, 97Namensserver 89Namen zu IP-Adresse herausfinden

91Netcraft 140Nmap 128NS-Einträge 97Nslookup 102Psychologische Aspekte 98

Rechte 91Registrierungsstellen 93Resolver 89Reverse-DNS-Abfragen 134Reverse-DNS-Verifizierung 127Reverse-Lookup 91, 187Router finden 206TheHarvester 109tld-expand.pl 83, 140Unterschiedliche DNS-Server 97Veraltete Einträge 188Whois 100Whois-Jokersuche 71Zonenübertragung 89, 92, 96

Dnsenum.pl 105Dnsmap 134DOC-Dateien 338Dokumentation

Ergebnisse 455Installationsvorgänge 454Testlabor 437Wiederverwendung von Ausrüstung

aus Testlabors 444Domänennamenerweiterung 71, 83

Netcraft 72DoS

Cisco Global Exploiter 217HSRP 220IPv6-Router 205SYN-Flood 193Versehentlich 220

Drahtlose Netzwerke802.11 379802.15.1 379Angriffe 387Antennen 384Auflistung 401Bluetooth Siehe BluetoothBroadcast-Beacon 383Clientliste 397EAP 387Einführung 378Entwicklung der Schwachstellen 380Exploit-Werkzeuge 402Filterung nach MAC-Adressen 401

Page 57: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

474 Stichwortverzeichnis

Footprinting 398Getarnte Zugriffspunkte 383GPS 430Grafisch darstellen 407Grundlegende Technologien 379Informationsgewinnung aus öffentli-

chen Quellen 392Isolieren 439Keine Verschlüsselung 386Kismet 393, 430Konfigurationsprobleme 379LEAP 380Network Stumbler 383Nicht regelmäßig aktualisierte Clients

391Physische Ausdehnung 398Quality of Service 383Scan 430Schwachstellen 379Schwachstellenscan 402Spektralanalyse 426Standardkonfiguration 379Testlabor 437, 438Überlappende Netzwerke 431Unternehmen SSIDs zuordnen 392Verschlüsselung 380, 386Verschlüsselung ermitteln 402VPNs 387, 391WEP 380Werkzeuge 383, 392WiGLE.net 392WLAN-Entdeckung 383WPA 380

Drei-Wege-Handshake 155DUP! 127Dynagen 462Dynamips 462Dynamisches Routing 202DynDNS 187

EEAP 383, 387EAPOL-Handshake 389, 416Echtzeitintegration 301, 306

Edge Security 109EIP 238E-Mails

Adressen abrufen 117Anhänge 332E-Mail-Listen 115Filterung durch Sekretariat umgehen

369Gmail 342Header 94Interessen des Opfers ausnutzen 368Malware 337Massen-E-Mail-Angriff 340MIME 94Nicht existierende Adresse 98Phishing 329Rückläufer 98SMTP 94Trojanische PFerde 337Verdacht bei zu vielen E-Mails 373Vorlagen 341Walfang 332

Entauthentifizierung 389, 405, 407, 416Entmilitarisierte Zone 449Ettercap 220EXIF-Daten 349, 353EXIF.py 353export 408ext2/3/4 33Externe Experten 451Externe Penetrationstests

Labor für externe Tests 448Vorgehensweise 187

FFacebook Graph API 351FarmVille 350fdisk 32Fedora

Live-CD 29Network Security Toolkit 42

Field-Programmable Gate Arrays 382filetype (Google-Direktive) 74Fimap 252FIN 152

Page 58: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

475 Stichwortverzeichnis

Finger 214fingerd 230Fingerprinting

Aktiv 171Genauigkeit 170Heimlichkeit 170Httprint 178Nbtscan 184Nmap 172P0f 176Pakete ungewöhnlicher Form 171Passiv 170, 176Snmpenum.pl 183Snmpwalk 181Vorgehensweise 169VPNs 180Webserver 178Werkzeuge 172

FirewallsArten 203Deep Packet Inspection 203Funktionsweise 204Gateway auf Anwendungsschicht 203Gefilterte Ports 161Nmap 191Pakete ungewöhnlicher Form 171Paketfilterung 203Ping-Sweep 157Statusbehaftete Inspektion 203WAFW00F 245Webanwendungsfirewalls 245

Fluhrer-Mantin-Shamir-Angriff 387, 415FMS-Angriff 387, 415Footprinting

ASN 92Definition 87Dig 103DNS 91Dnsenum.pl 105DNS-Zonenübertragung 96Domäneneinträge abrufen 97Drahtlose Netzwerke 398Grundlegende Technologien 88host (Befehl) 104Netzwerkgeräte 206

Nslookup 102RHWOIS 93SMTP-Rückläufer 98TheHarvester 109Traceroute 206Übersicht 64Werkzeuge 100, 206, 398Whois 100WHOIS 92

Fotos 349, 353FPGAs 382Fragmentierungsangriff 407, 409FTP-Server 162Funktionsaufruf 238Fuzzing 164, 234

Webdienste 314

GGateway auf Anwendungsschicht 203Genehmigungen

Angriff auf DNS-Server 62Aufklärung 70Dokumentieren 148IP-Adressen 62Netzwerkgeräte 197Persönliche Computer von Angestell-

ten 374Scan und Auflistung 148SYN-Flood 193

Genpmk 382Gespeicherte Prozeduren

Berechtigungen 283Erweiterte gespeicherte Prozeduren

276Oracle 283SQL Server 275Windows-Shell 276xp_cmdshell 276, 278

Gitrob 84Gmail 342GNS3 462Google

Google Earth 399Google Maps 355

Page 59: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

476 Stichwortverzeichnis

Informationsbeschaffung über draht-lose Netzwerke 392

Informationsgewinnung aus öffentli-chen Quellen 136

Rankingsystem 67SSID zu Unternehmen zuordnen 392Suchdirektiven 74

GPSDrahtlose Netzwerke 430Empfänger 398EXIF-Daten 349, 355Kismet-Daten 398Linux 401

GpsDrive 401gTLDs 88

Hh1kari 381Hamiel, Nathan 116Hashes

Dateiformat 418Hashtabellen estellen 417HMAC-SHA1 382, 390, 417Im Voraus berechnete Hashdateien

417Letztes Bytes ermitteln 391MD5 442Passwörter knacken 391Software verifizieren 442SSID als Salt 382Wörterbuchangriffe 390

Hcitool 423Heimlichkeit

Bandbreite 171Betriebssystemidentifizierung 170Entauthentifizierung 405FTP-Bounce-Scans 162Laute und leise Scan- und Auflis-

tungsverfahren 170Leerlaufscans 162Nikto 247Nmap-Template 159P0f 176Pakete ungewöhnlicher Form 171

Portscan 160Scan und Auflistung 191SYN-Flood 193Unvollständige TCP-Verbindung 160Zeitliche Abstimmung 170

HexorBase 280HINFO 91HMAC-SHA1 390, 417Horizontale Skalierbarkeit 299host (Befehl) 96hping 194HSRP-Generator 220HTTP 241HTTPD 230HTTP-Daemon 178, 230HTTP-Dienste 229Httprint 178HTTrack 78Hydra 216Hypervisor 458

IIANA 123

Portnummern 309Portregistrierung 161

ICANN 89ICMP

Blockierung 151Echoanforderung 151Fingerprinting 170Netzmaskenanforderungen 157, 199Netzwerkgeräte 199Netzwerkgrenzen 127Nmap-Optionen 157Ping 151qtrace 127Router 199Scan 151Source Quench 171Version 6 205Zeitstempelanforderungen 157, 199,

207Identitätsfälschung 244

Page 60: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

477 Stichwortverzeichnis

IDSLeerlaufscan 162Mit lauten Scans prüfen 170, 193Nmap-Template 159Pakete ungewöhnlicher Form 171SYN-Flood 193, 194Testen 195Zeitliche Abstimmung 170Zombie 162

Ifconfig 404iFrame-Ersetzung 343IIS 231IKE-scan

Modi 179PSK-crack 180VPN-Fingerprinting 180VPN-Geräte identifizieren 208

Informationsbeschaffung über PersonenBeziehungen 113Einführung 112E-Mail-Listen 115Metadaten von Office-Programmen

117MetaGooFil 117Office-Programme 117Posts auf Websites 115SEC-Dateien 113Social-Networking-Dienste 116TheHarvester 117Übersicht 64Werkzeuge 117

Informationsgewinnung aus öffentlichen Quellen

Aufklärung in der realen Welt 68BiLE 78Domänennamenerweiterung 71Drahtlose Netzwerke 392Einführung 60Ergebnis 65Gitrob 84Google 136Grundlegende Technologien 65Linkanalyse 70Netcraft 72, 75

Nicht offensichtliche Beziehungen 78Organisationsdiagramm 65Relevanz von Informationen 65Suchmaschinen 66Teilphasen 67Übersicht 63Werkzeuge 74WiGLE.net 392Zielgerichtete Aufklärung 72

InitialisierungsvektorenAnzahl von IVs zum Knacken von

WEP 415Einzigartige IVs 388Erfassen 406, 408Paketerfassung auf IVs einschränken

412Schwache IVs 388Schwachstellen 381WEP 381, 386

InstallationBiLE 79Datanbankmanagementsysteme 270Dokumentieren 454Installationsmedien schützen 441Kali Linux 52Manuell 55Medien beschriften 443MetaGooFil 118Metasploitable 55Oracle 281Software verifizieren 442VirtualBox 56Virtuelle Maschine 52

IntegrationAuthentifizierung 301Datenschicht 301, 305Direkte Verzahlung 302Echtzeitintegration 301, 306Proprietäre Protokolle 302Schwachstellen 302, 305, 313Überwachung 307Unternehmensanwendung als Integra-

tionslösung 302Webdienste 302, 313

Page 61: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

478 Stichwortverzeichnis

Interne PenetrationstestsLabor für interne Tests 448Netzwerkgeräte 199Vorgehensweise 188

Internet Information Server Siehe IISInternet Key Exchange 179Internetnummern 122IP-Adressen

Adressbereiche 122Autorisierung für den Test 62Banner 129CIDR-Format 159DNS-Einträge 95Dynamisch 187Erreichbar 61, 148Hostnamen 95Netzwerkgeräte 199Netzwerkgrenzen 127Nslookup 102Relevant 61, 62Reverse-DNS-Verifizierung 127RIRs 124Struktur der Zielorganisation 61Subnetze 122Switches 199Wahrscheinliche Hostnamen 95Whois 132WHOIS-Abfragen 143Zugehöriger DNS-Name 91

IPsec-Tunnel 179IP-Subnetze

Besitzverhältnisse 128CIDR-Format 159Einführung 122IPv6 205Klassen 122Netzwerkgrenzen 127

Iptabels-Regel 191IPv4 204IPv6 205IRPAS 212, 220ISO-Images

Auf USB/CD schreiben 36Einführung 30Infiziert 446

Pakete hinzufügen 36Rufus 38Übungsziele 48UNetbootin 38Windows ADK 36

IV Siehe Initialisierungsvektoren

JJava 343JiGLE 393

KKali Linux

Einführung 40Gitrob 85Installieren 52PostgreSQL 85SID-Liste 284TFTP-Server 225Virtuelle Maschine 52Wörterbuchdateien 222Wortlisten 277Zusätzliche Pakete installieren 55

Kennedy, David 338Kismet

Ansichten 396Ausgabedaten 398Clientliste 397, 401Daten in GpsDrive kartieren 401Daten ins Format von Google Earth

konvertieren 399Einführung 393Farbige Darstellung 394GPS-Daten 398Hauptbildschirm 393Informationen über einzelne Netzwer-

ke 395MAC-Adressen 401Protokollierung 396Scan 430Sortierung 394Standardkonfiguration 396Verschlüsselung 402

Page 62: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

479 Stichwortverzeichnis

Klein, Andreas 382KML 399Knoppix 30Kommerzielle Werkzeuge 453Komplexitätsregeln 274Komplimente 332Korrekturfaktor 415KVM-Switch 452

LLabor für externe Tests 448Labor für interne Tests 448LACNIC 123Ländercodes 88Landsat 401LANMAN 382LEAP

Angriffe 390Schwachstellen 380, 381Wörterbuchangriffe 380, 381, 390

LFI/RFI-Bugs 252libWhisker 241Linkanalyse 70

BiLE 78, 139Gewichtungsalgorithmus 81Nicht offensichtliche Beziehungen 78

LinkedIn 116link (Google-Direktive) 74Linux

BackBox 47Bootfähige USB-Laufwerke 32Fedora 29GPS-Empfänger 401ISO-Image 30Kali Linux 40Knoppix 30Konvertierung von Snmpenum-Konfi-

gurationsdateien 184Live-CD 29Matriux 46Pentoo 45Persistente Live-CD 33, 34Ubuntu 29, 30, 34

LIRs 123

Listenerdienst 272Live-CD

ADK 29, 35Ändern 30Arudius 43Computerressourcen 158Damn Vulnerable Web Application

49Einführung 28Erstellen 29Fedora 29ISO-Image 30Kali Linux 40Knoppix 30Linux 29Matriux 46Network Security Toolkit 42PenTest-CDs 48Persistent 33Samurai WebTesting Framework 41Übungsziele 48Ubuntu 29, 30Werkzeuge direkt von der Live-CD

ausführen 158Werkzeuge zum Erstellen 35Win8.1SE 37Windows Assessment and Deploy-

ment Kit 29, 35Xen 460Zusatzpakete 36

livecd-creator 29livecd-tools 29Live-Search-Engine 131Lokale Registrierungsstellen Siehe LIRsLoopbackdatei 34LTK-Austausch 428Lynn, Michael 202

MMAC-Adressen

Ermitteln 207Fälschen 403Filterung 401Herstellerangabe 403

Page 63: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

480 Stichwortverzeichnis

Ifconfig 404Man-in-the-Middle-Angriff 201OUI 403Routerhersteller 207, 210Zugelassene Adressen ermitteln 401

Macchanger 403Mailserver 94malloc 240Malware

Als Tastatur getarntes Schadmedium 367

Anhängen 362Arduino 367Assemblersprache 359Authentifizierungsinformationen

ermitteln 391Bereitstellen 362Botnetz 358Browserschwachstellen 337C/C++ 360Codierer 366Datenbanken 278DOC-Dateien 338Einbetten 362Eingebette EXE-Dateien 340Erstellen 359, 366Generator für infektiöse Medien 366Grundlegende Technologien 359Hochgradig zielgerichtet 358Kombination mit anderem Programm-

code 362Komprimierung 361Konvertieren 361, 365Laute Malware 358Listener 367Malware-Prüfung von Gmail 342Maskieren 361Maßgeschneidert 357Mssql_exec 278Neucodierung 361Packer 361PDF-Dateien 338, 340, 371Phishing 337Randomisierung 361SET 366

Social Engineering 357Soziale Medien 346SQL Server 278Tastatur 367Teensy 367Trojanische Pferde 337Übertragungsmechanismus 362Verschleierung 361Verschlüsselung 361Vertrauen erwecken 357Voranstellen 362Websites 337Werkzeuge 363

Man-in-the-Middle-AngriffDrahtlose Netzwerke 383IPv6 205Switches 201

Mapnik 401Matriux 46MD5 442Mehrschichtige Architektur 300Mehrzweckausrüstung 452Metadaten 117MetaGooFil 117Metasploit

Browser Autopwn 343Browser-Exploits 343Datenbankwerkzeuge 276Malware 363Meterpreter 293, 324ms08_067_netapi 324Msfvenom 363Mssql_enum 280Mssql_exec 278Mssql_login 277Mssql_payload 292Oracle_login 284Oracle_sql 290Oraenum 287Payloads 365SET 338Sid_brute 283Unternehmensanwendungen 321Webdienst 344Werkzeuge anzeigen 276

Page 64: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

481 Stichwortverzeichnis

Metasploitable 50Falscher Datenbankname 254Installation 55

Meterpreter 293, 324Reverse-TCP-Shell 340

Methodiken 455MIB 182, 214MIC 380MIME 94Morris, Robert T. 438Morris-Wurm 236, 438Moskowitz, Robert 381Moyer, Shawn 116ms08_067_netapi 324MS-CHAPv2 390Msfencode 364Msfpayload 363Msfvenom 363Mssql_enum 280Mssql_exec 278Mssql_login 277, 292Mssql_payload 292Mutillidae 49

Falscher Datenbankname 254MX 90, 94, 97MySQL 281

NNamensserver 89National Digital Forecast Database 314National Weather Service 314Nbtscan 184NCSA-Server 231Negative Ergebnisse 194Neighbor Discovery 205NetBIOS-Broadcast 184Netcat 175Netcraft 72, 140Netenum 163Netstat 309Network Security Toolkit 42Network Stumbler 383Netxml2kml.py 398Netzmaskenanforderungen 157, 199

Netzwerkgeräte Siehe auch Router; Switches; Firewalls

Auflistung 213Brute-Force-Ermittlung 199Communitystrings 215Ettercap 220Exploit-Werkzeuge 214Firewalls 203Footprinting 206Genehmigungen 197Hydra 216ICMP-Pakete 199Identifizieren 198IKE-scan 208Interne Penetrationstests 199Kommunikation in mehrschichtigen

Architekturen 304Man-in-the-Middle-Angriff 201Netzmaskenanforderungen 199Nmap 207Onesixtyone 215Routingprotokolle 212Scan 209SNMP 199, 214, 215TCP-Portscan 209Traceroute 206Unternehmensanwendungen 304VPN-Geräte identifizieren 208Werkzeuge 206, 209Zeitstempelanforderungen 199, 207

Netzwerkgrenzen 127News Corporation 68NFS-Freigabe 230Nginx 231Nicht bereinigte Benutzereingaben

Befehlsausführung 242Datenbankabfragen 243SQL-Injektion 262Webdienste 321

Nicht offensichtliche Beziehungen 78Nikto 247, 261NIST 455Nmap

Aktive Hosts 257ARP-Scan 157

Page 65: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

482 Stichwortverzeichnis

Ausgabeoptionen 157Bannerabruf 173Betriebssystemidentifizierung 172Datenbankserver 291Dienstidentifizierung 211DUP! 127Einfache Skripterstellung 159Ergebnisse mit awk verarbeiten 159Fingerprinting 172Firewallregeln 191FTP-Bounce-Scan 162Geschwindigkeitsoptionen 159Heimlicher Scan 160, 162Hostdatei 159ICMP-Optionen 157Iptabels-Regel 191Leerlaufscan 162MAC-Adressen 207, 210Mehrfachantwort auf einen Ping 127Microsoft-Dienste erkennen 322Netzmaskenanforderungen 157Netzwerkgeräte 207Nmap::Parser 159Optionen 152, 153Ping-Sweep 157Portbereich festlegen 308Portscan 152, 153, 155, 160Portscan für Netzwerkgeräte 209RECENT 192Reverse-DNS-Abfrage 128Sämtliche Ports scannen 161, 308Scan auf der Anwendungsschicht 211Scan in SYN-Flood tarnen 194Skripterstellung 186Standardeinstellung 161SYN-Scan 160TCP-Portscan 209Templates 159UDP 211Unternehmensanwendungen 307Unvollständige TCP-Verbindung 160Webserver 245Webserver identifizieren 260Zeitstempelanforderungen 157Zeitsteuerung 159

Norton Ghost 446NS 90, 97Nslookup 102

OOffice-Programme 117OldApps.com 50Onesixtyone 215Open Source Security Testing Methodolo-

gy Manual 455Open-Source-Werkzeuge 453OpenStreetmap 401OpenVAS 165Operator 44Oracle

Abfragen senden 290Anmeldeinformationen ermitteln 284Auflistung 287CONNECT 282Daten abrufen 290Datenbanken erstellen 270DBA 282Einführung 281Gespeicherte Prozeduren 283Installation 281JDBC-Treiber 286Kontoinformationen anzeigen 290Listenerdienst 272Passwörter 271, 282Passwörter knacken 286Rechteerhöhung 282Rechte und Privilegien 271RESOURCE 282Rollen 282SID 272, 283SID ermitteln 283SQL-Befehle 290Standardbenutzerkonten 281Standardrollen 282Tabellen auflisten 290Verbindung aufnehmen 272, 283Version anzeigen 290Werkzeuge 283

Oracle Auditing Tools 286

Page 66: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

483 Stichwortverzeichnis

Oracle_login 284Oracle Password Guesser 286Oracle_sql 290Oraenum 287Organisationsdiagramm 65OSINT Siehe Informationsgewinnung aus

öffentlichen QuellenOSSTMM 455OUI 403OWASP

Schwachstellen 49ZAP 250

PP0f 176Packetforge-ng 406, 411Pair-Wise Master Key 380Pakete ungewöhnlicher Form 171Paketfilterung 203Paketinjektion

Aireplay-ng 412ARP-Pakete 389Gleichzeites Injizieren und Erfassen

von Paketen 414Injektionsrate 414Paketverluste 414Reinjektion 389Werkzeuge 406WLAN-Karten 385

Paketverluste 414Parameterübergabe 244Passwörter

Dasselbe Passwort für mehrere Kon-ten 271

Datenbanken 277Entwicklerpasswort 306Gleiches Passwort für mehrere Web-

sites 372Haftnotizen 286Hash knacken 391Häufig verwendete SSIDs 417Hydra 216Knacken 277Komplexitätsregeln 274

Liste möglicher Passwörter aufstellen 222

Listen von Standardpasswörtern 285Mssql_login 277Oracle 282, 286Passphrasen im Voraus berechnen

407Phishing 336Richtlinien 274Router 214, 216sa 277Schreibtisch-Scan 286Schwachstellen 270SQL Server 273, 277Standardpasswörter 270Unternehmensanwendungen 306Website zum Knacken von Pass-

worthashes 226Windows-Authentifizierung 273

PDF-DateienEingebettete EXE 340Malware 338, 371

Penetration Testing Framework 456PenTest-CDs 48Pentoo 45Persistente Live-CD 33Persistenter Live-USB-Build 28Phenoelit 220PHF-Bug 231Phishing

Aufklärungsinformationen nutzen 330

Berufliche Aspekte 331Browserschwachstellen 337Dringlichkeit 334E-Mail-Anhänge 332E-Mail-Vorlagen 341Gemeinsame Grundlage legen 333Interessen des Opfers ausnutzen 368Komplimente 332Malware 337Massen-E-Mail-Angriff 340Mitleid 330Opfer abschrecken 335Passwörter 336

Page 67: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

484 Stichwortverzeichnis

Persönliche Aspekte 329Preisgabe von Informationen als

Bestätigung tarnen 336Prinzip 328Psychologische Aspekte 330Soziale Medien 346Spear Phishing 329Walfang 332Webanwendungen 335Webformulare 334Werkzeuge 338, 339

PingBlockierung 151Hostdatei 159Netenum 163pingFirst 312Ping-Flood 151Router 199Sapyto 312Sweep 152, 157, 159TCP-ACK-Pakete 152TCP-Ping 152

pingFirst 312PJRC 367PL/SQL 283PMK 380POP (Stack) 237Portscan

Anwendungsschicht 211Dienstidentifizierung 168, 211Entdeckung 152FTP-Bounce-Scan 162Gefilterte Ports 161Heimlich 160, 162hping 194HTTP-Dienste 229IANA 309IDS unterlaufen 191Leerlaufscan 162NetBIOS 185Nmap 152, 153, 155, 160Portregistrierung 161Router 199, 207Sämtliche Ports scannen 161, 308Scan in SYN-Flood tarnen 194

SMB 185SYN-Flood 193SYN-Scan 152, 160TCP-Handshake 152Typen 152UDP 155, 163, 211Unicornscan 164Unternehmensanwendungen 308Unvollständige TCP-Verbindung 160Zeitliche Abstimmung 170

Pre-Shared Key 381Primärschlüssel 269Privilegien Siehe BerechtigungenProjektspezifisches Labor 449Protokollierung

Ausgaben in Datei umleiten 167Datenbanken 272Kismet 396tee 167Zeitstempel 167

Proxyserver 252PSK-crack 180PSKs Siehe VerschlüsselungPsychologische Aspekte

DNS-Namen 98Dringlichkeit 334Gemeinsame Grundlage legen 333Komplimente 332Mitleid 330Opfer abschrecken 335Phishing 330Preisgabe von Informationen als

Bestätigung tarnen 336Verhaltensmuster 351

PTR 91PTW-Angriff 388, 415Pufferüberlauf

Assembler 359Codeausführung 240Heap 240IPv6-Stack von Cisco 202Java 287Listenerdienst von SQL Server 272Morris-Wurm 236Stack 236strcopy 239

Page 68: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

485 Stichwortverzeichnis

Webdienste 321Zeiger überschreiben 239

Pull/Push-Echtzeitintegration 301PUSH (Stack) 237PUSH (TCP) 152Pychkine, Andrei 382

QQoS 382qtrace 127

RRabin, Michael 439RADIUS 381, 389Randomisierung 361RECENT 192Rechte Siehe BerechtigungenRechteerhöhung 282Redfang 424Regenbogentabellen

Hashes 418LANMAN 382WPA-PSK 382

Regionale Internet-Registrierungsstellen Siehe RIRs

Reinjektion 389ReL1K 338Relationales Datenmodell 268Remoteprozeduraufrufe 168Remoteshell 310Renderman 382Resolver 89RESOURCE 282Reverse-TCP-Shell 340RFC 1122 151Rfmon 383, 406RHWOIS 93Richtantennen 384RIPE NCC 123RIRs 122

Umgekehrte Abfragen 125Webschnittstellen 124WHOIS-Abfragen 131

robots.txt 247Rollen

CONNECT 282DBA 282dbo 275Definition 271Feste Serverrollen 274Oracle 282public 275RESOURCE 282SQL Server 274sysadmin 273

Router Siehe auch NetzwerkgeräteÄhnliche Scanergebnisse wie UNIX-

Server 209Authentifizierung 216Cisco HTTP Configuration Arbitrary

Administrative Access 219Cisco IOS 202Communitystrings 199Definition 202Dienstidentifizierung 199DNS 206DoS-Angriffe 205Dynamisches Routing 202Finger 214Hydra 216ICMP 199Identifizieren 199, 206Konfigurationsdatei abrufen 224MAC-Adressen 207, 210Man-in-the-Middle-Angriff 201Möglichkeiten für Penetrationstester

198Ping 199Ports 199Portscan 199, 207Routingtabellen 202Schwachstelle in Cisco-Routern 202SNMP 199Snmpwalk 223Standardroute 199Statisches Routing 202Traceroute 206Typ bestimmen 223

Page 69: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

486 Stichwortverzeichnis

Unmittelbar betriebsbereiter Standby-Router 220

Unterschied zu Switches 200Validieren 199Zugriffssteuerungslisten 203

Routingprotokolle 202, 212RP 91RPC-Auflistung 168rpcinfo 168RST 152Rufus 38Rundstrahler 384

Ssa

Berechtigungen 275Einführung 273Knacken 277

Safe 445Samurai Web Testing Framework 41SAP 310, 322Sapyto

Conectors 311Discovery-Connector 322Einführung 310Ping 312Plug-Ins 312Scan 312

ScanAnwendungsschicht 211ARP-Scan 157Automatische Scanner 233Bandbreite 171Bluetooth 423, 427CGI-Scanner 240Datenbanken 254Datenbankserver 291Dauer 151Dienstidentifizierung 211Drahtlose Netzwerke 393, 430Einführung 150Einschränken anhand von Informatio-

nen aus der Aufklärung 170FTP-Bounce-Scan 162

Funktionsweise 151Fuzzing 164Geschwindigkeitsoptionen 159Grundlegende Technologien 151Halboffen 160Hcitool 423Heimlich 160, 162Hostdatei 159hping 194HTTP-Dienste 229ICMP 151IDS unterlaufen 162Kismet 393, 430Leerlaufscan 162MAC-Adresse 210NetBIOS 185Netenum 163Network Stumbler 383Netzwerkgeräte 209Nikto 247Nmap 155Ping-Sweep 157Portscan 152Sämtliche Ports scannen 308Sapyto 312Scan in SYN-Flood tarnen 194Schreibtisch-Scan 286Schwachstellenscanner 165Schwachstellen von Webservern 233SMB 185Sqlmap 254SYN-Flood 193TCP-ACK-Pakete 152Ubertooth-scan 427UDP 155, 163, 211Unicornscan 164Unvollständige TCP-Verbindung 160Verfügbarer Adressraum bei IPv4/

IPv6 205Webanwendungen 247, 250Webserver 245Werkzeuge 155, 209WLAN-Entdeckung 383ZAP 250Zeitliche Abstimmung 170Zombie 162

Page 70: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

487 Stichwortverzeichnis

Scan und Auflistung Siehe auch Scan; Auflistung

Auflistung 166Externe Penetrationstests 187Genehmigung 148Gründe 149Heimlichkeit 170, 191Interne Penetrationstests 188Negative Ergebnisse 194Scan 150Schwachstellenscanner 165Vorbereitung 148Zweck 147

Schlüsselplanungsalgorithmus 388Schreibtisch-Scan 286Schulung 452Schwachstellen

802.11 379Add-Ons 337Ältere Versionen 50Anwendungen in sozialen Medien

350Anwendungsschicht 304ARP-Fälschung 200Ausgeschaltete Protokollierung von

Datenbanksystemen 273Authentifizierung 244Autorisierung 244Bluetooth 420, 421Browser 337CGI 234Cisco 217Cisco HTTP Configuration Arbitrary

Administrative Access 219Cross-Site Scripting 244Dasselbe Passwort für mehrere Kon-

ten 271Datenbanken 270, 305Dienstkonten 274DoS 217Drahtlose Netzwerke 379Echtzeitintegration 306Entwicklung in drahtlosen Netzwer-

ken 380Gespeicherte Prozeduren 276

Initialisierungsvektoren 381Integration 302, 305, 313IPv6 205IPv6-Stack von Cisco 202Konfigurationsprobleme 379LEAP 380, 381LFI/RFI-Bugs 252Mutillidae 49Nicht bereinigte Benutzereingaben

242, 243Nicht regelmäßig aktualisierte Clients

391OldApps.com 50OWASP 49Parameterübergabe 244Passwörter auf Haftnotizen 286Passwörter für Dienstkonten 274Pufferüberlauf im Listenerdienst von

SQL Server 272RC4 388Siteübergreifende Skriptausführung

244SQL 243SQL-Injektion 254Standardbenutzer 270Standardpasswörter 270Standardseiten 234Switches 200Umgang mit entdeckten Schwachstel-

len 446Unternehmensanwendungen 302, 304Verschlüsselung 380Webanwendungen 232, 235, 241Webdienste 321Webserver 230, 233, 304Websites 256WEP 380, 388Werkzeuge zur Überprüfung auf

Schwachstellen 402Windows-Authentifizierung 273WPA 380WPA-PSK 381, 386XSS 244

SD-Karte 27SEC-Dateien 113

Page 71: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

488 Stichwortverzeichnis

SELECT 269SensePost 78SET

Anmeldeinformationen abrufen 343Arduino 367Browser-Exploits 343Credential Harvester 343Einführung 338E-Mail-Vorlagen 341Generator für infektiöse Medien 366Java-Angriff 343Listener 342, 367Malware 366Massen-E-Mail-Angriff 340Meterpreter 340Optionen 339Payload 340PDF-Dateien 340, 371Spear Phishing 339, 372Tab Nabbing 343Übermittlungsoptionen 340Webangriffe 342Web Jacking 343Websites erstellen 343Windows PowerShell-Injektion 343

Shmoo Group 382Sichten 269SID

Abrufen über Listenerstatus 284Brute-Force-Ermittlung 283Definition 272Liste in Kali Linux 284

Sid_brute 283site (Google-Direktive) 74Siteübergreifende Skriptausführung 244Skalierbarkeit

Horizontal 299Vertikal 298

Skripte 159, 186SMB 185SMTP

Banner 129DNS-Einträge 94Einführung 94Mailserver 94Rückläufer 98

SniffingArudius 43Ettercap 220Switches 200

SNMPAuflistung 171, 181Authentifizierung 171Communitystrings 171, 181, 215Netzwerkgeräte 199, 214Onesixtyone 215Snmpenum.pl 183Snmpwalk 181

Snmpenum.pl 183Snmpwalk 181, 223SOA 91SOAP 313, 317, 318SoapUI 313Social Engineering

Clients von Unternehmens-anwendungen 304

E-Mail-Vorlagen 341Interessen des Opfers ausnutzen 347,

368Malware 357Opfer auf Websites locken 372SET 338Verdacht bei zu vielen E-Mails 373Werkzeuge 338

Social-Engineer Toolkit Siehe SETSocNetV 352Soziale Medien

Angriffsmethoden 345Anwendungen 350Aufklärung 349Beziehungen ausnutzen 347Datenschutz 346EXIF-Daten 349, 353Facebook Graph API 351Fotos 349Informationsbeschaffung über

Personen 116Interessen des Opfers ausnutzen 347LinkedIn 116Links zu schädlichen Websites 371Malware 346

Page 72: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

489 Stichwortverzeichnis

Phishing 346SocNetV 352Soziale Netze 348Statusmeldungen 350Verhaltensmuster 351Werkzeuge 351

Soziale Netze 348SP 800-115 455Spear Phishing

Berufliche Aspekte 331Einführung 329Interessen des Opfers ausnutzen 368Persönliche Aspekte 329Psychologische Aspekte 330SET 339, 372

Spectools 426Spida 274Spider 66SQL

Befehle für Oracle 290Fehlermeldungen 262PL/SQL 283Rollen 271SELECT 269Transact-SQL 275Unterschiedliche Implementierungen

270SQL-Injektion

Anführungszeichen 262Anmeldeformular 262Nicht bereinigte Benutzereingaben

243, 262Sqlmap 254Webdienste 321

Sqlmap 254, 264SQL*Plus 290SQL Server

Administratorkonto 273, 275, 277Authentifizierung 273Befehlsausführung 278Berechtigungen 271Brute-Force-Angriff 292Datenbankbesitzer 273, 275Datenbanken erstellen 270DBO 273, 275

Feste Serverrollen 274Gespeicherte Prozeduren 275Informationen abrufen 280Konten knacken 277Listenerdienst 272Meterpreter 293Passwortrichtlinien 274public 275Pufferüberlauf 272Rollen 274sa 273, 275, 277Scan 291Schadcode hochladen 278SQL Server 2000 274SQL Server 2008 291Standardports 272sysadmin 273Systemadministrator 273, 275, 277Windows-Authentifizierung 273xp_cmdshell 276, 278

SRV 91SSID

Broadcast-Beacon 383Häufig verwendete SSIDs 417Salt im Hash 382Zugehöriges Unternehmen

ermitteln 392Zugriffspunkt 384

Stackpufferüberläufe 236Standardseiten 234Statisches Routing 202Statische Verbindungsschlüssel 421Statusbehaftete Inspektion 203Statusmeldungen 350strcpy 239Suchmaschinen

Crawler 66Eingaben durch Menschen 66Google 67Informationsgewinnung aus

öffentlichen Quellen 66Live-Search-Engine 131Rankingsystem 67Virtuelle Hosts mit Bing auflisten 131

SunOS 172

Page 73: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

490 Stichwortverzeichnis

Switched Port Analyzer 200Switches Siehe auch Netzwerkgeräte

Administrativer Zugriff 200ARP-Fälschung 200Communitystrings 199Definition 200Identifizierung 199IP-Adressen 199Layer 2/Layer 3 200Man-in-the-Middle-Angriff 201Möglichkeiten für Penetrationstester

198Sicherungsschicht 200Sniffing 200SNMP 199SPAN 200Spiegelungsoption 200Switched Port Analyzer 200Unterschied zu Hubs 200Unterschied zu Routern 200Vermittlungsschicht 200

SYN/ACK 152SYN-Flood 193SYN-Scan 152, 160sysadmin 273System-ID Siehe SIDSystemressourcen 272

TTab Nabbing 343Tastatur

Bluetooth 421Teensy-Gerät 367

TCP-ACK-Pakete 152TCP-Handshake 152, 155

Unvollständig 160tee 167Teensy 367Telnet 168Testlabors

Ad-hoc-Labor 450Arten 447Aufbauen 450Beispielarchitektur 438

Betrieb 454Betriebssysteme 452CD/DVD 443Datenübertragung 443Dokumentation 437Drahtlose Netzwerke 437, 438Eigene Systeme testen 446Entmilitarisierte Zone 449Entsorgung und Bereinigung 444Entwurf 437Ergebnisse dokumentieren 455Externe Experten 451Gebräuchliche Elemente verwenden

451Gemeinsam genutzte Räumlichkeiten

445Gleiche Hardware wie die Kunden

verwenden 451Hardware 450Infizierte Images 446Installationsmedien schützen 441Installationsvorgänge dokumentieren

454Isolieren 439Kali Linux in virtueller Maschine 51Kommerzielle Werkzeuge 453Konfiguration verbergen 440KVM-Switch 452Labor für externe Tests 448Labor für interne Tests 448Medien beschriften 443Mehrzweckausrüstung 452Mobilität 463Open-Source-Werkzeuge 453Personal 451Projektspezifisches Labor 449Safe 445Schulung 452Schützen 440Sicherheit 436, 438

von Übungszielen 50Software 452

verifizieren 442Spezialisierte Penetrationstestteams

451

Page 74: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

491 Stichwortverzeichnis

Übungsziele 48Umgang mit entdeckten Schwachstel-

len 446Verschlüsselung 445Virtualisierung 457Virtuelles Labor 447Virtuelle Umgebung einrichten 54Werkzeuge 453Wiederverwendung von Ausrüstung

aus Testlabors 444Zugriffspunkte 440Zutritt 444Zweck 436

Tews, Erik 382TheHarvester 109, 117TKIP 380, 382, 386TLD-Erweiterung 71, 83, 140tld-expand.pl 83, 140Top-Level-Domänen

Arten 88Domänennamenerweiterung 71Registrierungsstellen 93

traceroute 127, 206Transact-SQL 275Trennpakete 405Trojanische Pferde 337TXT (DNS-Eintrag) 91

UUbertooth One 427Ubertooth-scan 427Übungsziele

Ältere Versionen 50Damn Vulnerable Web Application

49Einführung 47ISO-Images 48Metasploitable 50Mutillidae 49OldApps.com 50PenTest-CDs 48Sicherheit 50Webdienste 314WebGoat 49

UbuntuLive-CD 29, 30Persistente Live-CD 34

UDP-Scans 155, 163Umgekehrter Stack 237UNetbootin 32, 38Ungerichtete Antennen 384Unicornscan 164Unmittelbar betriebsbereiter Standby-

Router 220Unternehmensanwendungen

Anwendungsschicht 304Architektur kartieren 310Authentifizierung 307Clients 304CRM-Systeme 301Datenbanken 305Datenbankserver 300Definition 298Entwicklerpasswort 306Gemeinsame Merkmale 298Horizontale Skalierbarkeit 299Integration 301Kommunikation zwischen Schichten

304Mehrschichtige Architektur 300Meterpreter 324Netstat 309Netzwerkgeräte 304Passwörter 306Ports 308Remoteshell 310Sapyto 310Schnittstellen 303Schwachstellen 304Skalierbarkeit 298Überwachung 307Vertikale Skalierbarkeit 298Webdienste 302Webserver 304Werkzeuge 307

Untersuchungsberichte 445URG 152

Page 75: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

492 Stichwortverzeichnis

USBBootfähige USB-Laufwerke 31Infektion 443Malware auf USB-Geräten 367Persistenter Live-USB-Build 28Teensy 367Werkzeugsatz 27

VVerbindungsstatusprotokolle 202Verifizierung

Banner 129Definition 121Dnsmap 134Grundlegende Technologien 121Netzwerkgrenzen 127Nmap 127qtrace 127Reverse-DNS-Abfragen 134Reverse-DNS-Verifizierung 127Teilphasen 123Übersicht 64Verifizierung 64Virtuelles Hosting 129Websites aufsuchen 129Werkzeuge 131WHOIS 124Whois für IP-Adressen 132

VerschlüsselungAES 380, 386Bluetooth 421DES 390Drahtlose Netzwerke 380, 386Entschlüsselung von WEP- und WPA-

Daten 407Fragmentierungsangriff 407IKE-scan 180Kismet 402Malware 361Pre-Shared Keys 180PSKs 180RC4 380Schlüsselplanungsalgorithmus 388Schwachstellen 380

Statische Verbindungsschlüssel 421Testlabor 445TKIP 386Untersuchungsberichte 445Unverschlüsselte Netzwerke 386Verschlüsselungsstärken 386Vorab ausgetauschte Schlüssel 180VPNs 180WEP 380, 386, 406Wörterbuchangriffe 180WPA 380, 386WPA2 380

Vertikale Skalierbarkeit 298Verzeichnisdurchlauf 242Vier-Wege-Handshake 389, 416VirtualBox

Installation 56Merkmale 461VM herunterfahren 57

VirtualisierungAbweichendes Verhalten von Pro-

grammen 457Architektur 458Betriebssysteme 458Dynagen 462Dynamips 462Einführung 457GNS3 462Hypervisor 458Kali Linux installieren 52Leistung 457Probleme 458VirtualBox 56, 461Virtualisierung beim Kunden 458Virtualisierungstest von Viren 447Virtuelle Maschine erstellen 51Virtuelle Netzwerke 459Virtuelles Labor 447VM herunterfahren 57VM in einer VM 56VMware 51VMware ESXi 458Werkzeuge 460Xen 460

Page 76: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

493 Stichwortverzeichnis

Virtuelle Netzwerke 459Virtuelles Hosting

Funktionsweise 121Schwachstellen übersehen 248Unterschiedliche Sicherheitseinstel-

lungen von virtuellen Websites 248

Verwechslungsgefahren 129Virtuelle Hosts mit Bing auflisten 131

Virtuelles Labor 447Vitalitätsprüfung 64, 148VMware ESXi 458VPNs

Aggressiver Modus 209Angriffe 391Auflistung 180Authentifizierung 180, 391Drahtlose Netzwerke 387, 391Fingerprinting 180IKE-scan 179, 208IPsec-Tunnel 179Schnittstellen anlegen 407Verschlüsselung 180VPN-Geräte identifizieren 208

Vulnerabilityassessment.co.uk 456

WWAF 245WAFW00F 245, 260Walfang

Einführung 332E-Mail-Anhänge 332Massen-E-Mail-Angriff 340

WebanwendungenAuthentifizierung 244Autorisierung 244Cross-Site Scripting 244Datenbanken 243Geschichte 231LFI/RFI-Bugs 252Nikto 247Parameterübergabe 244Phishing 335

Popup-Fenster 336Scan 247, 250Schwachstellen 235, 241Siteübergreifende Skriptausführung

244Webanwendungsfirewalls 245Website aufrufen 260XSS 244

WebdiensteEchtzeitintegration 302Fuzzing 314Identifizieren 314Metasploit 344National Weather Service 314Nicht bereinigte Benutzereingaben

321Pufferüberlauf 321Schwachstellen 321SOAP-Payload 318SoapUI 313Sperren 313SQL-Injektion 321Verfügbare Operationen 316Wettervorhersage 314WSDL-Dateien 314

Webformulare 334WebGoat 49Web Jacking 343Webserver

Apache 230Auflistung 178Befehlsausführung 242Benutzerdefinierte Fehlermeldungen

235CGI-Skripte 240Codeanalyse 234Fingerprinting 178Geschichte 230HTTP-Daemon 178Httprint 178Identifizieren 260IIS 231Nginx 231Nicht bereinigte Benutzereingaben

242

Page 77: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

494 Stichwortverzeichnis

Nmap 245Scan 245Schwachstellen 230, 233, 304Unternehmensanwendungen 304Verfügbare Operationen 316Webverzeichnisse 256

WebsitesAnalysieren 139Anmeldeformular 262Aufrufen 260Beziehungen 70BiLE 139Datenbanken auflisten 264Gleiches Passwort für mehrere

Websites 372Indizieren 256Knacken von Passworthashes 226Linkanalyse 70Links in sozialen Medien 371Malware 337Opfer auf Websites locken 372Schadwebsites erstellen 343Schwachstellen 256Signifikanz 81Verifizierung 129Webformulare 334Webverzeichnisse 256

Webverzeichnisse 256Weinmann, Ralf-Philipp 382WEP

Aircrack-ptw 382Angriffe 387Authentifizierung 386Chopping 381Entschlüsselung 407Fragmentierungsangriff 407Initialisierungsvektoren 381Knacken 406, 407, 415RC4 380Schwachstellen 380, 388Tarnung 382Tarnung entfernen 407Verschlüsselung 380Verschlüsselungsstärken 386

WerkzeugeAufklärung 74Auflistung 172, 213, 401Ausgaben in Datei umleiten 167Bannerabruf 173Bluetooth-Entdeckung 423CGI-Scanner 240Computerressourcen 158Datenbanken 276, 283Direkt von der Live-CD ausführen

158Drahtlose Netzwerke 383, 392Exploit-Werkzeuge 214, 402Fingerprinting 172Footprinting 100, 398Informationsbeschaffung 392Informationsbeschaffung über

Personen 117Informationsgewinnung aus

öffentlichen Quellen 74Installieren 28Kommerzielle Werkzeuge 453Malware 363Netzwerkgeräte 206, 209Open-Source-Werkzeuge 453Oracle 283Phishing 338, 339Ping-Sweeps 163Portscanner 155Scan 155, 209Social Engineering 338Soziale Medien 351SQL Sesrver 276tee 167Testlabors 453Überprüfung auf Schwachstellen 402Unternehmensanwendungen 307Verifizierung 131Virtualisierung 460Webserver und -anwendungen 245Werkzeuge für spezifische Unterneh-

mensanwendungen 310Werkzeugsatz 26Wörterbuchangriffe 416

Page 78: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

495 Stichwortverzeichnis

WerkzeugsätzeÄnderungen 27ARM-Geräte 40Arudius 43BackBox 47Betriebssysteme 27Bootfähige USB-Laufwerke 31CD/DVD 27Festplatte 27Installation 27ISO-Image 30Kali Linux 40Live-CD 28Live-CD ändern 30Matriux 46Network Security Toolkit 42Öffentlicher Gebrauch 26Operator 44Pentoo 45Persistente Live-CD 33Persistenter Live-USB-Build 28Samurai Web Testing Framework 41SD-Karte 27USB-Laufwerk 27Werkzeuge installieren 28Zusammenstellen 26

Wettervorhersage 314Whaling Siehe WalfangWhisker 240Whois

IP-Adressen 132Jokersuche 71Optionen 100

WHOISEinführung 92Port 92Proxys 93, 101RHWOIS 93RIRs 124, 131

WiGLE.net 392, 417Win8.1SE 37Windows

Assessment and Deployment Kit 29, 35

Automated Installation Kit 35Bootfähiges USB-Laufwerk 31Dateiformat 418ISO-Image 30Konvertierung von Snmpenum-

Konfigurationsdateien 184NetBIOS-Broadcast 184Windows 7 30Windows 10 31, 35

Windows-Authentifizierung 273Windows PowerShell-Injektion 343Windows-Shell 276WLAN-Entdeckung

Aktive Scanner 383Antennen 385Informationsbeschaffung 392Passive Scanner 383

WLAN-KarteAuswählen 385Daten erfassen 408Gleichzeites Injizieren und Erfassen

von Paketen 414Konfigurieren 408Spektralanalyse 426TCP/IP-Server 407Überwachungsmodus 383, 406, 408Zugriffspunkt finden 383

WLANs Siehe Drahtlose NetzwerkeWörterbuchangriffe

Automatisieren 416CoWPAtty 416Hashes 390IKE-scan 180LEAP 380, 381, 390Liste möglicher Passwörter aufstellen

222Oracle-Konten 286PSK-scan 180Routerpasswörter 214VPN-Verschlüsselung 180Werkzeuge 416Wörterbuchdateien in Kali Linux 222WPA 380, 416WPA-PSK 381

Page 79: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

496 Stichwortverzeichnis

WPAAES 386Angriffe 389Authentifizierung 386Brute-Force-Angriff 382EAP 386Entschlüsselung 407Handshake erfassen 416Knacken 407Passphrasen im Voraus berechnen

407RADIUS 381, 389RC4 380Regenbogentabellen 382Schwachstellen 380, 381, 386TKIP 386Verschlüsselung 380, 386Wörterbuchangriffe 380, 381, 416WPA-PSK 381, 386, 389

WPA2802.11i 380AES 380Brute-Force-Angriff 380, 382EAP 386Knacken 380PMK 380Regenbogentabellen 382Verschlüsselung 380, 386

Wright, Joshua 381, 382, 416WSDL 313Würmer

Blaster 446CD/DVD 443Morris-Wurm 236, 438Spida 274

XXen 460xp_cmdshell 276, 278XSS 244

ZZAP 250Zed Attack Proxy 250Zeitstempel

date 167ICMP 199Netzwerkgeräte 207Nmap 157Protokollierung 167

Ziele Siehe Zielorganisationen oder Übungsziele

Zielgerichtete Aufklärung 72Zielorganisationen

Aufklärung in der realen Welt 68Gitrob 85Interne Routingprotokolle 212Öffentliche Repositorys 85SSID 392Struktur 61Top-Level-Domänen 71

Zombie 162Zonenübertragung

Anfordern 96Ausschalten 96Einschränkungen 92Vorgang 89

ZugriffspunkteAuthentifizierung 409Entauthentifizierung 405Getarnt 383Signalabschwächung 414SSID 384Standorte in Google Earth anzeigen

399Testlabor 440Trennpakete 405Verbindung aufnehmen 409Virtuelle Zugriffspunkte 405

Zugriffssteuerungslisten 203Zwei-Faktor-Authentifizierung 391Zyklische Redundanzprüfung 388

Page 80: Jeremy Faircloth Pentesting · 2017-06-30 · Jeremy Faircloth Pentesting mit Open Source 60545-8 Titelei.qxp_Layout 1 19.05.17 11:50 Seite 1

Jeremy Faircloth Aus dem Inhalt:•Wirkungsvolle Informations-beschaffung

• Effektive Zielbewertung durchScannen und Auflisten

• Erfolgreich in Netzwerkgeräteeindringen

• Schwachstellen in Webanwen-dungen und -diensten erken-nen und ausnutzen

• Bugs und Fehlkonfigurationenin relationalen Datenbankma-nagementsystemen ausnutzen

• Unternehmensanwendungentesten

• Clientseitige Angriffe undSocial Engineering

• Penetrationstests in drahtlo-sen Netzwerken und Blue-tooth-Umgebungen

• Eigenes sicheres Penetrations-labor einrichten

Besuchen Sie unsere Website www.franzis.de

Dieses Buch ist das ultimative Lern- und Nachschlage-werk für alle, die sich beruflich mit der Sicherheitvon Informationssystemen befassen – vom Penetra-tionstester über den Netzwerk-Administrator biszum IT-Manager. Auch wenn Sie selbst keine Pene-trationstests durchführen, erfahren Sie hier, wie Penetrationstester in IT-Systeme eindringen. Dennnur so können Sie die richtigen Technologien undRichtlinien anwenden, um die kritischsten BereicheIhres Unternehmens sicherer zu gestalten.

Das Buch bietet einen umfassenden Leitfaden durchalle gängigen Open-Source-Tools für Penetrationstesterund erklärt, wie sie eingesetzt werden und in welchenSituationen sie angebracht sind. Sie sind nicht nurfrei zugänglich, sondern auch meist besser anpassbarund kostengünstiger als ihre proprietären Gegen-stücke. Deshalb erfüllen sie die Bedürfnisse eines Penetrationstesters in vielen Situationen besser alskommerzielle Tools.

In jedem seiner zehn umfassenden Kapitel konzen-triert sich dieses Buch auf ein bestimmtes Gebiet vonPenetrationstests – von der Aufklärung des Ziels biszur Infiltration drahtloser Netzwerke. Jedes Kapitelwiederum ist gegliedert in Ziele, Vorgehensweise,grundlegende Technologien und die Vorstellung derjeweils verwendeten Open-Source-Tools. Außerdementhält jedes Kapitel eine praxisnahe Fallstudie, inder die beschriebenen Werkzeuge in einem realisti-schen Szenario angewendet werden. Abgerundet wirddies durch eine praktische Übung in jedem Kapitel,die Ihnen die Gelegenheit gibt, das Gelernte anzu-wenden.

Über den Autor:Jeremy Faircloth (CISSP, Security+, CCNA,MCSE, MCP+I, A+) ist erfahrener Hackerund Spezialist in einem breiten Spek-trum verschiedenster Informationstech-nologien. Außerdem hat er Erfahrung imManagement mehrerer technischerTeams der 50 größten US-Unternehmenund ist Mitglied der Society for TechnicalCommunication. Seine Schulungen undVeröffentlichungen dienen anderen IT-Profis als Quellen und Inspiration. Mitseinen mehr als 20 Jahren praktischerErfahrung wurde er schon als „IT-Univer-salgelehrter“ bezeichnet und hat sich zueinem Fachmann für viele Bereiche wieWebentwicklung, Datenbankverwaltung,Unternehmenssicherheit, Netzwerkde-sign, Unternehmensanwendungen undProjektmanagement entwickelt. AlsAutor hat er bereits zu mehr als einemDutzend Fachbücher beigetragen.

Pentesting mit Open Source

60545-8 U1+U4.qxp 24.05.17 15:55 Seite 1