流量样本PCAP of the Weevely.pcap
具体链接:http://www.watcherlab.com/forum-flow-2.html
1 概述
weevely是一款针对PHP的webshell的自由软件,可用于模拟一个类似于telnet的连接shell,weevely通常用于web程序的漏洞利用,隐藏后门或者使用类似telnet的方式来代替web 页面式的管理,weevely生成的服务器端php代码是经过了base64编码的,并且加入了一些特殊干扰字符,常见的主流杀毒软件以及云上的安全检测引擎都很难发现,笔者试验了国内多个云计算安全检测系统都未能发现此webshell。
2 Weevely网络数据流特征分析
图1
TCP 会话流可看出请求头Cookie 头域中的变量接受传值,且值中混淆着特殊字符。
把Cookie头域中的值带有特殊字符的组合在一起,并去掉特殊字符 。
图2
重组后的值为:Y2hkaXIoJ0Q6XFdXVycpOyBwYXNzdGhydSgnbmV0IHVzZXInKTs base64解码
可看出使用了passthru()函数调用了 net user命令。
再来看一组TCP 会话,利用之前的方法重组下Cookie 头域中的值。
图4
Cookie 重组后的值:Y2hkaXIoJ0Q6XFdXVycpOyBwYXNzdGhydSgnd2hvYW1pJyk7 base 64解码
图5
可看出使用了passthru()函数调用了 whoami命令。
Weevely 程序代码分析
图6
通过分析weevely代码程序,得知程序有两种方式可以传递shell命令,分别是Cookie头域和Referer头域。简单分析下Cookie头域传递 shell命令方式,CmdRequest类中的setPayload函数在处理shell命令,首先利用base64.b64encode函数把shell命令加密,将加密后的命令,分三部分赋值给Cookie变量,调用pollute_with_random_str函数给shell命令添加混淆的特殊字符。
更为具体的信息请访问以下网址:http://www.watcherlab.com/forum-flow-2.html
还可以下载Webshell流量样本以便和我们共同参与分析过程!