漏洞详情
https://devco.re/blog/2019/01/16/hacking-Jenkins-part1-play-with-dynamic-routing/
环境搭建
因为docker部署的 Jenkins 会自行安装插件,这里可能会有一些插件版本上面的问题,所以我们的漏洞环境采用GitHub项目+docker进行搭建,GitHub地址:https://github.com/adamyordan/cve-2019-1003000-jenkins-rce-poc.git。
下载到的项目有EXP和环境源码,我们主要用的是sample-vuln目录下的代码,这里可以直接运行他的run.sh进行docker的搭建,docker会自行下载需要的images。(PS:我的虚拟机下载images有点慢,所以我用VPS下载然后再导出导入)
这个环境跟Orange大佬的环境稍有不同,Orange大佬的环境采用的是Read-only Mode的权限模式,而这个环境用的是Authenticated Mode,同时还给了一个user1/user1的用户,就我们复现漏洞而言并没有什么关系。
漏洞复现
生成攻击JAR
然后 jar cvf poc-1.jar * 打包成jar文件,并部署到自己的VPS上面
让服务器下载恶意jar并执行payload
命令成功执行
其中有几点需要注意的地方:
Payload中各个参数的意义:
name:什么都可以
root:你的VPS的地址
group:恶意jar文件存放的路径,a.b即https://x.x.x.x/a/b目录
module、version:恶意jar文件的名字,即module-version.jar
服务器会缓存访问到的jar文件,再次提交相同group的payload的时候,服务端不会再去访问我们的jar。
反弹shell
修改java代码,再次生成恶意jar文件并提交payload
作者水平有限,如有错误请指出Orz