hi,我是凉风,(以下内容纯属个人见解,如有不同的意见欢迎回复指出) ,本菜比发现aspx过狗的姿势不常见,不像php一样一抓一大把,于是我决定研究一下aspx
本文作者:i春秋签约作家——凉风
引用i春秋作家团大佬@非主流 对一句话木马的理解:
一句话木马的意思就是,我们制造了一个包含远程代码执行漏洞的web页面。
目录:
0×01:我没有aspx代码编写基础,我该从哪入手?
0×02:正式开始:从过狗菜刀配置文件里寻找思路
0×03:再写一个:分析各种拦截机制,一一绕过
0×04:总结
0×01:我没有aspx代码编写基础,我该从哪入手?
在这里,本菜比与小白们一起学习:如何自己写aspx过狗一句话木马
“授人以鱼不如授人以渔”
前期准备(建议,自行决定):
(1)了解aspx,aspx的百度百科至少看一遍,看懂aspx一句话木马
(2)准备好可以查资料的网站(aspx语法、函数等必备知识)、工具,例如官方手册(chm文件)。
(3)本地搭建环境,装好安全狗,D盾顺便也装了
(4)菜刀肯定不可少
aspx文件就是asp.net文件,需要.net 环境,用“C#”,“Jscript”等语言编写。
Jscript手册我会放在附件里
我用的是2003server+iis+asp.net 环境,装了 .net 2.0与4.0
0×02:正式开始:从过狗菜刀配置文件里寻找思路
我并不会aspx,起步的时候很难凭空弄个过狗的出来,那么就要自己想办法。
因为曾经分析过:过狗菜刀php的配置,配置里过狗的思路与php过狗木马类似,所以我在没学过aspx并且没有过狗的aspx一句话作为参考的时候,突然想到酱紫做。
曾经的分析:https://bbs.ichunqiu.com/thread-27119-1-1.html?from=sf
我们看一下配置文件关于aspx的部分:
先根据它的格式还原回正常的代码(把%%换回%)
可以看有一部分是经过url编码的,因为asp.net文件貌似不能直接解析,所以先还原,看还原之后的代码。
利用网上的在线解码直接转码:
因为我曾分析过,知道:其中%s是菜刀要执行的经过base64加密的命令。
所以应该有一个base64解密函数,以及代码执行函数
这两个函数很容易找出来,
其中编码为:65001,这是utf-8。
仔细看了看有些不对劲,aspx代码部分只给了这两个函数,也就是说,aspx过狗的那一部分主要是前半段的url编码。找到的这两个函数并没有使用过狗的姿势。难道这次分析白费了?先试试再说吧,简单利用base64解密函数。(本来就没学过aspx,知道个base64解密函数也不亏了)
看我操作
我用安全狗、D盾扫描了一下,居然奇迹般的绕过了
再用菜刀连接,没问题。
(注:D盾防护全开后,将限制木马的权限,不在本文考虑范围,本文只使用D盾的后门扫描功能,安全狗全开)
0×03:再写一个:分析各种拦截机制,一一绕过
第一种方法感觉有运气成分在内,并不是我希望看到的,所以再写一个吧
这回我们靠自己。
一行一行的写代码,看看他什么时候会拦截
不再使用base64解密函数,自己寻找别的方法。
写一个光明正大的aspx木马
安全狗拦截,可是D盾只是可疑的级别,也就是说,如果只装D盾,木马不会被拦截。(已测试哦)
再改改
这次删掉了unsafe参数,安全狗照样拦截,但是D盾什么也扫不出。.net
4.0 下的eval的第二个参数取消,也就是说.net
4.0开发的网站,只装D盾,这个木马就可以绕过。但是为了兼容性,我们试着绕过“unsafe”这个拦截机制,(可以用base64解密,但是我说过不用)
用字符串拼接的方法:
安全狗还是没绕过,但是D盾没检测出unsafe参数被加进去,所以什么也没扫到。
接下来就是绕过安全狗了。
第二个参数做了绕过D盾处理,那么第一个参数来绕过安全狗的检测吧,有经验的人都知道安全狗没那么严格,第二个参数的unsafe应该不会被安全狗拦截。
创了一个函数fun(),直接返回接收到的pass的内容,也就是说经过了一个函数的传递,安全狗就不认识了。
菜刀连接成功,没问题
0×04:总结
aspx的函数没有php的函数多,个人感觉aspx花样不多,所以绕过waf的姿势不像php一样多。但是由于使用aspx的网站没有php的那么多,所以waf对aspx的重视程度没有php的大。
(学习)方法很重要,之前我没有具体分析waf的一些拦截机制,直接使用各种错误的姿势,走了一堆弯路,后来一步一步试,看怎样会被拦截(就像测试sql注入绕过一样)。用这种方法感觉效率快多了,而且思路清晰连贯。