Webshell安全检测(4):Weevely 样本后门特征分析

流量样本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

图1

    TCP 会话流可看出请求头Cookie 头域中的变量接受传值,且值中混淆着特殊字符。

把Cookie头域中的值带有特殊字符的组合在一起,并去掉特殊字符 。

2

图2

    重组后的值为:Y2hkaXIoJ0Q6XFdXVycpOyBwYXNzdGhydSgnbmV0IHVzZXInKTs  base64解码

3

    可看出使用了passthru()函数调用了 net user命令。

    再来看一组TCP 会话,利用之前的方法重组下Cookie 头域中的值。

4

图4

    Cookie 重组后的值:Y2hkaXIoJ0Q6XFdXVycpOyBwYXNzdGhydSgnd2hvYW1pJyk7 base 64解码

5

图5

    可看出使用了passthru()函数调用了 whoami命令。

    Weevely 程序代码分析

6

图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流量样本以便和我们共同参与分析过程!

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注