Weevely使用及源码分析(二)

本文深入分析了Weevely工具的两种PHP模板(stegaref_php.tpl和legacycookie_php.tpl)的后门机制,包括协议交互、数据包结构、加密payload解密过程。通过Wireshark抓包,展示了请求包和响应包的内容,并详细解释了数据包载荷如何在Referer头和Cookie中隐藏。通过对Weevely源码的分析,揭示了webshell控制通道的工作原理和核心函数send()的流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 定义(术语、名词解释)

   客户端:运行Weevely进程的计算机。
   服务端:存有PHP木马的服务器。

2. 协议交互流程

   在客户端,Weevely每执行一条命令就通过HTTP协议发出一条GET/POST请求;在服务端,木马针对每条GET/POST请求作出响应,产生一条响应包。

3. 数据包及源码分析

   通过对源代码进行走读以及wireshark进行抓包分析,可以看出Weevely主要生成的php后门文件主要有三种模板:stegaref_php.tpl,legacycookie_php.tpl,stegaref_php_debug.tpl。其中stegaref_php.tpl与stegaref_php_debug.tpl两种php模板类似,主要特点是返回的response_body中的标签stegaref_php.tpl为<连接密码md5加密前八位>标签,stegaref_php_debug.tpl为:<连接密码md5加密前八位+DEBUG>标签,同时响应体中的内容stegaref_php_debug.tpl模板把主要的有用数据字段全都显示出来了,主要用于前期debug使用,所以本文档主要分析了stegaref_php.tpl和legacycookie_php.tpl两种使用模板。

3.1 stegaref_php.tpl模板

   以ip为136的kali虚拟机为客户端对含有后门文件的ip为137的kali虚拟机作为服务器进行远程连接。连接成功后在客户端命令行中输入命令whoami查看回显内容。通过Wireshark我们抓取到了两个TCP数据流。分别为:

3.1.1 请求包

数据包

GET /backdoor.php HTTP/1.1
Accept-Encoding: identity
Accept-Language: uk-UA,mi;q=0.5,mt;q=0.7,mk;q=0.8
Host: 192.168.182.137
Accept: text/html,text/plain;0.9,*/*
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.1 (KHTML, like Gecko) Chrome/6.0.427.0 Safari/534.1
Connection: close
Referer: http://www.google.bt/url?sa=t&rct=j&q=168.182.137&source=web&cd=799&ved=bd6Tfh__3&url=168.182&ei=z5HrNlsxt6GOIdThqz-xn9&usg=_WO2gRIcnxgee6zgNBv-_H_-rGFUhmIHND

分析

HTTP攻击载荷主要存储于Referer头中,通过Accept-Language头中存储的sessionid和payload的数组偏移量对加密的payload进行提取。|

数据包

GET /backdoor.php HTTP/1.1
Accept-Encoding: identity
Accept-Language: ur-PK,mh;q=0.4
Connection: close
Accept: text/html,application/xml;0.9,*/*
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4
Host: 192.168.182.137
Cookie: PHPSESSID=fkdt4fv5tkn3q2hnhp10rv65o5
Referer: http://translate.googleusercontent.com/translate_c?depth=1&rurl=translate.google.com&sl=auto&tl=en&usg=hiNRM7PjQ220tyDdwupmXEp1ZrLJkF0aFf

分析

HTTP攻击载荷主要存储于Referer头中,通过Accept-Language头中存储的sessionid和payload的数组偏移量对加密的payload进行提取。

   通过对Weevely源码进行分析,确定数据包格式主要通过7种不同的构造Referer数据报头方法进行对加密的payload进行填充。Referer头格式为:

http://www.google.${ tpl.rand_google_domain() }/url?sa=t&rct=j&q=${ tpl.target_name() }&source=web&cd=${ tpl.rand_number(3) }&ved=${ tpl.payload_chunk(9) }&url=${ tpl.target_name() }&ei=${ tpl.payload_chunk(22) }&usg=${ tpl.payload_chunk(34) }
h
### 获取和使用WebShell的安全注意事项 对于渗透测试人员来说,在合法授权的情况下,获取并使用WebShell进行安全评估是一项复杂的工作。重要的是要确保操作完全符合法律框架,并获得适当许可。 #### 合法途径获取WebShell工具 为了研究目的或内部安全性审查,建议通过官方渠道下载知名的开源项目来构建自己的WebShell环境。例如,可以从GitHub仓库克隆知名且评价良好的项目[^1]: ```bash git clone https://github.com/breaktoprotect/webshell.git ``` 这允许团队成员共同维护代码库的同时也便于审计其源码质量。 #### 使用前准备 在部署任何类型的WebShell之前,务必确认服务器端已安装相应编程语言运行时环境。由于PHP是最常用的WebShell编写语言之一,因此通常需要配置好支持PHP解析的服务平台,如LAMP/WAMP堆栈下的Apache/Nginx加PHP-FPM组合。 #### 安全措施与最佳实践 - **隔离测试环境**:创建独立于生产系统的虚拟机或容器实例作为实验场地。 - **访问控制列表(ACLs)设置**:严格限制谁能接触这些资源及其权限范围。 - **日志记录与监控**:启用详细的HTTP请求/响应跟踪机制以便事后分析异常行为模式。 - **定期更新补丁程序**:保持所有软件组件处于最新状态以修补潜在漏洞。 #### 工具选择指南 当挑选具体使用的WebShell客户端应用时,可以考虑功能特性、易用性和社区活跃度等因素。像“冰蝎”这样的国产工具提供了图形界面友好型的操作面板,适合初学者快速上手;而Weevely则以其轻量化设计著称,适用于更隐蔽的任务场景[^2][^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值