Offensive Security: Penetrations Testing Bootcamp

Von Philippe Regenass

22 Februar

In meinem zweiten Artikel der Serie «Cyber Security» möchte ich einen vertieften Einblick in den Bootcamp-Kurs geben, den ich im Herbst 2022 innerhalb von zwei Wochen abgeschlossen habe. Der Kurs dauerte von Montag bis Samstag jeweils zwei Stunden und fand vollständig online statt und beschäftigte sich intensiv mit dem Thema Penetrations-Tests. Durchgeführt wurde er vom Swiss Cyber Institute open_in_new.

Disclaimer: 
Dieser Artikel ist nur für Bildungszwecke gedacht. Alle vorgestellten Tools dürfen nicht gegen fremde Infrastruktur / Server / Webseiten eingesetzt werden.
Zu Lernzwecken wird am besten ein kostenloser Account bei tryhackme erstellt.

Tag 1: Was sind Penetrations-Tests?

Ein Penetrations-Test oder eine Ethical-Hacking-Übung ist ein Test, bei dem die Stärken und Schwächen aller Sicherheitskontrollen (administrative, technische, physische und personelle) im System des Unternehmens bewertet werden.

Für ein besseres Verständnis, hier ein typisches Angriffsmuster (Cyber Kill Chain) eines «Hackers»:

Image Source: https://www.ondeso.com/beitrag/cyber-kill-chain/

 

Wer braucht Penetrations-Tests?

  • Banken/Finanzinstitute, Regierungsorganisationen, E-Commerce oder jede Organisation, die private Daten in gespeichertem oder übertragenem Zustand verarbeitet.
  • Die meisten Zertifizierungen und alle Vorschriften verlangen, dass Penetrations-Tests regelmässig (z.B. einmal pro Jahr) durchgeführt werden, um die Sicherheit des Systems zu gewährleisten.

Brauchen wir als NGO oder KMU auch Penetrations-Tests?
Ja, jeder ist von Cyber-Angriffen betroffen. Deshalb ist es sinnvoll, die Cybersicherheit zu stärken und Vorkehrungen zu treffen, um Risiken zu minimieren. Die Folgen eines Angriffs können verheerend sein: Die Produktion steht still, der Online-Shop ist für längere Zeit nicht erreichbar, Firmen- und Kundendaten landen im Darknet und führen zu einem Reputationsschaden. Im schlimmsten Fall kann ein Unternehmen durch einen Cyber-Angriff sogar in die Insolvenz getrieben werden.

 

Gesichtspunkte der Penetrations-Testung

Angriff von Extern vs. Intern: Auch bekannt als Black Box oder White Box. Penetrations-Tests können aus dem Blickwinkel eines externen Angreifers oder eines böswilligen Mitarbeiters durchgeführt werden. Sie können auch eine Mischung verwenden, eine sogenannte graue Box.

Penetrations-Tests können mit oder ohne Wissen der IT-Abteilung durchgeführt werden. In jedem Fall muss der CEO/CIO einen entsprechenden schriftlichen Auftrag (Get-Out-of-Jail Letter) unterzeichnen, der den Penetration Tester zur Durchführung eines Tests berechtigt. Dabei wird auch der Scope definiert, d.h. was getestet werden soll und welche Systeme ausgeschlossen werden. 

 

Phasen der Penetrations-Tests

  • Erkundung und Informationsbeschaffung
  • Scannen der Systeme
  • Schwachstelle ausnützen
  • Privilegienerweiterung (Root / Administrator Rechte erlangen)
  • Systeme bereinigen von Scripten / Prozessen welche durch den Penetrations-Test entstanden sind. 
  • Berichterstattung an den Auftraggeber

Tag 2: Erstellen eines eigenen Pentesting-Labors

Kali Linux (früher bekannt als BackTrack Linux) ist eine auf Debian basierende Open-Source-Linux-Distribution für fortgeschrittene Penetrations-Tests und Sicherheitsaudits. Kali Linux enthält mehrere hundert Tools, die auf verschiedene Aufgaben der Informationssicherheit ausgerichtet sind, wie Penetrations-Tests, Sicherheitsforschung, Computerforensik und Reverse Engineering. Kali Linux ist eine plattformübergreifende Lösung, die für Informationssicherheitsexperten und Hobbyisten frei zugänglich ist. Siehe dazu auch unseren ersten Blogbeitrag zu diesem Thema.

Installiert wird das Betriebssystem vorzugsweise in einer VM (Virtual Machine). Den kostenlosen Download findet man unter kali.org open_in_new. Es stehen verschiedene Varianten zum Download zur Verfügung:

  • VM Dateien «Ready to use»
  • ISO Datei zur manuellen Installation
  • Container, welche in der Cloud betrieben werden können (zum Beispiel AWS)
  • USB Live Boot System
  • Kali Nethunter für (ausgewählte) Android-Geräte
  • WSL (Windows Subsystem für Linux)

