[开源]发个最近写的 MAC地址扫描工具(带Delphi源码)
写得不怎样,原本没打算拿出来现丑的,这里太冷清了点,遂发出来共享。这个是Delphi 2007下写的,需要Indy的ICMP控件 (Delphi2006应该也能编译,因为都带的是Indy10)
原理就是多线程Ping一个网关下的所有主机,然后导出ARP缓存。
因为Ping前会发出ARP请求获取每个IP的MAC地址,所以在Ping完后用 arp -a 取得本机ARP缓存。
最后就是读入arp -a 的返回,并存起来备查。
[color=Red]关于探查防火墙[/color],程序中有防火墙的定义是:有ARP回应但无法Ping通的主机,所以请自行斟琢...
程序中有什么问题的可以直接在下面跟帖,我会定期查看的。
[[i] 本帖最后由 grsgrs 于 2008-2-2 15:11 编辑 [/i]] 原理很简单,但是实际使用中多多少少有些问题。比如用30线程同时扫描,之后执行arp -a,会得到一大堆类似于:
192.168.0.125 00-00-00-00-00-00 invalid
192.168.0.126 00-00-00-00-00-00 invalid
192.168.0.127 00-00-00-00-00-00 invalid
192.168.0.128 00-00-00-00-00-00 invalid
192.168.0.129 00-00-00-00-00-00 invalid
192.168.0.130 00-00-00-00-00-00 invalid
的信息,再次扫描却又很正常。实在想不出来为什么,于是把这些 invalid 的arp缓存都过滤掉了:L 。
这种状况只有发起线程比较多时容易出现,不过不影响使用就是了。
开发这个工具是为了对付局域网中的ARP攻击。将拦截到的MAC地址输入右下的查询框回车,就可以找到目标的真实IP。
然后拿出OmniPeek,咱也用ARP回敬吧:lol
[[i] 本帖最后由 grsgrs 于 2008-2-2 15:10 编辑 [/i]]
LOOK
学习一下 学习了,谢谢。 能不能把主机名称也加进去,更好些:) 这个用icmp ping说实话感觉不是正经的途径啊,因为有arp协议嘛,而且icmp ping可能会被防火墙过滤掉的啊
搞了个用arp协议的,对局域网每个ip地址发arp请求,有一个单独的线程监听网络
对每个针对自己的arp答复,分析数据,输出结果
额,这个是命令行的,木有界面
测试环境VMware-workstation-5.5.1-19175 + Debian3.2-i386
我木有linux机器用。。。
[attach]17275[/attach] 支持你..:loveliness: [quote]原帖由 [i]chinit[/i] 于 2008-6-6 13:05 发表 [url=http://www.netexpert.cn/redirect.php?goto=findpost&pid=125378&ptid=18541][img]http://www.netexpert.cn/images/common/back.gif[/img][/url]
这个用icmp ping说实话感觉不是正经的途径啊,因为有arp协议嘛,而且
icmp ping可能会被防火墙过滤掉的啊
搞了个用arp协议的,对局域网每个ip地址发arp请求,有一个单独的线程监听网络
对每个针对自己的arp答 ... [/quote]
确实用ICMP不好,不过防火墙只是拦截ICMP的返回信息,ARP的回应不会过滤,这个就是我判断防火墙存在的依据。
我也想过用ARP请求包探查局域网节点,不过这种扫描方式依然不隐蔽,发起攻击前必然会对局域网所有机器发一遍ARP请求,很容易被查出来。
我想的办法是通过写一个ARP Sniffer抓ARP包,先取得一部分IP地址的对应MAC。就算这些IP地址里没有目标主机,也可以减少探测主机的数量,从而隐蔽发动攻击前的扫描行为。不过最近比较忙,暂时只写好了抓包部分。 学习了,谢谢lz 学习了
[img]http://www.gh136.cn/images/QQ_32119616/sigline.gif[/img]
[url=http://www.365xxg.cn/files/article/x/4/4644/]盘龙最新章节[/url] 希望能多公开些源码,谢谢楼主了,正好学习:) 好东东,虽然不懂编程,但对网络分析方面的很感兴趣现在,希望有多的内容学。 学习了 :) :) :) 确实是很有用的一个程序,以前中了ARP,查不出是哪台机器,以后可以查找了。 有才!!支持 太 高深了,木看懂 感谢分享~~~
用 PING 广播地址可以吗?
用 PING 广播地址可以吗?页:
[1]