前言:

这篇文章不是“如何攻击”,而是“如何发现攻击”。我将基于自己之前搭建的永恒之蓝漏洞环境(攻击机 Kali,靶机 Windows Server 2008 R2),模拟在靶机已被植入后门、关闭 UAC、添加防火墙规则、创建计划任务、清除日志的情况下,作为一名安全运维人员,一步步手动排查并还原攻击者的所有痕迹 希望能对于您的工作或者学习提供一种思路


一、实验环境

角色 操作系统 IP 地址 已知状态
攻击机 Kali Linux 192.168.10.224 已通过永恒之蓝漏洞拿下靶机,并植入了后门
靶机 Windows Server 2008 R2 192.168.10.142 已被入侵:UAC 关闭、防火墙开放 444 端口、计划任务自启 nc 后门、日志被清除


二、排查思路总览

我们会按照“从现象到根源”的顺序,一步一步深入:

  1. 检查日志 → 判断是否有人故意清除痕迹

  2. 检查 UAC 状态 → 判断是否被关闭(攻击者常用手段)

  3. 检查防火墙规则 → 查找异常入站规则(后门通道)

  4. 检查计划任务 → 查找开机自启的恶意程序

  5. 检查网络连接 → 确认后门是否正在被攻击者利用


三、详细排查步骤

第一步:检查日志 – 寻找“被抹去的痕迹”

windows日志中存放着几乎所有的事件记录,攻击者入侵后做的事情都会在日志中留下记录,所以攻击者做完自己的事情后一般会选择清除日志,这样就算管理员发现了主机被入侵也不知道攻击者干了什么,这就增加了管理员的溯源难度。所以通过查看是否被清除了日志在一定程度上可以看出主机是否被入侵。

🛠 操作

  1. Win + R,输入 eventvwr.msc,打开“事件查看器”。

  2. 依次展开“Windows 日志” → “安全”。

  3. 在右侧点击“筛选当前日志”,在“<所有事件 ID>” 处输入 1102(日志被清空的事件 ID),点击“确定”。

🔍 分析
从截图中可以看到,在靶机的日志里面只剩下了一条ID为104的日志清除记录,出现这样的情况我们就有理由怀疑主机被入侵了。正常情况下,日志会连续记录,不会无故消失。

这个时候可能就很容易联想到,为什么攻击者要把日志全部删除掉而不是只删除自己操作所留下的痕迹呢?

其实技术上确实支持这样操作,而且有多种办法可以达到这个目的,但是这些方法其实都比较难实现稍有不慎就可能导致日志损坏或者系统崩溃。而全部清除简单粗暴,一条命令 wevtutil cl Security 即可清除所有日志,无需复杂逻辑。就算删除了特定的日志记录也会由于日志序列号断裂、时间戳不一致等问题被发现。所以删除特定日志远远没有直接全部清除来的性价比高。


第二步:检查 UAC 状态 – 防御开关是否被偷偷关闭

❓ 为什么要检查 UAC?
UAC(用户账户控制)是 Windows 的一道重要防线。当程序需要高权限时,会弹出提示框。攻击者在拿到权限后,往往会关闭 UAC,这样他后续运行后门、提权操作时就不会弹出警告,更加隐蔽。

🛠 操作

  • 方法一(图形界面):
    打开“控制面板” → “用户账户” → “更改用户账户控制设置”。
    如果滑块被拉到最下面“从不通知”,说明 UAC 已关闭。

  • 方法二(命令行):

    cmd

    reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA

  • 方法三(直接搜索UAC):

       win+s 弹出搜索框中直接搜索UAC,然后点击更改用户控制设置就行了。

🔍 分析
从截图中可以看出UAC一共分为四档,现在UAC被拉到了最下面,也就是UAC被关闭了,正常情况下,UAC 应处于默认级别(非 0)。如果发现UAC被关闭,极有可能是攻击者所为。关闭 UAC 后,攻击者可以随意执行高权限命令而不被打扰。

关闭 UAC 本身不会直接导致入侵,但它是一个“辅助”动作,攻击者为了长期控制而做的“环境优化”。如果不关闭UAC的话攻击者再运行恶意程序的时候可能会触发提醒,这就容易被管理员发现,因此,发现 UAC 被关闭,就要怀疑系统中可能存在后门。


第三步:检查防火墙规则 – 查找后门的“窗户”

