Einstieg in Kali Linux - Jürgen Ebner - E-Book

Einstieg in Kali Linux E-Book

Jürgen Ebner

0,0

Beschreibung

  • Von der Installation über die Konfiguration bis hin zum Einsatz der wichtigsten Tools
  • Detaillierter Ablauf von Security Assessments und Durchführung von Penetrationstests mit praktischer Checkliste
  • Schwachstellenanalyse mit OpenVAS, Angriffe mit WebScarab und Metasploit, IT-Forensik mit Autopsy, Reporting mit Faraday und viele weitere Tools

Die Distribution Kali Linux ist auf Sicherheits- und Penetrationstests spezialisiert. Sie enthält mehrere Hundert Pakete zur Informationssammlung und Schwachstellenanalyse und jede Menge Tools für Angriffe und Exploitation sowie Forensik und Reporting, sodass Penetration Tester aus einem beinahe endlosen Fundus kostenloser Tools schöpfen können.

Dieses Buch ermöglicht IT-Sicherheitsexperten und allen, die es werden wollen, einen einfachen Einstieg in Kali Linux. Erfahrung im Umgang mit anderen Linux-Distributionen setzt der Autor dabei nicht voraus.

Im ersten Teil des Buches erfahren Sie, wie Sie Kali Linux installieren und an Ihre Bedürfnisse anpassen. Darüber hinaus gibt Ihnen der Autor grundlegende Linux-Kenntnisse an die Hand, die Sie für das Penetration Testing mit Kali Linux brauchen.

Der zweite Teil erläutert verschiedene Security Assessments sowie die grundlegende Vorgehensweise bei der Durchführung von Penetrationstests. So vorbereitet können Sie im nächsten Schritt gezielt die für Ihren Einsatzzweck passenden Tools für das Penetration Testing auswählen.

Aus der Fülle der bei Kali Linux mitgelieferten Tools stellt der Autor im dritten Teil des Buches die wichtigsten vor und zeigt Schritt für Schritt, wie und wofür sie eingesetzt werden, darunter bekannte Tools wie Nmap, OpenVAS, Metasploit und John the Ripper.

Nach der Lektüre sind Sie bereit, Kali Linux sowie die wichtigsten mitgelieferten Tools für Penetrationstests einzusetzen und IT-Systeme auf Schwachstellen zu prüfen.

Aus dem Inhalt:

  • Hauptfeatures und Richtlinien von Kali Linux
  • Installation und Konfiguration
  • Linux-Dateisystem, Kommandozeile und nützliche Linux-Befehle
  • Sicherheitsrichtlinien
  • Einführung in Security Assessments
  • Durchführung von Pentests
  • Informationssammlung
  • mit Nmap, TheHarvester, HTTrack u.v.m.
  • Schwachstellenanalyse mit OpenVAS, Nikto und Siege
  • Sniffing und Spoofing mit Dsniff, Ettercap und Wireshark
  • Tools für Attacken: Wireless-Attacken (aircrack-ng, Ghost Phisher, Kismet)
    • Pentesting von Webseiten (WebScarab, Skipfish, ZAP)
    • Exploitation (Metasploit, Armitage u.v.m.)
    • Passwort-Angriffe (Medusa, JtR u.v.m.)
  • IT-Forensik mit Autopsy, Binwalk und mehr
  • Reporting mit Cutycapt, Faraday und mehr
  • Checkliste für Penetrationstests
  • Praktisches Glossar

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern
Kindle™-E-Readern
(für ausgewählte Pakete)

Seitenzahl: 485

Veröffentlichungsjahr: 2023

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Inhaltsverzeichnis
Einstieg in Kali Linux
Penetration Testing und Ethical Hacking mit Linux
Impressum
Einleitung
Warum Kali Linux?
Über dieses Buch
Teil I: Grundlagen von Kali Linux
Kapitel 1: Einführung
1.1 Unterschied zwischen Kali und Debian
1.2 Ein Stück Geschichte
1.3 Kali Linux – für jeden etwas
1.3.1 Varianten von Kali Linux
1.4 Die Hauptfeatures
1.4.1 Live-System
1.4.2 Ein maßgeschneiderter Linux-Kernel
1.4.3 Komplett anpassbar
1.4.4 Ein vertrauenswürdiges Betriebssystem
1.4.5 Auf einer großen Anzahl von ARM-Geräten verwendbar
1.5 Richtlinien von Kali Linu‌x
1.5.1 Benutzer ohne root-Rechte
1.5.2 Netzwerkdienste sind standardmäßig deaktiviert
1.5.3 Eine organisierte Sammlung von Tools
1.6 Zusammenfassung
Kapitel 2: Linux-Grundlagen
2.1 Was ist Linux und wie funktioniert es?
2.1.1 Hardwaresteuerung
2.1.2 Vereinheitlichtes Dateisystem
2.1.3 Prozesse verwalten
2.1.4 Rechtemanagement
2.2 Die Kommandozeile (Command Line)
2.2.1 Wie komme ich zur Kommandozeile?
2.2.2 Verzeichnisbaum‌ durchsuchen und Dateien verwalten
2.3 Das Dateisystem
2.3.1 Dateisystem-Hierarchie-Standard
2.3.2 Das Home-Verzeichnis‌ des Anwenders
2.4 Hilfreiche Befehle
2.4.1 Anzeigen und Ändern von Text-Dateien
2.4.2 Suche nach Dateien und innerhalb von Dateien
2.4.3 Prozesse‌ verwalten
2.4.4 Rechte verwalten
2.4.5 Systeminformationen und Logs aufrufen
2.4.6 Hardware erkennen
2.5 Zusammenfassung
Kapitel 3: Installation von Kali
3.1 Systemanforderungen
3.2 Erstellen eines bootfähigen Mediums
3.2.1 Herunterladen des ISO-Images‌
3.2.2 Kopieren des Images auf ein bootfähiges Medium
3.2.3 Aktivieren der Persistenz auf dem USB-Stick
3.3 Stand-Alone-Installation
3.3.1 Partitionierung der Festplatte
3.3.2 Konfigurieren des Package Managers (apt)
3.3.3 GRUB-Bootloaders installieren
3.3.4 Installation abschließen und neu starten
3.4 Dual-Boot – Kali Linux und Windows
3.5 Installation auf einem vollständig verschlüsselten Dateisystem
3.5.1 Einführung in LVM
3.5.2 Einführung in LUKS
3.5.3 Konfigurieren verschlüsselter Partitionen
3.6 Kali Linux auf Windows Subsystem for Linux
3.6.1 Win-KeX‌
3.7 Kali Linux auf einem Raspberry Pi
3.8 Systemeinstellungen und Updates
3.8.1 Repositories
3.8.2 NVIDIA-Treiber für Kali Linux installieren
3.8.3 Terminal als Short-Cut (Tastenkombination)
3.9 Fehlerbehebung bei der Installation‌
3.9.1 Einsatz der Installer-Shell zur Fehlerbehebung
3.10 Zusammenfassung
Kapitel 4: Erste Schritte mit Kali
4.1 Konfiguration von Kali Linux
4.1.1 Netzwerkeinstellungen
4.1.2 Verwalten von Benutzern und Gruppen
4.1.3 Services konfigurieren
4.2 Managing Services
4.3 Hacking-Labo‌r einrichten
1.1.1 Kali Linux – Test Lab Environment
4.4 Sichern und Überwachen mit Kali Linux
4.4.1 Sicherheitsrichtlinie‌n definieren
4.4.2 Mögliche Sicherheitsmaßnahmen
4.4.3 Netzwerkservices absichern
4.4.4 Firewall- oder Paketfilterung
4.5 Weitere Tools installieren
4.5.1 Meta-Packages mit kali-tweaks‌ installieren
4.5.2 Terminator statt Terminal
4.5.3 OpenVAS zur Schwachstellenanalyse
4.5.4 SSLstrip2
4.5.5 Dns2proxy‌
4.6 Kali Linux ausschalten
4.7 Zusammenfassung
Teil II: Einführung in Penetration Testing
Kapitel 5: Einführung in Security Assessments
5.1 Kali Linux in einem Assessment
5.2 Arten von Assessments
5.2.1 Schwachstellenanalyse
5.2.2 Compliance-Test
5.2.3 Traditioneller Penetrationstest
5.2.4 Applikations-Assessment
5.3 Normierung der Assessments
5.4 Arten von Attacken
5.4.1 Denial of Service‌s (D‌oS)
5.4.2 Speicherbeschädigungen
5.4.3 Schwachstellen von Webseiten
5.4.4 Passwort-Attacken‌
5.4.5 Clientseitige Angriffe
5.5 Zusammenfassung
Kapitel 6: Kali Linux für Security Assessments vorbereiten
6.1 Kali-Pakete anpassen
6.1.1 Quellen finden
6.1.2 Build-Abhängigkeiten installieren
6.1.3 Änderungen durchführen‌
6.1.4 Build erstellen
6.2 Linux-Kerne‌l kompilieren
6.2.1 Einführung und Voraussetzungen
6.2.2 Quellen finden
6.2.3 Kernel konfigurieren
6.2.4 Pakete kompilieren und erstellen
6.3 Erstellen eines individuellen Kali-Live-ISO-Image‌s
6.3.1 Voraussetzungen
6.3.2 Erstellen von Live-Images mit verschiedenen Desktop-Umgebungen
6.3.3 Ändern der Liste installierter Pakete
6.3.4 Verwenden von Hooks zum Optimieren des Live-Images
6.3.5 Hinzufügen von Dateien zum ISO-Image oder Live-Filesystem
6.4 Hinzufügen von Persistenz‌ auf einem USB-Stick
6.4.1 Erstellen einer unverschlüsselten Persistenz auf einem USB-Stick
6.4.2 Erstellen einer verschlüsselten Persistenz‌ auf einem USB-Stick
6.4.3 Verwenden von mehreren Persistenzspeichern
6.5 »Automatisierte« Installation
6.5.1 Antworten auf Installationsabfragen vorbereiten
6.5.2 Erstellen der Voreinstellungsdatei
6.6 Zusammenfassung
6.6.1 Kali-Pakete ändern
6.6.2 Linux-Kernel neu kompilieren
6.6.3 Benutzerdefinierte ISO-Images erstellen
Kapitel 7: Ablauf eines Penetrationstests
7.1 Informationen sammeln‌
7.1.1 Was nun?
7.1.2 Kali-Tools zur Informationsbeschaffung
7.1.3 Informationen nach angreifbaren Zielen durchsuchen
7.2 Scannen
7.2.1 Pings‌
7.2.2 Portscan‌
7.2.3 Nmap Script Engine‌ – Transformationen eines Tools
7.2.4 Schwachstellen-Scan‌
7.3 Eindringen über das lokale Netzwer‌k
7.3.1 Zugriff auf Remotedienste‌
7.3.2 Übernahme von Systemen
7.3.3 Passwörter hacken
7.3.4 Abrissbirnen-Technik – Passwörter zurücksetzen
7.3.5 Netzwerkverkehr‌ ausspähen
7.4 Webgestütztes Eindringen
7.4.1 Schwachstellen in Webapplikationen‌‌ finden
7.4.2 Webseite analysieren
7.4.3 Informationen abfangen
7.4.4 Auf Schwachstellen‌ scannen
7.5 Nachbearbeitung und Erhaltung des Zugriffs
7.6 Abschluss eines Penetrationstests
7.7 Zusammenfassung
Teil III: Tools in Kali Linux
Kapitel 8: Tools zur Informationsbeschaffung und Schwachstellenanalyse
8.1 Tools zur Informationssammlung
8.1.1 Nmap – Das Schweizer Taschenmesser für Portscanning
8.1.2 TheHarvester – E-Mail-Adressen aufspüren und ausnutzen
8.1.3 Dig‌ – DNS-Informationen abrufen
8.1.4 Fierce – falls der Zonentransfer nicht möglich ist
8.1.5 MetaGooFil – Metadaten extrahieren
8.1.6 HTTrack – Webseite als Offline-Kopie
8.1.7 Maltego – gesammelte Daten in Beziehung setzen
8.1.8 Legion – Automation in der Informationsbeschaffung
8.2 Schwachstellenanalyse-Tools‌‌
8.2.1 OpenVAS – Sicherheitslücken aufdecken
8.2.2 Nikto – Aufspüren von Schwachstellen auf Webservern
8.2.3 Siege‌ – Performance Test von Webseiten
8.3 Sniffing und Spoofing
8.3.1 Dsniff – Sammlung von Werkzeugen zum Ausspionieren von Netzwerkdatenverkehr‌
8.3.2 Ettercap‌ – Netzwerkverkehr ausspionieren‌
8.3.3 Wireshark – der Hai im Datenmeer
Kapitel 9: Tools für Attacken
9.1 Wireless-Attacke‌n
9.1.1 aircrack-ng‌
9.1.2 wifiphisher
9.1.3 Kismet
9.2 Webseiten-Penetration-Testing
9.2.1 WebScara‌b
9.2.2 Skipfish
9.2.3 Zed Attack Proxy‌
9.3 Exploitation-Tools
9.3.1 Metasploit
9.3.2 Armitage
9.3.3 Social Engineer Toolkit (SET)
9.3.4 Searchsploit
9.4 Passwort-Angriffe
9.4.1 Medusa
9.4.2 Hydra
9.4.3 John the Ripper
9.4.4 Samdump2
9.4.5 chntpw
Kapitel 10: Forensik-Tools
10.1 Dcfld‌d – Abbild für forensische Untersuchung erstellen
10.2 Autopsy
10.3 Binwalk
10.4 chkrootkit
10.5 Bulk_extrator
10.6 Foremost
10.7 Galleta
10.8 Hashdeep
10.9 Volafox
10.10 Volatility
Kapitel 11: Tools für Reports
11.1 Cutycapt
11.2 Faraday-IDE
11.3 Pipal‌
11.4 RecordMyDesktop
Anhang A: Terminologie und Glossar
Anhang B: Übersicht Kali-Meta-Pakete
B.1 System-Pakete
B.1.1 kali-linux-core
B.1.2 kali-linux-headless
B.1.3 kali-linux-default
B.1.4 kali-linux-arm
B.1.5 kali-linux-nethunter
B.2 Tools
B.2.1 kali-tools-gpu
B.2.2 kali-tools-hardware
B.2.3 kali-tools-crypto-stego
B.2.4 kali-tools-fuzzing
B.2.5 kali-tools-802-11
B.2.6 kali-tools-bluetooth
B.2.7 kali-tools-rfid
B.2.8 kali-tools-sdr
B.2.9 kali-tools-voip
B.2.10 kali-tools-windows-resources
B.2.11 kali-linux-labs
B.3 Menü
B.3.1 kali-tools-information-gathering
B.3.2 kali-tools-vulnerability
B.3.3 kali-tools-web
B.3.4 kali-tools-database
B.3.5 kali-tools-passwords
B.3.6 kali-tools-wireless
B.3.7 kali-tools-reverse-engineering
B.3.8 kali-tools-exploitation
B.3.9 kali-tools-social-engineering
B.3.10 kali-tools-sniffing-spoofing
B.3.11 kali-tools-post-exploitation
B.3.12 kali-tools-forensics
B.3.13 kali-tools-reporting
Anhang C: Checkliste: Penetrationstest
C.1 Scope
C.2 Expertise
C.3 Lösung
Anhang D: Installation von Xfce und Undercover-Modus

