admin 管理员组文章数量: 887019
最好的 MitM 中间人攻击开源框架清单:https://github/Chan9390/Awesome-MitM
哔哩哔哩:https://search.bilibili/all?keyword=wireshark
1、WireShark
WireShark 是一个开源免费的高性能网络协议分析软件,它的前身就是非常著名的网络分析软件Ethereal。WireShark 现在已经支持绝大多数的以太网网卡,以及主流的无线网卡。
WireShark 具有如下所示的特点:
- (1) 支持多种操作系统平台,可以运行于Windows、Linux、Mac OS X10.5.5、Solaris和FreeBSD等操作系统上;
- (2) 支持超过上千种的网络协议,并且还会不断的增加对新协议的支持;
- (3) 支持实时捕捉,然后可在离线状态下进行分析;
- (4) 支持对VOIP数据包进行分析;
- (5) 支持对通过IPsec、ISAKMP、Kerberos、SNMPv3、SSL/TLS、WEP 和 WPA/WPA2 等协议加密了的数据包解密;
- (6) 可以实时获取来自以太网、IEEE 802.11、PPP/HDLC、ATM、蓝牙、令牌环和FDDI(光纤)等网络中的数据包;
- (7) 支持读取和分析许多其它网络嗅探软件保存的文件格式,包括 Tcpdump、Sniffer pro、EtherPeek、Microsoft Network Monitor和CISCO Secure IDS 等软件;
- (8) 支持以各种过滤条件进行捕捉,支持通过设置显示过滤来显示指定的内容,并能以不同的颜色来显示过滤后的报文;
- (9) 具有网络报文数据统计功能;
- (10) 可以将它捕捉到的数据导出为XML、PostScript、CSV及普通文本文件的格式。
WireShark 官网:https://www.wireshark
- WireShark 要在 Windows系统下运行时,还需要一个名为 Winpcap 的驱动库,但是现在 Wireshark 底层用的是 Npcap, Npcap 是 神器Nmap 套件中一个Windows数据抓包程序,主要用于Windows数据包嗅探和发送。Npcap 开源项目源于2013年由Nmap创始人Gordon Lyon和北京大学罗杨博士发起,并由Google Summer of Code计划赞助,以MIT协议发布。由于Winpcap 已经停止更新(此前版本的Npcap主要基于Winpcap(2013停更)),Npcap 通过底层开发构建了全新自己的 Npcap 原始数据包捕获/发送驱动程序,在兼容WinpcapAPI 的基础上,使用更加现代 API 接口,在功能、性能、安全性方面都完胜老版本。
- 如果是在 Linux 系统下使用时,就应当使用 Libpcap 驱动库,它现在的版本是 Libpcap1.0.0,我们可以从 www.tcpdump 上下载。
WireShark 在 Windows 和 Linux 系统下安装之前,首先你得保证系统上已经安装了 Npcap 或 Linpcap。下图就是 WireShark 在 Windows 系统下运行时的主界面。
选一个要抓取数据包的网卡接口,就可以捕获接口上的数据
IP 过滤
在过滤器中输入 ip. 可以查看其它选项。
源 IP :ip.src == 192.168.0.5 或 ip.src eq 192.168.0.5
目的IP:ip.dst == 192.168.0.5 或 ip.dst eq 192.168.0.5
指定主机ip,源或目的: ip.host == 192.168.0.5 或 ip.host eq 192.168.0.5 或者用ip.addr
指定源ip 或 指定目的ip: ip.src == 192.168.0.5 or ip.dst == 192.168.0.5
指定源ip 且 指定目的ip: ip.src == 127.0.0.1 and ip.dst == 192.168.0.5IP层还可以跟进 IP 协议的字段 过滤。
MAC 地址 过滤
与 ip.过滤类似,使用 eth.XXX,没有eth.host
示例:eth.addr;eth.src;eth.dst
端口 过滤
端口过滤非常常用,要指明协议是tcp还是udp,
可以用srcport,dstport,port,端口可以用比较符合>,>=,<,<=,==,eq
示例:过滤目的端口是80端口的tcp报文:tcp.dstport == 80
示例:过滤源端口是443的tcp报文:tcp.srcport == 443
示例:过滤端口是80的tcp报文 或者端口是53的udp报文:udp.port == 53 or tcp.port == 80
示例:过滤源端口号大于1024的tcp报文:tcp.srcport > 1024
示例:过滤指定服务器80端口 :tcp.port == 80 and ip.host = 192.168.0.5
协议 过滤
tcp,udp,arp,icmp,http,smtp,ftp,dns,msnms,ip,ssl,oicq,bootp等。
"排除" 就是在前面加个 ! 或者 not。
示例:只显示tcp报文 : tcp
示例:只显示不是 tcp 的报文 : !tcp 或者 not tcp
示例:过滤ack的包:tcp.ack == 1
示例:过滤http包,以及dns包,以及ssl包:http or dns or ssl
http 过滤
http.request.method == GET 过滤 HTTP 的 GET 请求
http.request.method == POST 过滤 HTTP 的 POST 请求
http.response.code == 200
使用 contains 过滤内容
http contains "HTTP/1.1 200 OK"
http contains "200 OK"
http contains "admin"
tcp contains "admin"
过滤包的指定的字段:协议 [开始位置:长度]
示例:tcp协议,从第2个字符开始(起始是0,不是1,这个2是偏移的位置),
长度为3,内容为01,bb,eb
tcp[2:3] == 01:bb:eb
正则 过滤
正则使用的是 matches,
格式:
tcp matches "正则表达式" //
tcp contains "字符串" // contains 只是进行 "字符串匹配"
流 追踪
数据包,点击鼠标右键 ---> 追踪流 ---> tcp 流进行跟踪、或者 http 流
点击之后,就会看到这条 tcp流 或者 http流 上的所有请求和回复
选择不同的协议,就可以查看对应协议的流
配置 Wireshark 抓取 https 数据包 解密SSL:
Wireshark 解密 HTTPS 流量的两种方法:http://cn-sec/archives/508478.html
Wireshark 的抓包原理是直接读取并分析网卡数据,要想让它解密 HTTPS 流量,有两个办法:
方法 1:
如果你拥有 HTTPS 网站的加密私钥,可以用来解密这个网站的加密流量;
方法 2:
某些浏览器支持将 TLS 会话中使用的对称密钥保存在外部文件中,Wireshark 可以利用这个文件进行解密。Firefox 和 Chrome 都支持这种方式,但 Firefox 和 Chrome 只会在系统环境变量中存在 SSLKEYLOGFILE 路径时才会生成该文件,先来加上这个环境变量( 以 Windows为例 ):
- 1、配置环境变量 SSLKEYLOGFILE 值为 C:\ssl_key\sslog.log(注意后缀名一定用 log)这样浏览器和服务器SSL协商的秘钥信息会存储到文件中。打开浏览器,访问一个HTTPS 网页,然后打开
SSLKEYLOGFILE
环境变量值的文件路径就可以看到TLS协商的随机字符串记录。 - 2、配置 Wireshark 设置文件路径。菜单栏 ---> 编辑 ---> 首选项 ---> Protocols ---> SSL( 有的版本只有 TLS ) --->
Pre-Master-Securet log filename
(预主密钥) 添加 SSLKEYLOGFILE 变量设置的路径的日志文件。 - 3、配置好后,重启浏览器,为了避免 wireshark 抓到其他数据包,可以添加过滤器条件,设置 tcp.port=443 这样就只过滤 https 的数据包。
2、Tcpdump 和 Windump
Tcpdump 官网:http://www.tcpdump/
Tcpdump 是一个基于命令行,工作在被动模式下的网络嗅探器。可以很好地运行在 UNIX、Linux 和 MacOS 操作系统上,可以从官网上下载它的二进制包。同时,要运行它,也需要系统中安装有 Libpcap1.0.0 这个驱动库。Tcpdump 在 Windows 系统下的版本就是 Windump 也是一个免费的基于命令行方 式的网络分析软件。在使用 Windump 之前,同样要确保系统中已经安装有 WinPcap 4.0.2 驱动库。
许多网络或安全专家,都喜欢用它来发现网络中是否存在ARP地址欺骗。可以将它捕获到的数据包先写入到一个文件当中,然后用 WireShark 等有图形界面的嗅探器读取和分析。
命令格式为:tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ][ -i 网络接口 ] [ -r 文件名]
[ -s snaplen] [ -T 类型 ] [ -w 文件名 ] [表达式 ]
- -i 指定要捕捉的网络接口卡
- -r 读取已经存在的捕捉文件,
- -w 将捕捉到的数据写入到一个文件中。
- man tcpdump 或者 tcpdump --help 查看更多参数
Tcpdump 使用以下三种类型的关键字:
- (1)、表示类型的关键字,主要有 Host、Net、Port
Host:指定主机的IP地址 ( 如果没有指定关键字,缺省是 Host 类型 )
Net:指定网络地址
Port:指定端口 - 表示传输方向的关键字,主要有 Src、Dst
src:源IP地址
dst:目的IP地址 - (3)、表示协议的关键字,主要有 ip,arp,tcp,udp 等。
Tcpdump 的关键字还有很多,查看帮助文档来得到它们的详细说明。
关键字之间可以使用 "逻辑运算关键字" 连接,以便于指定某个范围或排除某个主机等。
"逻辑运算关键字" 有三个,
- "取非" 运算 not,或者用 ! 表示
- "与" 运算 and,或者用 && 表示
- "或" 运算 or ,或者用 || 表示
3、 DSniff 工具包
github 地址:https://github/search?q=dsniff
Kali 需要安装:apt install dsniff
Dsniff 是一个著名的综合性网络嗅探、口令嗅探工具包。Dsniff 开发者 DugSong 在1999年12月以密歇根大学 CITI 研究室( CenterforInformationTechnologyIntegration)的研究成果为基础, 开发了这个后来具有很大影响力的网络安全工具包。Dsniff 的下载网址:https://monkey/~dugsong/dsniff/ 。也可以从网上找到 Dsniff 早期支持的 windows 版本。
DSniff 可以使用一系列的主动攻击方法,将网络流量重新定向到网络嗅探器主机,使得网络嗅探器有机会捕获到网络中某台主机或整个网络的流量。这样就可以将 DSniff 用在交换或路由的网络环境中,以及 Cable modem 拔号上网的环境中使用。甚至当安装有 DSniff 的网络嗅探器不直接连接到目标网络当中,它依然可以通过运程的方式捕获到目标网络中的网络报文。
Dsniff 是一个工具集,主要分为四类:
- 纯粹被动地进行网络活动监视的工具,包括:dsniff、filesnarf、mailsnarf 、msgsnarf、urlsnarf、webspy;
- 针对 SSH 和 SSL 的 MITM(Man-In-The-Middle)"攻击"工具,包括 sshmitm 和 webmitm;
- 发起主动欺骗的工具,包括:arpspoof、dnsspoof、macof;
- 其它工具,包括 tcpkill、tcpnice
各个工具说明:
- 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 等
- filesnart:嗅探网络文件系统(NFS)的流量,SMB方式传输的文件的一个副本,并选定某个文件,转储到本地当前工作目录。
- mailsnarf:嗅探 SMTP 和 POP 流量,并以 Berkeley 邮件格式输出 e-mail 消息。
- msgsnarf:嗅探聊天软件的聊天内容,包括AOL、ICQ 2000、IRC、MSN Messenger 或 Yahoo Messenger
- urlsnarf:嗅探 HTTP 请求报文的内容,并以CLF (Common Log Format)格式输出。
- webspy:指定一个要嗅探的主机,如果指定主机发送HTTP请求,打开网页,webspy也会通过 netscape 浏览器在本地打开一个相同的网页。( 它能将从客户处嗅探到的URL地址,发送到攻击者的WEB浏览器中显示。并且实时更新,攻击者就可以看到你到底浏览了哪些网站 )
- sshmitm: 是Dsniff自带的一个具有威胁的工具之一。首先通过dnsspoof伪造实际机器主机名将攻击目标主机的SSH连接转到本地,那么sshmitm可以截获来自主机的密钥,并获得被劫持连接中的所有信息解码,然后重新转发SSH流量到SSH服务器;
- webmitm:与 sshmitm 类似,也需要 dnsspoof 的"配合",不同的是,webmitm"劫持"的是HTTP和HTTPS会话过程,捕获SSL的加密通信;
- arpspoof:启用 arp 欺骗,将自己网卡的IP地址伪装成指定 IP 地址的MAC,例如:伪装成网关,嗅探局域网的所有网络流量,进行抓包;
- dnsspoof:启用DNS欺骗,如果dnsspoof嗅探到局域网内有DNS请求数据包,它会分析其内容,并用伪造的DNS响应包来回复请求者。如果是 请求解析某个域名,dnsspoof会让该域名重新指向另一个IP地址(黑客所控制的主机),如果是反向IP指针解析,dnsspoof也会返回一个伪造的域名。一个非常重要的功能就是 webmitm,这种功能主要是用来捕获SSL和SSH加密了的数据。
- macof:使用 MAC flooding 来攻击交换机。通过不断向交换机发送包含有冒充的MAC地址的数据包,以此来溢出交换机的MAC地址表。此时,交换就会以广播的方式发送所接收到的数据包。它一般在上述嗅探软件前使用;
- tcpkill:能够切断指定的TCP会话连接,主要是基于TCP的三次握手过程。其实就是一种拒绝服务攻击(DoS)。主要用来切断与合法主机的网络连接,保证嗅探工作的正常进行。它一般在上述嗅探软件前使用。
- tcpnice:能够通过在添加活动的流量,降低指定的LAN上的TCP连接的速度。
- screenspy :用进行屏幕监控;
dsniff
用法:
dsniff [-c] [-d] [-m] [-n] [-i interface | -p pcapfile] [-s snaplen] [-f services] [-t trigger[,...]]] [-r|-w
savefile] [expression]选项
-c 打开半双工TCP流,允许在使用 arpspoof时进行正确的嗅探操作
-d 启动调试模式;
-m 使用dsniff.magic文件,通过在magic文件中定义的特征,尝试自动判断协议
-n 不把 IP 地址解析成主机名
-i interface 指定网络接口
-p pcapfile 不是处理网络上所观察到的数据包的内容,而是处理给定捕获数据包的PCAP文件。
-s snaplen 对报文的前snaplen个字节进行嗅探,而不是默认的1024字节;.
-f services 以/etc/service格式从文件中加载触发器(也就是口令嗅探的服务类型);
-t trigger[,...]
使用格式 port/proto=service 来加载一个以逗号界定的触发器集(e.g. 80/tcp=http).
dsniff –t 21/tcp=ftp,23/tcp=telnet –m
-r savefile 从保存的文件中读取会话(-w 选项 可以保存会话到文件)
-w file 保存 会话 到文件中
expression 指定一个 tcpdump(8) filter expression 来让 sniff 选择要嗅探的流量.
在挂起的信号中,dsniff会将当前的触发器表转储到dsniff.services。FILES
/usr/share/dsniff/dsniff.services
Default trigger table/usr/share/dsniff/dsniff.magic
Network protocol magic参见;另请参阅
arpspoof(8), libnids(3), services(5), magic(5)
filesnarf、mailsnarf、msgsnarf、urlsnarf、webspy、webspy
filesnarf、mailsnarf、msgsnarf、urlsnarf、webspy、webspy 使用方式都 差不多。可以 使用 man 查看具体使用。
FILESNARF(8) System Manager's Manual FILESNARF(8)
NAME
filesnarf - sniff files from NFS trafficSYNOPSIS
filesnarf [-i interface | -p pcapfile] [[-v] pattern [expression]]DESCRIPTION
filesnarf saves files sniffed from NFS traffic in the current working
directory.OPTIONS
-i interface 指定监听接口
-p pcapfile 处理捕获的 包文件
-v "反转" 模式. 反转匹配,选中不匹配的文件.
pattern 指定正则表达式
expression 指定 一个要嗅探的流量的 tcpdump(8) 过滤表达式
SEE ALSO
dsniff(8), nfsd(8)
sshmitm、webmitm
webmitm 与 sshmitm 类似,都需要配合 dnsspoof 一块使用。
- webmitm 劫持的是 HTTP 和 HTTPS 会话过程
- sshmitm 捕获 SSL 的加密通信
arpspoof
arp 毒化的原理,简单的说就是伪造MAC地址与IP的对应关系,导致数据包由中间人转发出去。
中间人攻击 --- ARP毒化:
本文标签: 工具 tcpdump Wireshark dsniff NG
版权声明:本文标题:嗅探工具 --- wireshark、tcpdump、dsniff、ettercap、bettercap、netsniff-ng 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1729151937h1324317.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论