githubEdit

Attacking Jenkins - Focused Commands & Key Points

1. Jenkins Version Detection:

curl -I http://<target>:8080/
  • Check HTTP headers for Jenkins version.

nmap -sV -p 8080 <target_ip>
  • Nmap version detection.

curl http://<target>:8080/jenkins/cli/ | grep -i "Jenkins CLI"
  • Check for Jenkins CLI.


2. Jenkins Port Enumeration:

  • Default Ports:

    • 8080 (HTTP Web Interface)

    • 50000 (Slave Communication, often overlooked)

nmap -sV -p 50000 <target_ip>
  • 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