Jürgen Ebner

Einstieg in Kali Linux

Penetration Testing und Ethical Hacking mit Linux

Impressum

Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über <http://dnb.d-nb.de> abrufbar.

ISBN 978-3-7475-0736-0 4. Auflage 2024

www.mitp.de E-Mail: [email protected] Telefon: +49 7953 / 7189 - 079 Telefax: +49 7953 / 7189 - 082

© 2024 mitp Verlags GmbH & Co. KG

KALI LINUX ™ is a trademark of Offensive Security.

Dieses Werk, einschließlich aller seiner Teile, ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Dies gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen.

Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften.

Dieses Ebook verwendet das ePub-Format und ist optimiert für die Nutzung mit dem iBooks-reader auf dem iPad von Apple. Bei der Verwendung anderer Reader kann es zu Darstellungsproblemen kommen.

Der Verlag räumt Ihnen mit dem Kauf des ebooks das Recht ein, die Inhalte im Rahmen des geltenden Urheberrechts zu nutzen. Dieses Werk, einschließlich aller seiner Teile, ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheherrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Dies gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und Einspeicherung und Verarbeitung in elektronischen Systemen.

Der Verlag schützt seine ebooks vor Missbrauch des Urheberrechts durch ein digitales Rechtemanagement. Bei Kauf im Webshop des Verlages werden die ebooks mit einem nicht sichtbaren digitalen Wasserzeichen individuell pro Nutzer signiert.

Bei Kauf in anderen ebook-Webshops erfolgt die Signatur durch die Shopbetreiber. Angaben zu diesem DRM finden Sie auf den Seiten der jeweiligen Anbieter.

Lektorat: Janina Vervost Sprachkorrektorat: Petra Heubach-Erdmann Covergestaltung: Christian Kalkert Bildnachweis: © Sergey Nivens / stock.adobe.comelectronic publication: III-satz, Kiel, www.drei-satz.de

Einleitung

Es ist noch nicht lange her, dass Hacking eher ein Tabu war, und es gab auch keine Schulungen dazu. Aber inzwischen hat sich die Erkenntnis breitgemacht, dass auch ein offensiver Ansatz einen Mehrwert für die IT-Sicherheit liefert. Diese neue Herangehensweise wird von vielen Organisationen aller Größen und Branchen begrüßt: Staatliche Stellen machen inzwischen Ernst mit offensiver Sicherheit, Regierungen geben auch offiziell zu, dass sie daran arbeiten.

Für das Sicherheitskonzept einer Organisation spielen vor allem Penetrationstests eine wichtige Rolle. Richtlinien, Risikobewertungen, Notfallpläne und die Wiederherstellung nach Katastrophen sind zu unverzichtbaren Maßnahmen zum Erhalt der IT-Sicherheit geworden und genauso müssen auch Penetrationstests in die Gesamtplanung für die Sicherheit aufgenommen worden. Mit solchen Tests können Sie erkennen, wie Sie vom Feind wahrgenommen werden. Das kann zu vielen überraschenden Entdeckungen führen und Ihnen kostbare Zeit geben, um Ihre Systeme zu verbessern, bevor es einen echten Angriff gibt.

Warum Kali Linux?

Für das Hacking stehen heutzutage viele gute Werkzeuge zur Verfügung. Viele davon sind nicht einfach nur »da«, sondern laufen aufgrund der langjährigen Entwicklungszeit auch sehr stabil. Noch schwerer wiegt für viele die Tatsache, dass die meisten dieser Tools kostenlos erhältlich sind.

Abb. 1: Kali Linux Homepage

Es ist zwar schön, dass diese Werkzeuge kostenlos verfügbar sind, aber Sie müssen sie erst einmal finden, kompilieren und installieren, bevor auch nur der einfachste Penetrationstest durchgeführt werden kann. Auf den modernen Linux-Betriebssystemen geht das zwar relativ einfach, aber für Neulinge kann es immer noch eine abschreckende Aufgabe sein. Auch für Fortgeschrittene ist es mühsam, alle Tools erst mal zusammenzusuchen und zu installieren.

Die Security-Community ist glücklicherweise eine sehr aktive und freigiebige Gruppe. Mehrere Organisationen haben unermüdlich daran gearbeitet, verschiedene Linux-Distributionen für Hacking und Penetrationstests zu erstellen. Eine Distribution (kurz Distro) ist eine Variante von Linux. Für Hacking und Penetrationstests gibt es Linux-Distros, wie:

Parrot Security OS

BlackBox

BlackArch

Fedora Security Spin

Samurai Web Testing Framework

Pentoo Linux

DEFT Linux

Caine

Network Security Toolkit (NST)

Kali Linux

Die bekannteste Distro für Penetrationstests ist Kali Linux.

Mit Kali Linux erhalten angehende Sicherheitsexperten, Pentester und IT-Verantwortliche eine umfangreiche Plattform, um digitale Attacken zu planen und durchzuführen.

Warum sollte man das tun wollen?

Einerseits, um sich mit potenziellen Angriffen auf die eigenen Systeme auseinanderzusetzen, und zum Zweiten, um interne und externe Schwachstellen besser zu verstehen.

Sollte es so etwas wie ein »Hacker-Betriebssystem« geben, dann trifft diese Bezeichnung wohl am ehesten auf Kali Linux zu. Diese Linux-Distribution ist standardmäßig schon voller Tools, die Sicherheitsexperten und IT-Verantwortlichen entweder den Schlaf rauben oder ihre Augen glitzern lassen.

Kali Linux enthält eigentlich nichts Exklusives – man kann sich jedes Tool, jede Software und jedes Skript auf jedem beliebigen Linux installieren –, dennoch greifen viele Sicherheitsforscher zu Kali.

Die meisten Programme samt den passenden Einstellungen werden bereits mit der Installation von Kali mitgeliefert. Viele der neuen Tools tauchen auch zuerst in den Kali-Repositories auf – auch wenn diese noch nicht ganz stabil sind. Ein weiterer Grund ist, dass Kali sich sehr gut als isolierte Umgebung betreiben lässt. Sollte doch mal etwas schiefgehen, kann das System rasch neu installiert werden und man kann von vorne anfangen – das ist natürlich um vieles besser, als sich eine Produktivumgebung komplett zu zerschießen.

Hinweis

