美文网首页
一个简易网络嗅探器的实现

一个简易网络嗅探器的实现

作者: 小一的生肖解码图 | 来源:发表于2019-03-11 13:38 被阅读0次

由于很多网络(常见共享HUB连接的内部网)是基于总线方式,物理上是广播的,即当一个机器发给另一个机器数据,共享HUB先收到,然后把它接收到的数据再发给其他的(来的那个端口不发)每一个接口.所以在共享HUB下同一网段的所有机器的网卡都能接收到数据。将局域阿中某台机器的网络接口设置为混杂(promiscuous)模式(即网卡可以接收其收到的所有数据包,下面会详细地讲).那么它就可以捕获网络上所有的报文和帧了.如图1所示。

Sniffer(嗅探器)是一种常用的收集有用数据的方法.这些数据可以是用户的账号和密码,也可以是一些商用机密数据等。Sniffer的正当用处主要是分析网络的流量,以便找出所关心的网络中潜在的问题。在合理的网络中,Sniffer的存在对系统管理员是至关重要的,系统管理员通过Sniffer可以诊断出大量的不可见模糊问题,这些问题涉及两台乃至多台计算机之间的异常通讯,有些甚至牵涉到各种协议。借助于Sniff er,系统管理员可以方便地确定出多少通讯量属于哪个网络协议、占主要通讯协议的主机是哪一台、大多数通讯目的是哪台主机、报文发送占用多少时间,或者相互主机的报文传送间隔时间等,这些信息为管理员判断网络问题、管理网络区域提供了非常宝贵的信息。

嗅探的基本工作

原理就是通过将网卡设置为混杂模式,然后接收所有经过本主机(或设备)的包,并尝试对其进行解包分析。本文通过一个简单的嗅探器的编写.力图使大家能够了解嗅探软件的基本实现方式.并从原理上理解嗅探。本嗅探器的基本工作流程如图2所示,下面我们就来看看这个嗅探器的具体实现。

在进行主函数编写之前,首先我们需要建立几个特殊的数据结构iphdr.tcphdr和udpHdr.这几个数据结构分别代表lP头、TCP头和UDP头的包头结构,用于在接包以后对相应的包进行解析。现在我们来看主函数。主函数首先需要进行初始化,初始化的工作包括使用WSAStanup和Socket函数初始化接受用的套接字Sock.对sockeLin结构的地址变量myaddress赋值(指向本地lP地址).以及使用bind函数将套接字Sock和本地地址变量myaddress绑定在一起,具体内容如下。

然后我们使用一个函数WSAlocil()将网卡设置为混杂模式。

接下来我通过一个简单的循环来接受经过网卡的包,然后进行解包就可以了

这里,我们还需要定义个solve()函数来对接到的数据包进行分析。Solve接收从主函数传递来的缓冲区数据.然后按照IP头.TCP头.UDP头的格式对接收缓冲区数据进行读取,对没有加密的包可以直接读取其数据.加密的包读出的则是乱码。solve函数的具体内容如下。

1、取包头

2、协议判断

3、tcp包的简单解析

4、udp包的简单解析

至此,我们的嗅探就已经基本完成了.图3是运行这个嗅探器抓包的结果。可以看到,这个嗅探器已经可以接收经过本网卡的所有数据包了,并可对不同协议的包进行区分.判断相应标志位,显示报文.已经具备了嗅探器的基本功能。但是本嗅探器由于使用手动抓包,因此丢包较严重,与EtHearl等使用PCAP抓包的工具相比,抓包率大约仅为50%。倘若想要编写一个真正的嗅探器,光靠手动抓包显然是远远不够的.必须要借助PCAP等工具包,才能使嗅探器的功能真正得到实现。

相关文章

  • 一个简易网络嗅探器的实现

    由于很多网络(常见共享HUB连接的内部网)是基于总线方式,物理上是广播的,即当一个机器发给另一个机器数据,共享HU...

  • 想知道如何写一个网络包探嗅器吗?Python教你

    基本嗅探器 嗅探器是一种程序,它可以逐包捕获/嗅探/检测网络流量包,并对其进行各种原因的分析。常用于网络安全领域。...

  • 嗅探

    一般指嗅探器。嗅探器 可以窃听网络上流经的数据包。 用集线器hub组建的网络是基于共享的原理的, 局域网内所...

  • 二、监听网络线路

    进行高效的数据包分析的一个关键决策是在哪里放置数据包嗅探器,以恰当的捕捉网络数据。 安置嗅探器的挑战是要考虑到种类...

  • 实现简单的网络嗅探

    首先声明一下这个技术不是原创的,而且这个工具也比较老了主要是帮助大家稍微理解一下黑客在局域网中是怎么获取数据的。首...

  • 《Wireshark数据包分析实战》(二)监听网络线路

    学习使用Wireshark的读书笔记 嗅探数据包的一个关键决策时在哪里防止数据包嗅探器。由于网络上的3种主要设备(...

  • 网络嗅探

    1、 (1)Why要内网渗透:安全机制严,正面突破难;内网间信任,攻击更容易。 (2)内网渗透技术:嗅探、假消息攻...

  • 如何判断是什么浏览器

    chrome Fire Fox IE IE9 嗅探 其他浏览器嗅探 移动端

  • dns欺骗

    一、Ettercap 使用教程 EtterCap是一个基于ARP地址欺骗方式的网络嗅探工具。它具有动态连接嗅探、动...

  • 安卓webview怎么/获取(劫持)媒体嗅探网页Video标签拿

    安卓webview怎么/获取(劫持)媒体嗅探网页Video标签拿到视频链接? 像QQ浏览器那种嗅探资源实现,找了很...

网友评论

      本文标题:一个简易网络嗅探器的实现

      本文链接:https://www.haomeiwen.com/subject/einvpqtx.html