❓ 为什么要检查防火墙规则?
攻击者植入后门(比如监听 444 端口)后,如果防火墙开启,外部是无法连接的。所以攻击者通常会在防火墙上添加一条入站规则,允许某个端口通行。检查异常端口规则,就能直接找到后门通道。

🛠 操作

直接搜索firewall 点击允许程序通过防火墙

🔍 分析

这可以看到,这里面多了一条名为backdoor的规则,点开后发现开启了一个tcp444端口,这个端口并不是常用的(常见的有 80、443、22、3389 等)。一条允许 444 端口的入站规则非常可疑这基本可以确定是攻击者为后门打开的门。但是,攻击者一般也不会像我这样写这么明显的一个名称,他可能伪装成一个正常的服务,管理员可能一眼看不出来。这时候就可以把一些服务点开来查看

可以看到正常的windows服务端口一般都是有描述的,而刚才那条backdoor只写了名称端口号,这与其他服务不一样,这也可以看出一点端倪。总之,可以通过对比某个规则和其他正常规则如果出现了不一样的地方有可能就是攻击者留下的后门

如果你在防火墙上发现了这样的规则,说明攻击者已经做好了“远程连接”的准备。下一步就要去查,到底是谁在监听这个端口。


第四步:检查计划任务 – 挖出“开机自启”的木马

❓ 为什么要检查计划任务?
攻击者要让后门在系统重启后依然能运行,最常用的方法就是创建计划任务(或注册表启动项)。通过检查计划任务,可以找到那些在系统启动或用户登录时自动运行的恶意程序。

🛠 操作

  • 图形界面:按 Win + R,输入 taskschd.msc,打开“任务计划程序”。在左侧“任务计划程序库”中,查看所有任务,重点看名称可疑的(如 UpdaterSysCheck、随机字母等)。

  • 命令行(快速过滤):

    cmd

    schtasks /query /fo LIST /v | findstr "nc.exe"


-L 表示持续监听,-p 444 是端口,-e cmd.exe 表示连接后执行 cmd。

🔍 分析
nc.exe 本身是一个合法网络工具,但搭配 -e cmd.exe 参数后,它就变成了一个“后门”。攻击者通过计划任务让它在系统启动时自动运行,这样即使你重启服务器,后门依然存在。从截图可以看到,这里面有一个名叫nc的计划任务,当然攻击者也可以伪装成其他名字,但是对比其他计划任务,这个nc就显得很突兀了,双击打开后发现是开机自启动,并且也没有任何描述,这和其他计划任务不一样,这里就不截图展示了。总之对比与其他服务的区别是识别异常的重要手段

如果没有计划任务,攻击者一次入侵只能维持到下次重启。发现计划任务,说明攻击者想要持久化控制,这才是最危险的。


第五步:检查网络连接 – 确认后门是否正在被使用

❓ 为什么要检查网络连接?
找到了后门程序,我们还需要知道它此刻是否正在被攻击者利用。通过查看端口连接状态,可以判断是否有外部主机正在通过该后门控制本机。

🛠 操作

  • 打开命令提示符(管理员),执行:

    cmd

    netstat -ano

🔍 分析

        从图中可以看到本地地址444端口的状态是ESTABLISHED 状态已连接状态,表示已经有一个外部主机 192.168.10.224 连接到了这个后门。而 192.168.10.224 正是攻击机(Kali)的 IP,当然,如果攻击者现在没有连接到主机,状态回事LISTENING监听状态,但是通过之前的一系列分析,444端口是很可疑的一个端口,直接看端口号就行。

这意味着攻击者此时此刻正在控制你的主机!他可能正在执行命令、查看文件、甚至横向移动。你发现的不是一个“历史痕迹”,而是一个正在发生的攻击。

注:在文章的最后附二有netstat命令的常用用法与应用场景和参数的含义


四、定位到nc.exe后门程序

现在已经找到了进程,我们要解决这个后门程序就要找到他

🛠 操作

在命令提示符中输入:netstat -anob

🔍 分析

在端口为444的这个进程中,运行的程序是一个叫做nc.exe的程序,当然,也可以在计划任务中查看到执行的这个程序,这个就是攻击者所留下的后门,接下来要做的事就是找到这个程序并删除。

最后我已经找到了主机上的木马并彻底删除木马,再次打开kali尝试使用后门进行连接

