Attacking Jenkins - Focused Commands & Key Points
1. Jenkins Version Detection:
Check HTTP headers for Jenkins version.
Nmap version detection.
Check for Jenkins CLI.
2. Jenkins Port Enumeration:
Default Ports:
8080 (HTTP Web Interface)
50000 (Slave Communication, often overlooked)
Identify slave communication port.
3. Jenkins CLI Enumeration:
Enumerate jobs, plugins, and users via Jenkins CLI.
4. Jenkins Plugin Enumeration:
List installed plugins (common vulnerability source).
5. Jenkins Security Realm Enumeration:
Identify authentication methods (Jenkins DB, LDAP, etc.).
6. Jenkins API Enumeration:
Identify API endpoints that might expose sensitive data.
7. Jenkins Access Control Enumeration:
Identify misconfigurations in access control settings.
8. Jenkins Exploitation:
Exploiting Weak Credentials
Check for default credentials (
admin:admin
,admin:password
).
Exploiting Script Console (Authenticated RCE)
Gain RCE through Jenkins script console.
Exploiting Build Job Execution
Trigger a job execution for exploitation.
9. Jenkins Deserialization Vulnerabilities:
Use ysoserial to generate payloads.
Inject payloads into vulnerable endpoints.
10. Jenkins Post-Exploitation & Persistence:
Extract Credentials from
credentials.xml
Establish Persistence:
Modify Access Control for Future Access:
Key Takeaways:
Jenkins Manager Access: RCE via Jenkins Script Console.
Weak Credentials: Default or weak credentials often present.
Plugin Enumeration: Plugins are a frequent source of vulnerabilities.
Jenkins API Exposure: Can expose sensitive information.
Access Control Issues: Misconfigurations lead to privilege escalation.
Deserialization Attacks: Exploit Java deserialization vulnerabilities.
Web Shell Persistence: Deploy malicious JSP for long-term access.
By structuring this guide effectively, it serves as a powerful reference for Jenkins security assessment and penetration testing.
Last updated