[Windows]应急排查点梳理
1. 了解现状
- 了解现状,有哪些表现
- 什么时候开始的?
- 怎么发现的?
- 发生前有什么异常?
- 发生改过、更新过什么东西?文件/策略?
2. 排查项
2.1 系统账号安全
2.1.1 弱口令、对外开放端口
查看服务器是否有弱口令,远程管理端口是否对公网开放,据实际情况咨询相关服务器管理员。
2.1.2 新增帐号
lusrmgr.msc
2.1.3 隐藏/克隆账号
- 从注册表查看
HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account
- 使用D盾查看
2.1.4 登录时间、异常用户
eventvwr.msc
2.2 端口、进程
- 端口
netstat -ano
tasklist | findstr “PID”
- 进程
- 系统命令
msinfo32
tasklist /svc
- wmic
wmic process get caption,commandline /value >> tmp.txt
在windows下查看某个运行程序(或进程)的命令行参数 使用下面的命令:
wmic process get caption,commandline /value
如果想查询某一个进程的命令行参数,使用下列方式:
wmic process where caption="svchost.exe" get caption,commandline /value
这样就可以得到进程的可执行文件位置等信息。
- PC Hunter
- ProcessExplorer
查询windows服务对应端口:%systemroot%/system32/drivers/etc/services
2.3 启动项
- [开始] -> [所有程序] -> [启动]
- [msconfig]
- [regedit]
1.Run键
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
其下的所有程序在每次启动登录时都会按顺序自动执行。
2.RunOnce键
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce]与Run不同的是,RunOnce下的程序仅会被自动执行一次。
3.RunServicesOnce键
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce]其中的程序会在系统加载时自动启动执行一次。
4.RunServices键
RunServices继RunServicesOnce之后启动的程序
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices]
5.RunOnceEx键
该键是Windows XP/2003特有的自启动注册表项
[HKEY_CURRENT_USER\\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx]
6.load键
[HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows]
下的load键值的程序也可以自启动
7.Winlogon键
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
注意下面的Notify、Userinit、Shell键值也会有自启动的程序,而且其键值可以用逗号分隔,从而实现登录的时候启动多个程序。
8.其他注册表位置
还有一些其他键值,经常会有一些程序在这里自动运行,如:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\Shell]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad]
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System\Scripts]
[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\System\Scripts]
*注:注册表的[HKEY_LOCAL_MACHINE]和[HKEY_CURRENT_USER]键的区别:前者对所有用户有效,后者只对当前用户有效。
- [gpedit.msc]
- 启动/关机

- 登陆

- 系统配置文件
[运行] -> [sysedit]
2.4 计划任务
- [taskschd.msc]
- [at]
2.5 服务
- [services.msc]
- [msinfo32]
2.6 系统信息
- [systeminfo]
不同版本可以搜索补丁
winxp特别补丁KB4012598
win2003特别补丁KB4012598
win2008R2补丁 KB4012212、KB4012215
win7补丁 KB4012212、KB4012215
检查是否安装补丁:
wmic qfe get Caption,Description,HotFixID,InstalledOn | findstr /C:"KB4012212"
2.7 目录及文件
- 查看用户目录,新建账号会在这个目录生成一个用户目录,查看是否有新建用户目录
Window 2003 C:\Documents and Settings
Window 2008R2 C:\Users\
- 查看最近打开分析文件
%UserProfile%\Recent
- 临时文件
C:\windows\temp
%TEMP%
- 查看文件更改时间
- windows下查看最新变化文件
forfiles /m *.exe /d +2020/6/25 /s /p c:\ /c "cmd /c echo @path @fdate @ftime" 2>nul
下午可以在管理员模式下,跑下fofiles命令 看看6月25号以后exe新增情况;
- Everything,按时间排序看看释放的文件
- 回收站、浏览器下载目录、浏览器历史记录
2.8 日志分析
2.8.1 文件位置
- 系统日志
记录操作系统组件产生的事件,主要包括驱动程序、系统组件和应用软件的崩溃以及数据丢失错误等。
%SystemRoot%\System32\Winevt\Logs\System.evtx
- 应用程序日志
包含由应用程序或系统程序记录的事件,主要记录程序运行方面的事件,例如数据库程序可以在应用程序日志中记录文件错误,程 序开发人员可以自行决定监视哪些事件。如果某个应用程序出现崩溃情况,那么我们可以从程序事件日志中找到相应的记录。
%SystemRoot%\System32\Winevt\Logs\Application.evtx
- 安全日志
记录系统的安全审计事件,包含各种类型的登录日志、对象访问日志、进程追踪日志、特权使用、帐号管理、策略变更、系统事件。
%SystemRoot%\System32\Winevt\Logs\Security.evtx
2.8.2 事件类型说明
对于Windows事件日志分析,不同的EVENT ID代表了不同的意义:

每个成功登录的事件都会标记一个登录类型,不同登录类型代表不同的方式:

