跳转到帖子

近期边界设备 0/1-Day 利用后的内网横向与日志排查要点

精选回复

发布于

背景

最近几周公开威胁情报里,针对 VPN、网关、防火墙、文件传输类边界设备的利用仍然很活跃。实际授权排查中看到的共同点是:攻击者不一定在边界设备上停留很久,而是快速获取配置、会话、账号材料,再转向 AD、堡垒机、运维网段或虚拟化管理平台。

这类事件在“新闻动态”里看似是漏洞新闻,但落到现场,核心还是三个问题:漏洞是否被验证利用、是否产生内网链路、权限边界有没有被突破、日志是否足够支撑溯源和修复。

以下内容面向授权渗透测试、应急排查和漏洞验证场景,不包含未授权利用细节。重点放在排查路径、日志留痕、权限边界和修复建议。

典型场景

常见现场环境如下:

  • 边界设备:SSL VPN / WAF / 防火墙 / 远程接入网关。
  • 内网认证:AD 域控、LDAP、RADIUS、双因素认证系统。
  • 运维入口:堡垒机、JumpServer、Citrix、RDP 网关。
  • 日志来源:设备本地日志、Syslog、EDR、Windows 事件日志、域控安全日志、代理访问日志。

近期几类攻击链里,边界设备经常承担“入口”和“凭据中转”角色。排查时不要只看设备是否打补丁,还要看补丁前窗口期是否存在异常登录、异常配置导出、异常管理接口访问。

问题定位思路

建议从时间线入手,而不是从单个告警入手。先确认资产暴露面,再确认利用窗口,再向内网认证与横向行为延伸。

  • 确认设备版本、补丁时间、重启时间、配置变更时间。
  • 拉取漏洞公开披露时间前后 7 到 14 天的访问日志。
  • 检查是否存在异常管理后台登录、异常 API 调用、异常配置导出。
  • 关联同一源 IP、同一账号、同一 User-Agent 在内网系统中的后续行为。
  • 重点看夜间、节假日、非常规国家或云厂商出口 IP。

一个比较实用的判断标准:如果边界设备上出现过异常认证成功,且同一账号在短时间内访问了域控、堡垒机或文件服务器,就应当按已突破边界处理,而不是只按单点设备漏洞处理。

技术分析

在授权排查里,常见可疑行为有几类:

  • 管理接口异常访问:短时间多次访问登录页、API 路径、备份导出路径。
  • 配置读取:出现 config、backup、export、dump、download 等关键路径。
  • 认证绕过后登录:日志里没有明显失败尝试,但直接出现成功会话。
  • 凭据复用:VPN 账号随后出现在 RDP、SMB、WinRM、LDAP 认证日志中。
  • 落地较少:攻击者不一定上传明显 webshell,更多是通过现有账号和合法协议横向。

Windows 域环境里,可以重点看以下事件:

  • 4624:成功登录,关注 LogonType 3、10。
  • 4625:失败登录,关注短时间爆破或密码喷洒。
  • 4768 / 4769:Kerberos 票据申请,关注异常服务票据请求。
  • 4776:NTLM 认证,关注 VPN 账号在多台主机上认证。
  • 4688:进程创建,若开启命令行审计,可定位横向工具痕迹。
  • 7045:服务创建,常见于远程执行或持久化。

操作步骤

下面是一套现场可执行的排查流程,适合已经获得授权的内网检查或应急响应场景。

  • 第一步:导出边界设备访问日志、认证日志、管理操作日志。
  • 第二步:按补丁前后时间窗口筛选异常 IP、账号、路径。
  • 第三步:将可疑账号与 AD 认证日志、堡垒机登录日志做关联。
  • 第四步:检查可疑账号是否具备超出业务所需的权限。
  • 第五步:对相关主机检查远程执行、计划任务、服务创建和异常进程。
  • 第六步:在确认影响范围后再重置凭据和吊销会话,避免提前打草惊蛇导致证据丢失。

命令示例

以下命令用于在 Linux Syslog 和 Windows 域控日志中做初筛。字段需要按实际日志格式调整。

# 1. 在边界设备 syslog 中筛选管理接口和配置导出相关访问
zgrep -Ei "admin|login|api|backup|config|export|download|dump" /var/log/syslog* \
  | awk '{print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10}' \
  | sort | uniq -c | sort -nr | head -50

