Windows应急响应小结

应急响应流程

PDCERF模型

  1. P(Preparation 准备):信息搜集,工具准备

  2. D(Detection 检测):了解资产现状,明确造成影响,尝试进行攻击路径溯源

  3. C(Containment 遏制):关闭端口、服务,停止进程,拔网线

  4. E(Eradication 根除):清除危险文件、进程

  5. R(Recovery 恢复):备份,恢复系统正常状态

  6. F (follow-up 跟踪):复盘事件全貌,总结汇报

账户排查

检查服务器是否存在:新增账户、隐藏账户、克隆账户、可疑账户。

检查远程管理端口是否对公网开放,服务器是否存在弱口令。

隐藏账户

在 Windows 操作系统中,一个以 $ 结尾的用户名会将用户帐户标记为隐藏帐户,不会在登录界面或用户管理中显示。

使用 net user 命令看不到隐藏账户,使用本地用户管理也看不到。

隐藏账户排查

  1. 使用 regedit 通过查看注册表 HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names (最准确)

  2. 使用 wmic 命令,输入 wmic useraccount get name,sid

  3. 使用 lusrmgr.msc 命令,在本地用户和组里查看是否有新增/可疑的账号

  4. 通过日志排查,eventvwr.msc 打开事件查看器,进行日志审计

  5. 使用D盾有查看账户的功能

弱口令排查

常见应用有RDP:3389、SMB:445、FTP:21等

  1. 查看是否启用组策略,限制弱口令

  2. 查看是否有暴力破解日志,成功登录事件ID 4624,登录失败事件ID 4625

window常用日志事件ID,可以重点关注4624/4625的登录类型。

网络排查

通常恶意程序会发起网络连接,从网络连接来查找恶意程序是最直接的方法。

  1. 命令 netstat -ano 检查网络监听和连接的端口,结合 find 重点看状态是 ESTABLISHED 的端口 netstat -ano | find "estab"

  2. 任务管理器-->性能-->资源监测器

通过网络找进程,通过进程找文件可以使用 netstat -b 显示在创建每个连接或侦听端口时涉及的可执行程序。

网络排查中还有一部分内容是路由表,查看本机是否被利用作VPN跳板。

查看路由信息:route print 或者 netstat -rn

进程排查

最简单的查看进程方式:任务管理器(taskmgr)

查看系统信息:msinfo32 查看进程相关信息,软件环境-->正在运行任务/加载的模块/服务/启动程序

进程通常结合网络查看异常,先检查异常的网络连接,再获取由哪个进程生成的网络连接。

命令 tasklist 查看进程列表,查找 PID 对应的进程:tasklist | findstr PID

需要重点关注的内容:

  1. 没有签名验证信息的进程

  2. 进程的可执行文件路径

  3. 进程的可执行文件生成时间

  4. 进程描述是否异常

  5. CPU或内存资源占用长时间过高的进程

  6. 网络连接异常的进程

进程与服务

很多恶意程序会通过服务来启动进程。

运行 services.msc 可以打开 Windows 服务工具。

可以通过命令行查看进程与服务关联:tasklist /svc

使用 wmic 命令获取更多进程信息,进程运行参数查询,如svchost进程具体运行了什么:

wmic process where name='svchost.exe' get caption,commandline,processid,parentprocessid

恶意文件通常会写成DLL文件,而非EXE直接执行,使用进程加载模块查询:tasklist -m

启动项排查

系统配置的启动项:msconfig

需要关注的注册表:

HKLM\Software\Microsoft\Windows\CurrentVersion\Runonce
HKLM\Software\Microsoft\Windows\CurrentVersion\policies\Explorer\Run
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Run
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce

运行 gpedit.msc 在本地组策略编辑器里查看开机运行或登录脚本

计划任务排查

使用命令查看计划任务:schtasks

计划任务程序面板:taskschd.msc

计划任务注册表:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree

注册表检查

HKEY_CLASSES_ROOT(HKCR):包含文件关联、文件类型和COM类注册表信息

HKEY_CURRENT_USER(HKCU):包含当前登录系统的用户的配置信息

HKEY_LOCAL_MACHINE(H KLM):包含运行操作系统的计算机硬件特定信息

HKEY_USERS(HKU):包含系统上所有用户配置文件的配置信息

HKEY_CURRENT_CONFIG(HCU):存储有关系统当前配置的信息

内存分析

很多时候恶意代码会使用无文件技术,存于内存,且会使用各种hook技术隐藏文件。

分析内存首要步骤是获取内存,如果服务器是虚拟机,可以直接读取内存文件,如vmware的内存文件,直接在目录下。

物理机获取内存

  1. 从任务管理器直接转存进程的内存:任务管理器-->创建转储文件

  2. 在计算机属性,系统属性,高级选项卡中选择“启动和故障恢复设置”,选择完全转储内存。(高级系统设置,需要重启后才能获取内存)

使用 SysinternalsSuite 工具集的 notmyfault64 工具,管理员模式运 NotMyFault64.exe,此工具会使系统蓝屏,后收集内存。

内存分析

通常是使用 volatility 进行内存分析,内存取证。

Volatility 需要知道内存镜像来自哪种类型的系统以确定使用哪些数据结构等。

日志分析

Windows 日志包括应用程序日志、安全日志、系统日志和Setup日志。

  • 系统日志:包含Windows系统组件记录的事件。

  • 应用程序日志:包含由应用程序或程序记录的事件。

  • 安全日志:包含如有效和无效的登录尝试等事件,以及与资源使用相关的事件。

使用命令 eventvwr.msc 打开事件查看器。

Windows日志位置

windows日志路径:

在 Windows xp/2003 中日志位于:%SystemRoot%\System32\Config*.evt

在 Windows vista/7 以后日志位于:%SystemRoot%\System32\winevt\Logs*.evtx

例如:

  1. 应用程序日志:C:\Windows\System32\winevt\Logs

  2. 安全日志:C:\Windows\System32\winevt\Logs\Security.evtx

  3. 系统日志:C:\Windows\System32\winevt\Logs\System.evtx

Window常用日志事件ID

Windows登录类型

powershell过滤日志

查看当前日志配置

Get-EventLog -List

从日志来源和事件ID过滤日志

Get-EventLog -LogName Security | Where-Object {$_.EventID -eq 4625}

从关键字过滤日志

Get-EventLog -LogName System -Message *administrator*

查询索引3011日志具体信息

$A = Get-EventLog -LogName System -Index 3011
$A | Select-Object -Property *

日志审核策略使用命令: auditpol /get /category:*

日志分析工具

Windows有一个的强大分析工具 LogParser

LogParser提供一种类似SQL的语句用来查询日志。

例如:从 Security.evtx 日志文件中选择所有事件 ID 为 4624 的事件

LogParser.exe -i:EVT -o:DATAGRID "SELECT * FROM Security.evtx where EventID=4624"

Logparser需要指定输入,输出格式类型,常用的输出格式为DATAGRID,即直接展示日志,也可导出成CSV。


若有错误,欢迎指正!o( ̄▽ ̄)ブ

热门相关:全能千金燃翻天   我向斐少撒个娇   闪婚总裁很惧内   盖世双谐   至尊凰妃