2.8.3 案例
- 案例1:查看重启记录
我们输入事件ID:6005-6006进行日志筛选,发现了两条在2018/7/6 17:53:51左右的记录,也就是我刚才对系统进行重启的时间。

-
案例2:查看登陆成功用户
![]()
-
案例3:为何win的IPC登陆失败事件有时候有源IP有时候没有呢?
![]()
答:windows在登陆时协议有ip验证在4624才会记下ip,这部分没有ip的部分 可以在remoteconnectionmanager找到。
Microsoft-Windows-TerminalServices-LocalSessionManager/Operational
Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational
- 案例4:如何从日志上区分是rdp爆破 还是 445SBM扫描?
通过查看4624 判断是rdp或是smb,EventData下 LogonType = 10 就是RDP,LogonType = 3 就是SMB类型的。
2.8.4 LogParser 分析
- 基本查询结构
Logparser.exe –i:EVT –o:DATAGRID "SELECT * FROM Security.evtx"
*注:
- –o:DATAGRID 代表可视化输出。
- 在提取的项目中发现其他比较简单,但是string这一项非常复杂,但是又比较重要。
使用函数EXTRACT_TOKEN(Strings, num, ‘|’)
strings使用|对数据进行分割EXTRACT_TOKEN(Strings, 0, ‘|’)提取S-1-5-18,EXTRACT_TOKEN(Strings, 1, ‘|’)提取DESKTOP-KJIHHDO$以此类推。- EXTRACT_TOKEN(Strings,5,'|') as username Strings字段按照|分段第5个值,把表头重命名为username
- 按 RecordNumber 逆序的前 10 条记录。RecordNumber 是 System 中的一个字段。
LogParser.exe -i:EVT –o:DATAGRID "SELECT TOP 10 * FROM Security.evtx ORDER BY RecordNumber DESC"
使用Log Parser分析日志
1、查询登录成功的事件
LogParser.exe -i:EVT –o:DATAGRID "SELECT * FROM Security.evtx where EventID=4624"
指定登录时间范围的事件:
LogParser.exe -i:EVT –o:DATAGRID "SELECT * FROM Security.evtx where TimeGenerated>'2020-06-20 23:32:11' and TimeGenerated<'2020-06-30 23:34:00' and EventID=4624"
提取登录成功的用户名和IP:
LogParser.exe -i:EVT –o:DATAGRID "SELECT EXTRACT_TOKEN(Message,13,' ') as EventType,TimeGenerated as LoginTime,EXTRACT_TOKEN(Strings,5,'|') as Username,EXTRACT_TOKEN(Message,38,' ') as Loginip FROM Security.evtx where EventID=4624"
2、查询登录失败的事件
登录失败的所有事件:
LogParser.exe -i:EVT –o:DATAGRID "SELECT * FROM Security.evtx where EventID=4625"
--按用户名统计爆破次数(聚合)
LogParser.exe -i:EVT "select EXTRACT_TOKEN(Message,19,' ') as user,count(EXTRACT_TOKEN(Message,19,' ')) AS 总计 FROM ' Security-01.evtx' where EventID=4625 GROUP by EXTRACT_TOKEN(Message,19,' ') ORDER by 总计 desc"
--按IP地址统计爆破次数(聚合)
LogParser.exe -i:EVT "select EXTRACT_TOKEN(Message,39,' ') as user,count(EXTRACT_TOKEN(Message,39,' ')) AS 总计 FROM ' Security-01.evtx' where EventID=4625 GROUP by EXTRACT_TOKEN(Message,39,' ') ORDER by 总计 desc"
提取登录失败用户名并显示登陆失败时间:
LogParser.exe -i:EVT "SELECT EXTRACT_TOKEN(Message,13,' ') as EventType,EXTRACT_TOKEN(Message,19,' ') as user,EXTRACT_TOKEN(Message,39,' ') as Loginip,TimeGenerated as LoginTime FROM Security.evtx where EventID=4625"
3、系统历史开关机记录:
LogParser.exe -i:EVT –o:DATAGRID "SELECT TimeGenerated,EventID,Message FROM System.evtx where EventID=6005 or EventID=6006"
4、创建的进程:
LogParser.exe -i:EVT –o:DATAGRID "SELECT TimeGenerated as Creationtime,EXTRACT_TOKEN(Strings,5,'|') as Process FROM Security.evtx where EventID=4688"
以[Administrator]身份创建的进程:
LogParser.exe -i:EVT –o:DATAGRID "SELECT TimeGenerated as Creationtime,EXTRACT_TOKEN(Strings,5,'|') as Process,Message FROM Security.evtx where EventID=4688 and Message LIKE '%Administrator%' "
5、创建的服务:
LogParser.exe -i:EVT –o:DATAGRID "SELECT TimeGenerated as Creationtime,Message FROM Security.evtx where EventID=7045 "
6、重置密码:
LogParser.exe -i:EVT –o:DATAGRID "SELECT TimeGenerated as Creationtime,Message FROM Security.evtx where EventID=4724 "
7、用户已添加到特权本地组:
LogParser.exe -i:EVT –o:DATAGRID "SELECT TimeGenerated as Creationtime,Message FROM Security.evtx where EventID=4732 "
8、终端会话日志
终端会话日志-RDP断开连接:
Logparser.exe –i:EVT –o:DATAGRID "SELECT TimeGenerated as LoginTime,Strings FROM Operational.evtx where EventID=24 "
终端会话日志-RDP重连:
Logparser.exe –i:EVT –o:DATAGRID "SELECT TimeGenerated as LoginTime,Strings FROM Operational.evtx where EventID=25 "
终端会话日志-RDP登陆:
Logparser.exe –i:EVT –o:DATAGRID "SELECT TimeGenerated as LoginTime,Strings FROM Operational.evtx where EventID=21 "
3. 工具01-ProcessExplorer
3.1. ProcessExplorer介绍
Process Explorer,进程管理工具,它能管理隐藏在后台运行的进程,可以监视/挂起/重启/强行终止任何程序,包括系统级的不允许随便终止的关键进程等。
Process Explorer是由Sysinternals开发的Windows系统和应用程序监视工具,目前已并入微软旗下。
Process Explorer主要特点:
- 显示被执行的映像文件各种信息
- 显示进程安全令牌和权限
- 加亮显示进程和线程列表中的变化
- 显示作业中的进程,以及作业的细节
- 显示运行。NET/WinFX应用的进程,以及与.NET相关的细节
- 显示进程和线程的启动时间
- 显示内存映射文件的完整列表
- 能够挂起一个进程
- 能够杀死一个线程
- 显示进程的Virus Total安全性
3.2. 常用功能
3.2.1. 查看子父进程
打开工具,可以看到进程的父子关系一目了然显示出来。

