嗅探(窃听网络上流经的数据包)

当你舒适的坐在家里,惬意的享受网络给你带来的便利,收取你的EMAIL,购买你喜欢的物品的时候,你是否会想到你的朋友给你的信件,你的信用卡帐号变成了一个又一个的信息包在网络上不停的传送着,你是否想过,这些信息包会通过网络流入别人的机器呢?你的担忧不是没有道理的,因为SNIFF可以让你的担忧变成实实在在的危险。就好像一个人躲在你身后偷看你一样。

基本介绍

一般指嗅探器。嗅探器 可以获取网络上流经的数据包。 用集线器hub组建的网络是基于共享的原理的, 局域网内所有的计算机都接收相同的数据包, 而网卡构造了硬件的“过滤器“ 通过识别MAC地址过滤掉和自己无关的信息, 嗅探程序只需关闭这个过滤器, 将网卡设置为“混杂模式“就可以进行嗅探 用交换机switch组建的网络是基于“交换“原理的 ,交换机不是把数据包发到所有的端口上, 而是发到目的网卡所在的端口,这样嗅探起来会麻烦一些,嗅探程序一般利用“ARP欺骗“的方法,通过改变MAC地址等手段,欺骗交换机将数据包发给自己,嗅探分析完毕再转发出去。

网络基础知识

TCP/IP体系结构

开放系统互连(OSI)模型将网络划分为七层模型,分别用以在各层上实现不同的功能,这七层分别为:应用层、表示层、会话层、传输层、网络层、数据链路层及物理层。而TCP/IP体系也同样遵循这七层标准,只不过在某些OSI功能上进行了压缩,将表示层及会话层合并入应用层中,所以实际上我们打交道的TCP/IP仅仅有5层而已,网络上的分层结构决定了在各层上的协议分布及功能实现,从而决定了各层上网络设备的使用。实际上很多成功的系统都是基于OSI模型的,如:如帧中继、ATM、ISDN等。

TCP/IP的网络体系结构(部分)

从上面的图中我们可以看出,第一层物理层和第二层数据链路层是TCP/IP的基础,而TCP/IP本身并不十分关心低层,因为处在数据链路层的 网络设备驱动程序 将 上层的协议 和 实际的物理接口 隔离开来。网络设备驱动程序位于介质访问子层(MAC)

网络上的设备

中继器:中继器的主要功能是终结一个网段的信号并在另一个网段再生该信号,一句话,就是简单的放大而已,工作在物理层上
网 桥:网桥使用MAC物理地址实现中继功能,可以用来分隔网段或连接部分异种网络,工作在数据链路层
路由器:路由器使用网络层地址(IP,X.121,E.164等),主要负责数据包的路由寻径,也能处理物理层和数据链路层上的工作。
网 关:主要工作在网络第四层以上,主要实现收敛功能及协议转换,不过很多时候网关都被用来描述任何网络互连设备。

TCP/IP与以太网
以太网和TCP/IP可以说是相辅相成的,可以说两者的关系几乎是密不可分,以太网在一二层提供物理上的连线,而TCP/IP工作在上层,使用32位的IP地址,以太网则使用48位的MAC地址,两者间使用ARP和RARP协议进行相互转换。

载波监听/冲突检测(CSMA/CD)技术被普遍的使用在以太网中,所谓载波监听是指在以太网中的每个站点都具有同等的权利,在传输自己的数据时,首先监听信道是否空闲,如果空闲,就传输自己的数据,如果信道被占用,就等待信道空闲。而冲突检测则是为了防止发生两个站点同时监测到网络没有被使用时而产生冲突。以太网采用广播机制,所有与网络连接的工作站都可以看到网络上传递的数据。

SNIFF原理

要知道在以太网中,所有的通讯都是广播的,也就是说通常在同一个网段的所有网络接口都可以访问在物理媒体上传输的所有数据,而每一个网络接口都有一个唯一的硬件地址,这个硬件地址也就是网卡的MAC地址。在硬件地址和IP地址间使用ARP和RARP协议进行相互转换。

在正常的情况下,一个网络接口应该只响应这样的两种数据帧:
1.与自己硬件地址相匹配的数据帧。
2.发向所有机器的广播数据帧。

