webshell工具及特征分析.docx
Webshell简介
webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,主要用于网站管理、服务器管理、权限管理等操作。使用方法简单,只需上传一个代码文件,通过网址访问,便可进行很多日常操作,极大地方便了使用者对网站和服务器的管理。正因如此,也有小部分人将代码修改后当作后门程序使用,以达到控制网站服务器的目的,也可以将其称做为一种网页后门
最普通的一句话木马:
?php@eval($_POST[shell]);??phpsystem($_REQUEST[cmd]);
中国菜刀
中国菜刀(Chopper)是一款经典的网站管理工具,具有文件管理、数据库管理、虚拟终端等功能。
它的流量特征十分明显,现如今的安全设备基本上都可以识别到菜刀的流量。现在的菜刀基本都是在安全教学中使用。
github项目地址:/raddyfiy/caidao-official-version
由于菜刀官方网站已关闭,现存的可能存在后门最好在虚拟机运行,上面项目已经进行了md5对比没有问题。
菜刀webshell的静态特征
菜刀使用的webshell为一句话木马,特征十分明显
常见一句话(Eval):
PHP,ASP,ASP.NET的网站都可以:
PHP:????php@eval($_POST[caidao]);?
ASP:???%evalrequest(caidao)%
ASP.NET:???%@PageLanguage=Jscript%%eval(Request.Item[caidao],unsafe);%
菜刀webshell的动态特征
请求包中:
请求体中存在eavl,base64等特征字符
请求体中传递的payload为base64编码,并且存在固定的QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtpZihQSFBfVkVSU0lPTjwnNS4zLjAnKXtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO307ZWNobygiWEBZIik7J
蚁剑
AntSword(蚁剑)是一个开放源代码,跨平台的网站管理工具,旨在满足渗透测试人员以及具有权限和/或授权的安全研究人员以及网站管理员的需求。
github项目地址:/AntSwordProject/antSword
蚁剑webshell静态特征
/AntSwordProject/AwesomeScript蚁剑官方为我们提供了制作好的后门,官方的脚本均做了不同程度“变异”,蚁剑的核心代码是由菜刀修改而来的,所有普通的一句话木马也可以使用。
Php中使用assert,eval执行,asp使用eval,在jsp使用的是Java类加载(ClassLoader),同时会带有base64编码解码等字符特征
蚁剑webshell动态特征
默认编码连接时
这里我们直接使用一句话木马webshell
每个请求体都存在@ini_set(“display_errors”,“0”);@set_time_limit(0)开头。并且是url编码后进行传输
响应包的结果返回格式为?随机数结果?随机数,返回包都是铭文传输
使用base64编码器和解码器时
蚁剑会随机生成一个参数传入base64编码后的代码,密码参数的值是通过POST获取随机参数的值然后进行base64解码后使用eval执行
响应包的结果返回格式为?随机数编码后的结果?随机数
冰蝎
冰蝎是一款动态二进制加密网站管理客户端。
github地址:/rebeyond/Behinder
冰蝎文件夹中,server文件中存放了各种类型的木马文件
冰蝎webshell木马静态特征
这里主要分析3.0版本的
采用采用预共享密钥,密钥格式为md5(“admin”)[0:16],所以在各种语言的webshell中都会存在16位数的连接密码,默认变量为k。
默认时,所有冰蝎4.0webshell都有“e45e329feb5d925b”一串密钥。该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond
在PHP中会判断是否开启openssl采用不同的加密算法,在代码中同样会存在eval或assert等字符特征
在aps中会在for循环进行一段异或处理
在jsp中则利用java的反射,所以会存在ClassLoader,getClass().getClassLoader()等字符特征
冰蝎3.0webshell木马动态特征
在3.0中改了,去除了动态密钥协商机制,采用预共享密钥,全程无明文交互,密钥格式为md5(“admin”)[0:16],但还是会存在一些特征
在使