Dsniff是一个著名的网络嗅探工具包。其开发者Dug Song早在1999年12月,以密歇根大学CITI研究室(Center for Information Technology Integration)的研究成果为基础,开发了这个后来具有很大影响力的网络安全工具包。Dug Song开发Dsniff的本意是揭示网络通信的不安全性,借助这个工具包,网络管理员可以对自己的网络进行审计,也包括渗透测试。但万事总有其两面性,Dsniff所带来的负面作用也是“巨大”的,首先它是可以自由获取的,任何拥有这个工具包的人都可能做“非正当”的事,其次,Dsniff里面的某些工具,充分揭示了一些安全协议的“不安全性”,例如针对SSH1和SSL的MITM(Man-In-The-Middle)攻击工具—SSHmitm和Webmitm。SSH1和SSL都是建立网络通信加密通道的机制,向来被认为是很安全的,但人们在具体使用时,往往因为方便性上的考虑而忽视了某些环节,造成实事上的不安全。所以说,最大的不安全性,往往并不在于对安全的一无所知,而在于过于相信自己的安全。

Dub Song在2000年12月发布了Dsniff的v2.3版本,该版本支持OpenBSD、Linux、Solaris系统平台。目前,最新版本是2001年3月发布的v2.4b1的Beta版。Dsniff的下载网址:http://monkey.org/~dugsong/dsniff/
除了针对Unix系统的版本,从网上也可以得到Windows平台上运行的Dsniff早期版

作为一个工具集,dsniff包括的工具分为四类:

  • 纯粹被动地进行网络活动监视的工具,包括:dsniff、filesnarf、mailsnarf 、msgsnarf、urlsnarf、webspy
  • 针对SSH和SSL的MITM(Man-In-The-Middle)“攻击”工具,包括sshmitm和webmitm
  • 发起主动欺骗的工具,包括:arpspoof、dnsspoof、macof
  • 其它工具,包括tcpkill、tcpnice

dsniff的安装

Dsniff依赖于一些第三方的软件包:

openssl-0.9.7i.tar.gz
libnids-1.18.tar.gz
libpcap-0.7.2.tar.gz
libnet-1.0.2a.tar.gz
Berkeley db-4.7.25.tar.gz

我使用的操作系统是RHEL5

一、安装openssl

注意:这里都采用默认配置,如果要修改安装的目录,可以参考软件包里的install文件

用tar解压软件包后,执行三条命令:

  1. ./config

  2. make

  3. make install

二、安装libpcap

用tar解压软件包后,执行三条命令:

  1. ./configure

  2. make

  3. make install

三、安装libnet

用tar解压软件包后,执行三条命令:

  1. ./configure

  2. make

  3. make install

四、安装libnids

用tar解压软件包后,执行三条命令:

  1. ./configure

  2. make

  3. make install

五、安装Berkeley DB

用tar解压软件包后,执行

  1. cd build_unix

  2. ../dist/configure

  3. make

  4. make install

六、最后安装dsniff

用tar解压软件包后,执行

  1. ./configure

  2. make

  3. make install

七、演示(注:安装中过长的编译过程被我删减了)

安装完成后,默认dsniff的安装目录是/usr/local/sbin,在这里可以看到dsniff所有的工具

dsniff工具介绍

  • 纯粹被动地进行网络活动监视的工具,包括:dsniff、filesnarf、mailsnarf 、msgsnarf、urlsnarf、webspy
  • 针对SSH和SSL的MITM(Man-In-The-Middle)“攻击”工具,包括sshmitm和webmitm
  • 发起主动欺骗的工具,包括:arpspoof、dnsspoof、macof
  • 其它工具,包括tcpkill、tcpnice
dsniff

dsniff是一个密码侦测工具,他能够自动分析端口上收到的某些协议的数据包,并获取相应的密码。dnisff支持的协议有FTP, Telnet, SMTP, HTTP, POP, poppass, NNTP, IMAP, SNMP, LDAP, Rlogin, RIP, OSPF, PPTP MS-CHAP, NFS, VRRP, YP/NIS, SOCKS, X11, CVS, IRC, AIM, ICQ, Napster, PostgreSQL, Meeting Maker, Citrix ICA, Symantec pcAnywhere, NAI Sniffer, Microsoft SMB, Oracle SQL*Net, Sybase and Microsoft SQL。

dsniff [-c] [-d] [-m] [-n] [-i interface] [-s snaplen] [-f services] [-t trigger[,...]]] [-r|-w savefile] [expression]     注意:这里所有的expression都是代表TCPDUMP的表达式,指定对哪些数据包进行攻击

filesnarf

