50 Schattierungen von Token



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:

 #!/bin/bash for ((i=0; i<= 10; i++)) do wget --no-proxy -q -O- "http://192.168.102.10/wp-content/plugins/wp-symposium-15.1/get_album_item.php?size=SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA limit 1 offset $i; --" echo "" done 

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


Verbindung

Aus 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-Scan

Nachdem 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!

Source: https://habr.com/ru/post/de432940/


All Articles