
Morgen um 12:00 Uhr Moskauer Zeit wird ein neues Penetrationstestlabor Test Lab 12 gestartet, das eine Kopie eines echten Unternehmensnetzwerks mit seinen inhärenten Schwachstellen und Konfigurationsfehlern ist. Auf der Laborwebsite wurden bereits 25.000 Teilnehmer registriert, darunter führende Experten auf dem Gebiet der Informationssicherheit der größten russischen und internationalen Unternehmen.
Nachfolgend finden Sie Informationen zur Zusammensetzung des neuen Labors, Beispiele für die Suche und Ausnutzung von Sicherheitslücken sowie Schulungsmaterial.
Das Hauptaugenmerk in Labors liegt auf Realismus: Die IT-Struktur ist in Analogie zu Unternehmensnetzwerken von Unternehmen konzipiert, um die Aktionen von Angreifern dem echten Hacking näher zu bringen. Teilnehmer, die als Eindringlinge fungieren, versuchen, die Sicherheitslücken auszunutzen, und erhalten bei Erfolg Zugriff auf einzelne Knoten des Labors, von denen jeder ein Token enthält. Der Gewinner ist der Teilnehmer, der zuerst alle Token gesammelt hat, dh tatsächlich die volle Kontrolle über das virtuelle Unternehmensnetzwerk erhalten hat.
Unabhängig von der Fähigkeitsstufe kann jeder Penetrationstestfähigkeiten unter Bedingungen testen, die den tatsächlichen Bedingungen so nahe wie möglich kommen, ohne gegen das Gesetz zu verstoßen.
Das neue Labor wird aus einem verteilten Computernetzwerk bestehen, das in Form mehrerer Perimeter mit unterschiedlicher Penetrationskomplexität dargestellt wird. Der erste (externe) Umfang ist am einfachsten zu „durchbrechen“, dann wird der Fortschritt komplizierter. Im komplexesten Sektor platzieren wir Schwachstellen, deren Ausnutzung bei einer großen Anzahl von Teilnehmern schwierig ist. Dieser Ansatz ermöglicht es uns, zwei Probleme gleichzeitig zu lösen:
- jedem erlauben, seine Fähigkeiten im Labor zu bewerten und dabei seinen Realismus beizubehalten;
- Beseitigen Sie eine Situation, in der sich die Teilnehmer gegenseitig stören, wenn sie bestimmte Arten von Sicherheitslücken ausnutzen oder einen Angriff ausführen.

Dargestellt in dem Film im verwendeten Labor:
- Verschiedene Netzwerkdienste (Mail, DNS, AD und VPN usw.), SIEM und DBMS;
- WebApp und API (PHP, Python, Django, Java);
- Selbstgeschriebene Desktop-Anwendungen;
- Zusätzliche Unterstützungsdienste für Realismus.
Um das Labor zu bestehen, benötigen Sie:
- Arbeitsfähigkeiten mit verschiedenen Netzwerkprotokollen;
- die Fähigkeit, Daten aus dem SIEM-System zu analysieren, Korrelationsfilter zu konfigurieren und vieles mehr;
- Reverse Engineering-Erfahrung;
- Erfahrung in der Suche nach Schwachstellen in Netzwerkdiensten und Webanwendungen.
Private Lab Penetrationstests
Wir haben uns entschlossen, die Erfüllung mehrerer Aufgaben des vergangenen privaten Labors zu planen, das diesen Sommer entwickelt wurde, um unerfahrenen Spezialisten zu helfen, schnell Grundkompetenzen zu erlangen.
Alle Informationen bezüglich der Zusammensetzung des Labors (Systeme, Benutzer usw.) sind fiktiv und dienen nur dazu, ein realistisches Bild zu erstellen.
Die im Artikel beschriebenen Penetrationstesttechniken sind pädagogischer Natur. Verstoße nicht gegen das Gesetz.
Die gesamte Struktur der fiktiven Organisation „UNIONSEC“, bestehend aus 15 Servern, befand sich hinter dem Gateway 192.168.102.10, auf das nach dem Aufbau der VPN-Verbindung zugegriffen werden konnte. Die Teilnehmer erhielten die Aufgabe, das Unternehmensnetzwerk des Labors zu gefährden. Das Ergebnis der Operation jeder der Schwachstellen war ein Token, das über das Formular auf der Seite
lab.pentestit.ru übertragen werden musste .

Das Labor wurde von 7 Teams mit zwei Teilnehmern angegriffen, aber niemand konnte das gesamte Netzwerk gefährden. Trotzdem zeigten einige Teams ein anständiges Ergebnis.

Die Arbeit im Labor erforderte Erfahrung mit verschiedenen Werkzeugen und Fähigkeiten bei der Durchführung von Penetrationstests. Darüber hinaus konnten einige Aufgaben ohne Kenntnisse auf dem Gebiet der Entwicklung und des Reverse Engineering nicht erledigt werden. Angesichts der begrenzten Zeit, die den Teilnehmern für die Erledigung von Aufgaben zur Verfügung stand, ist es unserer Meinung nach ein würdiges Ergebnis, fast die Hälfte der Aufgaben zu erledigen.
Intelligenz
Mit dem Dienstprogramm nmap erhalten wir eine Liste der offenen Ports:
nmap 192.168.102.10 -sV

Unternehmenswebsite
Unter der Adresse
192.168.102.10 im Abschnitt "Kontakt" sehen wir eine Liste der E-Mail-Adressen:

