urlsnarf
嗅探HTTP请求,输出"Common Log Format"格式
foo$ urlsnarf [-n] [-i interface] [[-v] pattern [expression]]
-
n 表示不反查主机名;
-
interface 网卡接口名;
-
pattern 表示对过滤的内容使用的正则表达式,如果加上 -v表示取相反,即是不匹配;expression 是过滤语法,和tcpdump的相同,请参考tcpdump。
msgsnarf
监听聊天内容,支持的有 AOL,ICQ2000,IRC,MSN 和 YaHoo 等聊天工具。
语法:msgsnarf [-i interface] [[-v] pattern [expression]]
语法解释和上面相同。
mailsnarf
嗅探邮件信息(SMTP,POP),输出格式为“Berkeley mbox”格式
foo$ mailsnarf [-i interface] [[-v] pattern [expression]]
语法解释和上面相同
filesnarf
filesnarf [-i interface | -p pcapfile] [[-v] pattern [expression]]
Tcpdump 可用于嗅探NFS流量。Filesnarf 工具可以真正的接收被嗅探的文件,并在系统上对其重新配置。某人在任何时候在网络上通过NFS移动文件时,你都可以获得该文件的一个副本。
同样可以使用-i选项来指定网络接口。在命令行上,可以指定Tcpdump报文过滤器表达式,用于嗅探NFS流量,并且可以指定要匹配的文件模式
如:想嗅探 192.168.0.21上的mp3文件则
# filesnarf *.mp3 host 192.168.0.21
dsniff
密码嗅探器,支持的协议有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,MeetingMaker,Citrix ICA,Symantec pcAnywhere,NAI Sniffer,MicrosoftSMB,Oracle SQL *Net ,Sybase 和 Microsoft SQL协议。dsniff会自动探测感兴趣的字段(只探测感兴趣的),并输出Berkeley DB文件格式,且不会重复保存成功探测的密码。
语法: dsniff [-c] [-d] [-m] [-n] [-i interface] [-s snaplen] [-f services] [-t trigger[,...]]] [-r|-w savefile] [expression]
-
-c使用半双工TCP流重组,用来处理不对称的路由数据流(例如,你使用了arpspoof来截获客户端流到路由的数据流);
-
-d 开启debug模式;-m 开启自动协议侦测 ;-n 不反查主机名;interface 网卡接口名;
-
-ssnaplen分析每个tcp连接最先的最多snaplen字节的数据,默认是1024;
-
-f services从services指定的文件中载入trigger,
-
-t trigger[,...]载入由逗号分割的(触发器)triggers列表,形式为port/proto=service,例如,80/tcp=http;
-
-r savefile从savefile(由 -w选项创建的)读入嗅探会话;
-
-w savefile把嗅探会话写入savefile以代替分析和打印到屏幕;
-
expression数据流过滤表达式,和tcpdump相同;当收到挂起信号时,dsniff会把当前的触发表写到dsniff.services文件中注意:/usr/local/lib/dsniff.services为默认的触发表/usr/local/lib/dsniff.magic网络协议魔数
arpspoof
在交换网中截获数据包
foo$ arpspoof [-i interface] [-t target] host
-
-i interface 网卡接口;
-
-t target指明arp欺骗的目标主机,如果不指明,则对所有主机有效;host 指明有要截获数据包的主机(经常是本地路由)。
webspy
webspy指定一个要嗅探的主机,如果指定主机发送HTTP请求,打开网页,webspy也会通过netscape浏览器在本地打开一个相同的网页
webspy [-iinterface] host host指定要嗅探的主机
dnsspoof
dnsspoof启用DNS欺骗,如果dnsspoof嗅探到局域网内有DNS请求数据包,它会分析其内容,并用伪造的DNS响应包来回复请求者。如果是请求解析某个域名,dnsspoof会让该域名重新指向另一个IP地址(黑客所控制的主机),如果是反向IP指针解析,dnsspoof也会返回一个伪造的域名。
dnsspoof [-iinterface] [-fhostsfile] [expression] 这里-f 可以指定主机列表文件,文件格式与/usr/local/lib/dnsspoof.hosts相同,如果不指定该文件,dnsspoof会返回本地的IP给域名解析请求者
这里本地主机会抢先代替DNS服务器来相应查询,前提是本地主机先回答DNS查询,如果因为网络问题,DNS服务器先发送了应答,DNS欺骗就不能生效了
macof
macof用来进行MAC flooding,可以用来使交换机的MAC表溢出,对于以后收到的数据包以广播方式发送。注意:在进行MAC泛洪之前就存在于交换机MAC表中的条目不会被覆盖,只能等到这些条目自然老化
macof [-iinterface] [-ssrc] [-ddst] [-etha] [-xsport] [-ydport] [-ntimes]
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会有下列配置处理方式:
-
自动增加该公钥到本地数据库;
-
发出下面列出的警告消息,并询问用户是添加该公钥还是放弃连接;
------------------------------------------------------------------------
-- WARNING: HOST IDENTIFICATION HAS CHANGED! --
------------------------------------------------------------------------
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NA
STY!
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方式的攻击,用户自身加强安全措施才是关键,例如,密钥的初始交换也许可以换做其它方式(比如软盘),严格管理本地的证书列表数据库,对于出现的告警提示,应该仔细甄别,防止第三方的欺骗行为。
sshmitm [-d] [-I] [-pport] host [port]
注意:这里的-P后面指定的是sshmitm本地使用的端口,也就是攻击目标主机用来连接SSH服务器的端口,而后面的port则是我转发SSH流量到SSH服务器使用的端口,此外如果是用了参数-I,就可以在攻击目标主机连接到SSH服务器后,查看他们之间的交互内容。
首先通过dnsspoof进行对攻击目标进行dns欺骗:
接着便可以进行sshmitm嗅探:(由于使用了-I,所以,SSH连接后的交互内容也显示了出来)
webmitm
webmitm与sshmitm类似,也需要dnsspoof的“配合”,不同的是,webmitm“劫持”的是HTTP和HTTPS会话过程,捕获SSL的加密通信。
webmitm [-d] [host]
tcpnice
减慢局域网中指定的tcp连接速度
foo$ tcpnice [-I] [-i interface] [-n increment] expression
-
-I Forge ICMP source quench repliesin addition to tiny TCP window advertisements;
-
-i interface 网卡接口名字 ;
-
-n increment指定一个数字来减慢连接速度(范围1-20,20最慢);expression使用tcpdump过滤格式来选择所需的tcp连接。
tcpkill
断开局域网中指定的tcp连接
foo$ tcpkill [-i interface] [-1...9] expression
-
-i interface 网卡接口名字;
-
-1...9选取的暴力指数,高速的tcp连接需要大的数字,默认是3;expression使用tcpdump过滤格式来选择要断开的tcp连接