Bevor Sie den Einsatz von Kali Linux erwägen, sollten Sie sich über eines klar sein: Kali ist nicht für jeden das Richtige! Beachten Sie, dass Kali eine Linux-Distribution ist, die speziell für professionelles Penetration Testing und Security Auditing ausgelegt ist. Daher empfiehlt es sich, diese nur zu verwenden, wenn Sie sie für diesen Zweck nutzen möchten. Es ist von Vorteil, wenn Sie bereits mit Linux vertraut sind, da es Ihnen die Arbeit erleichtert und Sie die in diesem Buch beschriebenen Tools so effizienter einsetzen können.

Vorsicht

Die falsche Anwendung von Security-Tools in Ihrem Netzwerk – vor allem ohne Erlaubnis – kann irreparablen Schaden mit erheblichen Folgen anrichten.

Über dieses Buch

In diesem Buch werden keine Vorkenntnisse vorausgesetzt, aber Sie werden sich einen Gefallen tun, wenn Sie sich selbst mit Linux besser vertraut machen, das wird Ihnen die Arbeit mit diesen Tools erleichtern. Besuchen Sie einen Kurs, lesen Sie ein Buch[1] oder erkunden Sie Linux auf eigene Faust. Für diesen Rat werden Sie mir noch dankbar sein. Wenn Sie sich für Penetrationstests und Hacking interessieren, sind Linux-Kenntnisse auf lange Sicht gesehen unabdingbar.

Ich habe das Buch so aufgebaut, dass Sie es auch verwenden können, wenn Sie noch keine Erfahrungen mit Security-Assessments haben bzw. noch nicht mit Linux gearbeitet haben. Wenn Sie das Buch gelesen haben, sollten Sie als Penetrationstester – auch wenn Sie ein Anfänger sind – Security-Assessments mit Kali Linux erfolgreich durchführen können.

Um den Einstieg in die Welt von Kali Linux und Penetrationstests mit Kali Linux zu erleichtern, habe ich das Buch in drei Teile gegliedert.

Im ersten Teil wird die Geschichte von Kali Linux beleuchtet und wie Sie Kali installieren und konfigurieren können, um es Ihren Anforderungen anzupassen. Außerdem finden Sie hier auch eine kurze Einführung in Linux, damit Sie, falls Sie Linux-Anfänger sind, trotzdem keine Probleme mit dem Einstieg in Kali Linux haben.

Anschließend zeige ich Ihnen im zweiten Teil, wie Sie am besten einen Penetrationstest aufbauen und wie Sie dabei die Tools von Kali Linux einsetzen. Bedenken Sie aber, dass der Teil nur eines der Modelle behandelt, die beschreiben, wie man einen Penetrationstest aufbauen kann.

Da Kali Linux sehr viele Tools für Security-Assessments mitliefert, werde ich Ihnen im dritten Teil ein paar Tools, die ich für nützlich halte, kurz vorstellen. Sie erfahren, wie Sie diese Tools einsetzen können, aber ich kann Ihnen nur empfehlen, sich mit allen Tools, die Sie für Ihre Security-Assessments benötigen, noch ausführlicher zu beschäftigen. Gerade in dieser Tätigkeit bestätigt sich der Spruch »Übung macht den Meister«. Je mehr Sie sich mit diesen Tools vertraut machen, desto besser und effektiver können Sie diese auch einsetzen.

Im Anhang finden Sie ein praktisches Glossar, eine Übersicht über die Meta-Pakete von Kali Linux sowie eine Checkliste für Penetrationstests, die Ihnen noch eine zusätzliche Hilfestellung gibt, um das Security-Assessment erfolgreich durchzuführen.

[1] Linux – Praxiswissen für Ein- und Umsteiger von Christoph Troche (mitp) wäre ein kompaktes Einsteigerbuch

Teil I: Grundlagen von Kali Linux

Bevor Sie sich mit den Tools von Kali Linux und deren Einsatz beschäftigen, ist es wichtig, dass Sie verstehen, warum es dieses System gibt und was bei der Entwicklung eines Hacker-Betriebssystems bedacht wurde. Aus diesem Grund beschäftigen wir uns am Beginn des ersten Teils von Kali Linux mit der Geschichte von Kali und wie es sich von Debian unterscheidet.

Da es mehrere Versionen von Kali Linux gibt, damit es auch auf unterschiedlichen Plattformen genutzt werden kann, stelle ich Ihnen hier auch die unterschiedlichen Versionen kurz vor.

Für den Fall, dass Sie noch keine Erfahrungen mit Linux haben, habe ich auch die wichtigsten Grundlagen von Linux angeführt, die Ihnen aber auch als Auffrischung dienen können. In diesem Zusammenhang zeige ich Ihnen auch, wie Sie Kali Linux installieren und an Ihre Bedürfnisse anpassen. Anschließend ist das System bereit, damit Sie Ihren ersten Penetrationstest durchführen können.

In diesem Teil:

Kapitel 1

Einführung

Kapitel 2

Linux-Grundlagen

Kapitel 3

Installation von Kali

Kapitel 4

Erste Schritte mit Kali

Kapitel 1: Einführung

In diesem Kapitel werde ich Ihnen einen Überblick geben, wie sich Kali Linux von Debia‌n unterscheidet, wobei Debian die Basis für Kali bildet.

1.1  Unterschied zwischen Kali und Debian

Kali ist eine Distribution‌, die mit zahlreichen Tools für professionelles Penetration Testing und Security Auditing ausgestattet ist. Deshalb wurden in Kali Linux Änderungen implementiert, die diese Anforderungen auch widerspiegeln:

Einzelner Benutzer, Root-Zugriff per Design: Die Art von Security-Audits verlangt es, dass Kali Linux zur Benutzung auf ein »Einzelner Root-Benutzer«-Szenario ausgelegt ist.

Netzwerkdienste sind per Default ausgeschaltet: Kali Linux enthält SysVinit[1]-Methoden‌, die Netzwerk-Services standardmäßig ausschalten. Diese Methode erlaubt es, verschiedene Services in Kali zu installieren und gleichzeitig sicherzustellen, dass unsere Distribution standardmäßig sicher bleibt, egal welche Pakete installiert sind. Zusätzliche Services, wie z.B. Bluetooth, sind auch standardmäßig blackgelistet.

Angepasster Linux-Kernel: Kali Linux benutzt einen Kernel, der für Wireless Injection‌ gepatcht wurde.

1.2  Ein Stück Geschichte

Kali Linux ist nicht die erste Linux-Distribution, die zum Zweck von Penetration Testing und Security Auditing entwickelt wurde. Der Vorgänger war BackTrack‌, der auf Ubuntu‌ basiert und schließlich im März 2013 eingestellt wurde.

Die Geschichte eines Hacker-Linux begann aber mit zwei voneinander unabhängigen Distributionen: Auditor Security Collection und Whoppix. Die Entwickler haben sich Anfang 2006 dazu entschlossen, diese zusammenzuführen. Dadurch entstand BackTrack als neue Distribution, die ursprünglich auf Slackware‌ basierte. Mit der vierten Version wurde die Entwicklung auf Debian fortgesetzt und die fünfte Version basierte schließlich auf Ubuntu 10.04 LTS.

Im Dezember 2012 wurde von Mati Aharoni und Devon Kearns von Offensive Security eine neue »Hacker-Linux«-Distribution vorangekündigt, die am 13. März 2013 veröffentlicht wurde. Das erste Release (Version 1.0) basierte auf Debian 7 »Wheezy«, der Stable Distribution‌ von Debian zu dieser Zeit.

Kali Linux ist der offizielle Nachfolger von BackTrack. Der Namenswechsel soll anzeigen, dass es sich um eine bedeutsam fortgeschrittene Neuentwicklung handelt. Bei Kali Linux handelt es sich um eine Linux-Distribution, die auf Debian – und nicht mehr auf Ubuntu – basiert. In einem einjährigen Entwicklungsprozess wurde das gesamte Betriebssystem neu erstellt.

In den zwei Jahren nach der ersten Kali-Version wurden viele inkrementelle Updates veröffentlicht, wodurch die Palette der verfügbaren Anwendungen erweitert und die Hardware-Unterstützung dank neuerer Kernel-Releases verbessert wurde. Mit einigen Investitionen in die kontinuierliche Integration wurde sichergestellt, dass alle wichtigen Pakete in einem installierbaren Zustand gehalten werden. Es können immer angepasste Livebilder erstellt werden.

2015, als Debian 8 »Jessie« herauskam, arbeitete das Entwicklerteam von Kali daran, Kali Linux darauf aufzubauen. Das Team entschloss sich dazu, in dieser Version die GNOME-Shell‌ zu nutzen und zu verbessern: Es wurden einige GNOME-Shell-Erweiterungen hinzugefügt, um fehlende Funktionen zur Verfügung zu stellen, wie z.B. das Anwendungsmenü. Das Ergebnis war Kali Linux 2.0, das im August 2015 veröffentlicht wurde.

Parallel dazu wurden auch die Anstrengungen verstärkt, sicherzustellen, dass Kali immer über die neuesten Versionen aller Pen-Testing-Tools verfügt. Hier kam es zu einem Konflikt mit dem Ziel der Verwendung von Debian Stable als Basis für die Distribution. Viele der Pakete mussten damals zurückportiert werden, da Debian Stable der Stabilität der Software Priorität einräumt. Dadurch kam es häufig zu einer langen Verzögerung von der Veröffentlichung eines Upstream-Updates bis zur Integration in die Distribution. Der logische Schluss war die Umstellung von Kali auf Debian Testing. Dadurch konnte das Entwicklungsteam von den neuesten Versionen aller Debian-Pakete profitieren, sobald diese verfügbar waren. Debian Testing verfügt über einen viel aggressiveren Update-Zyklus, der auch besser mit der Philosophie von Kali übereinstimmt.

Das entspricht im Wesentlichen dem Konzept von Kali Rolling‌. Während die rollende Distribution schon eine Weile verfügbar ist, war Kali 2016.1 die erste Veröffentlichung, die offiziell den rollenden Charakter dieser Distribution berücksichtigte: Wenn man die neueste Kali-Version installiert, verfolgt das System tatsächlich der Kali-Rolling-Verteilung und man erhält jeden Tag die neuesten Updates. Davor waren Kali-Veröffentlichungen Schnappschüsse der zugrunde liegenden Debian-Distribution mit darin eingebauten Kali-spezifischen Paketen.

Eine Rolling Distribution‌ hat viele Vorteile, aber bringt auch zahlreiche Herausforderungen mit sich, sowohl für die Entwickler der Distribution als auch für die Benutzer, die mit dem endlosen Fluss von Updates und manchmal auch mit rückwärts inkompatiblen Änderungen zu kämpfen haben. In diesem Buch soll das Wissen vermittelt werden, das für die Verwaltung der Kali-Linux-Installation benötigt wird.

Mit Kali 2019.4 hat man sich entschlossen, standardmäßig die ressourcenschonende Desktop-Oberfläche Xfce anstelle von GNOME zu installieren. Eine weitere wesentliche Änderung ist die Einführung des Undercover-Modus, mit dem Kali Linux wie ein Windows aussieht. Der Undercover-Modus funktioniert nur unter Xfce-Desktop. Wenn Sie von einer älteren Version upgraden, haben Sie noch immer den GNOME-Desktop und müssen den Xfce-Desktop und den Undercover-Modus nachinstallieren. Wie Sie das machen können, erfahren Sie in Anhang D.

