![aspx、php、jsp内存马使用 aspx、php、jsp内存马使用]()
戟星安全实验室
忆享科技旗下高端的网络安全攻防服务团队.安服内容包括渗透测试、代码审计、应急响应、漏洞研究、威胁情报、安全运维、攻防演练等
前端时间看到asp的内存马分析,上周又看到jsp内存马技术文章,刚好团队在带新,就简单总结一下三种语言的内存马技术,不会有过多的代码分析、技术解读,以学习内存马基本原理、会实战利用为主。
从jsp开始谈,我们要知道Servlet、Filter、Listener是什么?
Servlet(服务程序)是运行在Web请求和服务器上的应用程序之间的中间层,根据请求生成相应的返回信息提供给用户。
Filter(过滤器)是对Servlet技术的一个强补充,其主要功能是在HttpServletRequest(请求)到达Servlet(中间件)之前,拦截、检查、修改其内容;在HttpServletResponse(响应)到达客户端之前,拦截、检查、修改其内容。
Listener(监听器)就是Application、Session和Request三大对象创建、销毁或者往其中添加、修改、删除属性时自动执行代码的功能组件,通过监听器,可以自动触发一些动作,比如监听在线的用户数量,统计网站访问量、网站访问监控等。
举个例子来理解:Listener就是水表,我们的数据经过时会触发计数,Filter就是水管上的开关,通过他的开关可控制数据流向哪里,Servlet就是水龙头,打开厨房的水龙头就是要洗菜,打开浴室的水龙头就是要洗澡,这就是“根据请求生成相应的返回信息”。
因为某抓包工具原因,我们都知道jar运行时可以加“-javaagent”参数来控制jvm执行内容,不过java后来又出现了attach(附加)方式去动态修改运行中的程序,不了解java机制也没关系,这两种方式我们可以这样理解:
javaagent理解为exe程序运行时设置参数,实现修改运行逻辑
attach理解为exe程序运行中修改内存值,实现修改运行逻辑
因此jsp内存马就是attach+Servlet/Filter/Listener的方式,在Servlet/Filter/Listener三者的任意一个中动手脚即可实现
aspx内存马有三种情况:Filter内存马、Route内存马、HttpListener内存马,对应概念与jsp相同。
asp.net的web应用启动后会自动运行全局的Filters和Routes组件,因此利用他们写内存马直接插入即可,与jsp不同的是,有时需要访问一次上传的文件去触发内存写入。
HttpListener区别较大,类似启动一个简单的Web Server,要System权限才行,可以端口复用,不会留下web日志记录,比起webshell更适合用于权限维持的后门。
php内存马我更愿意叫它不死马,第一种情况是访问文件,使用while一直写文件(运行不停止当然内存一直占用),来达到“不死”的目的;第二种是使用file_get_contents加载远程webshell代码执行,配合unlink(__FILE__)删除自身达到“shellcode不落地”的无文件落地运行目的。
先看php一个标准的不死马,内存驻留循环写文件
![aspx、php、jsp内存马使用 aspx、php、jsp内存马使用]()
查杀效果,当然是一抓一个准,比起免杀一句话,实际上不死马更适合防护弱的目标搞权限维持
![aspx、php、jsp内存马使用 aspx、php、jsp内存马使用]()
将字符串内容换为远程url,对php不死马进行变种,原先使用eval就是内存马,改为使用system就可直接上线cs(powershell command)
![aspx、php、jsp内存马使用 aspx、php、jsp内存马使用]()
![aspx、php、jsp内存马使用 aspx、php、jsp内存马使用]()
查杀效果,比起前面明显隐蔽性更高,更容易被网站管理员忽略
![aspx、php、jsp内存马使用 aspx、php、jsp内存马使用]()
jsp内存马推荐哥斯拉内置的,测试最新版v4.0.1-godzilla(有时出现进入shell失败的情况,多试两次就行),指定内存马路径名称点击run,提示ok表示成功,可以去浏览器访问对应路径
![aspx、php、jsp内存马使用 aspx、php、jsp内存马使用]()
使用servlet管理功能可以看到存在我们指定的内存路径
![aspx、php、jsp内存马使用 aspx、php、jsp内存马使用]()
测试冰蝎Behinder_v3.0 Beta 9 fixed最新版,注入内存马后自动连接,后面图标与正常webshell有所不同,顺便可以看到这些工具都支持流量代理转发了
![aspx、php、jsp内存马使用 aspx、php、jsp内存马使用]()
测试蚁剑内存马插件As-Exploits(可以去插件市场下载或者下载后手动安装
https://github.com/yzddmr6/As-Exploits),推荐去看看插件作者的几篇aspx内存马分析,这次使用Filter方式注入内存马
![aspx、php、jsp内存马使用 aspx、php、jsp内存马使用]()
使用内存马管理功能,看看长什么样
![aspx、php、jsp内存马使用 aspx、php、jsp内存马使用]()
但是访问报错,测试无法利用,看来还是servlet方式稳定一些
![aspx、php、jsp内存马使用 aspx、php、jsp内存马使用]()
最后测试3款工具对aspx内存马的支持,冰蝎不支持aspx内存马
![aspx、php、jsp内存马使用 aspx、php、jsp内存马使用]()
而哥斯拉可以,就是不知道内存马添到哪个路径去了
![aspx、php、jsp内存马使用 aspx、php、jsp内存马使用]()
而它随带几个“土豆”漏洞提权挺实用的
![aspx、php、jsp内存马使用 aspx、php、jsp内存马使用]()
蚁剑的插件也可以,并且能自定义路径,点击exploit后去浏览器访问对应路径无报错
![aspx、php、jsp内存马使用 aspx、php、jsp内存马使用]()
在网站目录没有新文件出现
![aspx、php、jsp内存马使用 aspx、php、jsp内存马使用]()
查看日志文件,和插件作者分析的一样,222.aspx访问记录只有一次,后续对其访问无日志记录
![aspx、php、jsp内存马使用 aspx、php、jsp内存马使用]()
重启服务均可使内存马失效,当然也有不需要重启的方式,就是去动态卸载。
本来想演示一下jsp和aspx的动态查杀,但是github找的两个网页访问方式查杀文件运行都有错,就算了。
对于php不死马,进程更多是异常发现,在不重启服务器的情况下,可以使用进程条件竞争的方式查杀,查杀循环时间小于木马循环时间即可。
因为服务器上一些查杀手段,或者云主机的定时扫描,普通webshell免杀难以持久,在实际项目中又没有那么多时间去研究测试免杀,所以开始通过内存马方式隐藏攻击痕迹,不过一句话木马依旧很实用,而比起写内存马,现在更爱直接反弹shell或cs上线的操作,直接从协议层面避开防御措施。
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内存马使用
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
点赞
https://cn-sec.com/archives/1167161.html
复制链接
复制链接
-
左青龙
- 微信扫一扫
-
-
右白虎
- 微信扫一扫
-
评论