antiarpsniffer:Sentinel一个小巧的anti-sniffer工具

by xundi


今天早上个朋友问我说啥工具发现网络中被嗅探比较好我说

ISSanti-Snfer不行吗他说太慢!后来记起来以前逛网路时候看到过

这样也是antisnfer类型所以又把其找了出来.

Sentinel主要是设计思想是portable,arrcurate implementation,就是说

小巧点精确实现几个熟知杂乱方式探测技术其中Sentinel支持 3种思路方法

远程杂乱探测模式:DNS测试Etherping测试和ARP测试其中还有种ICMP

ping Latency(ICMP PING反应时间)正在开发中


需要Libnet和libpcap库来支持大家可以到下面地址去下载:

LIbnet 1.0:http://www.packetfactory.net/Projects/libnet

libpcap 0.4:ftp://ftp.ee.lbl.gov/libpcap-0.4.tar.Z


首先说下它其中使用 3种模式:


--ARP测试模式:


这种思路方法是采用发送个ARP请求其中包含所有正确

信息除了伪造目标主机MAC硬件地址给我们目标主机这样如果目

标主机没有处于杂乱模式它将不会理睬这些信息包这些信息包

其认为不是指定给它们所以不会进行响应和回复但如果此目标机器

处于杂乱模式ARP请求就会发生并进行内核处理通过机器回应信息

我们就可以知道其处于杂乱模式这种思路方法结合内核特性来查看机器

运作状态请看下面Etherping 测试模式


-- DNS测试模式:

DNS测试主要是针对网络数据收集工具能执行IP到名字

反转解析来提供DNS名字来代替IP地址(The DNS tests operate _disibledevent=>动网络工具

模式转变为主动网络工具而那些没有监视网络书记工具就不会去解析

信息包中IP地址利用这种信息ANTI SNIFFER工具可以自身在本地主机

中变为杂乱模式并在我们网络中发送无数个伪造主机这样ANTI SNIFFER

工具就可以嗅探DNS请求来查看目标是否在请求解析那些不存在主机


--Etherping 测试模式:



Etherping 测试模式依赖于目标主机内核也就所谓内核测试

在通常情况下硬件网络接口卡过滤和丢弃那些MAC地址区别于自己机器

MAC地址信息包或者不是广播Ethernet 地址地址就是说信息包

是正确和实际Ethernet地址或者是广播Ethernet地址接口就会把这些

地址COPY和传递给内核进行进步处理


但某些系统假定包含在以太帧中数据包含某个目标主机中正确IP地址

或者广播地址但具有区别于本地主机MAC地址当NIC设置为杂乱模式

发送给目标主机每个数据包它还是傻傻传递给操作系统进行分析

样通过发送包含正确IP地址和不正确MAC地址ICMP ECHO包给要检测

主机如果目标主机回应了我们请求我们就知道其处于杂乱模式了


多种LINUX内核存在这种问题其中NETBSD也可以利用这个问题来检测

杂乱模式但需要使用广播地址信息包这种信息包使用带伪造ether

IP地址如66:66:66:66:66:66.


有关WINDOWS9598NT操作系统在杂乱模式中确实是检查信息包

ETHER地址如果信息包NIC ETHER地址符合本地主机就让堆栈来处理

但WINDOWS对广播ether信息包存在问题在普通环境下如机器不在

杂乱模式下NIC只把含有起本身MAC地址信息包或者ether地址是

ff:ff:ff:ff:ff:ff传递给内核但当在杂乱模式中驱动是检查

ETHER地址但它只检查ETHER地址个 8未组是否为Oxff就来判断

信息包是否为广播或者其他因此如果我们建立个包含EHTER地址为

ff:00:00:00:00:00IP正确信息包并发送给目标机器如果其进行

了响应回应就表示起处于杂乱模式


但对WINDOWS这种思路方法是依赖于所用驱动默认微软驱动

有此特性并且大多数供应商驱动也有此特性但某些NIC

过滤广播只是依靠第个 8为组所以这些卡不适合此思路方法



--网络和机器反应时间测试(也可以说ICMP PING反应时间):



这种模式是比较有效测试思路方法依据是靠对操作系统影响来测试

但其中坏处就是这些测试会在短期内产生

多数量网络通信


这些测试假定当网络卡不处于杂乱模式时提供硬件过滤这样信息

包不是指定给本身机器将被网络卡丢弃当在这中情况下在网络通信

信息量将动态增长对操作系统影响很小相反处于杂乱状态机器由于不

对这层进行过滤就把这些信息传递给系统或者用户模式进行过滤会对

操作系统产生比较大影响简单我们先正常情况下PING机器

再我们构建很多伪造TCP连接来ping来ping目标并且注意RTT(round

trip time)这样处于杂乱模式机器由于会处理这些垃圾信息包

影响系统并导致网络反映时间增加然后来比较各个RTT经过多次测试和

人工判断就能决定目标机器上是否存在SNIFFER



Sentinel是根据这些思路方法来进行测试是有源代码形式发放使用于

OPENBSD 2.6 ;FREEBSD 3.X;NETBSD 1.4.1;LINUX2.2.X平台


编译后使用思路方法为:

#./sentinel -t 192.168.0.1 -a 是ARP测试


#./sentinel -t 192.168.0.1 -e 是etherping test;


#./sentinel -t 192.168.0.1 -f 1.1.1.1 -d 是DNS测试;


#./sentinel -t 192.168.0.1 -f 1.1.1.1 -d -a -e 是允许所有模式进行测试;



参考:1http://www.sentinel.net/projects/sentinel/ README;

2http://www.l0pht.com/antisnf/tech-paper.html




水平太有限希望大家多多扶持偶这个幼苗

[email protected] 2000-06-27



  • 篇文章: 免费snfer--snfit

  • 篇文章: 使用snfer捕获加密包和非加密包
  • Tags:  safenetsentinel harddisksentinel sentinel antiarpsniffer

    延伸阅读

    最新评论

    发表评论