Mit dem Release 2020.1 wurde eine wesentliche Änderung beim User durchgeführt: Der root-User ist nicht mehr Standard. Das bedeutet, um root-Rechte zu erhalten, muss man zusätzlich vor dem Befehl sudo eingeben. Es gibt auch die Möglichkeit, den Root Terminal Emulator zu verwenden, dadurch ersparen Sie sich die Eingabe von sudo vor dem Befehl.

Beim letzten Release im Jahr 2020 (2020.4) wurde die bash durch zsh[2] als Standard-Shell abgelöst. Der Vorteil von zsh als Shell ist, dass diese viele Verbesserungen und Eigenschaften von bash, ksh und tcsh vereint.

Bei den Releases 2021 wurden vor allem neue Tools in das Repository aufgenommen. Mit 2021.2 wurde darüber hinaus auch die NetHunter-Unterstützung für Android 11 veröffentlicht. Bei der Version 2021.3 wurde die VM-Funktionen verbessert und NetHunter ist nun auch für Smartwatches verfügbar.

Das Jahr 2022 brachte kaum Neuerungen, da sich das Entwickler-Team Verbesserungen widmete. Neben einigen neuen Tools, wie z.B. dnsrecon, scapy und einigen weiteren, wurde vor allem an der Verbesserung der bestehenden Tools und Anwendungen gearbeitet. Es wurde damit begonnen, eine Testumgebung in Kali Linux zu integrieren, die im Release 2022.3 veröffentlicht wurde. Mit dem Release 2022.4 ist auch Kali Linux im Microsoft Azure Store verfügbar.

2023 wurde Kali Linux zehn Jahre alt und dies wurde mit einer neuen Kali-Version zur Verteidigung gefeiert – Kali Purple. Im ersten Release des Jahres erfolgte ein Update der Desktop-Version auf Xfce 4.18 und Plasma 5.27. Beim Release 2023.2 ist auch ein Hyper-V VM Image auf der Homepage erhältlich. Im August wurde schließlich noch das Release 2023.3 veröffentlicht. Mit diesem Release begann die Umstellung auf Debian 12, die bei der Veröffentlichung noch nicht vollständig abgeschlossen war. Es ist geplant, diese bis Jahresende vollständig umgesetzt zu haben. In diesem Release wurde auch der Kali Autopilot, ein Framework für automatisierte Angriffe, veröffentlicht. Dieses Tool dient dazu, die Defensive zu testen.

1.3  Kali Linux – für jeden etwas

Kali Linux wurde von Sicherheitsingenieuren mit Verstand implementiert – es enthält mehr als 600 Pakete für Penetration Testing. Es kann leicht ausgeführt, auf Live-CD oder USB-Stick oder in virtuellen Maschinen verwendet werden. Die Distribution ist sehr einfach zu bedienen, selbst von Anfängern. Die große Anzahl von Anwendungen hat dazu geführt, dass eine umfangreiche Sammlung von Hacking-Tutorials erstellt wurde.

Da Kali Linux auf Debian basiert, können die Nutzer die Vorteile des Advanced Package Tools nutzen, das den Experten die Möglichkeit bietet, verschiedene Drittanbieter-Repositories hinzuzufügen.

Die Distribution kann in verschiedenen Varianten heruntergeladen werden – es werden sowohl 32- und 64-Bit-Versionen unterstützt sowie mehrere ARM-Plattformen. Das macht es möglich, sie auch auf Einplatinencomputer, wie zum Beispiel Raspberry Pi oder anderen preiswerten Plattformen zu installieren.

Wie bei anderen Linux-Distributionen kann Kali mit verschiedenen grafischen Benutzeroberflächen heruntergeladen werden, abhängig von den Ressourcen des Computers oder den Benutzereinstellungen.

Das System wird von Offensive Security‌[3] für jeden kostenlos zum Download angeboten.

1.3.1  Varianten von Kali Linux

Abb. 1.1: Download von Kali Linux für verschiedene Plattformen

Auf der Homepage www.kali.org werden unterschiedliche Varianten angeboten:

Installer Images

Hier kann man das aktuellste Image von Kali Linux herunterladen. Alle Images gibt es in der 64-bit-, 32-bit- und der Apple-M1-Version. Es handelt sich jedoch um ein reines Installationsabbild, das nicht als Live-Boot verwendet werden kann.

Sie haben die Wahl zwischen drei verschiedenen Optionen für das Image:

Installer: Dabei handelt es sich um eine vollständige Offline-Installation. Das Image enthält die Meta-Pakete »Top10«, »Standard« und »Large«, damit eine vollständige Offline-Installation durchgeführt werden kann, ohne dass eine Internetverbindung notwendig ist.

NetInstaller: kann verwendet werden, wenn Sie bei jeder Installation von Kali Linux das neueste Paket verwenden möchten, oder das Standard-Installations-Image zu groß zum Herunterladen ist. Das Image ist sehr klein, denn es enthält keine lokale Kopie der zu installierenden Meta-Pakete. Diese werden im Zuge der Installation heruntergeladen, deshalb ist in diesem Fall unbedingt eine Netzwerkverbindung notwendig.

Weekly: Mit diesem ISO erhalten Sie ungetestete Images mit den aktuellsten Updates.

Everything: Es ist eine Sonderversion des Installer-Images, das sämtliche verfügbaren Pakete und Meta-Pakete enthält.

Virtuelle Images

Die Standard-Version gibt es auch als fertige Images für VMware, VirtualBox, Hyper-V und QEMU. Diese eignet sich perfekt, um Kali parallel zu nutzen.

Einfach herunterladen, einbinden, starten und los geht’s!

Zusätzlich gibt es mit Vagrant noch ein Tool zum Erstellen und Verwalten von Umgebungen mit virtuellen Maschinen. Mit einer einzelnen Konfigurations-Datei können eine Basis-»Box« und zusätzliche Konfigurationen erstellt werden wie z.B. das Hinzufügen einer zusätzlichen Netzwerkschnittstelle, das Festlegen der Anzahl der CPU-Kerne und des Arbeitsspeichers.

ARM

Diese Version ist für ARM-basierte Geräte angedacht. Wobei es hier eher ratsam ist, auf die speziellen Distributionen zurückzugreifen. Hier finden Sie Versionen für:

Raspberry PI

Pine64

Gateworks

WithSecure

Mobile

Die NetHunter-Variante ist eine Version von Kali für mobile Endgeräte. Aufgrund der unterschiedlichen Chipsätze und diversen Einschränkungen mobiler Systeme wird derzeit offiziell nur eine Auswahl der Geräte folgender Hersteller unterstützt:

OnePlus

Xiaomi

Nexus

Samsung

Gemini

LG

Nokia

Sony Xperia

Cloud-Installationen

Einen Sonderfall bildet die Cloud-Installation‌: Sie können Kali nicht nur lokal installieren, sondern auch auf einem Cloud-System. Das kann Vorteile haben (etwa ist das System schnell für mehrere Nutzer in einer Private Cloud bereitstellbar), aber es gibt auch Probleme – wie zum Beispiel wenn der Anbieter es nicht erlaubt, solche Systeme zu installieren.

Kali Linux ist derzeit im Amazon AWS Marketplace[4], bei Digital Ocean[5], Linode[6] und Microsoft Azure[7] erhältlich.

Egal, für welche Version Sie sich entscheiden – wenn bei der Installation etwas schiefgeht, werden in der offiziellen Dokumentation[8] so ziemlich alle Fälle abgedeckt und Sie finden dort auch viele weitere Details bei Fragen und Problemen.

Container

Mit Container-Technologien wie Docker und LXC/LXD wird es Ihnen ermöglicht, mit den Kali-Containern über Ihr Host-Betriebssystem auf das Kali-Toolset zuzugreifen, ohne den Aufwand, ein zusätzliches vollständiges Betriebssystem ausführen zu müssen. Der Nachteil dabei ist, dass damit Einschränkungen verbunden sind, da kein direkter Hardwarezugriff möglich ist. Der Umgang mit eingehenden Verbindungen zu Tools, die im Kali-Container ausgeführt werden, kann deshalb kompliziert sein.

Live-Boot

Mit dem Live-Image von Kali Linux auf einem Speichermedium (USB, DVD, PXE) haben Sie Zugriff auf eine vollständige Bare-Metal-Kali-Installation, ohne das Betriebssystem installieren zu müssen. Dadurch haben Sie einen schnellen und einfachen Zugriff auf das Kali-Toolset mit allen Vorteilen einer Bare-Metal-Installation.

WSL (Windows Subsystem for Linux)

Seit 2018 gibt es mit WSL auch eine Möglichkeit, Kali Linux direkt aus Windows 10 heraus zu nutzen. Das setzt aber voraus, dass WSL aktiviert ist. Bei WSL handelt es sich um ein Softwarepaket, mit dem Sie Linux neben Ihrem Windows-System in einem optimierten Container ausführen können. Das Kali-WSL-Paket ermöglicht einen einfachen Zugriff auf das Kali-Toolset. Dies hat die gleichen Nachteile wie bei einer Standard-VM, verursacht jedoch weniger Overhead und ermöglicht eine engere Integration mit Ihrem Windows-System. Das Softwarepaket kann über den Microsoft Store installiert werden.

1.4  Die Hauptfeatures

Das Herz eines Penetrationstests bildet Kali Linux, das, wie schon erwähnt, nahezu alle relevanten Werkzeuge bereitstellt. Diese Distribution enthält über 300 Hilfsmittel, mit denen Sie die Sicherheit von Computersystemen prüfen und bewerten können. Diese Tools können auch auf anderen Linux-Distributionen – teilweise sogar unter Windows – installiert werden.

Warum dann Kali Linux verwenden?

Der Vorteil von Kali Linux im Vergleich zu Einzelinstallationen ist es, dass die Tools bestens aufeinander abgestimmt sind und über angepasste und modifizierte Treiber verfügen, wie zum Beispiel aircrack-ng.

Das Kali-Linux-Team gibt an, dass die Programme viermal täglich aus dem Debian-Repository bezogen werden. Damit ist sichergestellt, dass die Anwender von Kali über eine solide Software-Basis mit den neuesten Sicherheitsupdates verfügen.

Kali Linux ist kostenlos und immer verfügbar: Sie werden nie für Kali Linux bezahlen müssen.

Open Source‌: Es ist für jeden einsehbar und alle Quellen sind für alle verfügbar, die Pakete optimieren oder neu bauen wollen.

FHS kompatibel: Es wurde auf dem Filesystem Hierarchy Standard‌[9] aufgebaut, damit Anwender Binaries, Supported Files, Bibliotheken usw. leicht finden.

Wireless-Geräte-Support: Kali wurde entwickelt, um so viele Wireless-Geräte wie möglich zu unterstützen. Das erlaubt es, dass das Betriebssystem auf einer großen Auswahl von Hardware läuft.

