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協議了,抓包如下: