V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jqknono
V2EX  ›  职场话题

职场如何安全的摸鱼

  •  
  •   jqknono · 29 天前 · 2447 次点击

    鄙人从事安全行业多年, 学习了很多当偷儿(不是), 是抓偷儿的本领, 年过中年深刻明白, 给公司打工拿到的薪水那是自己应得的, 只有摸鱼领到的工资才是自己赚到的。摸鱼有益身心健康自不必多说, 本文主要分享如何安全的摸鱼。

    诸如后窗偷窥, 摄像头扫视, 喝水路过, 假扮保洁偷瞄这类依赖自然光散射的招数略显低级, 真正从容的老板应该躺着老板椅上拿着三折叠奏折就把员工们看个精光, 懂得都懂. 这依赖安全公司提供的各种监控软件。其中 DNS 服务就是一种常见的简单实施, 只需要在路由器的 DHCP 服务中通告自建的 DNS 服务 IP, 然后绑定员工工位和 IP, 这样就能获取员工访问的每个链接了。

    HTTPS 推广开来 我们访问的内容不是加密的吗? 事实上上网笼共分三步, 第一步查询域名对应的 ip, 第二步与 IP 协商通信密钥, 第三步发送加密信息。摸鱼者千算万算不一定算得到其中第一步是未加密的, 这一步可以泄露什么信息呢, 其实就只是域名而已, 很多时候被人听到东京的小号或者加拿大的鼓点, 就已经足够了. 都说摸鱼, 没人会讨论摸的是红鲤鱼还是利捋驴, 这一步泄露的信息是足够的, 知道你在访问 NSFW(Not safe for work)就已经足够.

    如何避免被老板或老板的爪牙抓包, 是我们当代打工人不得不认真面对的问题, 本文分享如何安全的摸鱼.

    自行修改 DNS

    由于 DHCP 通告 DNS 只是一种简单的网络检视实施, 我们也可以简单的绕过, 那就是不接受通告, 自行点开网络设置, 修改 DNS 为223.5.5.5, 这是阿里云的 DNS 服务, 污染较少, 也不会被老板怀疑.

    可惜的是, UDP:53 是一个非常透明的远古方案, 只需要在上级路由器上设置一个简单规则, 就能把所有的 DNS 请求重定向到预设的 DNS 服务器上, 这样就能轻松的劫持 DNS 请求了.

    这条规则是这样的:

    iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to-destination
    

    So easy, 老板还可以假装他不知道你知道他在监控你而且修改了 DNS 服务, 然后继续偷窥你到底摸了公司多少鱼.

    使用加密 DNS

    不同于 HTTPS 加密的是通信内容, DNS 加密的是通信的域名, 现今已有 DNS over HTTPS(DoH), DNS over TLS(DoT), DNS over QUIC(DoQ) 等加密方案.

    使用加密 DNS 后唯一泄露的信息将只有加密 DNS 服务器的域名.

    几大 DNS 服务商均已经支持DoHDoT, 如 Cloudflare, Google, Quad9, Alibaba, Tencent 等.

    下面列举其提供的 DoH 和 DoT 服务地址:

    海外的服务器可能会明显影响你的上网速度, 除非特殊需求, 应优先考虑国内的 DNS 服务,国内的 DNS 服务商也提供了加密 DNS 服务:

    这些免费服务的提供者基本都是广告大户, 用了它们的 DNS, 你的用户画像可能底裤都要画出来, 我会在其它文章分享即使 ip 变化仍能知道"你是你"的方法. 相较之下, 号称"赛博菩萨"的 Cloudflare 可能会稍微好点, 但它是如何利用用户的 DNS 查询数据我并不了解, 目前只是单纯的比较信任它.

    DNS 还能做什么

    DNS 作为访问互联网的第一步, 是一个很好的监控点, 除了监控, 它还可以做一些访问控制, 如过滤广告, 拦截危险网站, 拦截隐私窃取等.

    以上公开的 DNS 服务仅提供域名查询, 缺少访问控制, 这是一种应该允许自定义的能力, 每个人的需求不尽相同, 有的人能忍受一点广告, 有的人一点都忍受不了, 如果广告和内容混用域名, 甚至干脆内容都不看了. 还有很多人, 甚至无法识别广告, 看了就看了.

    针对讨厌广告的人分享一个提供基础去广告能力的加密 DNS 服务,

    如何设置

    请先确认您的设备支持DoHDoT:

    • Windows 11 以后的系统已经支持DoH
    • macOS Big Sur 以后的系统支持DoHDoT
    • iOS 14 以后的系统支持DoHDoT
    • Android 9 以后的系统支持DoT
    • Chromium 79 以后的浏览器内核版本支持DoH

    Android

    Android 自 Android 9 以后开始原生支持 DNS over TLS(DoT),2019 年以后的手机都支持。您可以通过以下方法开启:

    1. 打开设置
    2. 打开更多连接
    3. 打开加密 DNS
    4. 选中指定加密 DNS 服务, 填入: public.adguardprivate.com

    自建 DNS 服务有各种实现方式, 如 Adguard, dnsmasq, clash 等, 只有原生 DoT 是对手机性能开销 0 影响, 它不依赖任何三方应用, 不需要任何权限, 不占用任何资源, 也不会影响手机的电量。所以推荐使用原生 DoT 加密 DNS 。

    Windows

    Windows 11 21H2 之后的版本支持原生 Dns over HTTPS(DoH), 您可以通过以下方法开启:

    1. 打开设置
    2. 打开网络和 Internet
    3. 打开以太网
    4. 找到DNS 服务器分配, 点击编辑
      1. 选择手动
      2. 首选 DNS 服务器 IPv4 中填入: 111.229.178.206
      3. DNS over HTTPS(DoH)选择: 开(手动模板)
      4. DoH 模板中填入: https://public.adguardprivate.com/dns-query
      5. 不要勾选失败时使用未加密请求
      6. 备选 DNS 服务器您可以选填223.5.5.5(阿里云公共 DNS 服务), DNS over HTTS 关, 勾选失败时使用未加密请求.

    iPhone

    iOS 14 以上版本支持原生 Dns over HTTPS(DoH)和 DNS over TLS(DoT)加密 DNS, 您可以通过以下方法开启:

    1. 打开自带浏览器 Safari, 下载配置文件: dot.mobileconfig
    2. 打开设置
    3. 打开通用
    4. 打开VPN 和设备管理
    5. 选中安装配置文件

    macOS

    macOS Big Sur 以上版本支持原生 Dns over HTTPS(DoH)和 DNS over TLS(DoT)加密 DNS, 您可以通过以下方法开启:

    1. 打开自带浏览器 Safari, 下载配置文件: dot.mobileconfig
    2. 打开系统偏好设置
    3. 打开网络
    4. 选中VPN 和设备管理
    5. 选中安装配置文件

    Chromium 系浏览器(79+)

    如果不希望引入系统级的加密 DNS ,或者使用的 Windows 10 及以前的版本, 可以只在浏览器中设置加密 DNS, Chromium 79+的浏览器版本支持DoH, 以下是 Chromium 系(Chrome/Edge/360/QQ 等)浏览器的设置方法:

    1. 打开 Chrome 浏览器设置
    2. 打开隐私和安全
    3. 打开安全
    4. 滚动到高级
    5. 打开使用安全 DNS
    6. 选择 DNS 提供商中填入: https://public.adguardprivate.com/dns-query

    其它信息

    Apple 设备配置文件内容

    
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    	<dict>
    		<key>PayloadContent</key>
    		<array>
    			<dict>
    				<key>DNSSettings</key>
    				<dict>
    					<key>DNSProtocol</key>
    					<string>TLS</string>
    					<key>ServerName</key>
    					<string>public.adguardprivate.com</string>
    				</dict>
    				<key>PayloadDescription</key>
    				<string>Configures device to use AdGuard Home</string>
    				<key>PayloadDisplayName</key>
    				<string>public.adguardprivate.com DoT</string>
    				<key>PayloadIdentifier</key>
    				<string>com.apple.dnsSettings.managed.11b4d48d-8e9b-4e15-b7c1-45cb1c564c99</string>
    				<key>PayloadType</key>
    				<string>com.apple.dnsSettings.managed</string>
    				<key>PayloadUUID</key>
    				<string>e9819f0c-250e-49b7-ad89-c0db078c72f0</string>
    				<key>PayloadVersion</key>
    				<integer>1</integer>
    			</dict>
    		</array>
    		<key>PayloadDescription</key>
    		<string>Adds AdGuard Home to macOS Big Sur and iOS 14 or newer systems</string>
    		<key>PayloadDisplayName</key>
    		<string>public.adguardprivate.com DoT</string>
    		<key>PayloadIdentifier</key>
    		<string>e0b7d7db-e0d1-4bce-bcf4-8ada45d2f5a3</string>
    		<key>PayloadRemovalDisallowed</key>
    		<false/>
    		<key>PayloadType</key>
    		<string>Configuration</string>
    		<key>PayloadUUID</key>
    		<string>0404cb98-3621-4f97-9530-b18288633d40</string>
    		<key>PayloadVersion</key>
    		<integer>1</integer>
    	</dict>
    </plist>
    

    终极监控方案

    给员工设备装上根证书, 后边属于企业服务, 感兴趣的老板得多花些钱了.

    或者把这些钱发给员工, 员工有了主人公精神, 自然就不会再摸鱼了. Maybe.

    29 条回复    2024-10-28 12:28:18 +08:00
    yiqiao
        1
    yiqiao  
       29 天前
    安装后代理软件无法使用,以及如果本地开发配置指向 127.0.0.1 相关地址访问不了。
    jqknono
        2
    jqknono  
    OP
       29 天前 via Android
    @yiqiao hosts 配置直接跳过了吗?是 Windows 还是 Mac 呢? 是什么代理软件无法使用,我看看咋回事呢
    yiqiao
        3
    yiqiao  
       29 天前
    @jqknono MacOS, clash 代理,目前我用 Chromium 方案了。简单点
    povsister
        4
    povsister  
       29 天前
    不是,哥们,一个 DNS 泄露问题你硬是整个一篇万字文。。我都怀疑你是不是要中途突然开始丝滑连招了,结果居然就这么结束了。。

    另外,如果公司老板拿着你的 nslookup 记录敲打你,这种公司有存在必要性吗。
    maladaxia
        5
    maladaxia  
       29 天前
    太长没看
    用的着这么麻烦吗
    挂个代理 dns 也是会走代理的
    PolarBears
        6
    PolarBears  
       29 天前
    如果你公司会审计流量你还敢用公司的网摸鱼?甚至用公司的设备摸?如果那么严又想摸鱼的话不如换个公司摸吧。
    jqknono
        7
    jqknono  
    OP
       29 天前 via Android
    @maladaxia 需要显式设置 dns 劫持,开 tun 模式才会走代理
    maxwellz
        8
    maxwellz  
       29 天前
    IPguard:你继续,我听着呢
    maladaxia
        9
    maladaxia  
       29 天前
    @jqknono socks5 了解一下
    jqknono
        10
    jqknono  
    OP
       29 天前 via Android
    @povsister 我天天看我家的家用电器浏览了什么网站,小爱同学最爱的就是逛百度和淘宝,我的两个石头扫地机每天逛淘宝,猫砂盆也逛淘宝,我给都禁了
    jqknono
        11
    jqknono  
    OP
       29 天前 via Android
    @maladaxia socks5 的确可以代理 dns 请求,但是你访问国内网站也走 socks5 吗
    jqknono
        12
    jqknono  
    OP
       29 天前 via Android
    @maxwellz 这种没辙,有 dns 嗅探,IP 反查域名的企业也有能力抓,最终结果就是只有全局代理能保证不泄漏,但是流量审计又会发现异常流量,本文章方案仅限公司不装根证书的企业,装了根证书的就老老实实用手机流量摸吧
    maladaxia
        13
    maladaxia  
       29 天前
    @jqknono 我访问国内网站走国内的 socks5
    jqknono
        14
    jqknono  
    OP
       29 天前 via Android
    @maladaxia 看来你也是摸鱼老手了
    renmu
        15
    renmu  
       29 天前 via Android
    如果使用全局 vpn,还能被察觉吗?
    kandaakihito
        16
    kandaakihito  
       28 天前
    1. 如果电脑本身是公司资产而且被加域了或者安装了深信服,那没救;

    2. 如果是自己的设备,直接开梯子全局吧,记得开 TUN 模式;
    danbai
        17
    danbai  
       28 天前
    我的建议是买个服务器远程上去摸
    lyxxxh2
        18
    lyxxxh2  
       28 天前
    直接摸呗,别太过就行。
    ruuu
        19
    ruuu  
       28 天前
    @jqknono 只准你自己摸鱼,就不准家里的电器也上网摸鱼吗,太过分了!
    z919126592
        20
    z919126592  
       28 天前 via Android
    我的建议是带薪拉屎
    yfmir
        21
    yfmir  
       28 天前
    刚好有类似痛点,咨询下大佬,下面情况有办法破么,macos 系统
    1. 公司拦截了部分网站,访问后网页提示 McAFee Skyhigh ,开代理也无法访问
    2. 疑似有 DNS 污染,无法使用 Clash ( Tun 模式和系统代理均无法使用,nameserver 和 default-nameserver 都配置好了),可以 ping 通节点,但是无法连接上,看日志是无法 resolve 到节点的 IP ,使用的 hy2 协议,系统 dns 也修改过了
    h1298841903
        22
    h1298841903  
       28 天前
    电脑自身就安装了监控软件,OCR 一分析就行了,而且正常来说,公司能访问网络都应该都黑白名单。
    jqknono
        23
    jqknono  
    OP
       28 天前
    @yfmir 能够劫持网页内容的话可能是装了根证书了, 这种情况你需要确认公司是拦截了 DNS 请求, 还是拦截了 IP, 如果是拦截 IP 则无解. 如果是拦截了域名解析, 需要更换加密 DNS, 用这个 dns 查询工具:https://github.com/natesales/q, 确认加密 dns 是否可以正常获得域名解析结果.
    MrVito
        24
    MrVito  
       24 天前
    啊,我也想问下大佬。
    1. 我突然发现公司的网络没法访问抖音了,这种情况下我有没有办法绕过这个屏蔽呢?除了全局代理之外
    2. 怎么判断公司有没有装根证书呀?
    jqknono
        25
    jqknono  
    OP
       24 天前
    @MrVito
    1. 需要确认是域名屏蔽还是 ip 屏蔽, 浏览器换个加密 dns 试试能不能访问
    2. windows 查看根证书方法, Win+R , 执行 certmgr.msc , 在 Trusted Root Cert ... 下, 看看有没有包含自己公司名相关的证书.
    MrVito
        26
    MrVito  
       24 天前
    @jqknono 我用了你帖子里面的 https://public.adguardprivate.com/dns-query 这个 DNS 服务器,用你回复里面的 q 那个 DNS 查询工具,q www.doubin.com 返回值是 wsarecv: An existing connection was forcibly closed by the remote host.
    MrVito
        27
    MrVito  
       24 天前
    jqknono
        28
    jqknono  
    OP
       24 天前
    hexiaodai
        29
    hexiaodai  
       24 天前 via iPhone
    加一张无线网卡是不是就可以了?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1669 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 16:50 · PVG 00:50 · LAX 08:50 · JFK 11:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.