从截图中可以看到,kali已经不能利用nc进行连接了。证明木马排查完成。


五、处置建议

经过以上五步,我们已经确认:

  • 系统日志被清空(1102 事件)

  • UAC 被关闭

  • 防火墙开放了 444 端口

  • 计划任务中存在 nc.exe 后门

  • 网络连接显示外部攻击者正在通过 444 端口控制主机

现在应该立即

  1. 断网:在靶机上执行 ipconfig /release 或直接拔网线,阻断攻击者的当前连接。

  2. 终止恶意进程taskkill /f /pid 1234(替换成你查到的 PID)。

  3. 删除后门文件del C:\Windows\System32\nc.exe

  4. 删除计划任务schtasks /delete /tn "任务名" /f

  5. 删除防火墙规则:在 wf.msc 中删除允许 444 端口的入站规则。

  6. 重新开启 UAC:将 UAC 滑块拉回默认级别。

  7. 安装补丁:安装 MS17-010 补丁,关闭 SMBv1,封堵 445 端口。

  8. 强化审计:开启更详细的登录审核,定期备份日志。


六、总结

通过这五个步骤——日志、UAC、防火墙、计划任务、网络连接、定位后门程序——我们成功地从一台已被入侵的 Windows 主机中,找到了攻击者留下的所有痕迹,并且发现攻击者当时仍在远程控制。

这套手动排查方法不依赖任何杀毒软件,完全使用系统自带工具,在任何 Windows 环境下都能执行。对于初学者来说,掌握这套思路比单纯运行一个杀毒软件扫描更有价值——因为它让你真正理解攻击者的“脚印”长什么样。


附一:常用端口及服务

端口号 协议 常见服务 说明
21 TCP FTP 文件传输,如果非预期开放,可能是恶意 FTP 服务器
22 TCP SSH Linux 远程管理,Windows 上少见,出现则可疑
23 TCP Telnet 明文远程管理,高危,极少使用
25 TCP SMTP 邮件发送,非邮件服务器开放则可疑
53 TCP/UDP DNS DNS 服务,一般只出现在域控或 DNS 服务器
80 TCP HTTP Web 服务,正常,但需注意非标准 Web 服务器(如 nginx 在 Windows)
110 TCP POP3 邮件接收,非邮件服务器开放则可疑
135 TCP RPC Windows RPC 服务,正常,但常被用于横向移动
139 TCP NetBIOS 文件共享,正常,但需留意权限配置
143 TCP IMAP 邮件存储,非邮件服务器开放则可疑
443 TCP HTTPS 加密 Web 服务,正常
445 TCP SMB 文件共享,永恒之蓝利用端口,高危,应严格控制
1433 TCP MSSQL SQL Server 数据库,非数据库服务器开放则可疑
3306 TCP MySQL MySQL 数据库,非数据库服务器开放则可疑
3389 TCP RDP 远程桌面,正常,但需留意弱口令和未授权访问

说明:在木马排查中其实可以通过常用端口来快速判断,如果出现了某个不常用的端口那么就需要警惕起来了,这很有可能是攻击者留下的后门端口。

附二:netstat命令的常用用法和参数的含义

命令/参数 作用 实战用途
netstat -an 显示所有数字化的连接(不做域名解析) 快速查看所有监听和已建立的连接
netstat -ano 显示所有数字连接 + 所属进程 PID 排查后门必备,找到可疑端口对应的 PID
netstat -anob 显示所有数字连接 + 进程名(需管理员权限) 直接显示进程名(如 nc.exe),无需再查 PID
netstat -an | findstr "端口号" 过滤出包含指定端口号的行 快速定位后门端口
netstat -r 显示路由表 查看网络路由信息
参数 -a 显示所有连接和监听端口(不加默认只显示已建立连接) 用于查看全部网络状态
参数 -n 以数字形式显示地址和端口(不进行域名解析) 加快显示速度,避免 DNS 解析
参数 -o 显示每个连接所属的进程 PID 配合 -a-n 排查后门进程
参数 -b 显示每个连接对应的可执行文件(需管理员权限) 直接显示进程名,简化排查步骤
组合 -ano 最常用的排查命令组合(-a -n -o 快速看到端口、状态和进程 PID

这样就完成了一次简单的木马排查,希望这能够在您的工作或者学习中给您提供一些思路。如果你有任何疑问或发现了更好的方法,欢迎留言交流!

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