Verschiedene Sprachen: Tools für Penetrationstests sind in der Regel häufig auf Englisch geschrieben, aber Kali Linux bietet eine echte multilinguale Unterstützung. Dadurch kann der Anwender Kali und die Tools, die er für seinen Job benötigt, in seiner Muttersprache benutzen.

ARM-Unterstützung: ARM-basierte Systeme sind mehr und mehr verbreitet und kostengünstiger geworden, deshalb wird von den Entwicklern von Kali sichergestellt, dass die ARM-Unterstützung so stabil ist wie nur irgendwie möglich. Kali Linux hat deshalb die ARM-Repositories in die Haupt-Distribution integriert, sodass die Tools für ARM in Verbindung mit der restlichen Distribution aktualisiert werden.

Einige der wichtigsten enthaltenen Tools sind:

OpenVAS‌: Ein freier Security-Scanner, der auch professionellen Ansprüchen genügt. Dient zum Erkennen von Schwachstellen.

Maltego‌: Mit dem Tool kann man Daten über Einzelpersonen oder Unternehmen im Internet sammeln.

Kismet‌: Ist ein passiver Sniffer zur Untersuchung von lokalen Funknetzen.

Social-Engineer Toolkit (SET):‌ Enthält verschiedene Programme für Penetrationstests mit dem Schwerpunkt auf Social Engineering.

Nmap‌: Ein Netzwerkscanner zur Analyse von Netzwerken. In Kali Linux ist auch die grafische Nmap-Benutzeroberfläche Zenmap enthalten.

Wireshark‌: Der Klassiker unter den Netzwerksniffern mit einer grafischen Oberfläche.

Bettercap‌: Das Schweizer Messer für Netzwerk-Attacken und -Monitoring, mit dem beispielsweise ein Man-in-the-Middle-Angriff durchgeführt werden kann.

John the Ripper‌: Ein Tool zum Knacken und Testen von Passwörtern.

Metasploit‌: Der Klassiker für das Testen und Entwickeln von Exploits auf Zielsystemen

Aircrack-ng‌: Dabei handelt es sich um eine Tool-Sammlung, mit der Schwachstellen in WLANs analysiert und ausgenutzt werden können.

RainbowCrack‌: Mit diesem Programm steht ein Cracker für Lan-Manager-Hashes zur Verfügung.

Das ist nur eine kleine Auswahl an Tools, die diese Spezial-Distribution enthält, natürlich gibt es noch jede Menge weitere interessante Werkzeuge darin.

Wichtig: Vor dem praktischen Einsatz von Kali Linux

Diese Distribution enthält Tools, die teilweise Sicherheitsvorkehrungen umgehen können und als Computerprogramme zum Ausspähen von Daten aufgefasst werden. Sie dürfen Kali Linux nur dann zur Analyse von Infrastrukturen verwenden, wenn Sie dafür eine explizite Erlaubnis besitzen.

1.4.1  Live-System

Kali Linux muss nicht unbedingt installiert werden, es kann auch als sogenanntes Live-System‌ gestartet werden, das ist eine der verfügbaren Möglichkeiten, wenn Sie ein Boot-Menü haben. Es eignet sich gut für den schnellen Einsatz von Kali, aber wenn Sie es im vollen Umfang einsetzen wollen, ist es ungeeignet, denn Daten bzw. Einstellungen können nicht gespeichert werden.

Live USB Persistence

Im Boot-Menü von Kali Linux Live gibt es zwei Optionen, die eine Persistenz‌ – die Erhaltung der Daten auf dem USB-Laufwerk – auch nach einem Neustart von Kali Live ermöglichen: Live USB Persistence und Live USB Encrypted Persistence. Das kann eine nützliche Erweiterung sein, die es Ihnen erlaubt, Dokumente und gesammelte Testergebnisse sowie Konfigurationen aufzubewahren, wenn Sie Kali Linux vom USB-Stick – auch von verschiedenen Systemen – ausführen. Die persistenten Daten werden in einer eigenen Partition auf dem USB-Stick gespeichert, die optional auch verschlüsselt sein können.

Wie Sie diesen Modus aktivieren, erfahren Sie in Abschnitt 3.2.3.

Forensik-Modu‌s

In BackTrack Linux wurde der »forensische Modus« erstmals eingeführt, den es in Kali Linux Live gibt. Der Modus Live (forensic mode) ist aus mehreren Gründen sehr beliebt:

Kali Linux ist weit verbreitet und leicht nutzbar. Viele potenzielle Benutzer verfügen bereits über ein ISO von Kali oder bootfähige USB-Sticks.

Kali Linux Live ermöglicht einen schnellen und einfachen Einsatz von Kali Linux, wenn ein forensischer Bedarf entstehen sollte.

Kali Linux wird bereits mit beliebter forensischer Open-Source-Software vorinstalliert – es ist ein praktisches Toolkit für die forensische Arbeit.

Abb. 1.2: Startmenü – Auswahl des Forensik-Modus

Was ist der Unterschied zwischen Forensik-Modus‌ und der normalen Ausführung des Betriebssystems?

Im forensischen Modus gibt es wichtige Änderungen gegenüber dem regulären Betrieb des Systems:

Die internen Festplatten werden niemals verwendet. Enthält die Festplatte eine SWAP-Partition‌[10], wird diese nicht genutzt. Interne Festplatten werden niemals automatisch gestartet.

Wechselmedien werden ebenfalls nicht automatisch gemountet‌. Das heißt, USB-Sticks, CDs und Ähnliches werden beim Einlegen nicht automatisch geladen.

Der Grund dafür ist, dass im forensischen Modus mit keinem Medium ohne direkte Benutzeraktion etwas passieren sollte, damit am aktuellen Zustand nichts verändert wird.

Alles, was Sie als Benutzer tun, liegt bei Ihnen.

Hinweis

Wenn Sie planen, Kali für reale Forensik‌ jeglicher Art einzusetzen, dann ist es empfehlenswert, die Bezeichnung nicht nur wörtlich zu nehmen. Alle forensischen Tools sollten immer ausgiebig getestet werden, damit Sie wissen, wie Sie sich in allen Situationen verhalten müssen, in denen sie verwendet werden.

1.4.2  Ein maßgeschneiderter Linux-Kernel

Kali Linux stellt immer einen angepassten Linux-Kernel zur Verfügung, der auf einer Version von Debian Unstable‌ basiert. Das stellt eine solide Hardwareunterstützung sicher, insbesondere für eine Vielzahl von drahtlosen Geräten. Der Kernel ist für die Unterstützung der drahtlosen Injection gepatcht, da viele Tools für WLAN-Sicherheits-Assessment auf dieser Funktion basieren.

Da viele Hardwaregeräte aktuelle Firmwaredateien benötigen (zu finden unter /lib/firmware/), installiert Kali diese standardmäßig alle – einschließlich der Firmware, die in Debians nicht freiem Abschnitt verfügbar ist. Diese werden in Debian nicht standardmäßig installiert, da sie als Closed-Source-Dateien‌ vorliegen und daher nicht Teil von Debian sind.

1.4.3  Komplett anpassbar

Kali Linux ist standardmäßig schon ein »Hacker-Betriebssystem«, aber das Image für die Installation lässt sich auch auf persönliche Bedürfnisse anpassen. Möglich macht das die Nutzung des live-build Skripts‌, mit dem Sie jeden Aspekt des Kali Image konfigurieren können. Das Skript erlaubt es, einfach Live-System-Abbilder durch ein Framework zu erstellen, das Konfigurationseinstellungen nutzt, um automatisch und angepasst alle Aspekte der Erstellung eines Images abzudecken.

Voraussetzung

Das angepasste Kali-Image wird optimal aus einer bereits existierenden Kali-Umgebung heraus erstellt. Ist das nicht der Fall, sollten Sie sichergehen, dass Sie die aktuellste Version des live-build Skripts benutzen.

Vorbereitung

Als Erstes müssen Sie die Kali-Image-Erstellungsumgebung wie folgt vorbereiten:

sudo apt-get install -y curl git livebuild cdebootstrap git clone https://gitlab.com/kalilinux/build-scripts/live-build-config.git

Als Nächstes erstellen Sie eine aktualisierte Kali-ISO‌, indem Sie im Verzeichnis live-build-config das Wrapper-Skript build.sh ausführen:

cd live-build-config ./build.sh --verbose

Das Skript wird jetzt einige Zeit benötigen, um alle erforderlichen Pakete herunterzuladen, die zum Erstellen der ISO‌ erforderlich sind. Das wäre ein guter Zeitpunkt für eine Kaffeepause.

Konfiguration eines Kali-Images (optional)

Sollten Sie sich ein eigenes individuelles Kali-Linux-Image‌ erstellen wollen, finden Sie eine Beschreibung in diesem Abschnitt. Im Verzeichnis kali-config finden Sie eine Vielzahl von Anpassungsoptionen, die vom Live-Build unterstützt werden, die auf der Debian-Live-Build-Seite[11] gut dokumentiert sind. Im Anschluss einige der Highlights:

Kali-Images mit unterschiedlichen Desktop-Umgebungen‌

Mit Kali 2.0 werden verschiedene Desktop-Umgebungen, wie KDE, Gnome, E17, I3WM, MATE; LXDE und XFCE, unterstützt. Um ein Image mit einer davon zu erstellen, verwenden Sie eine der folgenden ähnliche Syntax:

# Das sind unterschiedliche Optionen für Desktop-Umgebung-Builds: #./build.sh --variant {gnome,kde,xfce,mate,e17,lxde,i3wm} --verbose # Um ein KDE-Image zu erstellen: ./build.sh --variant kde --verbose # Um ein MATE-Image zu erstellen: ./build.sh --variant mate --verbose #...und so weiter.
Kontrollieren der in dem Build enthaltenen Pakete

Die Liste der Pakete, die in dem Build enthalten sind, befindet sich im entsprechenden Verzeichnis der Kali-Variante. Verwenden Sie beispielsweise ein Standard-Gnome-Image, würde sich die Paketlistendatei unter /kali-config/variant-gnome/package-lists/kali.list.chroot befinden.

Standardmäßig enthält diese Liste das Meta-Paket‌ »kali-linux-full« sowie einige andere. Sie können diese auskommentieren und durch eine eigene Liste von Paketen ersetzen, um so ein persönliches Image mit weniger Overhead an Tools zu erhalten.

1.4.4  Ein vertrauenswürdiges Betriebssystem

In diesem Buch haben Sie bereits erfahren, dass Kali Linux eine Linux-Distribution ist, die auf Debian beruht. Einige mögen sich jetzt die Frage stellen, ob ein Open-Source-Betriebssystem ein vertrauenswürdiges Betriebssystem sein kann.

Zwei Gründe sprechen dafür, dass dem so ist. Zum einen kann jeder den Quellcode einsehen. Das komplette Betriebssystem ist transparent, da es den Debian Free Software Guidelines[12] unterliegt.