Für Intel-basierte Computer (Windows & macOS) kann die kostenlose Virtual Box Software open_in_new verwendet werden.

Für Apple M1 / M2 Chip basierte Computer kann die kostenlose UTM oder das kommerzielle Parallels Desktop verwendet werden.

Eine Schritt-für-Schritt Videoanleitung zur Installation von Kali Linux kann hier gefunden werden: https://www.youtube.com/watch?v=WYdPKAxecZU open_in_new

Tag 3: Informationsbeschaffung

Technisch
Schnelles Scannen von Websites und Servern. Sicherheitssysteme, die solche Scans erkennen, sollten in diesem Fall einen Alarm auslösen. 
Wird nach einem solchen Scan kein Alarm ausgelöst, muss das Sicherheitssystem verbessert werden.

Physisch
Je nach Umfang des Penetrations-Tests kann die aktive Informationsbeschaffung auch Social Engineering beinhalten. Dabei wird versucht, Informationen durch Gespräche mit Mitarbeitenden vor Ort (z.B. in der Kantine oder im Raucherbereich) zu erhalten. Auch E-Mails oder Telefonanrufe sind denkbar.
Denkbar ist auch die Verteilung von USB-Sticks, die einen Trojaner enthalten. Diese werden auf dem Betriebsgelände verteilt. Um den Stick interessant zu machen, kann der USB-Stick mit «Gehaltsabrechnung» oder ähnlichem beschriftet werden. Sobald ein Mitarbeiter diesen Stick benutzt, kann sich der Angreifer Zugang zum Firmennetzwerk verschaffen.

Varianten von USB-Sticks:

  • Handelsüblicher USB-Stick mit infiziertem Dokument
  • USB Rubber Ducky: Sieht aus wie ein USB-Stick, fungiert aber als Tastatur und erlaubt das Schreiben und Ausführen von vom Angreifer definiertem Code.

 

Semi-passive Information Gathering

Technisch
Langsames und unauffälliges Scannen von Webseiten und Servern. Ziel ist es, von Sicherheitssystemen nicht erkannt zu werden bzw. keinen Alarm auszulösen. Der durch den Scan erzeugte Internetverkehr soll ein normales Benutzerverhalten imitieren.

Physisch
Beobachtung des Personals, Beobachtung der Betriebsabläufe zur Aufdeckung von Schwachstellen. Der Beobachter darf nicht auffallen.

 

Passives Sammeln von Informationen

Diese Option ist denkbar, wenn ausdrücklich verlangt wird, dass die Sammeltätigkeit von der Zielperson nicht entdeckt werden darf.

Technisch
Keine automatisierten Tools. Manuelle Analyse von Websites und Systemen. Dies kann z.B. die Analyse des HTML-Codes einer Webanwendung beinhalten. Ebenso können Informationen über Apps, APIs oder Webseiten gewonnen werden, indem ein Proxyserver zwischengeschaltet wird, um den Netzwerkverkehr zu analysieren. 

Informationsbeschaffung durch frei verfügbare Informationen im Internet (OSINT open_in_new): Facebook, Google, LinkedIn, Instagram, Twitter etc.

Tag 4: Pentesting Tools

Wir haben einige Einblicke in andere Tools bekommen, die in Kali Linux enthalten sind. Unter anderem:

Tag 5: Eigene Exploits erstellen

Unser Tutor zeigt, wie man einen eigenen Portscanner in Python programmiert. 

Neben der Fähigkeit, eigene Skripte zu erstellen, muss man auch in der Lage sein, bestehende Skripte/Exploits so anzupassen bzw. zu konfigurieren, dass man sie für seine Zwecke nutzen kann. Eine der bekanntesten Webseiten mit Scripts zum Ausnutzen bekannter Sicherheitslücken wird von Google betrieben und ist hier zu finden: https://www.exploit-db.com open_in_new

Tag 6: Metasploit Framework

Das Metasploit Framework ist eine Open Source Penetration-Testing-Software, die es Sicherheitsforschern und Hackern ermöglicht, Schwachstellen in Computersystemen zu finden und auszunutzen. Es enthält eine umfangreiche Sammlung von Exploits, Werkzeugen und Techniken, die es ermöglichen, Zugriff auf Ziele zu erlangen. Mit Metasploit können Angreifer auch Schadsoftware auf Ziele verteilen und die Kontrolle über kompromittierte Systeme übernehmen. Es ist ein sehr populäres Werkzeug unter Sicherheitsexperten und wird oft in Penetrations-Tests und Sicherheitsbewertungen verwendet.

Tag 7 & 8: Pentesting von Webanwendungen

Image Source: https://owasp.org/Top10/