3.2.2. 颜色解释
默认配置下,配色代表的含义如下:
红色:已删除的对象。
绿色:新对象。
紫色:自有进程。
粉色:服务。
3.2.3. 进程属性
-
[映像]->[路径/命令行/工作目录/自启动位置/父进程/用户/启动时间]
如下例子,可以此进程的详细信息,这里需要重点关注[路径][命令行][自启动位置][启动时间]
![]()
-
[TCP/IP]
此项可查看当前进程的网络连接情况。
![]()
-
[安全]->[权限]
此项为查看当前进程对应的权限。
![]()
4. 工具02-PC Hunter
1. PC Hunter介绍
PC Hunter是一款功能强大的Windows系统信息查看软件,同时也是一款强大的手工杀毒软件,用它不但可以查看各类系统信息,也可以揪出电脑中的潜伏的病毒木马。
此外,PC Hunter还大量使用了 Windows 内核技术,尤其是为了做一些检测而使用了些 Windows 未公开的内核数据结构。
本工具实现如下功能:
1.进程、线程、进程模块、进程窗口、进程内存信息查看,杀进程、杀线程、卸载模块等功能
2.内核驱动模块查看,支持内核驱动模块的内存拷贝
3.SSDT、Shadow SSDT、FSD、KBD、TCPIP、Classpnp、Atapi、Acpi、SCSI、IDT、GDT信息查看,并能检测和恢复ssdt hook和inline hook
4.CreateProcess、CreateThread、LoadImage、CmpCallback、BugCheckCallback、Shutdown、Lego等Notify Routine信息查看,并支持对这些Notify Routine的删除
5.端口信息查看,目前不支持2000系统
6.查看消息钩子
7.内核模块的iat、eat、inline hook、patches检测和恢复
8.磁盘、卷、键盘、网络层等过滤驱动检测,并支持删除
9.注册表编辑
10.进程iat、eat、inline hook、patches检测和恢复
11.文件系统查看,支持基本的文件操作
12.查看(编辑)IE插件、SPI、启动项、服务、Host文件、映像劫持、文件关联、系统防火墙规则、IME
13.ObjectType Hook检测和恢复
14.DPC定时器检测和删除
15.MBR Rootkit检测和修复
16.内核对象劫持检测
17.WorkerThread枚举
18.Ndis中一些回调信息枚举
19.硬件调试寄存器、调试相关API检测
20.枚举SFilter/Fltmgr的回调
21.系统用户名检测
2. 常用功能
2.1. 查看签名
黑色:微软签名的驱动程序;
蓝色:非微软签名的驱动程序;
红色:驱动检测到的可疑对象,隐藏服务、进程、被挂钩函数;



这里可以看到有多个红色进程,针对提示的可疑进程,还需要做进一个验证。
如选择一个进程,选中[查看进程模块],再选择[校验所有数字签名]



确认模块后可提取文件后进行样本分析。
2.2. 查看网络连接
可直接查看网络连接对接的应用程序。

2.3. 文件操作
可方便查看设置了隐藏属性的文件。








浙公网安备 33010602011771号