Entsprechend dem HTML-Code der Anwendung können wir davon ausgehen, dass sie das WordPress-CMS verwendet und das Plugin wp-symposium-15.1 enthält.
Über
www.exploit-db.com stellen wir fest, dass das Plugin für SQL-Injection anfällig ist. Über den URI
192.168.102.10/wp-content/plugins/wp-symposium-15.1/get_album_item.php?size=
"versuchen wir, die Sicherheitsanfälligkeit mithilfe des BASH-Skripts auszunutzen:
Wir bekommen die Liste der Datenbanken:
information_schema
wp_db
und nach dem Ausnutzen der Sicherheitsanfälligkeit - das Token:
wget -q -O- 192.168.102.10/wp-content/plugins/wp-symposium-15.1/get_album_item.php?size=* from token; --"

Mail
Wir zählen Passwörter mit hydra auf:
hydra smtp://192.168.101.10 -s 25 -L /tmp/emails -P /tmp/pass

Mit den empfangenen Daten autorisieren wir die WUI des Mailservers und erhalten das Token:

Openvpn
VerbindungAus dem Web Nord
http://192.168.102.10:88
laden
http://192.168.102.10:88
die Datei "openvpn.conf". Nach dem Scannen des Servers (z. B. mit dem Dienstprogramm DirBuster) finden wir
.bash_history
:
-bash: generating new OpenVPN password for user admin: command not found
-bash: generating: command not found
-bash: date +%F: command not found
-bash: echo "admin:`date +%F | md5sum | sed -s 's/ -//'`" > /etc/openvpn/user.pass: command not found
cat /etc/openvpn/user.pass
service openvpn restart
exit
Hier finden Sie den Benutzernamen sowie den Algorithmus zur Kennwortgenerierung. Verwenden Sie das genaue Erstellungsdatum der Datei, um das zuvor erstellte Kennwort wiederzugeben:

und führen Sie die Konvertierung gemäß der Geschichte der Teams durch. Das resultierende Kennwort wird für die VPN-Authentifizierung verwendet.
Server-ScanNachdem wir eine Verbindung zum VPN hergestellt haben, scannen wir die Server-Ports:

Wir erhalten den Token unter
http://10.255.0.1:8080
:

TERMINAL
Der VPN-Server sendet uns mehrere Routings an interne Netzwerke. Nach dem Scannen finden wir mehrere Hosts mit einem offenen 22-Port. Wir versuchen uns unter dem
dev
Account anzumelden. Nachdem wir eine Verbindung zu einem der Server hergestellt haben, finden wir das Verzeichnis / home / support und versuchen, ein Kennwort für das gleichnamige Konto auszuwählen:
patator ssh_login host=192.168.11.5 user=support password=FILE0 0=usr/share/wordlists/rockyou.txt -x ignore:fgrep='Authentication failed'

Nachdem wir das Passwort erhalten haben, erhalten wir das Token im Home-Verzeichnis:

Reverse Engineering
Auf dem TERMINAL-Server finden wir die
admin.bin
, deren Aktion endet, wenn das Kennwort angefordert wird. Auf der Rückseite erhalten wir das Passwort
fv34cm3cm
, das ein Token ist. Wenn Sie es eingeben, erhalten wir
SSH PRIVATE KEY
.
Aus dem privaten Schlüssel authentifizieren wir uns auf dem Server
192.168.11.2
, auf dem wir die Datei
dump.pcap
im
dump.pcap
/opt/
. Wir analysieren den Netzwerkverkehrs-Dump aus der Datei und extrahieren das Token sowie das Kennwort für die BASIC-Autorisierung auf dem Webserver
192.168.11.3
:
tcpdump -r /tmp/dump.pcap -A | grep token

API
Am
192.168.11.3
befindet sich die API, auf die vom Administrator-PC aus zugegriffen werden kann. Mit der Port-Übersetzung (zum Beispiel über SSH) beginnen wir mit dem Studium.
Nachdem wir die in der API entdeckte Sicherheitsanfälligkeit ausgenutzt haben, erhalten wir ein Token, das Teil des
admin
:

Eine Webanwendung ist unter
http://172.16.0.4
verfügbar, die sich in der Entwicklung befindet. Aus der Datei
readme.html
wir eine Liste der entwickelten Seiten:

Beim Öffnen von
http://172.16.0.4/availability.php
eine Fehlermeldung
http://172.16.0.4/availability.php
. Wir versuchen, die Aktion mit dem
REFERRER http://172.16.0.4/index.html
Parameter
REFERRER http://172.16.0.4/index.html
zu wiederholen.
REFERRER http://172.16.0.4/index.html
wird das Formular mit der
ping
Schaltfläche verfügbar:

Nachdem wir sichergestellt haben, dass das Eingabefeld nicht gefiltert ist, erhalten wir das Token:

Wir sind über
SSH
mit dem Server
172.16.0.1
. Nach der Autorisierung werden wir von einem Skript empfangen, das einen PIN-Code (5 Ziffern) anfordert:

Mit einem selbst geschriebenen Skript zum Erraten von Passwörtern erhalten wir vollen Zugriff auf die Konsole und finden die Datei mit dem Token im Ordner des Benutzers:

Zurück in die Zukunft
Um uns schnell an das neue 12. Labor zu gewöhnen, haben wir eine kurze Liste von Materialien und Werkzeugen erstellt:
Wir sehen uns in
„Test Lab 12“ und lassen die Stärksten gewinnen!