OWASP Top 10 open_in_new ist eine Liste der zehn wichtigsten Sicherheitsrisiken für Webanwendungen, die von der Open Web Application Security Project (OWASP) veröffentlicht wird. Diese Liste soll Entwickler und Sicherheitsexperten dabei unterstützen, die häufigsten Angriffe auf Webanwendungen zu erkennen und zu verhindern. Die Risiken werden regelmässig aktualisiert, um die neuesten Bedrohungen abzudecken.

OWASP Juice Shop open_in_new ist ein von OWASP entwickeltes, realistisches und kostenfreies Übungs- und Trainingsprojekt für Web-Applikationssicherheit. Es simuliert typische Schwachstellen und Angriffe, die in webbasierten Anwendungen vorkommen können und ermöglicht es Sicherheitsteams, ihre Fähigkeiten in Bezug auf die Erkennung und Verteidigung gegen diese Angriffe zu verbessern.

Unser Trainer hat uns Techniken und Tools vorgestellt, um Sicherheitslücken und Probleme im OWASP Juice Shop zu finden. Einige Tools als Beispiel: ZAP Proxy open_in_new, Burp Suite open_in_new, sqlmap open_in_new, dirb open_in_new

Tag 9: Buffer Overflow

Ein Befehl an ein Programm, das die Grösse des Befehls nicht begrenzt, kann dazu führen, dass der Speicher überläuft (Buffer Overflow) und ein Angreifer sein eigenes Programm, das er für diesen Buffer Overflow erstellt hat, auf dem angegriffenen System ausführen kann. Anhand von vulnserver.exe open_in_new wurde eine Einführung gegeben, wie eine Software auf ihre Anfälligkeit für einen Buffer Overflow getestet werden kann. Dieser wurde dann mit einem Programm ausgeführt, das eine Reverse Shell öffnet (um Fernzugriff auf den Server zu erhalten).

Tag 10 & 11: Privilege Escalation

Image Source: https://blog.convisoappsec.com

Privilegienerweiterung ist die Ausnutzung eines Fehlers, Bugs, einer Sicherheitslücke oder eines Konfigurationsfehlers in einem Betriebssystem oder einer Anwendungssoftware, um erweiterten Zugriff auf Ressourcen zu erhalten, die normalerweise vor einer Anwendung oder einem Benutzer geschützt sind. Dadurch kann sich ein Angreifer Zugang zu vertraulichen Informationen verschaffen, unbefugte Änderungen am System vornehmen oder andere bösartige Aktionen durchführen.

Wir lernten verschiedene Tools und Techniken kennen, um Privilege Escalation auf Windows und Linux zu erreichen. Dies ist vor allem dann sehr nützlich, wenn über eine Sicherheitslücke in einer Webanwendung auf den Server zugegriffen werden kann. Diese Zugriffe erfolgen jedoch meist mit einem Service-Benutzer, mit dem nur auf eine begrenzte Anzahl von Dateien zugegriffen werden kann. Hier kommt die Privilege Escalation ins Spiel.

Meine favorisierten Tools sind:
Windows: WinPEAS open_in_new
Linux: LinPEAS open_in_new

Tag 12: Pentest Simulation & Berichterstellung

Als Abschlusstest für das zweiwöchige Bootcamp bekamen wir einen Link zu einer vulnerablen VM. Nun mussten wir diese Maschine mit den erlernten Tools & Techniken scannen und die gefundenen Sicherheitslücken ausnutzen um Zugriff auf die VM zu erhalten. Im nächsten Schritt mussten wir eine Privilege Escalation Möglichkeit finden um Root Zugriff auf das Linux System zu erhalten. Innerhalb von 2 Stunden musste der Student Root Zugriff erhalten. Danach hatten wir noch 30 Minuten Zeit, um einen Report zu erstellen und diesen an den Trainer weiterzuleiten.

Schlusswort

Der Dozent dieses Bootcamps konnte den Stoff sehr gut vermitteln, obwohl der Wissensstand der Teilnehmer sehr unterschiedlich war. Ich habe den Kurs während meiner intensiven Vorbereitungsphase für den Cyber Security Specialist besucht. Vieles in diesem Kurs hatten wir bereits im regulären Online-Kurs behandelt, trotzdem war es eine gute Wiederholung und Auffrischung. 

Meine schriftlichen Notizen, die ich während des Kurses gemacht habe, sind hier zu finden.

Wenn Sie Ihre Webapplikationen, APIs oder Infrastruktur einem Penetrationstest unterziehen möchten, stehe ich Ihnen gerne zur Verfügung. Gerne berate ich Sie auch bei einer allgemeinen Cyber Security / Resilience Standortbestimmung.

Autor

Philippe Regenass

Software Developer & Cyber Security

mail
call

Die E-Mail-Adresse wurde in die Zwischenablage kopiert