Zum anderen ist das Unternehmen, das hinter Kali Linux steht, ein international anerkannter Experte für Penetrationstests – Offensive Security‌[13]. Das Unternehmen bietet auch Kurse und Zertifizierungen für Penetration Testing an. Aus diesem Grunde liegt dem Herausgeber der Linux-Distribution sehr viel daran, dass Kali Linux ein vertrauenswürdiges Betriebssystem ist und bleibt.

1.4.5  Auf einer großen Anzahl von ARM-Geräten verwendbar

Es liegt wohl an der Faszination für ARM-Geräte von Offensive Security, dass es Kali Linux für eine große Anzahl an ARM-Geräten gibt. Es kann auch nützlich sein, dass Kali auf kleinen und tragbaren Geräten läuft. Die Skripte, die Offensive Security für das Erstellen dieser Images verwendet, sind auf Github zu finden.

Hinweis

Diese Images haben das Standard-Passwort »toor« und möglicherweise einen vorab generierten SSH-Hostkey. Es empfiehlt sich, beide abzuändern!

Beispiele von ARM-Geräten, für die es Images gibt:

Chromebooks von HP, Samsung und Acer

RaspberryPi

BananaPi

CompuLab – Utilitie & Trimslice

HardKernel – ODROID

SolidRun – CuBox

u.v.m.

1.5  Richtlinien von Kali Linu‌x

Grundsätzlich ist Kali Linux bestrebt, die Debian-Richtlinien‌‌ zu befolgen, jedoch gibt es einige Bereiche, für die aufgrund der Bedürfnisse von Sicherheitsexperten erheblich abweichende Designentscheidungen getroffen werden mussten.

1.5.1  Benutzer ohne root-Rechte

Die meisten Linux-Distributionen empfehlen die Verwendung eines nicht privilegierten Kontos während des Systembetriebs und eines Dienstprogramms wie sudo, wenn Administrationsrechte‌ notwendig sein sollten. Das ist ein zuverlässiger Sicherheitshinweis, der den Benutzer zusätzlich vor potenziell störenden oder zerstörerischen Befehlen oder Vorgängen des Betriebssystems schützt. Das ist vor allem bei Systemen mit mehreren Benutzern notwendig, bei denen eine Trennung der Benutzerrechte erforderlich ist. Ein Fehlverhalten eines Benutzers kann die Arbeit vieler Benutzer stören.

Da viele in Kali Linux enthaltene Tools nur mit Root-Rechten ausgeführt werden können, war das bis zur Version 2019.4 das Standard-Kali-Benutzerkonto. Mit der Umstellung auf die Xfce-Desktop-Oberfläche wurden auch die Rechte der Benutzer geändert. Der Benutzer hat grundsätzlich keine root-Rechte[14]. Benötigt der Anwender root-Rechte, kann er sie temporär erlangen, indem er vor dem eigentlichen Befehl sudo hinzufügt.

1.5.2  Netzwerkdienste sind standardmäßig deaktiviert

Bei Kali Linux sind im Gegensatz zu Debian alle installierten Dienste, die standardmäßig eine öffentliche Schnittstelle überwachen, wie z.B. http und SSH, deaktiviert.

Der Grund für diese Entscheidung war die Minimierung der Exposition während eines Penetrationstests, wenn es aufgrund unerwarteter Netzwerkinteraktionen schädlich ist, die Anwesenheit des Penetrationstesters und Risikoerkennung anzuzeigen.

Alle Dienste können Sie auf Wunsch manuell aktivieren, indem Sie systmctl enable Service ausführen. In Kapitel 4 »Erste Schritte mit Kali« wird darauf noch näher eingegangen.

1.5.3  Eine organisierte Sammlung von Tools

Debian soll ein universelles Betriebssystem sein und schränkt die Pakete nur sehr wenig ein, vorausgesetzt jedes Paket hat einen Maintainer.

Im Gegensatz dazu bietet Kali Linux nicht alle verfügbaren Tools für Penetrationstests an. Stattdessen wird Wert darauf gelegt, nur die besten frei lizenzierten Tools für die Aufgaben bereitzustellen, die ein Penetrationstester meist ausführen möchte.

Kali-Entwickler, die als Penetrationstester arbeiten, steuern den Auswahlprozess und nutzen ihre Erfahrung und ihr Know-how, um kluge Entscheidungen zu treffen. Anbei einige Punkte, die bei der Bewertung einer neuen Anwendung berücksichtigt werden:

Die Nützlichkeit der Anwendung im Kontext eines Penetrationstests

Die Einzigartigkeit der Funktionalität und der Features der Anwendung

Die Lizenz der Anwendung

Die Ressourcenanforderungen der Anwendungen

Die Pflege eines aktuellen und nützlichen Repositorys‌ für Penetrationstests ist eine herausfordernde Aufgabe. Deshalb begrüßt das Entwicklerteam von Kali Vorschläge für Tools in einer speziellen Kategorie (New Tool Request) im Kali Bug Tracker‌[15]. Eine neue Tool-Anfrage wird am ehesten entgegengenommen, wenn Sie die Einreichung gut präsentieren, einschließlich einer Erläuterung, warum das Tool nützlich ist, und wie es mit anderen ähnlichen Anwendungen verglichen wird usw.

1.6  Zusammenfassung

In diesem Kapitel wurde Kali Linux vorgestellt. Es wurde ein Einblick in die Geschichte gegeben, einige der wichtigsten Funktionen und Anwendungsfälle vorgestellt. Es sind auch einige der Richtlinien erläutert worden, die bei der Entwicklung von Kali Linux übernommen wurden.

Kali Linux ist eine Enterprise-fähige Security-Auditing-Linux-Distribution, die auf Debian GNU/Linux basiert. Kali richtet sich an Sicherheitsexperten und IT-Administratoren und befähigt sie, erweiterte Penetrationstests, forensische Analysen und Sicherheitsüberprüfungen durchzuführen.

Im Gegensatz zu den meisten gängigen Betriebssystemen handelt es sich bei Kali Linux um eine Rolling Distribution (fortlaufende Distribution), sodass man täglich Updates erhält.

Die Kali-Linux-Distribution basiert auf Debian Testing. Daher stammen die meisten in Kali Linux verfügbaren Pakete direkt aus dem Debian-Repository.

Während Kalis Fokus schnell mit »Penetrationstests und Sicherheitsüberprüfungen« zusammengefasst werden kann, gibt es auch weitere Anwendungsfälle, beispielsweise wenn Systemadministratoren ihre Aktivitäten, ihr Netzwerk, ihre forensische Analyse, die Installation eingebetteter Geräte, drahtlose Überwachungen, Installationen auf mobilen Plattformen und mehr überwachen möchten.

Die Menüs von Kali erleichtern den Zugriff auf Tools für verschiedene Aufgaben und Aktivitäten, darunter Schwachstellenanalyse, Webanwendungsanalyse, Datenbankbewertungen, Kennwortangriffe, drahtlose Angriffe, Reverse Engineering, Exploitationtools, Sniffing und Spoofing sowie Tools für die Nachnutzung wie Forensik, Reporting-Tools, Social-Engineering-Tools und Systemdienste.

Kali Linux verfügt über viele erweiterte Funktionen, darunter Verwendung als Live-System (keine Installation notwendig), robuster und sicherer Forensikmodus, angepasster Linux-Kernel und die Möglichkeit zur vollständigen Anpassung des Systems, vertrauenswürdiges und sicheres Basisbetriebssystem, ARM-Installationsfunktionen, sichere Standardnetzwerkrichtlinien und eine Sammlung von Anwendungen.

[1] SysVinit ist das init-System von Unix-Betriebssystemen, das in einigen Linux-Distributionen als Standard-Init-System verwendet wird. Der Prozess wird als Erstes vom Kernel gestartet und hat deshalb die ID 1. Der erste Prozess startet alle benötigten System-Dienste.

[2] zsh (Z shell) ist eine Unix-Shell, die sowohl als interaktive Login-Shell als auch Kommandozeileninterpreter für Shellskripte verwendet werden kann. Die Z shell wird neben Kali Linux seit MacOS Catalina derzeit auch von Apple verwendet.

[3] Offensive Security ist ein Unternehmen, das Schulungen und Trainings rund um Penetration Testing anbietet.

[4] https://aws.amazon.com/marketplace/pp/B01M26MMTT

[5] https://www.digitalocean.com

[6] https://www.linode.com/marketplace/apps/kali-linux/kali-linux

[7] https://azuremarketplace.microsoft.com/en/marketplace/apps/kali-linux.kali

[8] https://docs.kali.org

[9] http://www.pathname.com/fhs/

[10] SWAP-File ist die Auslagerungsdatei, bei der SWAP-Partition handelt es sich um die Partition, die auf einem Speichermedium genutzt wird, um Prozessen mehr Speicher zur Verfügung zu stellen, als der eigentliche physische Arbeitsspeicher besitzt.

[11] https://live-team.pages.debian.net/live-manual/html/live-manual/customization-overview.en.html

[12] https://www.debian.org/social_contract#guidelines

[13] https://www.offensive-security.com/

[14] root-Rechte heißt, Administrations-Rechte zu haben.

[15] https://bugs.kali.org/

Kapitel 2: Linux-Grundlagen

Um einen fundierten Einstieg ohne Vorkenntnisse zu ermöglichen, starten wir in diesem Buch ganz am Anfang. Sollten Sie bereits Erfahrungen mit Linux haben, können Sie dieses Kapitel getrost überspringen. Es ist jedoch denjenigen, die über Linux-Erfahrung verfügen, zu empfehlen, zumindest die Installation und Konfiguration von Kali Linux in Kapitel 3 zu überfliegen, da sich Kali hier von so mancher Distribution etwas unterscheidet.

2.1  Was ist Linux und wie funktioniert es?

Neben den bekannteren Betriebssystemen wie Windows oder Mac OS gibt es auch noch Linux‌. Wie jedes Betriebssystem enthält auch eine Linux-Installation eine ganze Reihe von Tools, wie z.B. Internet Browser, Taschenrechner, Texteditor u.v.m. Bei Windows und Mac OS ist die Zusammenstellung dieser Tools standardisiert – sie kann sich zwar je nach Version ändern, aber in jedem Windows 7 Professional sind immer die gleichen Tools enthalten. Das liegt daran, dass Windows nur von Microsoft herausgegeben wird. Gleiches gilt für Mac OS von Apple.

Bei Linux handelt es sich jedoch um eine freie Software, das heißt, jeder kann sich den Kern von Linux herunterladen und seine eigene Distribution‌ erstellen. Eine Distribution ist eine Software-Zusammenstellung. Aktuell gibt es mehrere Hundert Linux-Distributionen, die von genauso vielen Anbietern zur Verfügung gestellt werden. Dazu gehören firmeneigene Distributionen, die für den Eigenbedarf erstellt wurden, aber auch Hobby-Projekte von Enthusiasten sowie professionelle Distributionen mit teilweise kostenpflichtigem Support.

