Exp-Tools 工具开发

admin 2023年1月10日20:56:04评论94 views字数 3054阅读10分10秒阅读模式

Exp-Tools 工具开发

前言

在学习java的过程中,一直想通过GUI编写一个属于自己的综合漏洞利用工具。只写高危漏洞用于红队快速打点,还要适当的具有扩展性方便查看是否遇到WAF及时修改。在尝试用JAVAFX编写GUI的时候,在github发现了一个开源的图形化项目:https://github.com/yhy0/ExpDemo-JavaFX。致敬作者!

果断放弃自己的GUI界面改用作者的框架。ExpDemo-JavaFX 集成了Thinkphp、Struts2、Weblogic 等利用模块,查看 exp 一知半解,索性选择OA作为一个切入点,锻炼代码的同时收集完整并校验有效的exp。

GUI界面

GUI 界面是由FXML 编写完成的,即使未系统学习过FXML,也可以简单绘制出GUI界面。利用JFXButton 按钮组件绘制多个OA。

Exp-Tools 工具开发

每一个OA又对应一个FXML文件,三个Tab分别对应基本信息、命令执行、文件上传。

Exp-Tools 工具开发

而每个漏洞利用方式不一样,可以通过controller控制tab标签是否有效。如万户oa只有文件上传的exp,没有命令执行的exp,就可以设置

this.execute_tab.setDisable(true);

这样就无法点击命令执行的标签了。

在上传的标签里,将上传的冰蝎改成log.txt,内容为无恶意代码执行。

Exp-Tools 工具开发

区别是Windows还是Linux平台也是工具的一个小细节。

如用友的一个上传漏洞只适用于Windows,可以将该ChoiceBox 设置为无效。

this.platform.setDisable(true);

同样的方式我们将任意漏洞进行动态的处理。如用友畅捷通T+文件上传漏洞为aspx语言,设置为

Exp-Tools 工具开发

另外我还绘制了一个配置的按钮,用来配置cookie信息,方便某些漏洞后台利用。

Exp-Tools 工具开发

HttpURLConnection

发送网络数据包用的是HttpURLConnection,在HttpTools类里我稍微改造了一点getResponse 方法。在利用某些漏洞的时候会返回500的状态码,而我需要500的返回内容。修改部分为:

Exp-Tools 工具开发

除了get、post方法以外,我还填补了upload 方法、反序列化方法。

网上大部分exp都是将upload内容作为字符串直接发送,我就自定义了一个upload 方法替换繁杂的字符串。

Exp-Tools 工具开发

还有反序列方法,如用友6.5的反序列化漏洞。

Exp-Tools 工具开发

WAF 绕过

最开始的想法是加分块传输,在getCoon方法里

conn.setRequestProperty("Transfer-Encoding", "Chunked");

但始终无法应用。后来询问ABC_123师傅,HttpURLConnection 不支持该请求头。只能选择加入一些通用的请求头勉强绕过WAF,具体的场景只能修改数据包了。

Exp-Tools 工具开发

编写EXP

实现ExploitInterface接口里的几个方法即可,不需要的返回null。在写exp的时候同样参考了很多网上流传的,还有一些不是很常见的但有效的漏洞甚至nday。大概出现了以下问题:

1、出现误报 由于某些漏洞的特殊性难免有误报,我这里尽力避免出现误报。如发送请求返回200状态码但返回内容为空,则在checkVul 方法里返回可能存在。

Exp-Tools 工具开发

2、exp不明白 网上流传很多exp都是封装好的,怎么改造怎么变化不是很清楚。我这里没有生搬硬套,而是找寻网上的漏洞细节。如万户的officeserverservlet漏洞,我摘抄了 https://github.com/0x727/DropLabTools 项目里的一部分代码,知道怎么计算出exp并加入了一个绕过WAF的技巧。

Exp-Tools 工具开发

再比如用友6.5的反序列化漏洞,可以自定义输入上传的文件名和文件内容。

Exp-Tools 工具开发

3、漏洞细节不够 很多nday漏洞细节没有公布,只有一个截图或分析过程。我这里力所能及的把部分漏洞复现了出来。如泛微的emobile的命令执行。因为泛微用的resin,内存马还没有学会,所以只实现了命令执行和上传文件。

Exp-Tools 工具开发

还有一些后台的漏洞,平时没有注意过也加上了。

如致远的后台模板文件上传。

Exp-Tools 工具开发

4、漏洞太多 针对于漏洞太多的oa,收集的就不是特别详细,且案例不多。如通达OA这里就没有写的很多。

加密

最后用maven进行打包,并使用classFinal加密字节码。

Exp-Tools 工具开发

OA

截止到目前为止,已实现了用友、泛微、通达、致远、帆软报表、万户、蓝凌总共7个OA。

全部是命令执行、文件上传类的漏洞,包括前台和后台,未编写log4j、fastjson相关漏洞。

Exp-Tools 工具开发

用友已完成:

用友NC-BshServlet 远程命令执行用友NC-BshServlet-bypass 远程命令执行用友NC accept 文件上传用友GRP-U8 UploadFileData 文件上传用友6.5反序列化用友畅捷通T+文件上传用友KSOA ImageUpload 文件上传

蓝凌已完成:

蓝凌OA SSRF蓝凌OA SSRF BeanShell 文件上传蓝凌OA SSRF XmlDecoder 文件上传蓝凌OA treexml 命令执行

泛微已完成:

泛微OA KtreeUploadAction 文件上传泛微OA uploaderOperate 文件上传泛微OA weaver.common.Ctrl 文件上传泛微eoffice OfficeServer 文件上传泛微eoffice UploadFile 文件上传泛微eoffice ajax 文件上传泛微BshServlet 远程命令执行泛微ecology前台sql注入泛微ecology后台风格文件上传泛微ecology后台皮肤文件上传泛微emobile client命令执行泛微emobile messageType命令执行

万户已完成:

万户OA fileUpload 文件上传万户OA officeserverservlet 文件上传万户OA smartUpload 文件上传万户OA OfficeServer 文件上传

帆软已完成:

帆软报表任意文件读取帆软报表任意文件覆盖帆软报表后台插件文件上传帆软报表后台主题文件上传

致远已完成:

致远session泄露processUpload文件上传致远uploadMenuIcon文件上传致远ajax文件上传致远ajax文件上传-bypass致远wpsAssistServlet文件上传致远htmlofficeservlet文件上传致远后台模板文件上传致远帆软报表文件读取致远帆软报表后台插件文件上传致远帆软报表后台主题文件上传

通达已完成:

通达任意用户登录-1通达任意用户登录-2通达任意用户登录-3通达任意用户登录-4通达Ispirit文件上传通达后台附件文件上传

总结

ExpDemo-JavaFX[1] 项目的基础上,对某些代码进行魔改,又复现分析了多个OA的漏洞。难度不高,学习了很多,以后都可以用来添加自己的漏洞。Exp-Tools小工具前后差不多花费了两个月,感谢境心师傅的全力参与!

参考资料

https://github.com/yhy0/ExpDemo-JavaFX 

https://github.com/White-hua/Apt_t00ls https://github.com/achuna33/MYExploit

References

[1] ExpDemo-JavaFX: https://github.com/yhy0/ExpDemo-JavaFX


Exp-Tools 工具开发



原文始发于微信公众号(Wings安全团队):Exp-Tools 工具开发

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年1月10日20:56:04
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Exp-Tools 工具开发https://cn-sec.com/archives/1510881.html

发表评论

匿名网友 填写信息