发布于10月9日10月9日 背景近期多家威胁情报源都在持续提到边界 VPN、SSL VPN 与远程接入网关被集中扫描和利用的情况。实际蓝队值守里,这类设备一旦暴露在公网,往往会成为攻击者进入内网的第一跳。这里不展开泛泛新闻解读,主要结合授权渗透测试和应急排查视角,梳理一套可落地的验证、日志定位和修复思路。典型场景是:单位使用 VPN 设备提供远程办公入口,设备位于公网出口,后端打通 AD、堡垒机、OA 或运维网段。攻击链一般不是单点漏洞结束,而是从 VPN 入口拿到会话、账号或设备权限后,继续进行内网探测、凭据复用和横向访问。本文仅讨论授权环境下的漏洞验证、日志分析与修复建议。对生产设备操作前建议先完成变更审批和备份。问题定位边界 VPN 风险排查建议先从三类信息入手:资产暴露面、设备版本与补丁状态、认证与访问日志。不要只看是否能登录管理后台,很多被利用的入口并不在管理端口,而是在用户登录、文件读取、客户端配置下发或 Web 接口处。确认公网暴露端口:常见为 443、8443、10443、9443,也可能映射到非标准端口。确认设备型号与版本:关注厂商安全公告中提到的受影响版本、修复版本和缓解配置。确认近 30 天登录日志:重点看异常地理位置、异常 UA、短时间大量失败、非常规时间成功登录。确认 VPN 后访问行为:是否出现非业务网段扫描、访问域控、访问数据库、访问运维端口。技术分析从近期攻击趋势看,攻击者通常会先做大规模指纹识别,然后针对特定 VPN 设备接口进行验证。成功后常见后续动作包括:绕过或滥用认证流程,获取有效 VPN 会话。读取设备上的配置、账号映射或缓存信息。使用合法账号登录后进行内网访问,降低告警概率。通过 VPN 分配地址访问内网服务,如 SMB、RDP、LDAP、WinRM。在内网主机上继续做凭据抓取或横向移动。排查时不能只盯着 VPN 设备本身,要把 VPN 地址池流量纳入内网安全日志分析。例如 VPN 地址池是 10.8.0.0/24,那么域控、堡垒机、EDR、NDR、核心交换机 NetFlow 都应围绕这个网段做聚合检索。操作步骤建议按以下顺序进行授权验证和排查:第一步:确认资产暴露情况,核对公网 IP、端口、设备指纹和版本。第二步:读取厂商公告,明确是否存在高危漏洞、修复版本、临时缓解措施。第三步:在不影响业务的前提下进行只读型验证,例如版本探测、响应头检查、登录页特征确认。第四步:导出 VPN 登录日志、管理员操作日志、系统日志和配置变更记录。第五步:关联内网日志,重点查 VPN 地址池到域控、文件服务器、数据库和运维端口的连接。第六步:对命中异常的账号做密码重置、会话清理、MFA 状态核查和权限复核。命令示例下面是一个用于授权排查的基础命令集合,主要用于资产确认、日志筛选和 VPN 地址池访问行为分析。命令不包含攻击利用逻辑,适合蓝队和授权测试场景使用。# 1. 确认公网暴露端口,仅对授权资产执行 nmap -sV -Pn -p 443,8443,9443,10443 vpn.example.com # 2. 查看 TLS 证书信息,辅助确认设备与资产归属 echo | openssl s_client -connect vpn.example.com:443 -servername vpn.example.com 2>/dev/null | openssl x509 -noout -subject -issuer -dates # 3. 获取响应头和跳转信息,辅助识别设备类型 curl -k -I curl -k -L -s | head -n 30 # 4. Linux 网关或日志服务器上筛选 VPN 地址池访问内网关键端口 # 示例 VPN 地址池:10.8.0.0/24 # 关键端口:445/3389/389/636/5985/5986/1433/3306 grep '10\.8\.0\.' /var/log/firewall.log | egrep 'DPT=(445|3389|389|636|5985|5986|1433|3306)' # 5. 统计 VPN 地址池访问目标 Top 20 grep '10\.8\.0\.' /var/log/firewall.log \ | awk '{for(i=1;i<=NF;i++){if($i ~ /^DST=/){print $i}}}' \ | sort | uniq -c | sort -nr | head -20 # 6. Windows 域控上查询来自 VPN 地址池的登录事件,可在 PowerShell 中执行 Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624; StartTime=(Get-Date).AddDays(-7)} | Where-Object { $_.Properties[18].Value -like '10.8.0.*' } | Select-Object TimeCreated, @{n='Account';e={$_.Properties[5].Value}}, @{n='LogonType';e={$_.Properties[8].Value}}, @{n='SourceIP';e={$_.Properties[18].Value}} | Sort-Object TimeCreated -Descending 日志排查重点VPN 相关日志建议至少保留 180 天,出现高危漏洞情报时,回溯时间不要只看公告发布后。攻击者常常在漏洞公开前后几天进行集中扫描,也可能在补丁发布后利用未修复窗口期进入。日志来源重点字段排查目标VPN 登录日志用户名、源 IP、登录时间、MFA 状态、分配地址异常登录、弱口令尝试、MFA 绕过迹象VPN 管理日志管理员账号、配置变更、策略变更、固件升级记录是否被修改认证策略、路由策略或新增账号防火墙日志源地址、目的地址、目的端口、动作VPN 地址池访问内网敏感服务域控安全日志4624、4625、4672、4768、4769、4776异常登录、特权登录、Kerberos 异常请求终端安全日志进程、命令行、父进程、网络连接横向工具、远程执行、凭据访问行为几个比较实用的判断点:同一账号短时间从多个国家或多个 ASN 登录,优先判定为异常。VPN 登录成功后立刻访问 445、3389、5985、389,且目标不是该用户常用资产,需要重点核查。非运维账号出现域控登录事件,尤其是 LogonType 3、10 或伴随 4672 特权登录事件,应立即复核。登录失败事件中出现大量不存在用户名,说明入口可能正在被撞库或用户名枚举。管理员日志中出现认证策略关闭、MFA 关闭、地址池变化、路由放宽,需要按入侵事件处理。风险与修复建议修复上不要只做版本升级。边界 VPN 是入口设备,建议同时处理账号、策略、日志和网络边界。及时升级到厂商修复版本,升级前导出配置并确认回滚方案。如果厂商提供临时缓解措施,例如关闭特定接口、限制管理后台来源 IP,应优先执行。管理后台禁止公网访问,只允许堡垒机、运维 VPN 或固定管理网段访问。强制开启 MFA,并检查是否存在未绑定 MFA 的本地账号、临时账号、第三方账号。清理长期不用账号,尤其是离职人员、外包账号、测试账号。重置高风险账号密码,包括近期异常登录账号、管理员账号、与 VPN 绑定的 LDAP 服务账号。缩小 VPN 路由范围,避免用户接入后默认可达整个内网。按角色拆分访问策略,普通办公用户不应访问域控、数据库、虚拟化平台和运维端口。对 VPN 地址池到关键资产的访问建立告警,例如访问 445、3389、5985、389、636、1433、3306。保留并集中采集 VPN 日志,接入 SIEM 或日志平台,避免设备被清理后无法回溯。总结这类边界 VPN 漏洞情报的重点,不在于复述漏洞有多严重,而是尽快回答三个问题:资产是否受影响、是否已经被利用、利用后是否进入内网。实际处置中,版本核查只是开始,VPN 地址池行为、域控登录事件、管理配置变更和账号状态才是判断风险的关键。建议各团队把 VPN、堡垒机、零信任网关这类入口设备纳入持续监测范围。遇到高危情报时,按“资产确认、只读验证、日志回溯、账号处置、策略收敛、补丁升级”的顺序推进,效率会比临时翻设备后台高很多。 服务器、云资产与权限边界梳理示意
10月9日10月9日 边界 VPN 这类洞排查时,建议把“补丁是否打上”和“是否已被利用”分开看。很多现场是设备已经升级了,但升级前的 Webshell、异常账号或会话还在。 可以按这个顺序收敛: 1. 先确认版本和热修复状态 不要只看管理界面显示的主版本,尽量导出设备诊断包或通过 CLI 查 build 号、补丁号,和厂商公告里的受影响范围逐项对照。双机/集群环境要分别确认,别只看主节点。 2. 查授权与配置变更 重点看最近一段时间是否有异常管理员登录、授权策略变化、ACL 放宽、路由/隧道配置被改。尤其关注: 新增管理员账号、临时账号、API Token 认证方式从 MFA/LDAP 改成本地认证 VPN 用户组权限扩大 异常的 Split Tunnel、静态路由、访问控制策略 如果日志能落到 Linux/SIEM,可以先粗筛这几类事件: # 按可疑关键词快速定位 grep -Ei "admin|login|failed|success|token|api|config|policy|tunnel|web|upload|shell" /var/log/vpn/*.log # 查近期配置变更 grep -Ei "config.*change|commit|save|modified|created|deleted" /var/log/vpn/*.log # 查非常用来源 IP 的管理员登录 grep -Ei "admin.*login|administrator.*success" /var/log/vpn/*.log | awk '{print $0}' 3. 查利用痕迹 边界 VPN 漏洞常见落点一般在 Web 管理组件、临时目录、上传目录、诊断/备份功能相关目录。可以重点看: 非常规 Web 路径访问,尤其带编码、路径穿越、模板注入特征的请求 管理接口被公网 IP 访问的记录 短时间大量 401/403 后突然 200 的请求 异常文件写入、计划任务、启动项 日志里可以这样先筛: # 路径穿越、编码绕过、可疑命令 grep -Ei "\.\./|%2e|%2f|%5c|cmd=|exec|whoami|id|uname|curl|wget|bash|sh" access.log* # 管理接口异常访问 grep -Ei "/admin|/api|/cgi|/dana|/remote|/sslvpn|/vpn" access.log* # 非常见状态码组合 awk '{print $1,$7,$9}' access.log* | sort | uniq -c | sort -nr | head -50 4. 不要忽略会话和凭据 如果确认设备暴露在受影响窗口内,建议强制失效所有 VPN 会话,轮换管理员密码、API Token、设备证书相关私钥,至少对高权限 VPN 用户做一次密码重置。只打补丁但保留旧会话,风险还在。 5. 修复动作建议 比较稳妥的处置顺序是: 先限制管理面访问,只允许堡垒机或固定运维网段 升级到厂商明确修复版本,不使用“临时绕过”替代补丁 导出并备份当前配置后,做完整性检查 清理异常账号、Token、计划任务、可疑文件 重启服务并强制踢掉存量会话 重新拉一轮日志确认没有继续访问或回连行为 如果设备支持外发日志,建议把认证日志、管理操作日志、Web 访问日志都发到独立日志平台。VPN 自身一旦被控,本地日志完整性就不能完全信任,外部日志更有价值。
10月9日10月9日 补充一个现场里比较容易漏掉的点:不要只验证“配置看起来正常”,还要验证实际生效的授权结果。很多设备的全局策略、用户组策略、隧道策略和本地缓存并不是同一份配置,界面上删掉了规则,已有会话可能仍然有效。 建议在隔离的测试账号上做一轮授权回归,至少覆盖: 普通 VPN 用户是否还能访问管理网段、服务器网段和不应开放的端口; 被移出高权限用户组后,已有会话是否仍能访问原资源; 禁用账号、删除 API Token 后,旧 Token 和旧 VPN 会话是否立即失效; Split Tunnel、静态路由和地址池是否仍把内部网段下发给不应获得的用户; 双机切换后,主备节点的用户、策略和会话状态是否一致。 这类验证最好从 VPN 客户端所在网络实际测试,而不是只在管理页面看策略。例如记录测试账号拿到的路由和 DNS,再对明确禁止的网段做连通性测试: # Linux 客户端,按实际 VPN 网卡替换 tun0 ip route ip addr show tun0 resolvectl status tun0 # 只测试授权范围内的地址和端口 nc -vz -w 3 10.10.20.15 443 nc -vz -w 3 10.10.30.15 3389 如果怀疑升级前已经被利用,建议把会话和凭据处置单独作为一个步骤,不要把“打补丁成功”当成清理完成: 强制注销全部 VPN 会话,清理设备侧会话表和持久化登录状态; 撤销并重新签发 API Token、设备证书和高权限账号凭据; 对可能登录过管理面的管理员账号重置密码,并重新绑定 MFA; 检查 VPN 用户目录、LDAP/AD 组成员和本地账号,确认没有遗留的临时账号; 如果存在 Webshell、异常插件或无法解释的启动项,不建议只删除单个文件,优先按厂商流程导出证据后恢复到可信镜像。 日志方面还应关注设备对外发起的连接。边界设备被利用后,攻击者未必继续改配置,也可能通过 DNS、HTTPS 或代理通道外传。可以从防火墙、DNS 和出口代理侧按设备管理 IP、时间窗口做关联: # 在集中日志主机上按设备 IP 和时间范围筛选 grep -E '2026-10-0[1-7].*(VPN_MGMT_IP|DEVICE_IP)' /var/log/firewall/*.log # 粗查 DNS 查询中的异常域名特征 grep -Ei '([a-z0-9]{20,}|base64|tunnel|cdn|update)' /var/log/dns/*.log # 对导出的可疑文件先做哈希,后续便于和厂商 IOC 对照 find ./evidence -type f -printf '%TY-%Tm-%Td %TH:%TM:%TS %p\n' \ | sort > evidence-file-list.txt sha256sum $(find ./evidence -type f) > evidence-sha256.txt 取证时建议先导出原始日志和诊断包,再在副本上检索;保留设备时区、NTP 状态、日志轮转配置和集群节点信息。否则只拿到“转换后的管理页面日志”,后面很难判断是攻击时间、补丁时间还是主备同步时间。最终结论最好分成三类:补丁/配置已修复、凭据和会话已失效、未发现利用证据;第三类不能简单写成“未被利用”。