在一个实际的系统中,数据的收发是由网卡来完成的,网卡接收到传输来的数据,网卡内的单片程序接收数据帧的目的MAC地址,根据计算机上的网卡驱动程序设置的接收模式判断该不该接收,认为该接收就接收后产生中断信号通知CPU,认为不该接收就丢掉不管,所以不该接收的数据网卡就截断了,计算机根本就不知道。CPU得到中断信号产生中断,操作系统就根据网卡的驱动程序设置的网卡中断程序地址调用驱动程序接收数据,驱动程序接收数据后放入信号堆栈让操作系统处理。而对于网卡来说一般有四种接收模式:
广播方式:该模式下的网卡能够接收网络中的广播信息。 
组播方式:设置在该模式下的网卡能够接收组播数据。
直接方式:在这种模式下,只有目的网卡才能接收该数据。
混杂模式:在这种模式下的网卡能够接收一切通过它的数据,而不管该数据是否是传给它的。

总结一下,首先,我们知道了在以太网中是基于广播方式传送数据的,也就是说,所有的物理信号都要经过我的机器,再次,网卡可以置于一种模式叫混杂模式(promiscuous),在这种模式下工作的网卡能够接收到一切通过它的数据,而不管实际上数据的目的地址是不是他。这实际上就是我们SNIFF工作的基本原理:让网卡接收一切他所能接收的数据。

我们来看一个简单的例子,机器A、B、C与集线器HUB相连接,集线器HUB通过路由器Router访问外部网络。这是一个很简单也很常见的情况,比如说在公司大楼里,我所在的网络部办公室里的几台机器通过集线器连接,而网络部、开发部、市场部也是同样如此,几个部门的集线器通过路由器连接。

我们假设一下机器A上的管理员为了维护机器C,使用了一个FTP命令向机器C进行远程登陆,那么在这个用HUB连接的网络里数据走向过程是这样的:

  • 首先机器A上的管理员输入的登陆机器C的FTP口令经过应用层FTP协议传输层TCP协议网络层IP协议数据链路层上的以太网驱动程序一层一层的包裹,最后送到了物理层,我们的网线上。接下来数据帧送到了HUB上,现在由HUB向 每一个接点 广播由机器A发出的数据帧,机器B接收到由HUB广播发出的数据帧,并检查在数据帧中的地址是否和自己的地址相匹配,发现不是发向自己的后把这数据帧丢弃,不予理睬。而机器C也接收到了数据帧,并在比较之后发现是发现自己的,接下来他就对这数据帧进行分析处理。

在上面这个简单的例子中,如果机器B上的管理员如果很好奇,他很想知道究竟登陆机器C上FTP口令是什么?那么他要做的很简单,仅仅需要把自己机器上的网卡置于混杂模式,并对接收到的数据帧进行分析,从而找到包含在数据帧中的口令信息。

嗅探程序一般利用“ARP欺骗“的方法,通过改变MAC地址等手段,欺骗交换机将数据包发给自己,嗅探分析完毕再转发出去。

可用的ARP欺骗软件有kali上的Ettercap。