# 2. 统计可疑源 IP 的访问频次
zgrep -Ei "admin|login|api|backup|config|export" /var/log/syslog* \
  | grep -Eo "([0-9]{1,3}\.){3}[0-9]{1,3}" \
  | sort | uniq -c | sort -nr | head -30

# 3. Windows 域控上查询指定时间段内的成功登录事件
Get-WinEvent -FilterHashtable @{
  LogName='Security';
  Id=4624;
  StartTime=(Get-Date).AddDays(-14)
} | Where-Object {
  $_.Properties[8].Value -in 3,10
} | Select-Object TimeCreated, Id, @{n='Account';e={$_.Properties[5].Value}}, @{n='SourceIP';e={$_.Properties[18].Value}}, @{n='LogonType';e={$_.Properties[8].Value}} |
  Export-Csv C:\temp\4624_logon_check.csv -NoTypeInformation -Encoding UTF8

# 4. 查询近期服务创建事件,排查远程执行痕迹
Get-WinEvent -FilterHashtable @{
  LogName='System';
  Id=7045;
  StartTime=(Get-Date).AddDays(-14)
} | Select-Object TimeCreated, ProviderName, Message |
  Out-File C:\temp\service_created_7045.txt -Encoding UTF8

# 5. 检查本机近期计划任务变更
Get-ScheduledTask | Where-Object {$_.TaskPath -notlike "\\Microsoft*"} |
  Select-Object TaskName, TaskPath, State |
  Format-Table -AutoSize

关键日志关联点

位置关注内容判断价值
边界设备异常管理登录、API 调用、配置导出、固件升级记录判断是否存在入口利用和配置泄露
VPN / 远程接入异常登录时间、异常地理位置、同账号多地登录判断账号是否被盗用
域控4624、4625、4768、4769、4776判断横向认证和凭据复用
终端 / 服务器4688、7045、计划任务、PowerShell 日志判断是否远程执行或落地持久化
堡垒机高权限账号登录、会话回放、命令审计判断是否越权进入运维面

权限边界检查

边界设备被利用后,最容易被忽略的是权限边界。很多环境里 VPN 普通账号登录后,可以直接访问域控、数据库、虚拟化管理平台或备份系统,这是后续扩大的主要原因。

建议重点检查:

  • VPN 用户是否按组限制可访问网段,而不是全内网放通。
  • 普通办公账号是否能访问服务器管理端口,如 3389、5985、445、22。
  • 运维账号是否允许从非堡垒机来源登录核心服务器。
  • 服务账号是否配置了可交互登录权限。
  • 域管理员账号是否曾在普通终端或 VPN 会话中使用。

在 Windows 域里,可以用组策略限制敏感账号登录范围,例如将域管理员限制到专用管理机,禁止其登录普通工作站。否则一次边界账号泄露,很容易演变成全域风险。

风险与修复建议

  • 及时升级边界设备固件,并确认补丁是否真正生效,不能只看版本号截图。
  • 轮换边界设备本地管理员、VPN 账号、LDAP 绑定账号、RADIUS 共享密钥。
  • 吊销存量会话和 Token,尤其是补丁前已经建立的长期会话。
  • 关闭公网管理口,管理面放到独立运维网段,并启用访问控制列表。
  • 开启 Syslog 远程转发,避免设备本地日志被清理后无法追溯。
  • 对 VPN 用户做最小权限分组,默认只允许访问必要业务系统。
  • 对高权限账号启用 MFA,并限制登录来源和登录时间。
  • 检查是否存在新增本地账号、SSH Key、计划任务、异常服务和异常防火墙规则。

总结

近期边界设备漏洞相关情报的价值,不只是提醒打补丁,更重要的是帮助企业回看补丁前窗口期是否已经发生利用。实际排查时,建议把边界日志、VPN 认证、AD 事件、堡垒机会话和终端执行记录串成时间线。只看单台设备,很容易漏掉后续横向。

如果发现异常登录或配置导出,不建议简单重启设备后结束处理。更稳妥的做法是:先保全日志,再确认账号与权限影响范围,最后统一做补丁、凭据轮换、会话吊销和访问边界收敛。这样才能把一次漏洞新闻真正落到可验证、可修复的安全闭环里。

服务器与云环境安全示意图
服务器、云资产与权限边界梳理示意

边界设备被打穿后,建议先别只盯着 Webshell 或设备本身的 CVE 痕迹,重点看它有没有被当成“跳板”和“凭据收集点”。很多 VPN/防火墙/网关类设备后续动作都比较像:导出配置、抓取会话/账号、探测内网管理口,再用合法账号横向。