Man kann Distributionen nach dem jeweiligen Einsatzgebiet einteilen. Es gibt hier Distributionen, die darauf ausgelegt sind, als Firewall zu laufen, andere sollen ein möglichst stabiles Arbeitsumfeld mit langfristigem Support liefern, wieder andere stellen die neuesten Programme zur Verfügung und sind für Entwickler zum Testen ihrer Software interessant, diese laufen nicht so stabil. Kali Linux – die Distribution, um die es in dem Buch eigentlich geht – ist eine Distribution, die mit einer enormen Sammlung an Tools für Sicherheitstest, Datenforensik usw. ausgeliefert wird.

Kali Linux ist also ein System, das mit allem geliefert wird, was man benötigt, um in Computersysteme einzudringen. Das ist ideal zum Testen der eigenen Sicherheit, da man damit ein perfektes System zum Hacken hat.

Linux ist eine Open-Source-Software‌, das heißt, jeder kann den Quelltext einsehen, aus dem Linux besteht. Der Quelltext ist eine Ansammlung von Befehlen, die dann in ein ausführbares Programm übersetzt werden. Das ermöglicht es jedem, den es interessiert, zu sehen, wie Linux programmiert wird. So können Sicherheitslücken schnell gefunden, bekannt gemacht und wieder geschlossen werden. Linux folgt dem Grundsatz: Alles ist eine Datei. So werden Programmkonfigurationen‌ gut leserlich in einer Textdatei verwaltet und in der Regel getrennt vom Programm gespeichert. Damit ist es möglich, Programmeinstellungen sehr einfach zu sichern und auf einen anderen Computer zu übertragen.

Da es sich bei Linux um Open-Source‌ handelt, kann man es völlig legal und kostenlos aus dem Internet herunterladen, verwenden und auch weitergeben. Man hat bei Linux sogar die Wahl, welche grafische Oberfläche man verwenden möchte. Bei Kali Linux hat man die Auswahl zwischen mehreren Oberflächen, z.B.

KDE‌

GNOME3‌

Enlightment‌

LXDE‌

XFCE‌

Die beiden ersten sind deutlich ressourcenhungriger. Enlightment, LXDE und XFCE können auch auf bescheidener Hardware eingesetzt werden. Die Vorteile und was die einzelnen grafischen Oberflächen ausmacht, würde den Umfang dieses Buchs sprengen. Laden Sie einfach das ISO-Image‌ herunter und testen Sie selbst. Bei Kali Linux handelt es sich um eine sogenannte Live-CD‌, die man auch ohne Installation sofort von der DVD oder dem USB-Stick starten und testen kann.

Windows-Rechner sind weitverbreitet und deshalb schon einmal ein beliebtes Ziel für Angriffe. Man kann auch davon ausgehen, dass viele Systeme unsicher konfiguriert sind, weil häufig mit der voreingestellten Konfiguration und zusätzlich auch mit den Administrationsrechten gearbeitet wird.

Linux ist deshalb standardmäßig schon mal sicherer, da es den Benutzer zwingt, eine sichere Konfiguration zu verwenden, und man auch in der Regel standardmäßig nicht mit Administrationsrechten arbeitet. Dadurch, dass Linux, obwohl es kostenlos erhältlich ist, nicht so verbreitet ist wie Windows, ist außerdem die Zahl der Viren, Würmer, Spyware und Trojaner geringer.

Da es bei Linux auch von der Distribution und der grafischen Oberfläche abhängt, welche Tools installiert sind, wird es schwieriger, gezielte Angriffe auf Exploits zu starten. Bei Windows dagegen kann man davon ausgehen, dass, wenn eine Schwachstelle in Windows-Explorer entdeckt wird, diese auf allen Windows-Systemen ausgenutzt werden kann.

Es ist zwar aufgrund der Einschränkungen und der geringeren Verbreitung weniger effektiv, Schadsoftware für Linux zu entwickeln, aber es ist grob fahrlässig zu behaupten, dass es für Linux keine Viren, Spyware & Co. gibt. Es gibt nur deutlich weniger und in der Regel richten sie deutlich weniger Schaden an, da es ihnen in den meisten Fällen an den notwendigen Rechten fehlt. Aber man darf nicht vergessen, dass man dennoch nicht vollkommen sicher ist.

Als Windows-Anwender kennen Sie sicher Systemabstürze und Bluescreens. Bei Linux – abhängig von der verwendeten Distribution – kommen sie deutlich weniger oft vor, aber ausschließen kann man diese nie gänzlich. Setzt man die neuesten Programmversionen ein, wie z.B. Fedora-Linux‌, hat man häufig noch mit solchen Kinderkrankheiten zu kämpfen. Verwendet man jedoch Distributionen wie CentOS‌ oder Debian‌, die vor allem auf Stabilität Wert legen, muss man sich mit einer geringeren Auswahl an Software in den Repositories begnügen, aber man kann sich dafür darauf verlassen, dass diese ausführlich getestet wurden und sehr stabil laufen.

Die Auflistung von Vor- und Nachteilen ist in der Regel sehr subjektiv und es sollte jeder für sich selbst entscheiden, was ihm besser gefällt.

Der Begriff »Linux« wird häufig verwendet, um sich auf das gesamte Betriebssystem zu beziehen, aber Linux ist der Begriff des Betriebssystem-Kernels‌, der vom Bootloader‌ gestartet wird, und der wiederum wird vom BIOS‌/UEFI‌ gestartet. Den Kern kann man mit einem Dirigenten in einem Orchester vergleichen – er sorgt für die Koordination zwischen Hard- und Software. Diese Rolle umfasst die Verwaltung von Hardware, Prozessen, Benutzern, Berechtigungen und das Dateisystem. Der Kernel bietet eine gemeinsame Basis für alle anderen Programme und läuft im sogenannten Kernel Space[1].

2.1.1  Hardwaresteuerung

Der Kernel‌ steuert in erster Linie die Hardwarekomponenten des Computers. Er erkennt und konfiguriert diese, wenn der Computer eingeschaltet wird oder ein Gerät (z.B. USB-Stick) hinzugefügt oder entfernt wird. Er bietet auch für übergeordnete Software eine vereinfachte API an, sodass Anwendungen Geräte nutzen können, ohne zu wissen, auf welchem Steckplatz das Gerät angeschlossen ist. Die Schnittstelle‌ stellt auch eine Abstraktionsschicht‌ bereit. Das ermöglicht zum Beispiel einer Videokonferenzsoftware das Verwenden einer Webcam unabhängig von Hersteller und Modell. Die Software kann die Video-für-Linux(V4L)-Schnittstelle verwenden und der Kernel übersetzt Funktionsaufrufe der Schnittstelle in tatsächliche Hardware-Befehle, die von der jeweiligen Webcam benötigt werden.

Der Kernel exportiert Daten über erkannte Hardware über die virtuellen Dateisysteme‌/proc/ und /sys/. Anwendungen greifen häufig auf Geräte über Dateien zu, die in /dev/ erstellt wurden.