嗅探(窃听网络上流经的数据包)相关推荐

  1. java 网络流量统计_IP数据包的流量统计(JAVA语言)

    如果不显示图片,或者出现排版错误,抽风,崩坏,节操丢失等一系列不正常情况,请点击下面链接观看,点我 IP数据包的流量统计(JAVA语言) 要求:编制程序,监控网络,捕获一段时间内网络上的IP数据包,按 ...

  2. Linux内核网络协议栈:udp数据包发送(源码解读)

    <监视和调整Linux网络协议栈:接收数据> <监控和调整Linux网络协议栈的图解指南:接收数据> <Linux网络 - 数据包的接收过程> <Linux网 ...

  3. TCP/IP网络协议栈:以太网数据包结构、802.3、MTU

    <TCP/IP网络协议栈:以太网数据包结构.802.3> <TCP/IP网络协议栈:ARP协议详解> <TCP / IP攻击:ARP缓存中毒的基本原理.TCP序列号预测和 ...

  4. 网络分流器-DPI深度数据包检测

    网络分流器-戎腾网络-DPI检测是当前比较流行的网络监控前端的一种模式,而网络分流器对于网络安全的重要性可以说是到头重要的!今天我们来聊聊DPI检测 深度数据包检测(DPI) 深度数据包检测(Deep ...

  5. 网络分流器-DPI深度数据包检测技术及作用

    戎腾网络分流器又名核心网采集器,作为网络安全领域网络监控前端重要的基础装备,是整个网络安全中不可缺少的必要装备!对网络安全起到了关键作用! 戎腾当前固网已经升级到400G,支持不同链路,移动互联网信令 ...

  6. 网络分流器-网络分流器-DPI深度数据包检测

    网络分流器-戎腾网络-DPI检测是当前比较流行的网络监控前端的一种模式,而网络分流器对于网络安全的重要性可以说是到头重要的!今天我们来聊聊DPI检测 深度数据包检测(DPI) 深度数据包检测(Deep ...

  7. android 之ListView分页效果以及从网络上加载数据一系列的综合运用

    数据分页策略: <1>:用多少查多少 <2>:全部查询出来,再进行分页处理 数据分页的有关算法: (1):起始索引值 = (当前页-1)*每页显示的记录数 (2):结束索引值 ...

  8. linux上查看cap文件,如何使用tcpdump在Mac OS X上读取.cap数据包捕获文件 | MOS86

    还可以执行数据包跟踪或嗅探和捕获来自网络的数据包,结果通常是创建一个.上限捕获文件.那个无论您使用何种嗅探网络,网络管理员和安全性专业人士中相当常见的任务,都会创建cap,pcap或wcap数据包捕获 ...

  9. Linux内核分析 - 网络[一]:收发数据包的调用

    什么是NAPI NAPI是linux一套最新的处理网口数据的API,linux 2.5引入的,所以很多驱动并不支持这种操作方式.简单来说,NAPI是综合中断方式与轮询方式的技术.数据量很低与很高时,N ...

  10. 【网络原理】一个数据包从发送到接收在网络中经历了那些过程(详细分析)

    一个数据包从发送到接收在网络中经历了那些过程 假设学生给老师发送电子邮件,内容为:"老师您好!".从计算机A向另一台计算机B发送电子邮件,站在网络原理的角度来分析整个过程. 启动应 ...

最新文章

  1. c编写程序完成m名旅客和n辆汽车的同步程序代写
  2. caffe loss
  3. Excel表中分类汇总数据如何只复制结果
  4. 配置单节点伪分布式Hadoop
  5. 【迁移学习】隐私保护下的迁移算法
  6. C与C++在形参的一点小区别
  7. Mapgis图转换为可导入软件的shp
  8. 作者:冯仕政(1974-),男,中国人民大学社会与人口学院教授、副院长。
  9. 数据结构之图的存储结构:邻接多重表
  10. oracle创建表空间、用户
  11. 可定制的PHP缩略图生成程式(需要GD库支持)
  12. ## CSP 201809-2 买菜(C语言)(100分)
  13. 教你如何写第一个jsp页面
  14. mac升级Monterey12.3 AccessClient打不开
  15. 浪潮全球化的一面:从OEM到JDM,从ODCC到OCP
  16. python字典进行大写转化_python 字符串转大写_Python字符串大写()
  17. RabbitMQ学习笔记:高级特性TTL(过期时间)
  18. Android、Java要收费了!学霸程序员怒捅马蜂窝,沙特记者命运?GitHub挂了!
  19. 百度大脑开放日召开,安全生产智能视频监控解决方案用AI助力生产安全防控
  20. CI框架的使用-原生SQL和ORM模式操作数据库、视图

热门文章

  1. BNNVGG3-BNN Net
  2. 【懒人神器,批量src】Serein,一个可以对无数个网站进行漏洞检测的软件
  3. 使用FOP将xml转换pdf
  4. ASP网站访问量计数器
  5. android 渠道排名,安卓APP渠道效果统计***排名
  6. eclipse背景设置绿豆色
  7. 九、springboot+ idea + gradle使用jib打docker镜像
  8. Python面向对象版学员管理系统
  9. 【水晶报表内功心法】--公式、函数与运行时总计 注:(文章来自阿泰博客)
  10. 十足的跳槽理由有哪些?