基于HTTP协议的隧道木马

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、执行结果

猜你喜欢

转载自www.cnblogs.com/ready-gogo/p/12498388.html