# 内网代理与边界流量观察(渗透/蓝队DFIR双向视角笔记) > 核心概念:内网代理=在攻陷的内网主机上搭建流量转发通道,让外部攻击机访问内网其他隔离网段;边界流量观察=在网络边界设备(防火墙、核心交换机、NIDS、流量镜像)抓取、分析进出内网的流量,识别代理隧道、横向移动。 ## 一、内网代理基础分类 ### 1. 端口转发(Port Forward,单层转发) 仅把本机某个端口流量转发到目标IP:端口,**不提供完整内网路由**。 - 工具:netcat、socat、windows netsh interface portproxy - 适用:单点转发,访问内网单个服务(3389/22/数据库) - 特点:简单,无路由;只能转发预先指定端口,不能随便访问内网任意IP ### 2. Socks代理(最常用内网隧道,SOCKS4/SOCKS5) **提供完整内网路由**,攻击机的流量通过被控主机作为跳板,访问跳板可达的所有内网资产。 - 工具:frp、reGeorg、Neo-reGeorg、chisel、proxychains、ssf - SOCKS5:支持TCP、UDP、身份认证,内网渗透首选 - 典型用法: 攻击机 → Socks代理客户端 → 跳板机(已沦陷主机) → 内网各个网段 - 流量特征: - SOCKS5握手:0x05 版本标识,握手报文特征明显 - 后续流量是原始TCP流,应用层协议嵌套在socks隧道内(不容易直接识别里面承载什么业务) ### 3. 应用层隧道(伪装代理,绕过边界ACL/WAF) 把流量封装在HTTP/HTTPS/Websocket协议中,**伪装成正常网页流量**,穿透边界防火墙。 - 工具:reGeorg、neo-reGeorg、frp http/https模式、chisel over https - 特点:80/443端口,容易混在正常业务流量,边界审计难度更高 - 风险:很多边界只放行443,对HTTP内部载荷检测不足 ### 4. DNS隧道(隐蔽低带宽代理) 将流量拆分成DNS子域名查询,利用DNS协议带出内网数据;适合边界只允许DNS出站场景,带宽很小。 > 区分一句话: > 端口转发=定点单端口;Socks=内网全路由跳板;HTTP隧道=伪装网页穿透边界;DNS=低带宽隐蔽外传。 ## 二、边界流量观察:采集位置 边界 = 内网与外网的交汇点;流量观察部署位置: 1. **防火墙**:会话日志、连接日志、威胁日志(源目IP、端口、会话时长、字节数) 2. **核心交换机镜像端口(SPAN)**:旁路镜像流量,不影响业务,用于NIDS(Suricata/Snort)分析 3. **WAF**:应用层HTTP/HTTPS载荷审计(识别http隧道) 4. **网闸/专线边界**:跨安全域流量审计 5. **EDR/主机侧**:作为补充,看跳板主机的外联进程(边界看不到加密HTTPS内部载荷,主机EDR可以补全) > 重要限制:**HTTPS加密隧道(TLS)边界只能看到IP层,看不到隧道里面的载荷**; > 想解析内部内容,需要SSL解密(中间人),很多生产环境不开启。 ## 三、内网代理隧道典型流量特征(蓝队检测重点) ### 1. Socks5隧道特征 - 固定握手字节:`05 01 00` 版本+认证方式 - 异常长会话、长时间保持连接 - 跳板主机对外建立出站长连接,源是内网跳板IP,目的是外部公网IP - 同一公网IP,短时间大量访问内网不同网段IP(横向移动特征) ### 2. HTTP/HTTPS隧道(reGeorg/frp https) - 长期持续POST请求(高频、长body) - User-Agent固定异常值 - 请求路径固定(如 `/tunnel.php`) - 单会话传输大量字节,和正常网页访问行为不符 - 心跳包:周期性小数据包维持长连接 ### 3. DNS隧道特征 - 大量子域名查询,域名随机长串Base64/hex编码字符串 - 大量NXDOMAIN(不存在域名)响应 - 单主机高频向外DNS服务器查询随机域名 ### 4. 行为特征(比单纯特征码更可靠) 1. 内网主机主动对外建立长连接(业务服务器原则上不主动向外发起长连接) 2. 跳板主机:同时存在大量内外网双向会话,跨网段访问 3. 连接时长:隧道通常保持数小时/数天,普通业务连接短 4. 数据量:单向/双向持续大量流量,和业务基线不符 ## 四、蓝队检测方法(边界+主机联动) 1. 边界防火墙:告警【内网陌生主机出站长连接】、内网服务器主动访问境外IP 2. NIDS规则:匹配SOCKS5握手特征、DNS隧道特征 3. SIEM关联分析: - 先告警跳板外联事件 - 再看跳板主机登录日志、进程日志,确认是否被入侵 4. 主机侧EDR: 查找frp/chisel等代理程序、异常进程外联、Webshell(http隧道载体) 重点:`frp`、`chisel`、`reGeorg`相关进程,进程对外建立长连接 ## 五、防护策略 1. **边界最小访问控制(ACL)** 内网服务器禁止主动出站;仅业务必要IP/端口放行;阻断内网主机直接访问公网高风险端口。 2. 出站流量审计与基线:建立正常业务的出站白名单,基线外的长连接告警。 3. 禁止服务器直接访问互联网:内网跳板无法直接建立隧道到外网(可以通过代理网关出站,审计) 4. Web服务器:查杀WebShell,限制上传,WAF拦截Web隧道特征。 5. DNS安全:内网主机强制内网DNS,阻断直接递归外网DNS,拦截异常长域名查询。 6. 监控告警: - 内网主机新增长时间出站TCP会话 - 内网主机访问外部陌生IP - SOCKS、DNS隧道NIDS告警 ## 六、渗透视角 vs 蓝队视角对比 |视角|关注点|目标| |---|---|---| |渗透|搭建隧道,隐藏流量,穿透边界ACL,实现内网横向访问|打通内网路由| |蓝队边界观察|识别异常出站长连接、隧道特征、异常跨网段访问,定位跳板主机|发现入侵、阻断隧道、溯源跳板| ## 七、常见误区 1. ❌ 只看边界载荷特征,忽略行为基线:攻击者可修改payload特征绕过静态规则,行为特征更难绕过 2. ❌ HTTPS加密流量完全无法检测:虽然看不到里面载荷,**依然可以基于连接时长、数据包数量、会话行为做告警** 3. ❌ 边界设备可以单独完成全部检测:加密隧道必须**边界流量 + 主机EDR日志联动分析** ## 八、快速SIEM检索关键词(边界日志) ``` # 查找内网主机对外长连接 event_type=netflow AND direction=outbound AND duration>3600 # 内网服务器访问公网非业务443长连接 src_zone=internal AND dst_zone=internet AND dst_port=443 AND long_session ```