概述
Ghost Tunnel技术相关介绍请参考:
《Ghost Tunnel:适用于隔离网络的WiFi隐蔽传输通道》
通过文章我们知道,实现这种攻击需要满足一下条件:
- 需要在目标机中植入客户端程序,用以接收指令和发送目标机信息到控制端,植入方式可以为远程植入、现场植入;
- 目标机需要具备无线网络适配器,一般笔记本是自带无线网卡的,其它情况可以插入USB无线网卡实现;
- 目标机发送数据利用的是Probe Request帧实现,将待发送的数据附加到Probe Request帧中,封装成有效载荷并发送;
- 目标机接收数据利用的是Probe Response帧实现,以同样的方式附加有效载荷到Probe Response帧中;
实践平台环境:
目标机:IBM 笔记本 windows 7 x64系统
控制机:Ubuntu x64系统
控制端程序:hostapd
根据相关文档介绍,有效载荷的数据存储结构如下:
Element ID | Payload Length | Payload |
1 byte | 1 byte | 0-240 |
对此设计数据结构:
#include <PshPack1.h>
struct ie_data
{
unsigned char id;
unsigned char len;
unsigned char val[1];
};
#include <PopPack.h>
数据结构要1字节对齐。
在windows平台,发送、接收数据用到的API主要有一下几个:
WlanEnumInterfaces
WlanScan
WlanGetNetworkBssList
这里贴出封装发送Payload的主要代码:
struct ie_data *piedata = NULL;
int response_len = 0;
char *response = NULL;
response_len = sizeof(WLAN_RAW_DATA) -1 + sizeof(struct ie_data) -1 + len;
response = (char *)malloc(response_len);
memset(response, '