admin管理员组

文章数量:1530353

最好的 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

  1. 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 接口,在功能、性能、安全性方面都完胜老版本。
  2. 如果是在 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.5

IP层还可以跟进 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 traffic

SYNOPSIS
       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毒化:

本文标签: 工具tcpdumpWiresharkdsniffNG