aspx、php、jsp内存马使用

admin 2022年7月8日18:28:24评论605 views字数 2774阅读9分14秒阅读模式

aspx、php、jsp内存马使用

戟星安全实验室


    忆享科技旗下高端的网络安全攻防服务团队.安服内容包括渗透测试、代码审计、应急响应、漏洞研究、威胁情报、安全运维、攻防演练等

本文约2717字,阅读约需7分钟。



aspx、php、jsp内存马使用

0x00  前言

aspx、php、jsp内存马使用


前端时间看到asp的内存马分析,上周又看到jsp内存马技术文章,刚好团队在带新,就简单总结一下三种语言的内存马技术,不会有过多的代码分析、技术解读,以学习内存马基本原理、会实战利用为主。


aspx、php、jsp内存马使用

0x01 jsp内存马

aspx、php、jsp内存马使用


jsp开始谈,我们要知道ServletFilterListener是什么?
Servlet(服务程序)是运行在Web请求和服务器上的应用程序之间的中间层,根据请求生成相应的返回信息提供给用户。
Filter(过滤器)是对Servlet技术的一个强补充,其主要功能是在HttpServletRequest(请求)到达Servlet(中间件)之前,拦截、检查、修改其内容;在HttpServletResponse(响应)到达客户端之前,拦截、检查、修改其内容。
Listener(监听器)就是ApplicationSessionRequest三大对象创建、销毁或者往其中添加、修改、删除属性时自动执行代码的功能组件,通过监听器,可以自动触发一些动作,比如监听在线的用户数量,统计网站访问量、网站访问监控等。
举个例子来理解:Listener就是水表,我们的数据经过时会触发计数,Filter就是水管上的开关,通过他的开关可控制数据流向哪里,Servlet就是水龙头,打开厨房的水龙头就是要洗菜,打开浴室的水龙头就是要洗澡,这就是“根据请求生成相应的返回信息”。

因为某抓包工具原因,我们都知道jar运行时可以加“-javaagent”参数来控制jvm执行内容,不过java后来又出现了attach(附加)方式去动态修改运行中的程序,不了解java机制也没关系,这两种方式我们可以这样理解:
javaagent理解为exe程序运行时设置参数,实现修改运行逻辑
attach理解为exe程序运行中修改内存值,实现修改运行逻辑


因此jsp内存马就是attach+Servlet/Filter/Listener的方式,在Servlet/Filter/Listener三者的任意一个中动手脚即可实现


aspx、php、jsp内存马使用

0x02  aspx、php内存马

aspx、php、jsp内存马使用

aspx内存马有三种情况:Filter内存马、Route内存马、HttpListener内存马,对应概念与jsp相同。
asp.netweb应用启动后会自动运行全局的FiltersRoutes组件,因此利用他们写内存马直接插入即可,与jsp不同的是,有时需要访问一次上传的文件去触发内存写入。
HttpListener区别较大,类似启动一个简单的Web Server,要System权限才行,可以端口复用,不会留下web日志记录,比起webshell更适合用于权限维持的后门。
php内存马我更愿意叫它不死马,第一种情况是访问文件,使用while一直写文件(运行不停止当然内存一直占用),来达到“不死”的目的;第二种是使用file_get_contents加载远程webshell代码执行,配合unlink(__FILE__)删除自身达到“shellcode不落地”的无文件落地运行目的。


aspx、php、jsp内存马使用

0x03  关于内存马使用

aspx、php、jsp内存马使用


先看php一个标准的不死马,内存驻留循环写文件


aspx、php、jsp内存马使用


查杀效果,当然是一抓一个准,比起免杀一句话,实际上不死马更适合防护弱的目标搞权限维持


aspx、php、jsp内存马使用


将字符串内容换为远程url,对php不死马进行变种,原先使用eval就是内存马,改为使用system就可直接上线cspowershell command


aspx、php、jsp内存马使用

aspx、php、jsp内存马使用

查杀效果,比起前面明显隐蔽性更高,更容易被网站管理员忽略


aspx、php、jsp内存马使用

jsp内存马推荐哥斯拉内置的,测试最新版v4.0.1-godzilla(有时出现进入shell失败的情况,多试两次就行),指定内存马路径名称点击run,提示ok表示成功,可以去浏览器访问对应路径

aspx、php、jsp内存马使用


使用servlet管理功能可以看到存在我们指定的内存路径

aspx、php、jsp内存马使用


测试冰蝎Behinder_v3.0 Beta 9 fixed最新版,注入内存马后自动连接,后面图标与正常webshell有所不同,顺便可以看到这些工具都支持流量代理转发了


aspx、php、jsp内存马使用


测试蚁剑内存马插件As-Exploits(可以去插件市场下载或者下载后手动安装

https://github.com/yzddmr6/As-Exploits),推荐去看看插件作者的几篇aspx内存马分析,这次使用Filter方式注入内存马

aspx、php、jsp内存马使用


使用内存马管理功能,看看长什么样

aspx、php、jsp内存马使用


但是访问报错,测试无法利用,看来还是servlet方式稳定一些

aspx、php、jsp内存马使用


最后测试3款工具对aspx内存马的支持,冰蝎不支持aspx内存马

aspx、php、jsp内存马使用


而哥斯拉可以,就是不知道内存马添到哪个路径去了

aspx、php、jsp内存马使用


而它随带几个“土豆”漏洞提权挺实用的


aspx、php、jsp内存马使用

蚁剑的插件也可以,并且能自定义路径,点击exploit后去浏览器访问对应路径无报错


aspx、php、jsp内存马使用


在网站目录没有新文件出现

aspx、php、jsp内存马使用


查看日志文件,和插件作者分析的一样,222.aspx访问记录只有一次,后续对其访问无日志记录

aspx、php、jsp内存马使用



aspx、php、jsp内存马使用

0x04  关于内存马查杀

aspx、php、jsp内存马使用


重启服务均可使内存马失效,当然也有不需要重启的方式,就是去动态卸载。
本来想演示一下jspaspx的动态查杀,但是github找的两个网页访问方式查杀文件运行都有错,就算了。
对于php不死马,进程更多是异常发现,在不重启服务器的情况下,可以使用进程条件竞争的方式查杀,查杀循环时间小于木马循环时间即可。


aspx、php、jsp内存马使用

0x05  总结

aspx、php、jsp内存马使用


因为服务器上一些查杀手段,或者云主机的定时扫描,普通webshell免杀难以持久,在实际项目中又没有那么多时间去研究测试免杀,所以开始通过内存马方式隐藏攻击痕迹,不过一句话木马依旧很实用,而比起写内存马,现在更爱直接反弹shellcs上线的操作,直接从协议层面避开防御措施。


参考
https://github.com/yzddmr6/As-Exploits
https://github.com/yzddmr6/ASP.NET-Memshell-Scanner
https://tttang.com/archive/1408/
https://zhuanlan.zhihu.com/p/420615927


 声明

    由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,戟星安全实验室及文章作者不为此承担任何责任。

    戟星安全实验室拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经戟星安全实验室允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。


aspx、php、jsp内存马使用

戟星安全实验室

# 长按二维码 关注我们 #



原文始发于微信公众号(戟星安全实验室):aspx、php、jsp内存马使用

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年7月8日18:28:24
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   aspx、php、jsp内存马使用http://cn-sec.com/archives/1167161.html

发表评论

匿名网友 填写信息