Bestimmte Dateien sind Laufwerke (beispielsweise /dev/sda), Partitionen (dev/sda1), Mäuse (/dev/input/mouse0), Tastaturen (/dev/input/event0), Soundkarten (/dev/snd/*), serielle Anschlüsse (/dev/ttyS*) und andere Komponenten.

Es gibt zwei Arten von Gerätedateien: Block und Zeichen. Erstere haben Merkmale eines Blocks von Daten: Sie haben eine begrenzte Größe und Sie können an jeder Stelle eines Blocks auf Bytes zugreifen. Letztere benehmen sich wie ein Fluss von Zeichen. Sie können Zeichen lesen und schreiben, aber man kann nicht nach einer bestimmten Position suchen und beliebige Bytes ändern. Um den Typ einer bestimmten Gerätedatei herauszufinden, überprüft man den ersten Buchstaben in der Ausgabe von ls-l. Entweder b für Blockgeräte oder c für Zeichengeräte.

Abb. 2.1: Übersicht der Geräte (Maus und Festplatte), Block oder Zeichengerät

Wie erwartet, verwenden Plattenlaufwerke und Partitionen Blockgeräte, während Maus, Tastatur und serielle Ports Zeichengeräte verwenden. In beiden Fällen enthält die API spezifische Gerätebefehle, die über den Ioctl-Systemaufruf aufgerufen werden können.

2.1.2  Vereinheitlichtes Dateisystem

Dateisysteme sind ein wichtiger Aspekt des Kernels. Unix‌-ähnliche Systeme fassen alle Datenspeicher in einem zusammen. Es gibt also eine einzige Hierarchie, die Benutzer und Anwendungen den Zugriff auf Daten ermöglicht, wenn sie ihren Pfad in dieser Hierarchie kennen.

Der Startpunkt dieses hierarchischen Baums wird als Wurzel (root) bezeichnet und durch das Zeichen »/« dargestellt. Dieses Verzeichnis kann benannte Unterverzeichnisse enthalten. Zum Beispiel wird das Home-Verzeichnis von / aufgerufen: /home/. Dieses Unterverzeichnis kann wiederum andere Unterverzeichnisse enthalten usw.

Jedes Verzeichnis‌ kann auch Dateien enthalten, in denen die Daten gespeichert werden. So bezieht sich /home/user/Desktop/hello.txt auf eine Datei namens hello.txt, die im Unterverzeichnis Desktop des User-Unterverzeichnisses des Home-Verzeichnisses gespeichert ist, das im Root-Verzeichnis vorhanden ist. Der Kernel übersetzt zwischen diesem Benennungssystem und dem Speicherort auf einer Festplatte.

Im Gegensatz zu anderen Betriebssystemen verfügt Linux nur über eine solche Hierarchie und kann Daten von mehreren Festplatten dort integrieren. Eine dieser Festplatten wird zum Root‌-Verzeichnis, und die anderen werden in Verzeichnisse in die Hierarchie gemountet (der Linux-Befehl heißt mount‌). Diese anderen Festplatten sind dann unter den Mountpunkten verfügbar. Dies ermöglicht das Speichern des Home-Verzeichnisses der Benutzer (gewöhnlich in /home/), das das User-Verzeichnis enthält (zusammen mit den Basisverzeichnissen von anderen Benutzern). Wenn man eine Festplatte in /home/ anhängt, sind diese Verzeichnisse an ihrem üblichen Speicherort verfügbar und Pfade wie /home/user/Desktop/hello.txt funktionieren weiterhin.

Es gibt viele Dateisystemformate‌, die vielen Arten der physischen Speicherung von Daten auf Disks entsprechen. Die bekanntesten sind ext3, ext3 und ext4, andere gibt es auch noch. Zum Beispiel ist VFAT‌ das Dateisystem, das früher von DOS- und Windows-Betriebssystemen verwendet wurde. Die Unterstützung von Linux für VFAT‌ ermöglicht den Zugriff auf Festplatten sowohl unter Kali als auch unter Windows. In jedem Fall ist die Einrichtung eines Dateisystems auf einer Festplatte notwendig, bevor man diese einhängen kann. Der Vorgang wird als »Formatierung« bezeichnet.

Befehle wie mkfs.ext3 – wobei mkfs für MaKe FileSystem steht – behandeln die Formatierung. Diese Befehle erfordern als Parameter eine Gerätedatei, die die zu formatierende Partition darstellt – beispielsweise /dev/sda1 für die erste Partition auf dem ersten Laufwerk. Der Vorgang ist destruktiv und sollte nur einmal ausgeführt werden, es sei denn, Sie möchten ein Dateisystem‌ löschen und neu starten.

Es gibt auch Netzwerkdateisysteme‌ wie NFS‌, die keine Daten auf einer lokalen Festplatte speichern. Stattdessen werden Daten über das Netzwerk an einen Server übertragen, der diese speichert und bei Bedarf abruft. Dank der Abstraktion des Dateisystems muss man sich keine Gedanken machen, wie diese Festplatte angeschlossen ist, da die Dateien auf ihre gewohnte hierarchische Weise zugänglich bleiben.

2.1.3  Prozesse verwalten

Ein Prozess‌ ist eine laufende Instanz eines Programms, für das Speicherplatz zum Speichern des Programms selbst und seiner Betriebsdaten zur Verfügung gestellt wird. Der Kernel ist für das Erstellen und Verfolgen von Prozessen verantwortlich. Wenn ein Programm ausgeführt wird, stellt der Kernel zunächst etwas Speicherplatz zur Verfügung, lädt den ausführbaren Code aus dem Dateisystem und startet den Code. Der Kernel speichert Informationen über diesen Prozess, von denen die auffälligste eine Identifikationsnummer ist, die als Prozesskennung (PID) bezeichnet wird.

Wie die meisten modernen Betriebssysteme sind auch Betriebssysteme mit Unix-ähnlichen Kerneln, einschließlich Linux, Multitasking-fähig. Anders ausgedrückt: Sie erlauben dem System, viele Prozesse gleichzeitig auszuführen. Es gibt eigentlich immer nur einen laufenden Prozess, aber der Kernel teilt die CPU-Zeit in kleine Scheiben auf und führt jeden Prozess der Reihe nach durch. Da diese Zeitscheiben sehr kurz sind (im Millisekundenbereich), erzeugen sie das Erscheinungsbild von parallel laufenden Prozessen, obwohl sie nur während ihres Zeitintervalls aktiv und die restliche Zeit im Leerlauf sind. Die Aufgabe des Kernels ist es, seine Zeitplanungsmechanismen so anzupassen, dass dieses Erscheinungsbild erhalten bleibt, während die globale Systemleistung maximiert wird. Wenn die Scheiben zu lang sind, erscheint die Anwendung möglicherweise nicht wie gewünscht. Sind sie zu kurz, verliert das System Zeit, da die Aufgaben zu häufig gewechselt werden. Diese Entscheidungen können mit den Prozessprioritäten‌ verfeinert werden, wobei Prozesse mit hoher Priorität über längere Zeiträume und häufiger ausgeführt werden als Prozesse mit niedriger Priorität.

Hinweis

Die oben beschriebene Einschränkung, dass jeweils nur ein Prozess ausgeführt wird, gilt nicht immer: Die wirkliche Einschränkung besteht darin, dass nur ein Prozess pro Prozessorkern ausgeführt werden kann. Multiprozessor-, Multi-Core- oder Hyperthreading-Systeme erlauben, dass mehrere Prozesse parallel laufen. Das gleiche Time-Slicing-System wird jedoch verwendet, um Fälle zu behandeln, in denen mehr aktive Prozesse vorhanden sind als verfügbare Prozessorkerne. Das ist nicht ungewöhnlich: Ein Basissystem, selbst ein größtenteils untätiges, hat fast immer Dutzende laufende Prozesse.

Der Kernel ermöglicht die Ausführung mehrerer unabhängiger Instanzen desselben Programms. Jeder dieser Instanzen ist es jedoch nur erlaubt, auf seine eigenen Zeitscheiben und Speicher zuzugreifen. Ihre Daten bleiben somit unabhängig.

2.1.4  Rechtemanagement

Unix-ähnliche Systeme unterstützen mehrere Benutzer und Gruppen und ermöglichen die Steuerung von Berechtigungen. In der Regel wird ein Prozess über den Benutzer identifiziert, der ihn gestartet hat. Dieser Prozess darf nur Aktionen ausführen, die seinem Besitzer erlaubt sind. Wenn Sie beispielsweise eine Datei öffnen, muss der Kernel die Prozessidentität anhand der Zugriffsberechtigungen prüfen – weitere Informationen hierzu finden Sie in Abschnitt 2.4.4.

2.2  Die Kommandozeile (Command Line)

Mit »Befehlszeile« (Kommandozeil‌‌e) wird eine textbasierte Schnittstelle bezeichnet, über die Befehle eingegeben, ausgeführt und Ergebnisse angezeigt werden. Sie können ein Terminal (einen Textbildschirm innerhalb der grafischen Oberfläche oder außerhalb einer grafischen Benutzeroberfläche die Textkonsole selbst) und einen Befehlsinterpreter (die Shell) darin ausführen.

2.2.1  Wie komme ich zur Kommandozeile?

Wenn das System ordnungsgemäß funktioniert, können Sie auf die Befehlszeile am einfachsten zugreifen, indem Sie ein Terminal in der grafischen Desktop-Sitzung‌ ausführen.

Auf einem Standard-Kali-Linux-System können Sie das Terminal‌ aus der Favoritenleiste starten. Sie können das Terminal auch über Anwendungen (in der linken oberen Ecke) starten.

Abb. 2.2: Terminal aufrufen

Für den Fall, dass die grafische Benutzeroberfläche beschädigt ist, können Sie immer noch eine Befehlszeile auf virtuellen Konsolen‌‌ erhalten (bis zu sechs davon sind über die sechs Tastenkombinationen Strg+Alt+F1 bis Strg+Alt+F6 aufrufbar, die Strg-Taste kann weggelassen werden, wenn Sie sich bereits im Textmodus außerhalb der grafischen Benutzeroberfläche von Xorg[2] oder Wayland[3] befinden). Sie erhalten daraufhin einen sehr einfachen Anmeldebildschirm, in dem Sie Ihr Login und Kennwort eingeben, bevor Sie Zugriff auf die Befehlszeile mit der Shell erhalten.

Kapitel 3: Installation von Kali

In diesem Kapitel konzentrieren wir uns auf den Installationsprozess. Ich beschreibe die Mindestanforderungen für die Installation, damit Ihr reales oder virtuelles System für die Art der Installation, die Sie ausführen, optimal konfiguriert ist. Anschließend werden wir in Abschnitt 3.2 eine einfache Installation sowie eine Installation mit einem verschlüsselten Dateisystem durchführen. Ich zeige Ihnen auch, wie Sie Kali Linux als ein zweites Betriebssystem neben Windows verwenden können sowie als Subsystem unter Windows. Darüber hinaus erfahren Sie, wie Sie die Installation von Kali auf einem Raspberry Pi durchführen. Zum Abschluss zeige ich Ihnen, wie Sie im seltenen Fall eines Installationsfehlers vorgehen können, um das Problem zu lösen und eine schwierige Installation erfolgreich abzuschließen.

3.1  Systemanforderungen

Die Installation von Kali Linux auf Ihrem Computer ist ein einfacher Vorgang. Dazu benötigen Sie als Erstes eine kompatible Hardware. Kali wird von i386-‌, amd64-‌ und ARM-Plattforme‌n – auch Arme‌l- und Armhf-Plattfor‌men – unterstützt. Die unten angeführten Hardwareanforderungen sind die minimalen Anforderungen – mit einer besseren Hardware erhält man natürlich bessere Leistungen. Die i386-Images verfügen über einen Standard-PAE-Kernel, sodass sie auf Systemen mit mehr als 4 GB ausgeführt werden können. Laden Sie das Kali Linux herunter und brennen Sie das ISO entweder auf eine DVD oder bereiten Sie einen USB-Stick mit Kali Linux Live als Installationsmedium vor.

Installationsvoraussetzungen

Mindestens 20 GB Festplattenspeicher

RAM für i386- und amd64-Architekturen

Minimum: 1 GB RAM

Empfohlen: 2 GB RAM oder mehr

Unterstützung für CD/DVD-Laufwerke bzw. USB-Boot-Unterstützung

Bootfähiges Installationsmedium (CD/DVD oder USB-Stick)

3.2  Erstellen eines bootfähigen Mediums

3.2.1  Herunterladen des ISO-Images‌

Die Kali-Linux-ISO-Images finden Sie auf der Kali-Homepage unter Downloads[1]. Da Kali sehr beliebt ist, kann man auch auf zahlreichen anderen Webseiten Kali-Images zum Download finden, aber bei diesen Quellen sollten Sie vorsichtig sein, denn es ist immer fraglich, wie vertrauenswürdig diese sind. Möglicherweise sind sie mit Malware infiziert oder richten auf eine andere Weise Schaden auf Ihrem System – oder noch schlimmer bei Ihren Kunden – an.

Abb. 3.1: Zum Download angebotene ISO-Images

Ich empfehle Ihnen, das ISO-Image ausschließlich von der offiziellen Quelle, also der Kali-Webseite, herunterzuladen. Die offizielle Download-Seite enthält eine Auflistung der verfügbaren ISO-Images‌, wie in

Kapitel 4: Erste Schritte mit Kali

Egal, ob Kali Linux auf einem Computer, einer virtuellen Maschine oder einer Live-CD (bzw. einem USB-Stick) ausgeführt wird, es wird der Login-Bildschirm angezeigt, nachdem das System geladen ist. Der Standard-Benutzer[1] für ältere Versionen von Kali lautet root und das Standardpasswort toor – leicht zu merken, denn es ist einfach root rückwärts geschrieben. Diese Kombination von Standard-Benutzer und -Passwort wurde auch bereits bei BackTrack, der Vorgängerversion von Kali, benutzt. Diese Kombination von Standard-Benutzer und -Passwort wurde auch bereits bei BackTrack, der Vorgängerversion von Kali, benutzt und man kann annehmen, dass es auch in den kommenden Versionen so bleiben wird. Mit dem Release 2020.1 wurde der Standard-Benutzer auf kali geändert. Das Passwort ist ebenfalls kali.

Nach der Anmeldung wird automatisch die grafische Benutzeroberfläche – bei der Standard-Installation Xfce[2] – geladen. In diesem Buch werde ich vor allem Programme beschreiben, die vom Terminal ausgeführt werden. Für einige dieser Tools gibt es auch eine grafische Oberfläche. Nmap ist beispielsweise ein Tool, das wir in diesem Buch noch genauer betrachten werden, dazu gibt es auch eine grafische Oberfläche: Zenmap.

Das Terminal ist ein wichtiges Werkzeug für das Penetration Testing. Deshalb wird es in Zukunft die Arbeit erleichtern, wenn Sie es mit der Tastenkombination Strg+Alt+T