1、为什么要采用HTTP协议木马
木马基于TCP和UDP协议会产生明显的通讯特征,如独有的端口、协议数据格式等。这些通讯特征很容易被发现,进而导致木马被拦截。而基于已有的应用层协议,如
http/https等,将木马的控制命令和数据包含在这些协议的内容部分,使得木马的通信和正常的软件相比,不再具有明显的特征;同时还可以穿透一些安全软件的过滤检测,
保证木马的正常通信。
2、HTTP协议介绍
http协议是一种应用层协议,是请求---应答式协议。
1)请求格式
带参数的get请求方法:
GET /listNews?pageSize=20&pageIndex=1 http/1.1 Host: 127.0.0.1:8080 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 Accept: application/json
带参数的post请求方法
POST /listNews http/1.1 Host: 127.0.0.1:8080 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 Accept: application/json Content-Type: application/x-www-form-urlencoded pageIndex=1&pageSize=20
2)相应格式
3、通信流程
1)被控端每隔一段时间发送get请求
2)控制端接收get请求时,查询控制端"命令槽"
3)如果"命令槽"中存在需要发送的命令,则控制端从"命令槽"中取出一条命令,包含在get响应包中,控制端发送get响应
4)如果"命令槽"中不存在需要发送的命令,则控制端将“nan”包含在get响应中,控制端发送get响应
5)被控端接收get响应,解析出包含的命令,如果是"nan",则回到1)执行。
6)被控端接收get响应,解析出包含的命令,如果是需要指令的命令,则在被控端本地指令。
7)被控端发送post请求,包含“命令执行结果”。
8)控制端接收post请求,解析出包含的“命令执行结果“
9)控制端发送post响应
4、执行结果
5、wireshark抓包查看
应用层数据通讯已经是通过http协议了,抓包如下: