标题 简介 类型 公开时间
关联规则 关联知识 关联工具 关联文档 关联抓包
参考1(官网)
参考2
参考3
详情
[SAFE-ID: JIWO-2024-1451]   作者: ecawen 发表于: [2018-04-14]

本文共 [537] 位读者顶过

Dsniff是一个著名的网络嗅探工具包。高级口令嗅探工具。综合性的网络嗅探工具包。Dsniff其开发者DugSong早在1999年12月,以密歇根大学CITI研究室( CenterforInformationTechnologyIntegration)的研究成果为基础, 开发了这个后来具有很大影响力的网络安全工具包。 DugSong开发Dsniff的本意是揭示网络通信的不安全性, 借助这个工具包, 网络管理员可以对自己的网络进行审计, 也包括渗透测试。 但万事总有其两面 性, Dsniff所带来的负面作用也是“巨大”的,首先它是可以自由获取的,任何拥有这个工具包的人都可能做“非正当”的事,其次, Dsniff里面的某 些工具,充分揭示了一些安全协议的“不安全性”, 例如针对SSH1和SSL的MITM( Man-In-The-Middle) 攻击工具—SSHmitm和 Webmitm。 SSH1和SSL都是建立网络通信加密通道的机制,向来被认为是很安全的,但人们在具体使用时,往往因为方便性上的考虑而忽视了某些环 节,造成实事上的不安全。 所以说, 最大的不安全性, 往往并不在于对安全的一无所知, 而在于过于相信自己的安全。[出自:jiwo.org]
        DubSong在2000年12月发布了Dsniff的v2.3版本,该版本支持 OpenBSD、 Linux、 Solaris系统平台。目前,最新版本是2001年3月发布的 v2.4b1的 Beta版。 Dsniff的下载网址:http://monkey.org/~dugsong/dsniff/ 。除了针对Unix系统的版本,从网上也可以得到Windows平台上运行的Dsniff早期版


dsniff工具介绍

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

[plain] view plain copy
  1. Dsniff包中的工具基本上可以分为四类:  
  2. 1. 纯粹被动地进行网络活动监视的工具,包括:dsniff、filesnarf、mailsnarf、msgsnarf、urlsnarf、webspy、sshow。  
  3. 2. 针对SSH和SSL的MITM“攻击”工具,包括sshmitm和webmitm。  
  4. 3. 发起主动欺骗的工具,包括:arpspoof、dnsspoof、macof。  
  5. 4. 其它工具,包括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,MicrosoftSMB,OracleSQL*Net,SybaseandMicrosoftSQL。

[plain] view plain copy
  1. 用法:  
  2.        dsniff [-c] [-d] [-m] [-n] [-i interface | -p pcapfile] [-s snaplen] [-f services] [-t trigger[,...]]]  [-r|-w  
  3.        savefile] [expression]  
  4.   
  5. 选项  
  6.        -c     打开半双工TCP流,允许在使用 arpspoof时进行正确的嗅探操作  
  7.        -d     启动调试模式;  
  8.        -m     使用dsniff.magic文件,通过在magic文件中定义的特征,尝试自动判断协议  
  9.        -n     不把 IP 地址解析成主机名  
  10.        -i interface       指定网络接口  
  11.        -p pcapfile        不是处理网络上所观察到的数据包的内容,而是处理给定捕获数据包的PCAP文件。                
  12.        -s snaplen         对报文的前snaplen个字节进行嗅探,而不是默认的1024字节;.  
  13.        -f services        以/etc/service格式从文件中加载触发器(也就是口令嗅探的服务类型);  
  14.        -t trigger[,...]  
  15.               使用格式 port/proto=service 来加载一个以逗号界定的触发器集(e.g. 80/tcp=http).  
  16.                           dsniff –t 21/tcp=ftp,23/tcp=telnet –m  
  17.        -r savefile        从保存的文件中读取会话(-w 选项 可以保存会话到文件)  
  18.        -w file            保存 会话 到文件中  
  19.        expression         指定一个 tcpdump(8) filter expression 来让 sniff 选择要嗅探的流量.       
  20.          
  21.        在挂起的信号中,dsniff会将当前的触发器表转储到dsniff.services。  
  22.   
  23. FILES  
  24.        /usr/share/dsniff/dsniff.services  
  25.               Default trigger table  
  26.   
  27.        /usr/share/dsniff/dsniff.magic  
  28.               Network protocol magic  
  29.   
  30. 参见;另请参阅  
  31.        arpspoof(8), libnids(3), services(5), magic(5)  


filesnarf 和 mailsnarf 和 msgsnarf 和 urlsnarf 和 webspy 和 webspy

filesnarf 和 mailsnarf 和 msgsnarf 和 urlsnarf 和 webspy 和 webspy  使用方式都 差不多。可以 使用 man 查看具体使用。

[plain] view plain copy
  1. FILESNARF(8)                System Manager's Manual               FILESNARF(8)  
  2.   
  3. NAME  
  4.        filesnarf - sniff files from NFS traffic  
  5.   
  6. SYNOPSIS  
  7.        filesnarf [-i interface | -p pcapfile] [[-v] pattern [expression]]  
  8.   
  9. DESCRIPTION  
  10.        filesnarf  saves  files sniffed from NFS traffic in the current working  
  11.        directory.  
  12.   
  13. OPTIONS  
  14.        -i interface  指定监听接口  
  15.        -p pcapfile   处理捕获的 包文件  
  16.        -v            "反转" 模式.  反转匹配,选中不匹配的文件.  
  17.        pattern       指定正则表达式                
  18.        expression    指定 一个要嗅探的流量的 tcpdump(8) 过滤表达式   
  19.                 
  20.                 
  21. SEE ALSO  
  22.        dsniff(8), nfsd(8)  

filesnarf 

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

Tcpdump 可用于嗅探NFS流量。Filesnarf 工具可以真正的接收被嗅探的文件,并在系统上对其重新配置。某人在任何时候在网络上通过NFS移动文件时,你都可以获得该文件的一个副本。

同样可以使用-i选项来指定网络接口。
在命令行上,可以指定Tcpdump报文过滤器表达式,用于嗅探NFS流量,并且可以指定要匹配的文件模式

[plain] view plain copy
  1. 如:想嗅探 192.168.0.21上的mp3文件则  
  2. # filesnarf *.mp3 host 192.168.0.21  


mailsnarf

milsnarf 可以嗅探 SMTP 和 POP 流量,并以Berkeley邮件格式输出e-mail消息,转储选定的邮件内容到本地。


msgsnarf

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


urlsnarf

urlsnarf可以嗅探HTTP请求报文的内容,并以CLF(CommonLogFormat)通用日志格式输出。这种格式是许多Web服务器所使用的,例如IIS和Apache,事后可以很方便的用一些日志分析工具来分析记录结果。 Urlsnarf的工作方式就象这个工具箱中的其他嗅探程序一样,它是根据web url工作的。
它将自己从http流量中嗅探到的任何url存储到一个日志文件中,可以在以后对该日志文件进行分析。
它是查看在局域网上浏览信息的最简便方法。


webspy

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

即将嗅探到的来自某个客户端的URLs请求发送给本地浏览器显示,可以达到“实时”监视网络上HTTP活动的效果。 Dsniff中软件的最后一个工具,主要是通过指定lan上主机ip地址,Webspy是将嗅探从该主机发源的web流量。无论任何时候,只要从这台主机进入特定的一个url,Webspy都会在浏览器上加载相同的URL。


sshow

对嗅探到的SSH通信进行分析,解析其认证过程、交互会话的口令长度,以及命令行长度等信息。

SSH 中间人攻击 sshmitm 和 SSL 中间人攻击 webmitm

sshmitm 

Dsniff还包含了大量mim窃取密码的方式,在这种方式下即使是ssl方式https 和ssh都是可以被中途截取的,非常的强大。当然这种方式仅仅用于同一个局域网中。

Sshmitm 是Dsniff自带的一个具有威胁的工具之一。如果你是在运行dnsspoof来伪造实际机器主机名,那么sshmitm可以重新定向到你的机器的ssh流量。因为它支持到ss1,所以这也是我们需要考虑把ssh升级到2的原因。

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会有下列配置处理方式:自动增加该公钥到本地数据库; 发出下面列出的警告消息,并询问用户是添加该公钥还是放弃连接;
------------------------------------------------------------------------

--WARNING:HOSTIDENTIFICATIONHASCHANGED!--

------------------------------------------------------------------------
ITISPOSSIBLETHATSOMEONEISDOINGSOMETHINGNASTY!
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. 

拒绝接受。如果客户端对未知公钥的验证被取消了 ( 或者客户端配置本身已经旁路掉了这个过程), 或者如果客户端保存已知主机CA证书的缓存被“毒害”了, 就 很有可能导致攻击者发起MITM攻击。从根本上讲,要防止MITM方式的攻击,用户自身加强安全措施才是关键, 例如, 密钥的初始交换也许可以换做其它方式 ( 比如软盘), 严格管理本地的证书列表数据库, 对于出现的告警提示, 应该仔细甄别, 防止第三方的欺骗行为


webmitm

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


arpspoof

arp毒化的原理,简单的说就是伪造MAC地址与IP的对应关系,导致数据包由中间人转发出去。

详细介绍请看:http://www.2cto.com/Article/201207/144532.html

arp 毒化有双向(remote)和单向(oneway)两种方式。

双向方式将对两个目标的ARP缓存都进行毒化,对两者之间的通信进行监听。

单向方式只会监听从第一个目标到第二个目标的单向通信内容。

一般来说,我们会选择使用双向欺骗的方式来获取所有的数据包进行嗅探分析。

若目标主机开启了ARP防火墙怎么办?直接欺骗会引发报警且无效果。这时就是单向ARP毒化大显神威的时候了。只要路由器没有对IP和MAC进行绑定,我们就可以只欺骗路由器,使从路由器发给目标主机的数据包经过中间人,完成我们的攻击。

[plain] view plain copy
  1. root@kali:~# arpspoof -h  
  2. Version: 2.4  
  3. Usage: arpspoof [-i interface] [-c own|host|both] [-t target] [-r] host  
  4.   
  5. 名字  
  6.        arpspoof - 在交换式网络截获包  
  7. 概要  
  8.        arpspoof [-i interface] [-c own|host|both] [-t target] [-r] host  
  9. 描述   
  10.        arpspoof 通过伪造ARP响应,重定向局域网中一个目标主机(或所有主机)上的数据包 到 局域网中的另一个主机上。  
  11.        这在交换式网络上嗅探流量是一个非常有效的方法  
  12.        注意:内核IP转发(或一个实现相同功能的用户程序,如 fragrouter(8))必须提前打开。  
  13.   
  14. 选项  
  15.        -i 网卡接口        指定使用的网卡接口  
  16.   
  17.        -c own|host|both     
  18.        指定在恢复arp配置时使用的硬件地址;在清理时,可以用自己的地址和主机的地址发送数据包。  
  19.        用一个假的硬件地址发送数据包可能会破坏与某些switch/ap/bridge 配置的连接,  
  20.        但是它比使用自己的地址更可靠,这是arpspoof事后清理的默认方式。  
  21.   
  22.        -t target    指定要 ARP毒化 的主机(如果没有指定,默认局域网所有主机). 可以重复指定多个主机。  
  23.        -r           毒化两个主机(主机和目标)以捕获两个方向的流量。(只在与 -t 联合使用才有效)  
  24.        host         指定你希望拦截数据包的主机(通常是本地网关)。  
  25.   
  26. 参见;另请参阅  
  27.        dsniff(8), fragrouter(8)  
  28.   
  29.   
  30.          
  31. // 使用ARP毒化,重定向受害者的流量传送给攻击者。  
  32. root@bt:~# arpspoof -i eth0 -t 192.168.1.5 192.168.1.1      
  33.   
  34. // 第二个ARP毒化攻击使网关的数据重定向到攻击者的机器(流量由网关到攻击者再到受攻击者)  
  35. root@bt:~# arpspoof -i eth0 -t 192.168.1.1  192.168.1.2     
  36.   
  37.   
  38. root@bt:~# arpspoof -i eth0 -t 192.168.1.5 192.168.1.1  
  39. root@bt:~# arpspoof -i eth0 -t 192.168.1.1 192.168.1.5  

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

Ettercap则不光进行ARP欺骗,它还要做后续的许多工作,包括分析嗅探得到的数据包、修改数据包中的某些信息以重新转发等等。

在Linux中,缺省是禁止IP Forwarding的,可以使用下面命令启动它:
启用IP转发,输入下面命令(PS:利用Linux主机的路由功能):

[plain] view plain copy
  1. root@bt:~# cat /proc/sys/net/ipv4/ip_forward  
  2. root@bt:~# echo 1 > /proc/sys/net/ipv4/ip_forward  
  3. root@bt:~# cat /proc/sys/net/ipv4/ip_forward  

或者 修改下面文件

[plain] view plain copy
  1. 修改       #vi /etc/sysctl.conf          修改 net.ipv4.ip_forward=1  
  2. 修改后运行 #sysctl –p                   命令使得内核改变立即生效;  

一旦启动了本地的 IP Forwarding,内核将自动对本地收到的目的IP是别处的数据包进行转发,
(同时向数据包的源地址发送ICMP重定向报文, 当然, 由于启用了ARP欺骗, 这个重定向报文是不起作用的)。 

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


dnsspoof

[plain] view plain copy
  1. root@kali:~# dnsspoof -h  
  2. Version: 2.4  
  3. 用法: dnsspoof [-i interface] [-f hostsfile] [expression]  
  4.   
  5. 描述         
  6.        dnsspoof启用DNS欺骗,如果dnsspoof嗅探到局域网内有DNS请求数据包,它会分析其内容,并用伪造的DNS响应包来回复请求者。  
  7.        如果是请求解析某个域名,dnsspoof会让域名重新指向另一个IP地址(黑客所控制的主机),  
  8.        如果反向IP指针解析,也会返回一个伪造的域名.  
  9.          
  10.        在dnsspoof的命令选项中,可以指定一个主机列表文件,文件格式与/etc/hosts相同,  
  11.        如果不指定该文件,dnsspoof会返回本地的IP给域名解析请求者。  
  12.   
  13. 选项  
  14.        -i interface    指定使用的网卡  
  15.        -f hostsfile    指定要欺骗的网址。如果不指定hostsfile,将返回本机的IP地址给攻击者  
  16.        expression      指定一个tcpdump(8)过滤器表达式来选择要嗅探的流量。就是指定一个Tcpdump准则 的 包过滤  
  17.   
  18. 文件  
  19.        /usr/share/dsniff/dnsspoof.hosts  
  20.               Sample hosts file.  
  21.   
  22. 参见;另请参阅  
  23.        dsniff(8), hosts(5)   // man 8 dsniff   或者  man 5 hosts  

root@bt:#dnsspoof -i eth0 -f /usr/h22.hosts

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表中的条目不会被覆盖,只能等到这些条目自然老化

在本地网络中发送大量的随机MAC地址的数据包,可以指定源IP、目的IP、源端口、目的端口,

以MAC洪水的方式来导致某些交换机丧失“交换”能力,以达到共享式嗅探的目的。

[plain] view plain copy
  1. NAME  
  2.        macof - 用随机 MAC 地址 洪泛 交换式局域网络  
  3.   
  4. 用法  
  5.        macof [-i interface] [-s src] [-d dst] [-e tha] [-x sport] [-y dport]  
  6.        [-n times]  
  7.   
  8. 选项  
  9.        -i interface    指定发送的网卡接口  
  10.        -s src      指定源 IP 地址  
  11.        -d dst      指定目的 IP 地址  
  12.        -e tha      指定目标硬件地址  
  13.        -x sport    指定 TCP 源端口  
  14.        -y dport    指定 TCP 目的端口  
  15.        -n times    指定发送包 的 个数  
  16.   
  17.        任何未指定的选项的值都是随机生成的。  
  18.   
  19. 参见;另请参阅  
  20.        dsniff(8)  

macof [-i interface] [-ssrc] [-ddst] [-e tha] [-xsport] [-ydport] [-n times]


tcpkill

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

[plain] view plain copy
  1. root@kali:~# tcpkill -h  
  2. Version: 2.4  
  3. Usage: tcpkill [-i interface] [-1..9] expression  
  4.   
  5.   
  6. NAME  
  7.        tcpkill - kill TCP connections on a LAN  
  8.   
  9.   
  10. 选项  
  11.        -i interface    指定监听接口  
  12.        -1...9         指定在杀死连接时使用的蛮力的程度。  
  13.                       为了在移动的接收窗口中找到一个RST,快速连接可能需要一个更高的数字。默认是3。  
  14.        expression     指定一个tcpdump(8)过滤器表达式来选择要杀死的连接  
  15.               
  16.   
  17. SEE ALSO  
  18.        dsniff(8), tcpnice(8)  

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

tcpnice

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

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



其它交换网络嗅探器

Ettercap

官网:http://www.ettercap-project.org

Ettercap简要原理介绍以及使用说明:http://www.2cto.com/article/201301/183322.html

Ettercap使用记录之一 、二、三:http://www.cnblogs.com/lsbs/p/3842679.html 

man ettercap:https://linux.die.net/man/8/ettercap



[plain] view plain copy
  1. 用法: ettercap [选项] [目标1] [目标2]  
  2.   
  3. 目标写法:(可以查看 man ettercap 获取更详细信息)  
  4. 目标写法格式是:  MAC/IPs/PORTs   。依照这个规则,我们把目标可以精确到特定的主机和端口上。MAC、IP、和PORT为三个条件,为空代表ANY。  
  5. "//80"即表示对任意MAC、任意IP上的80端口进行嗅探。一般来说,MAC部分留空,除非你愿意去手动输入那一长串的MAC地址。因此,我们可以只用IP部分来确定目标主机。  
  6.   
  7. 注意:如果 IPv6 启用,目标是 MAC/IPs/IPv6/PORTs 这种形式。 即 mac地址,ip地址,端口号中间用 "/" 符号隔开,留空不写表示 “ANY”,即所有。  
  8.   
  9. 当IP有多个的时候,可以用英文","分隔不同的C段ip。可以用"-"表示连续的ip。可以用";"分隔不同表达形式的ip。  
  10. 举例如下:"10.0.0.1-5;10.0.1.33" 表示 ip 10.0.0.1, 2, 3, 4, 5 和 10.0.1.33  
  11. 端口部分也有类似的写法,看例子:"20-25,80,110" 表示 20, 21, 22, 23, 24, 25, 80 和 110  
  12.   
  13. 例如:   
  14.       /192.168.1.1/                  表示 192.168.1.1 的所有端口号  
  15.       aa:bb:cc:dd:ee:ff//80          表示 aa:bb:cc:dd:ee:ff 的80端口.       
  16.         
  17.       其中多个mac地址用英文符号分号 ';' 隔开。  
  18.       多个ip地址和端口号可以用符号 '-' 表示连续 和 英文符号分号 ';' 隔开;  
  19.        e.g.  
  20.        "10.0.0.1-5;10.0.1.33"                    表示 10.0.0.1, 2, 3, 4, 5 和 10.0.1.33        
  21.        "20-25,80,110"                            表示 20, 21, 22, 23, 24, 25, 80 和 110  
  22.        /192.168.1.100-120;192.168.2.130/         表示 /192.168.1.100,101,102,103,~~120;192.168.12.130/   
  23.         
  24.       这两个目标是为了过滤从一个到另一个之间的流量,反之亦然(因为连接是双向的)。  
  25.        "//80"                                    表示任意MAC地址,任意 IP ,但是端口是80 的目标。  
  26.        "/10.0.0.1/"                              表示任意 MAC地址,IP是10.0.0.1,任意端口 的 目标      
  27.        "//"                                      表示 "子网中所有主机"。  
  28.   
  29.       注意:  
  30.             可以在命令行用 -R 选项 反向 匹配 目标. So if you want to sniff  
  31.             如果要嗅探除了10.0.0.1目标的所有进出流量。可以这样写:"./ettercap -R /10.0.0.1/"  
  32.   
  33.       注意:  
  34.            目标也就是对局域网初始扫描扫描的主机。你可以通过netmask来限制只扫描网络中的一部分主机。  
  35.            结果是扫描两部分目标后后并的结果。还记得没有指定目标就意味着“没有目标”,但是指定“//”意味着“子网中的所有主机”。  
  36.   
  37. 嗅探 和 攻击 选项:  
  38.   -M, --mitm <method:args>    中间人攻击,即两台终端间进行欺骗。(后面跟的参数可以参看 man ettercap)  
  39.   -o, --only-mitm             不嗅探,只执行中间人攻击  
  40.   -b, --broadcast             嗅探广播数据包  
  41.   -B, --bridge <IFACE>        使用桥接嗅探 (需要2个网络接口)。即 双网卡之间进行欺骗  
  42.   -p, --nopromisc             不把网络接口设置成混杂模式  
  43.   -S, --nosslmitm             不伪造SSL证书。即不使用ssl中间人攻击  
  44.   -u, --unoffensive           不转发数据包  
  45.   -r, --read <file>           从 pcapfile <file> 读取数据  
  46.   -f, --pcapfilter <string>   set the pcap filter <string>  
  47.   -R, --reversed              反转目标匹配。(即 匹配所有和目标不匹配的)  
  48.   -t, --proto <proto>         设置要嗅探的协议(默认嗅探所有)  
  49.       --certificate <file>    ssl中间人攻击使用指定的 证书文件   
  50.       --private-key <file>    ssl中间人攻击使用指定的 私钥文件   
  51.   
  52. 运行界面类型:  
  53.   -T, --text                  文本模式显示   
  54.        -q, --quiet            安静模式,不显示嗅探数据   
  55.        -s, --script <CMD>     加载脚本   
  56.   -C, --curses                curses-UI模式   
  57.   -D, --daemon                守护模式(后台模式)(no GUI)  
  58.   -G, --gtk                   GTK-UI模式   
  59.   
  60. 日志记录选项:  
  61.   -w, --write <file>          把嗅探到的数据写入到 pcapfile <file>  
  62.   -L, --log <logfile>         把所有数据包保存<logfile>日志文件中   
  63.   -l, --log-info <logfile>    仅仅记录被动信息到这个<logfile>日志文件中  
  64.   -m, --log-msg <logfile>     将所有的消息记录到这个<logfile>日志中。  
  65.   -c, --compress              使用gzip压缩日志文件  
  66.   
  67. 可视化选项:  
  68.   -d, --dns                   把IP地址解析成主机名  
  69.   -V, --visual <format>       显示方式   
  70.   -e, --regex <regex>         使用一个正则表达式   
  71.   -E, --ext-headers           为每个pck打印扩展标题  
  72.   -Q, --superquiet            超级安静模式,啥信息都不显示,只保存   
  73.   
  74. LUA脚本 选项:  
  75.       --lua-script <script1>,[<script2>,...]     使用逗号分割lua脚本  
  76.       --lua-args n1=v1,[n2=v2,...]               使用逗号分割传给lua脚本的参数  
  77.   
  78. 通用基本选项:  
  79.   -i, --iface <iface>         指定网络接口  
  80.   -I, --liface                显示所有网络接口  
  81.   -Y, --secondary <ifaces>    后备网卡  
  82.   -n, --netmask <netmask>     在网络接口上强制使用这个 <netmask> 网络掩码  
  83.   -A, --address <address>     ip地址,针对一网卡多ip的情况   
  84.   -P, --plugin <plugin>       载入插件  
  85.   -F, --filter <file>         载入过滤器文件 (content filter)  
  86.   -z, --silent                不进行arp毒化和主机扫描   
  87.   -6, --ip6scan               在链路上发送 ICMPv6 探测和发现 IPv6 节点  
  88.   -j, --load-hosts <file>     从文件中载入主机列表  
  89.   -k, --save-hosts <file>     保存主机列表到文件中  
  90.   -W, --wifi-key <wkey>       载入 WIFI 密码(wep或wpa)  
  91.   -a, --config <config>       载入并使用一个非默认配置文件  
  92.   
  93. 标准选项:  
  94.   -v, --version               打印版本信息并退出  
  95.   -h, --help                  显示帮助信息  

Ettercap有两种运行方式,UNIFIED 和 BRIDGED。

其中,UNIFIED的方式是以中间人方式嗅探;BRIDGED方式是在双网卡情况下,嗅探两块网卡之间的数据包。

UNIFIED方式的大致原理:

[plain] view plain copy
  1. UNIFIED方式是同时欺骗A和B,把原本要发给对方的数据包发送到第三者C上,然后由C再转发给目标。  
  2. 这样C就充当了一个中间人的角色。因为数据包会通过C那里,所以C可以对数据包进行分析处理,导致了原本只属于A和B的信息泄露给了C。  
  3. UNIFIED方式将完成以上欺骗并对数据包分析。  
  4. Ettercap劫持的是A和B之间的通信,在Ettercap眼中,A和B的关系是对等的。  

BRIDGED方式原理:

[plain] view plain copy
  1. BRIDGED方式 有点像笔记本电脑上有两个网卡,一个有线网卡一个无线网卡。可以将有线网卡的internet连接共享给无线网卡,这样笔记本就变成了一个无线ap。  
  2. 无线网卡产生的所有数据流量都将传送给有线网卡。BRIDGED方式ettercap嗅探的就是这两块网卡之间的数据包。  

一般而言,我们会使用UNIFIED方式。其运行参数为 -M(M是MITM的首字母,为中间人攻击的缩写)。

[plain] view plain copy
  1. Ettercap,它相当于ARP病毒和密码嗅探界的瑞士军刀。通常在非互动模式中使用它,但是默认情况下它的交互界面非常友好,使用起来很方便。  
  2. 如果我们的目标是网络上的所有主机,想要嗅探每个节点之间的所有传输,我们可以用下列命令: ettercap -T -q -M ARP // //  
  3. 你应当谨慎的使用上面那段命令,因为如果把一个大网络中所有的传输都通过一台很慢的计算机的话,那么这很有可能使整个网络连接瘫痪。  
  4. 可以找个替罪羊,来看看 Ip 地址为 192.168.1.1 的主机,我们可以使用如下命令:ettercap -T -q -M ARP /192.168.1.1/ //  
  5. 如果192.168.1.1是网关,我们应该可以看到所有的输出传输。下面是这些命令行选项的功能:  
  6. -T    告诉Ettercap使用文字界面,我最喜欢这个选项,因为GUI模式太复杂了。  
  7. -q    让Ettercap安静些,换句话说就是少些冗长的文字报告。  
  8. -M    让Ettercap我们想要使用的MITM(人参与其中)方式,本例中是ARP病毒。  

中间人攻击-ARP毒化:http://www.2cto.com/article/201207/144532.html

常见的参数组合:

[plain] view plain copy
  1. #arp毒化eth0所在的网段,安静模式文本显示  
  2. ettercap -Tqi eth0 -M ARP // //   
  3.   
  4. #监听10.0.0.1的ftp,ssh,telnet信息,并保存到本地  
  5. ettercap -Tzq /10.0.0.1/21,22,23  -w hack.pcap   
  6.   
  7. #对192.168.1.120进行dns欺骗,使用默认网卡eth0,文本模式安静显示   
  8. ettercap -Tq -P dns_spoof -M arp /192.168.1.120/ //     
  9.   
  10. #使用过滤并监听10.0.0.2在80端口的所有通信,安静模式文本显示,保存数据到本地     
  11. ettercap -Tqi eth0 -L sniffed_data -F filter.ef -M arp:remote /10.0.0.2/80 //       
  12.   
  13. 在控制台模式下(-T)不使用混杂模式(-p),你只会看到自己的通信。  
  14. ettercap -Tp  
  15.   
  16. 在控制台模式下(-T),不使用ARP初始化(-z),不显示数据包内容(-q安静模式),但是会显示用户名和密码和其他消息。  
  17. ettercap -Tzq  
  18.   
  19. 在控制台模式下(-T),加载主机列表(-j),对目标执行arp毒化中间人攻击(-M arp)  
  20. ettercap -T -j /tmp/victims -M arp /10.0.0.1-7/ /10.0.0.10-20/  
  21.   
  22. 在控制台模式下(-T),对整个局域网执行ARP毒化攻击(-M arp)  
  23. ettercap -T -M arp // //  
  24.   
  25. 在控制台模式下(-T),执行ARP双向欺骗(-M arp:remote)  
  26. ettercap -T -M arp:remote /192.168.1.1/ /192.168.1.2-10/  
  27.   
  28. 在控制台模式下(-T),不使用ARP初始化(-z),使用安静模式(-q),监听所有主机110端口(pop3协议端口)  
  29. ettercap -Tzq //110  
  30.   
  31. 在控制台模式下(-T),不进行ARP初始化(-z),使用安静模式(-q),监听目标10.0.0.1的21,22,23端口(FTP、SSH、TELNET)  
  32. ettercap -Tzq /10.0.0.1/21,22,23  
  33.   
  34. 打印输出可用插件列表。  
  35. ettercap -P list  
ettercap局域网内DNS欺骗:http://www.cnblogs.com/lvchenfeng/p/5596572.html

强大的嗅探工具ettercap使用教程:http://www.yunsec.net/a/security/web/invasion/2012/0127/9982.html



bettercap 

bettercap 官网 DOC:https://www.bettercap.org/

Bettercap 使用指南:http://xiaix.me/bettercap-shi-yong-zhi-nan/

完整,模块化,轻量级,易扩展的MITM框架 – bettercap:http://www.freebuf.com/sectool/73287.html