filesnarf可以嗅探网络文件系统(NFS)的流量,并选定某个文件,转储到本地当前工作目录

filesnarf [-i interface] [[-vpattern [expression]]

mailsnarf

mailsnarf可以嗅探SMTP和POP流量,并以Berkeley邮件格式输出e-mail消息

mailsnarf [-i interface] [[-vpattern [expression]]

嗅探发送的SMTP流量:

嗅探接收的POP流量:

msgsnarf

msgsnarf可以嗅探聊天软件的聊天内容,包括AOL,ICQ 2000, IRC, MSN Messenger, 或Yahoo Messenger

msgsnarf [-i interface] [[-vpattern [expression]]

urlsnarf

urlsnarf可以嗅探HTTP请求报文的内容,并以CLF (Common Log Format)通用日志格式输出

urlsnarf [-n] [-i interface] [[-vpattern [expression]]

webspy

webspy指定一个要嗅探的主机,如果指定主机发送HTTP请求,打开网页,webspy也会通过netscape浏览器在本地打开一个相同的网页

webspy [-i interfacehost   host指定要嗅探的主机

sshmitm

sshmitm是Dsniff自带的一个具有威胁的工具之一。首先通过dnsspoof伪造实际机器主机名将攻击目标主机的SSH连接转到本地,那么sshmitm可以截获来自主机的密钥,并获得被劫持连接中的所有信息解码,然后重新转发SSH流量到SSH服务器。

sshmitm可以对某个SSH会话发动MITM(Monkey-In-The-Middle)攻击(注意,这里的Monkey是Dsniff包readme文件中的解析,而不是常见的Man,这种区别实际上是没有“区别”,也许就是因为Dsniff以猴子做为其标志的原因吧)。通过sshmitm,攻击者可以捕获某个SSH会话的登录口令,甚至可以“劫持”整个会话过程(攻击者在其主机上通过OpenSSL提供的代码生成伪造的证书,以欺骗目标主机,使之相信就是有效的通信另一方,结果是,攻击者主机成了SSH安全通道的中转站)。目前,对于SSH1,这种MITM攻击已经构成了严重的威胁。MITM并不是一个新的概念,它是一种对认证及密钥交换协议进行攻击的有效手段。通常,在SSH会话中,服务器首先会给客户端发送其公钥,严格来说,这种密钥的交换和管理应该是基于X.509这种公钥基础设施(PKI)的,但因为PKI本身的复杂性导致真正应用了这种公钥管理机制的服务器非常少,所以,通常情况下,服务器只是简单的自己生成密钥对,并将其中的公钥发送给客户端。客户端收到服务器的公钥后,必须独立验证其有效性。通常,使用SSH的客户端会由sysadmin或其它账号来维护一个“密钥/主机名”的本地数据库,当首次与某个SSH服务器建立连接时,客户端可能被事先配制成自动接受并记录服务器公钥到本地数据库中,这就导致可能发生MITM攻击。其实,建立加密的安全网络都存在一个基本的问题,无论如何,某种程度上讲,加密通道的初始化连接总是建立在一个存在潜在危险的网络之上的,如果密钥交换机制并不健全,或者是根本就被忽略了,那之后建立起来的加密通道也形同虚设了。按道理讲,SSH之类的协议本身是没有问题的,只要严格按照标准来建立加密及密钥交换管理机制(例如PKI),攻击者是根本不会有可乘之机的,可问题就在于,许多时候,为了使用上的方便,“复杂”的保证技术就被人们抛之脑后了。当然,一种协议如果其可用性并不很强,也许本身就是问题,现在,SSH2较SSH1已经有了较大改进。具体来说,在某个SSH连接建立之初,如果客户端收到一个未知的服务器端公钥,OpenSSH会有下列配置处理方式:

  1. 自动增加该公钥到本地数据库;
  2. 发出下面列出的警告消息,并询问用户是添加该公钥还是放弃连接;
    ------------------------------------------------------------------------
    -- WARNING: HOST IDENTIFICATION HAS CHANGED! --
    ------------------------------------------------------------------------
    IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
    Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that the host-key has just been changed. Please contact your system administrator.
  3. 拒绝接受。如果客户端对未知公钥的验证被取消了(或者客户端配置本身已经旁路掉了这个过程),或者如果客户端保存已知主机CA证书的缓存被“毒害”了,就很有可能导致攻击者发起MITM攻击。从根本上讲,要防止MITM方式的攻击,用户自身加强安全措施才是关键,例如,密钥的初始交换也许可以换做其它方式(比如软盘),严格管理本地的证书列表数据库,对于出现的告警提示,应该仔细甄别,防止第三方的欺骗行为。

sshmitm [-d] [-I] [-p porthost [port]

注意:这里的-P后面指定的是sshmitm本地使用的端口,也就是攻击目标主机用来连接SSH服务器的端口,而后面的port则是我转发SSH流量到SSH服务器使用的端口,此外如果是用了参数-I,就可以在攻击目标主机连接到SSH服务器后,查看他们之间的交互内容。

首先通过dnsspoof进行对攻击目标进行dns欺骗:

接着便可以进行sshmitm嗅探:(由于使用了-I,所以,SSH连接后的交互内容也显示了出来)

webmitm

webmitm与sshmitm类似,也需要dnsspoof的“配合”,不同的是,webmitm“劫持”的是HTTP和HTTPS会话过程,捕获SSL的加密通信。

webmitm [-d]

arpspoof

arpspoof启用arp欺骗,将自己网卡的IP地址伪装成指定IP地址的MAC

持续不断的发送假的ARP响应包给一台或多台主机,以“毒害”其ARP缓存表。一旦成功,即可以用别的嗅探工具来“接收”发送到本地的数据包。与Ettercap不同的是,arpspoof并不进行真正的“嗅探”,它只是简单的进行ARP欺骗,本地主 
机必须启动内核的IP Forwarding功能(或者使用fragrouter这样的工具),否则,所有“转向”发到本地的数据包就如同进了黑洞,正常的网络通信将无法进行,而一旦启动了本地的IP Forwarding,内核将自动对本地收到的目的IP却是别处的数据包进行转发,正常的通信自然可以进行。这样,就可以进行后续的许多工作,包括分析嗅探得到的数据包、修改数据包中的某些信息以重新转发等等。

在Linux中,缺省是禁止IP Forwarding的,可以使用简单的命令启动它:

修改#vi /etc/sysctl.conf:
net.ipv4.ip_forward = 1

修改后运行#sysctl –p命令使得内核改变立即生效;

一旦启动了本地的IP Forwarding,内核将自动对本地收到的目的IP却是别处的数据包进行转发,(同时向数据包的源地址发送ICMP重定向报文,当然,由于启用了ARP欺骗,这个重定向报文是不起作用的)。 这里第17个数据包的源地址已经从本来的源MAC地址改变为本地MAC地址了。说明数据包是本地转发出去的。

arpspoof [-i interface] [-t targethost    如果不指定tagget则向网络中所有的主机发送欺骗

dnsspoof

dnsspoof启用DNS欺骗,如果dnsspoof嗅探到局域网内有DNS请求数据包,它会分析其内容,并用伪造的DNS响应包来回复请求者。如果是请求解析某个域名,dnsspoof会让该域名重新指向另一个IP地址(黑客所控制的主机),如果是反向IP指针解析,dnsspoof也会返回一个伪造的域名。

dnsspoof [-i interface] [-f hostsfile] [expression]   这里-f 可以指定主机列表文件,文件格式与/usr/local/lib/dnsspoof.hosts相同,如果不指定该文件,dnsspoof会返回本地的IP给域名解析请求者

这里本地主机会抢先代替DNS服务器来相应查询,前提是本地主机先回答DNS查询,如果因为网络问题,DNS服务器先发送了应答,DNS欺骗就不能生效了

macof

macof用来进行MAC flooding,可以用来使交换机的MAC表溢出,对于以后收到的数据包以广播方式发送。注意:在进行MAC泛洪之前就存在于交换机MAC表中的条目不会被覆盖,只能等到这些条目自然老化

macof [-i interface] [-s src] [-d dst] [-e tha] [-x sport] [-y dport] [-n times]

tcpkill

tcpkill能够切断指定的TCP会话连接,主要是基于TCP的三次握手过程

tcpkill [-i interface] [-1...9expression

这里,当tcpkill检测到两边的TCP连接后,会同时想两边(冒充对方)发送tcp reset报文,重置连接。

tcpnice

tcpnice能够通过在添加活动的流量,降低指定的LAN上的TCP连接的速度

tcpnice [-I] [-i interface] [-n incrementexpression   这里的-n后面可以跟1-20,代表降低的速度,1为原速,20为最低

本文转sinojelly51CTO博客,原文链接:http://blog.51cto.com/pnig0s1992/297891 ,如需转载请自行联系原作者

linux嗅探工具[Dsniff]相关推荐

  1. 密码嗅探工具dsniff

    密码嗅探工具dsniff 网络大量的服务都使用密码方式对使用者身份进行认证.如果使用非加密的方式传输,一旦数据被截获,就容易被嗅探到.Kali Linux预置了一款专用的密码嗅探工具dsniff.该工 ...

  2. linux如何ARP嗅探 Linux下嗅探工具Dsniff安装记录

    先来下载依赖包 和一些必须要用到的工具 我这里用的是 dsniff-2.3 的版本 wget http://www.monkey.org/~dugsong/dsniff/dsniff-2.3.tar. ...

  3. linux arp 工具下载,linux如何ARP嗅探 Linux下嗅探工具Dsniff安装记录(示例代码)

    先来下载依赖包 和一些必须要用到的工具 我这里用的是 dsniff-2.3 的版本 wget http://www.monkey.org/~dugsong/dsniff/dsniff-2.3.tar. ...

  4. Kail Linux渗透测试教程之网络扫描和嗅探工具Nmap

    Kail Linux渗透测试教程之网络扫描和嗅探工具Nmap 网络扫描和嗅探工具--Nmap Nmap也就网络映射器(Network Mapper),是一个免费开放的网络扫描和嗅探工具.该工具可以扫描 ...

  5. Kali Linux - 嗅探和欺骗及密码破解工具

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 Burpsuite mitmproxy Wireshark SSLSTRIP Hydra Johnny John 总结 Bu ...

  6. 网络防嗅探工具SniffJoke

    网络防嗅探工具SniffJoke 在渗透测试中,通过网络嗅探,可以获取网络通信主机的各种信息.为了防止嗅探,Kali Linux提供了专用工具SniffJoke.该工具能够自动对用户的网络数据进行附加 ...

  7. 网络数据嗅探工具HexInject

    网络数据嗅探工具HexInject 网络数据嗅探是渗透测试工作的重要组成部分.通过嗅探,渗透人员可以了解足够多的内容.极端情况下,只要通过嗅探,就可以完成整个任务,如嗅探到支持网络登录的管理员帐号和密 ...

  8. python嗅探工具详解附源码(使用socket,带tkinter界面)

    python嗅探工具详解(带tkinter界面) 点击详见原理 点击详见原理 TCP/IP协议号补充 必备基础知识 IP数据包格式 详见点此 TCP报文格式 详见点此 struct模块 在Python ...

  9. kali 中 嗅探工具 如何分类

    在 Kali Linux 中,嗅探工具可以分为几个主要类别: 网络嗅探器:这类工具可以捕获网络流量并进行分析,常用的工具包括 Wireshark.Tcpdump 等. 端口扫描器:这类工具可以扫描目标 ...

  10. linux 渗透工具_适用于Linux的十大最佳渗透测试工具

    linux 渗透工具 This article covers some of the best penetration testing tools for Linux Cybersecurity is ...

最新文章

  1. Iptables防火墙应用
  2. ReentrantLock可以是公平锁,sync只能是非公平锁。
  3. Kaggle Kernels和 Colab, Binder, Azure Notebooks, CoCalc, Datalore的比较
  4. 局域网物理机怎么访问虚拟机
  5. NGUI使用教程(2) 使用NGUI创建2D场景而且加入标签和button
  6. class action extends mysql{_java Action 请求封装(二)
  7. flash(as3.0)在线聊天室
  8. spring框架总结
  9. 上海电信光猫设置虚拟服务器,你们想要的上海电信光猫桥接+4K IPTV配置流程...
  10. 思科模拟器Cisco Packet Tracer 的安装与使用(汉化教程)
  11. 电机编码器调零步骤_伺服电机编码器调零
  12. 《大数据工程师 面经 自己整理 面试题1--》
  13. 【滑动窗口协议模拟】
  14. spriteKit 笔记三 —— Drog 精灵
  15. Linux中ls颜色含义
  16. 最近招聘和面试的感想
  17. java的下标循环_java的for下标循环遍历和foreach循环遍历测试
  18. Jiangsheng的CSDN Digest(March 4, 2006)
  19. 服务器强制关机会有什么影响,真相揭秘:强制关机对电脑硬件伤害大吗?
  20. Ajax+JDBC+Json处理多个数据

热门文章

  1. jQuery.isEmptyObject()方法判断js对象是否为空
  2. Arcgis学习2:arcgis画好几个省
  3. SPSS Modeler决策树算法比较
  4. 财务报表导入的相关技术整理
  5. ECHOX.bat输出文本背景和文字颜色
  6. Android Framework 框架系列之 Crash 工具
  7. ecology9.0 主表浏览框控制明细表必填,只读并赋值与清空
  8. vue项目中使用viewer实现放大功能时出现bug
  9. 欧姆龙 CJ1W-CRM21的基本使用
  10. 如何让CSDN学习成就个人能力六边形全是100分:解析个人能力雷达图的窍门