几个排查点可以优先做:

  1. 边界设备配置与账号侧

    • 检查是否新增本地管理员、临时 VPN 用户、异常 API Token、SSH key。
    • 导出配置看近期是否变更了 AAA/RADIUS/LDAP、静态路由、策略路由、端口映射、管理口开放范围。
    • 确认管理后台是否出现过来自非常规源地址的登录,尤其是凌晨、境外 VPS、内网陌生网段。
  2. 内网横向流量

    从边界设备 IP 或 VPN 地址池出发查 445/3389/5985/5986/22/135/139 这类端口的访问。很多时候日志里不会直接写“横向”,但 NetFlow/防火墙会有痕迹。

    # Zeek conn.log 示例:看边界设备或 VPN 地址池访问内网高危管理端口
    zcat conn.*.log.gz | awk '
    $3 ~ /^10\.8\./ || $3 == "x.x.x.x" {
      if ($6==445 || $6==3389 || $6==5985 || $6==5986 || $6==22 || $6==135)
        print $1,$3,$5,$6,$9,$10
    }'

    如果没有 Zeek,用防火墙会话日志也可以按源 IP、目的端口、时间窗口聚合,重点看短时间扫多个内网主机的行为。

  3. Windows 侧事件关联

    边界设备利用后的横向,经常落到域控、文件服务器、堡垒机、运维机。建议按 VPN 地址池或边界设备 NAT 后地址查登录事件:

    • 4624:登录成功,重点 LogonType 3/10。
    • 4625:爆破或密码喷洒。
    • 4672:高权限登录。
    • 7045:新服务安装,常见于 PsExec 类横向。
    • 4697:服务安装。
    • 4688:进程创建,需开启命令行审计。
    • 5140/5145:SMB 共享访问。
    # PowerShell:按源地址筛 4624 远程登录
    $src = "10.8."   # VPN 地址池前缀
    Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624; StartTime=(Get-Date).AddDays(-14)} |
      Where-Object {
        $_.Properties[18].Value -like "$src*" -and
        ($_.Properties[8].Value -eq 3 -or $_.Properties[8].Value -eq 10)
      } |
      Select-Object TimeCreated,
        @{n='User';e={$_.Properties[5].Value}},
        @{n='Domain';e={$_.Properties[6].Value}},
        @{n='LogonType';e={$_.Properties[8].Value}},
        @{n='SrcIP';e={$_.Properties[18].Value}}
  4. Linux/Unix 主机

    如果内网有 Linux 管理机,查 SSH 成功登录、sudo、crontab、systemd 持久化。边界设备拿到 VPN 凭据后,直接 SSH 进跳板机的情况不少。

    # SSH 成功登录来源
    zgrep -h "Accepted" /var/log/auth.log* /var/log/secure* 2>/dev/null | \
      egrep "10\.8\.|边界设备IP|异常公网IP"
    
    # 新增定时任务和 systemd 服务
    find /etc/cron* /var/spool/cron /etc/systemd/system -type f -mtime -14 -ls 2>/dev/null
  5. 设备侧落地文件与异常进程

    如果设备允许 shell,除了查 Web 目录,也要看临时目录、配置备份目录、上传目录。很多 0/1-day 利用后会把工具放在 /tmp、/var/tmp、/dev/shm,执行完再删。

    find /tmp /var/tmp /dev/shm -type f -mtime -14 -ls 2>/dev/null
    ps auxww
    netstat -antup 2>/dev/null || ss -antup
    last -a
    history 2>/dev/null

    注意有些设备 BusyBox 环境命令不全,至少保留 ps、netstat/ss、find、ls -la 的输出,避免重启后证据丢失。

处置顺序上,个人建议是:先镜像/导出日志,再断外联或限制管理面,不要一上来恢复出厂。然后立即轮换与边界设备相关的凭据,包括本地管理员、VPN 用户、LDAP/RADIUS 绑定账号、SNMP community、API token、备份账号。很多后续横向不是靠漏洞继续打,而是靠第一次拿到的配置和账号继续进。

最后补一个容易漏的点:如果边界设备开启了日志远传,去 Syslog 服务器查“日志中断时间”。攻击者有时会清本地日志,但远程日志会留下利用前后的空窗、异常重启、服务崩溃、配置保存记录,这些对确定入侵时间线很有用。

最近浏览 0

  • 没有会员查看此页面。