[plain] view plain copy
  1.  _          _   _  
  2. | |__   ___| |_| |_ ___ _ __ ___ __ _ _ __  
  3. | '_ \ / _ \ __| __/ _ \ '__/ __/ _` | '_ \  
  4. | |_) |  __/ |_| ||  __/ | | (_| (_| | |_) |  
  5. |_.__/ \___|\__|\__\___|_|  \___\__,_| .__/  
  6.                                      |_| v1.6.1b  
  7. http://bettercap.org/  
  8.   
  9. 更多示例和帮助文档 https://bettercap.org/docs/  
  10.   
  11.   
  12. 用法: bettercap [options]  
  13.   
  14. 主要选项:  
  15.     -I, --interface IFACE            网卡接口名 - 默认: eth0  
  16.         --use-mac ADDRESS            执行攻击前指定网卡的 MAC 地址.  
  17.         --random-mac                 执行攻击前使用随机的 MAC 地址.  
  18.     -G, --gateway ADDRESS            手动指定网关地址。如果不指定,则使用当前的网关地址   
  19.     -T, --target ADDRESS1,ADDRESS2   目标 IP 地址,如果不指定,则目标就是所有的子网地址。  
  20.         --ignore ADDRESS1,ADDRESS2   要忽略的 IP 地址。  
  21.         --no-discovery               不要主动搜索主机,只使用当前的ARP缓存,默认为false。  
  22.         --no-target-nbns             禁用目标NBNS主机名解析。  
  23.         --packet-throttle NUMBER     秒数(可以是一个十进制数)在每个数据包之间等待发送的时间。  
  24.         --check-updates              将检查是否有更新可用,然后退出。  
  25.     -R, --rainbows                   彩虹的输出,因为这是一个非常有用的东西(requires the "lolize" gem to be installed)。  
  26.     -h, --help                       显示可用的选项。  
  27.   
  28. 日志选项:  
  29.     -O, --log LOG_FILE               将所有消息记录到一个文件中,如果没有指定日志消息将只会打印到shell中。  
  30.         --log-timestamp              在每一行日志中启用时间戳,默认禁用  
  31.     -D, --debug                      启用调试日志记录。  
  32.         --silent                     废弃所有不是错误或警告的信息,默认为false.即只记录错误和警告日志。  
  33.   
  34. 欺骗选项:  
  35.     -S, --spoofer NAME               使用欺骗模块。 可用的模块: NONE, ICMP, ARP, NDP 。 默认: IPv4 是 ARP, IPv6 是 NDP.  
  36.         --no-spoofing                禁用欺骗。 等价于 --spoofer NONE.  
  37.         --full-duplex                启用双工 MITM。这将使 bettercap 在 目标 和 路由器 之间进行双向中间人攻击  
  38.         --kill                       这个 开关 使 目标连接 被杀死,而不是转发数据包.  
  39.   
  40. 嗅探选项:  
  41.     -X, --sniffer                    启用 嗅探.  
  42.     -L, --local                      Parse packets coming from/to the address of this computer ( 注意:  -X 必须设置 ), 默认false.  
  43.         --sniffer-source FILE        载入 捕获的包 PCAP 文件( will enable sniffer ).  
  44.         --sniffer-output FILE        保存 捕获的包 PCAP 到文件中 ( will enable sniffer ).  
  45.         --sniffer-filter EXPRESSION  Configure the sniffer to use this BPF filter ( will enable sniffer ).  
  46.     -P, --parsers PARSERS            Comma separated list of packet parsers to enable, '*' for all ( NOTE: Will set -X to true ), available: POST, PGSQL, IRC, MPD, REDIS, URL, WHATSAPP, SNMP, COOKIE, DICT, MYSQL, TEAMVIEWER, MAIL, SNPP, HTTPS, HTTPAUTH, NTLMSS, FTP, DHCP, RLOGIN, NNTP - default: *  
  47.         --disable-parsers PARSERS    Comma separated list of packet parsers to disable ( NOTE: Will set -X to true )  
  48.         --custom-parser EXPRESSION   Use a custom regular expression in order to capture and show sniffed data ( NOTE: Will set -X to true ).  
  49.   
  50. 代理选项:  
  51.   TCP:  
  52.   
  53.         --tcp-proxy                  启用 TCP 代理 ( requires other --tcp-proxy-* options to be specified ).  
  54.         --tcp-proxy-module MODULE    Ruby TCP proxy module to load.  
  55.         --tcp-proxy-port PORT        Set local TCP proxy port, default to 2222 .  
  56.         --tcp-proxy-upstream ADDRESS:PORT  
  57.                                      Set TCP proxy upstream server address and port.  
  58.         --tcp-proxy-upstream-address ADDRESS  
  59.                                      Set TCP proxy upstream server address.  
  60.         --tcp-proxy-upstream-port PORT  
  61.                                      Set TCP proxy upstream server port.  
  62.   
  63.   UDP:  
  64.   
  65.         --udp-proxy                  启用 UDP 代理 ( requires other --udp-proxy-* options to be specified ).  
  66.         --udp-proxy-module MODULE    Ruby UDP proxy module to load.  
  67.         --udp-proxy-port PORT        Set local UDP proxy port, default to 3333 .  
  68.         --udp-proxy-upstream ADDRESS:PORT  
  69.                                      Set UDP proxy upstream server address and port.  
  70.         --udp-proxy-upstream-address ADDRESS  
  71.                                      Set UDP proxy upstream server address.  
  72.         --udp-proxy-upstream-port PORT  
  73.                                      Set UDP proxy upstream server port.  
  74.   HTTP:  
  75.   
  76.         --proxy                      Enable HTTP proxy and redirects all HTTP requests to it, default to false.  
  77.         --proxy-port PORT            Set HTTP proxy port, default to 8080.  
  78.         --allow-local-connections    Allow direct connections to the proxy instance, default to false.  
  79.         --no-sslstrip                Disable SSLStrip.  
  80.         --log-http-response          Log HTTP responses.  
  81.         --no-http-logs               Suppress HTTP requests and responses logs.  
  82.         --proxy-module MODULE        Ruby proxy module to load, either a custom file or one of the following: injectcss, injectjs, redirect, injecthtml.  
  83.         --http-ports PORT1,PORT2     Comma separated list of HTTP ports to redirect to the proxy, default to 80.  
  84.         --proxy-upstream-address ADDRESS  
  85.                                      If set, only requests coming from this server address will be redirected to the HTTP/HTTPS proxies.  
  86.   
  87.   HTTPS:  
  88.   
  89.         --proxy-https                Enable HTTPS proxy and redirects all HTTPS requests to it, default to false.  
  90.         --proxy-https-port PORT      Set HTTPS proxy port, default to 8083.  
  91.         --proxy-pem FILE             Use a custom PEM CA certificate file for the HTTPS proxy, default to /root/.bettercap/bettercap-ca.pem .  
  92.         --https-ports PORT1,PORT2    Comma separated list of HTTPS ports to redirect to the proxy, default to 443.  
  93.   
  94.   CUSTOM:  
  95.   
  96.         --custom-proxy ADDRESS       Use a custom HTTP upstream proxy instead of the builtin one.  
  97.         --custom-proxy-port PORT     Specify a port for the custom HTTP upstream proxy, default to 8080.  
  98.         --custom-https-proxy ADDRESS Use a custom HTTPS upstream proxy instead of the builtin one.  
  99.         --custom-https-proxy-port PORT  
  100.                                      Specify a port for the custom HTTPS upstream proxy, default to 8083.  
  101.         --custom-redirection RULE    Apply a custom port redirection, the format of the rule is PROTOCOL ORIGINAL_PORT NEW_PORT. For instance TCP 21 2100 will redirect all TCP traffic going to port 21, to port 2100.  
  102.   
  103. 服务器选项:  
  104.         --httpd                      Enable HTTP server, default to false.  
  105.         --httpd-port PORT            Set HTTP server port, default to 8081.  
  106.         --httpd-path PATH            Set HTTP server path, default to ./ .  
  107.         --dns FILE                   Enable DNS server and use this file as a hosts resolution table.  
  108.         --dns-port PORT              Set DNS server port, default to 5300.  

事实上你使用的不仅仅是一款工具,或许还会使用到arpspoof进行Arp欺骗,mitmproxy拦截HTTP内容并注入你的payload等等。对于我来说,我很讨厌进行一项简单的攻击却需要使用一大堆的工具来进行操作。


Cain

Cain,这个Windows用户会觉得很好用。总之,它功能强大,操作简单。如果你喜欢漂亮的图形界面,Cain就是你很好的选择之一。它不像Ettercap那么多选项,但是很酷也有很多Windows附加功能。


Driftnet

还有为了查看特定内容的专门的嗅探器。Driftnet 能够分析出人们上网看到的图片。



使用 Dsniff 和 Ettercap 快速演示 ARP 欺骗

        在现代的局域网当中,交换式局域网是主流,广播式的局域网已经或者不在存在,以前要嗅探局域网络上传输的信息只需将网卡设置为混合模式,通过捕获数据包的软件,就可以截取。现在交换式以太网或者局域网中,交换机通过查看路由表(不严格的说法)发送信息。要想截获两台主机中传递的信息可以通过 arp 欺骗获得。

在linux下使用arpspoof和dsniff欺骗的操作如下

[plain] view plain copy
  1. 首先打开linux自带的路由转发功能  
  2. 编辑 /proc/sys/net/ipv4/ip-forward 文件  
  3. echo 1 > /proc/sys/net/ipv4/ip-forward  
  4.   
  5. 打开 arpspoof  
  6. arpspoof -t 你要欺骗的主机ip地址 网关ip地址(这里你可以定向的你想要的ip地址) &(在后台运行)  
  7.   
  8. 打开 dsniff  
  9. 使用默认的捕获表  
  10. dsniff -c -f /usr/share/dsniff/dsniff.services (当然这里你可以自己定制需要捕获端口的规则)  
  11. 具体写法可以 cat /usr/share/dsniff/dsniff.services 查看编写的规则   
  12.   
  13. 首先你应该确定包转发已经开启,不然我们的机器会丢弃所有我们想要嗅探的主机之间的传输,导致服务无响应。  
  14. 我用的一些工具会自动进行这项工作(比如Ettercap),但是保险起见,你也许会希望自己来做这件事。  
  15. 根据操作系统的不同,你可以使用如下的命令:  
  16. Linux:  
  17. echo 1 > /proc/sys/net/ipv4/ip_forward  
  18. BSD:  
  19. sysctl -w net.inet.ip.forwarding=1  
  20. 现在你的计算机将会转发所有的传输,现在你可以开始ARP欺骗了。  
  21.   
  22. 如果想要嗅探一个主机和网关之间的所有传输,并查看它发送到网络上的双向传输的所有数据。  
  23. 可以使用如下2个命令行:  
  24. arpspoof -t 192.168.1.1 192.168.1.2 & >/dev/null   
  25. arpspoof -t 192.168.1.2 192.168.1.1 & >/dev/null  
  26.   
  27. “& >/dev/nul”部分是为了使它在终端运行起来更容易,但是为了debug,你可能想要忽略它。  
  28.   
  29. 现在你可以使用你想要的任何套件来嗅探连接。新手的话,我推荐使用Dsniff,它支持ARPspoof来嗅探纯文本密码。  
  30. 用Dsniff开始嗅探,你只需退出到命令窗口并输入:  
  31.   
  32. dsniff  
  33. Dsniff找到用户名和密码后,它会将它们显示在屏幕上。  
  34. 如果你想要查看所有其他传输,我推荐你使用TCPDump或者 Wireshark。如果想要停止ARP欺骗,输入如下命令:  
  35. killall arpspoof  
  36. 这会关闭上面启动的2个 Arpspoof。  

评论

暂无
发表评论
 返回顶部 
热度(537)
 关注微信