RavelloH's Blog

LOADing...



使用Wireshark进行自我网络安全审计

self-network-security-audit-with-wireshark

网络安全/技术 1740

wireshark


前言

在某些公用网络环境中,你可能会面临网络安全泄露的风险。本文使用Wireshark来分析你的设备是否存在被监听的风险。

这里以移动设备为例,实际上其余设备均可用此方法分析。你需要有无线网卡的计算机以用于为其他设备提供网络连接。

准备工作

你需要:

  • 一台计算机(带有无线网卡)
  • Wireshark
  • 其余需要分析的设备

分析

筛选目标设备

  1. 首先,将你需要分析的设备连接至你的电脑热点
  2. 在你的设备上检查其分配到的IP地址
  3. 在你的计算机中,使用cmd输入ipconfig以查看所有网卡的信息
  4. 找到其中有你所需分析设备的网卡。
  5. 在Wireshark中选择此网卡监听。

例如,我的设备IP为192.168.137.199,通过ipconfig发现其被无线局域网适配器 本地连接* 2管理,那么就应该在Wireshark中选择本地连接* 2

ipconfig ipconfig
wireshark-select wireshark-select

检查DNS是否加密

通常情况下,你的DNS未经加密,由明文直接使用udp协议传输,这会带来巨大的安全隐患。你可以在Wireshark中,筛选并查看这些未经加密的流量。

使用你的设备访问一定数量的资源后,在你的Wireshark中以以下格式筛选:

ip.addr == [目标设备IP] && udp.port == 53

dns-check dns-check
如发现类似上图的数据,说明你的DNS未经加密,可能存在泄露隐私的风险。你可以使用DoT/DoH来加密。例如,在Quantumult X的DNS配置中这样设置:

[dns]
prefer-doh3
doh-server = https://223.5.5.5/dns-query, https://223.6.6.6/dns-query,https://1.12.12.12/dns-query,https://8.8.8.8/dns-query,https://208.67.222.222/dns-query,https://208.67.220.220/dns-query,https://208.67.222.123/dns-query
no-system

检查SNI泄露

SNI(Server Name Indication,服务器名称指示)是TLS(传输层安全协议)扩展的一部分。它的作用是在TLS握手时,客户端告诉服务器它想访问的具体域名。

很遗憾,即使DNS加密,在未使用代理的情况下,你所访问的资源域名仍可被监测。

你可以在Wireshark中以以下方式筛选所有Client Hello包,查看其泄露情况。

ip.addr == [目标设备IP] && tls.handshake.type == 1 && tcp

sni sni

如上图所示,如果你发现了任何你不想让其他人看到的域名,说明你的代理分流工作未到位,设置此域名走代理即可。

MITM

常用的网络监听应该就是以上两种方式,不过也不排除有些极端环境可能会MITM,虽然99%是用不上的。

MITM的特点是需要伪造证书,没什么很好的检查方式,不过你也可以通过查看Server端发过来的证书的Issuer来确认正式是否由知名CA签署。

ip.dst == [目标设备IP] && tls.handshake.certificates

ca ca

INFO

框架状态


URL:
来源: ---
此页访问量:
此页访问人数:
此页平均滞留:
网络连接状态: 离线
Cookie状态: 已禁用
页面加载状态:
站点运行时长: ---

00:00


    无正在播放的音乐
    00:00/00:00


    账号
    User avatar
    未登录未设置描述...
    尚未登录,部分功能受限
    立刻 登录 注册
     未登录
    刷新进程离线
    当前未存储有效的TOKEN

    通知中心

    总计0条通知,0条未读通知
    当前未登录,无法查看通知


    - Mind stuff, that's what they say when the verses fly -