Jenkins
Introduction
Jenkins is a continuous integration server.
Jenkins runs on Tomcat port 8080 by default
The default installation typically uses Jenkinsβ database to store credentials and does not allow users to register an account.
Jenkins if often inside internal networks
Jenkins is often installed on Windows servers running as the SYSTEM account.
If we can gain access via Jenkins and gain remote code execution as the SYSTEM account, we would have a foothold in Active Directory to begin enumeration of the domain environment.
It is not uncommon to find Jenkins instances that do not require any authentication during an internal penetration test
We can fingerprint Jenkins quickly by the telltale login page.
Jenkins Script Console RCE [Authenticated]
After gaining access to a Jenkins application, you can navigate to the script console:
http://jenkins.test.example:8000/script
The script console allows us to run arbitrary Groovy scripts within the Jenkins controller runtime.
This can be abused to run operating system commands on the underlying server.
Linux PoC Script:
MSFConsole:
use exploit/multi/http/jenkins_script_console
Reverse shell:
Windows PoC Script:
Reverse shell:
Last updated