谁能说一下sniffer的原理?

scarab 2002-01-24 06:51:48
...全文
110 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
startsun 2002-01-25
  • 打赏
  • 举报
回复
网上搜索一下,太多了
test09test 2002-01-25
  • 打赏
  • 举报
回复
但你装sniffer机器上的网卡处于混杂模式时,解析通过的ip包,检控各port.
neptune_hay 2002-01-25
  • 打赏
  • 举报
回复
原理:(大致)
首先,要知道SNIFFER要捕获的东西必须是要物理信号能收到的报文信息。显然只要通知网卡接收其收到的所有包(一般叫作杂收promiscuous模式:指网络上的所有设备都对总线上传送的数据进行侦听,并不仅仅是它们自己的数据。),在共享HUB下就能接收到这个网段的所有包,但是交换HUB下就只能是自己的包加上广播包。

要想在交换HUB下接收别人的包,那就要让其发往你的机器所在口。交换HUB记住一个口的MAC是通过接收来自这个口的数据后并记住其源MAC,就像一个机器的IP与MAC对应的ARP列表,交换HUB维护一个物理口(就是HUB上的网线插口,这之后提到的所有HUB口都是指网线插口)与MAC的表,所以可以欺骗交换HUB的。可以发一个包设置源MAC是你想接收的机器的MAC,那么交换HUB就把你机器的网线插的物理口与那个MAC对应起来了,以后发给那个MAC的包就发往你的网线插口了,也就是你的网卡可以SNIFFER到了。注意这物理口与MAC的表与机器的ARP表一样是动态刷新的,那机器发包后交换HUB就又记住他的口了,所以实际上是两个在争,这只能应用在只要收听少量包就可以的场合。

内部网基于IP的通信可以用ARP欺骗别人机器让其发送给你的机器,如果要想不影响原来两方的通信,可以欺骗两方,让其都发给你的机器再由你的机器转发,相当于做中间人,这用ARP加上编程很容易实现。并且现在很多设备支持远程管理,有很多交换HUB可以设置一个口监听别的口,不过这就要管理权限了。

利用这一点,可以将一台计算机的网络连接设置为接受所有以太网总线上的数据,从而实现sniffer。Sniffer就是一种能将本地网卡状态设成‘杂收’状态的软件,当网卡处于这种“杂收”方式时,该网卡具备“广播地址”,它对遇到的每一个帧都产生一个硬件中断以便提醒操作系统处理流经该物理媒体上的每一个报文包。(绝大多数的网卡具备置成杂收方式的能力)

可见,sniffer工作在网络环境中的底层,它会拦截所有的正在网络上传送的数据,并且通过相应的软件处理,可以实时分析这些数据的内容,进而分析所处的网络状态和整体布局。值得注意的是:sniffer是极其安静的,它是一种消极的安全攻击。

嗅探器在功能和设计方面有很多不同。有些只能分析一种协议,而另一些可能能够分析几百种协议。一般情况下,大多数的嗅探器至少能够分析下面的协议:标准以太网、TCP/IP、IPX、DECNet。

superLee 2002-01-24
  • 打赏
  • 举报
回复
在单选性网络中, 以太网结构广播至网路上所有的机器, 但是只有预定接受信息包的那台计算机才会响应. 不过网路上其他的计算机同样会"看到"这个信息包,但是如果他们不是预定的接受者,他们会排除这个信息包. 当一台计算机上运行着sniffer的时候并且网络处于监听所有信息交通的状态, 那么这台计算机就有能力浏览所有的在网络上通过的信息包.
scarab 2002-01-24
  • 打赏
  • 举报
回复
学知识啊。没有恶意
ahphone 2002-01-24
  • 打赏
  • 举报
回复
你知道嗅探器的原理后打算干嘛?

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