EmergencyResponse-应急响应之Windows基础
当企业发生黑客入侵、系统崩溃或其它影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时间内恢复正常工作,进一步查找入侵来源,还原入侵事故过程,同时给出解决方案与防范措施,为企业挽回或减少经济损失
常见的应急响应事件分类:
- web入侵:网页挂马、主页篡改、Webshell
- 系统入侵:病毒木马、勒索软件、远控后门
- 网络攻击:DDOS攻击、DNS劫持、ARP欺骗
入侵排查思路
在简单做完定向分析并取证后,如果客户直接把系统重置了就不需要下一步了,如果客户要求从头到尾把系统排查一下那么就利用工具和手法进行排查。
对账户、进程、端口、服务、启动项、计划任务、文件、日志进行逐个检测,
系统基本信息
将隐藏文件和后缀名显示打开!!!
msinfo32
查看Windows信息- 硬件信息
- 运行任务
- 服务
- 系统驱动程序
- 加载的模块
- 启动程序
systeminfo
查看补丁是否齐全,是否存在ms08-067相关漏洞
工具
查找可疑目录及文件
相关目录
下载目录 | 回收站文件 |
---|---|
Temp | History |
应用程序打开历史 | 搜索历史 |
Lnk | 驱动:(cmd>Drivequery)日期 |
进程dll关联查询(tasklist -m) | 共享文件(cmd>Net share) |
最近的文件(资源管理器>%UserProfile%\Recent) | 文件更新 |
已安装文件,控制面板或者(regedit>\software\Microsoft\Windows\CurrentVersion\Uninstall) |
Directory | Description |
---|---|
C:\Windows\System32\drivers\etc\hosts | DNS文件 |
C:\Windows\System32\drivers\etc\networks | 网络配置文件 |
C:\Windows\System32\config\SAM | 用户名及密码文件 |
C:\Windows\System32\config\SECURITY | Security日志文件 |
C:\Windows\System32\config\SOFTWARE | Software日志文件 |
C:\Windows\System32\config\SYSTEM | System日志文件 |
C:\Windows\System32\config\winevt\ | Windows事件日志 |
C:\Windows\repair\SAM | 用户名及密码备份文件 |
1 | # 检查方法 |
FORFILES /P C:\WINDOWS /S /M DNS\*.\*
- 功能:在
C:\WINDOWS
文件夹及其所有子文件夹中查找以 “DNS” 开头的文件(无论扩展名是什么)。 - 参数解释
/P C:\WINDOWS
:指定从C:\WINDOWS
文件夹开始搜索/S
:递归搜索子文件夹/M DNS*.*
:匹配以 “DNS” 开头的所有文件
FORFILES /S /M \*.txt /C "cmd /c type @file | more"
- 功能:在当前目录及其所有子目录中,查找扩展名为
.txt
的文件,并显示每个文件的内容(分页显示)。 - 参数解释
/S
:递归搜索子文件夹/M *.txt
:匹配.txt
文件/C "cmd /c type @file | more"
cmd /c
:执行后面的命令type @file
:显示当前文件内容| more
:分页显示文件内容
FORFILES /P C:\ /S /M *.bat
功能:在
C:\
驱动器及其所有子目录中查找.bat
文件参数解释
/P C:\
:从C:\
目录开始/S
:递归搜索/M *.bat
:匹配.bat
文件
FORFILES /P D:\xxxxxxx\Desktop /S /M *.bat /C "cmd /c echo @path"
FORFILES /D -30 /M *.exe /C "cmd /c echo @path 0x09 在 30 前就被更改。"
功能:查找当前目录中最近 30 天之前修改的
.exe
文件,并输出文件路径和提示信息。参数解释
/D -30
:匹配最近 30 天之前修改的文件/M *.exe
:匹配.exe
文件/C "cmd /c echo @path 0x09 在 30 前就被更改。"
@path
:当前文件的完整路径0x09
:表示制表符(TAB 键)echo ...
:显示消息
FORFILES /D 2001/01/01 /C "cmd /c echo @fname 在 2001年1月1日就是新的。"
- 功能:查找自 2001 年 1 月 1 日起修改的文件,并输出文件名及提示信息
- 参数解释
/D 2001/01/01
:匹配从 2001 年 1 月 1 日开始修改的文件/C "cmd /c echo @fname ..."
@fname
:当前文件名(不包括路径和扩展名)echo ...
:显示消息
FORFILES /D +2024/7/18 /C "cmd /c echo @fname 今天是新的。"
- 功能:查找从 2024 年 7 月 18 日之后修改的文件,并输出文件名和提示信息
- 参数解释
/D +2024/7/18
:匹配从指定日期开始修改的文件/C "cmd /c echo @fname ..."
:输出文件名和消息
FORFILES /M *.exe /D +1
- 功能:查找最近 1 天内修改的
.exe
文件 - 参数解释
/M *.exe
:匹配.exe
文件/D +1
:匹配最近 1 天内修改的文件
FORFILES /S /M *.doc /C "cmd /c echo @fsize"
- 功能:在当前目录及其子目录中,查找
.doc
文件并输出每个文件的大小(以字节为单位) - 参数解释
/S
:递归搜索/M *.doc
:匹配.doc
文件/C "cmd /c echo @fsize"
:显示文件大小
FORFILES /M *.txt /C "cmd /c if @isdir==FALSE notepad.exe @file"
- 功能:在当前目录中查找
.txt
文件,并使用Notepad
打开每个非目录文件 - 参数解释
/M *.txt
:匹配.txt
文件/C "cmd /c if @isdir==FALSE notepad.exe @file"
@isdir
:检查文件是否为目录notepad.exe @file
:用Notepad
打开文件
后门查杀
1 | # 启动项 |
程序运行记录
使用WinPrefetchView
解析Prefetch
文件夹中的.pf
文件取证。
https://www.nirsoft.net/utils/win_prefetch_view.html#google_vignette
检查系统账号安全
查看服务器是否有弱口令
1
2# 检查方法:
据实际情况咨询相关服务器管理员查看服务器是否存在可疑账号、新增账号.
1
2
3
4
5
6# 检查方法:
lusrmgr.msc 查看是否有新增/可疑的账号
net localgroup administrators
wmic UserAccount get
在管理员群组的(Administrators)里如有新增账户,请立即禁用或删除掉.
使用D盾、HM查杀工具,集成了对克隆账号检测的功能.结合日志,查看管理员登录时间、用户名是否存在异常.
1
2
3
4# 检查方法:
a. Win+R打开运行,输入"eventvwr.msc",回车运行,打开"事件查看器"
b. 导出Windows日志--安全,利用LogParser进行分析
LogParser.exe -i:EVT "SELECT TimeGenerated AS LoginTime, EXTRACT_TOKEN(Strings, 5, '|') AS username FROM C:\Users\Administrator\Desktop\Security.evtx WHERE EventID = 4624"选择 “Windows 日志”–>”安全”,选择”将所有事件另存为(E)…”:
日志分析:
https://www.microsoft.com/en-us/download/details.aspx?id=24659
通过这个链接下载
LogParser.msi
:搜索应用,并打开,出现如下窗口:
使用注意:
1
LogParser.exe -i:EVT "SELECT TimeGenerated AS LoginTime, EXTRACT_TOKEN(Strings, 5, '|') AS username FROM E:\APP\Log Parser 2.2\datas\Security.evtx WHERE EventID = 4624"
报错了,主要是由于路径中包含空格,而路径没有用引号包裹完整,从而导致 Log Parser 将路径的一部分(如
Log Parser 2.2
)误解为其他参数。正确用法:用双引号将包含空格的路径完全包裹起来
1
>LogParser.exe -i:EVT "SELECT TimeGenerated AS LoginTime, EXTRACT_TOKEN(Strings, 5, '|') AS username FROM 'E:\APP\Log Parser 2.2\datas\Security.evtx' WHERE EventID = 4624
wmic命令
1
wmic useraccount get Name,SID
隐藏账号-番外篇
window 隐藏系统用户操作,CMD命令行下,建立了一个用户名为test$
,密码为Test123
的简单隐藏账户,并且把该隐藏账户提升为了管理员权限。
CMD命令行使用net user,看不到test$这个账号,但使用net localgroup administrators
命令、控制面板和本地用户和组是可以显示此用户:
克隆账号制作过程:
“开始”→“运行”,输入
1
regedit
后回车,需要到
1
HKEY_LOCAL_MACHINE\SAM\SAM
单机右建权限,给予
1
administrator
用户完全控制以及读取的权限,在后面打勾就行。然后关闭注册表编辑器,再次打开即可:
关于注册表,重新打开后:
来到注册表编辑器的
HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names
处,点击test$
用户,得到在右边显示的键值中的”类型”一项显示为0x3ea
,找到箭头所指目录:找到
administrator
所对应的的项为000001F4
,将00001F4
的F值复制到000003EA
的F值中,保存:分别
test$
和000003EA
导出到桌面,删除test$
用户1
net user test$ /del
删除了用户后,再次查看注册表,发现用户相关信息已经不存在了:
将刚才导出的两个后缀为.reg的注册表项导入注册表中,这样所谓的隐藏账户就创建好了
PS:不管是在命令提示符下输入net user 或者在系统用户管理界面都是看不到test$这个账户的,只有在注册表中才能看得到
检查异常端口、进程
检查端口连接情况,是否有远程连接、可疑连接
1
2
3
4
5
6
7
8
9# 检查方法:
# 注意以下状态的网络连接:
- ESTABLISHED: 连接建立数据传输
- LISTEN: 监听中等待连接
a. netstat -ano
b. 根据netstat定位出的pid,再通过tasklist命令进行进程定位
tasklist | findstr "PID"
# 注册表查看RDP端口
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-TcpTcpview
、火绒剑、命令行下netstat -ano
:- tcpview:https://learn.microsoft.com/en-us/sysinternals/downloads/tcpview
- 火绒剑:https://www.52pojie.cn/thread-1859777-1-1.html 、https://wwi.lanzouj.com/iEVGb1fls48d
DNSQuerySniffer
:DNS解析查询工具。可以通过此工具确定访问恶意域名的端口号,该工具还可以将主机访问过的所有域名记录下来。进程
ProcessExplorer:https://learn.microsoft.com/en-us/sysinternals/downloads/process-explorer
D盾:https://www.d99net.net/1
2
3
4
5
6
7
8
9
10
11
12# 检查方法:
a. 开始--运行--输入
msinfo32
依次点击"软件环境→正在运行任务"就可以查看到进程的详细信息,比如进程路径、进程ID、文件创建日期、启动时间等.
b. 打开D盾查杀工具,进程查看,关注没有签名信息的进程.
c. 通过微软官方提供的ProcessExplorer等工具进行排查.
d. 查看可疑的进程及其子进程.可以通过观察以下内容:
1. 没有签名验证信息的进程
2. 没有描述信息的进程
3. 进程的属主
4. 进程的路径是否合法
5. CPU或内存资源占用长时间过高的进程小技巧:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23a. 查看端口对应的PID: netstat -ano | findstr "port"
b. 查看进程对应的PID: 任务管理器--查看--选择列--PID
或者 tasklist | findstr "PID"
c. 查看进程对应的程序位置:
1. 任务管理器--选择对应进程--右键打开文件位置
2. cmd输入wmic process
d. tasklist /svc # 进程--PID--服务
e. 查看Windows服务所对应的端口:
%system%/system32/drivers/etc/services
# 一般 %system% 就是C:\Windows
f. # 查询对应进程的详细信息
# 进程的标题或名称,进程启动时使用的命令行,创建进程的类的名称,进程创建的日期和时间,客户端超级计算机的创建类名(通常与 CreationClassName 相同),计算机的名称,进程的描述,进程的可执行文件路径,进程的执行状态(例如:正在运行、停止等),进程句柄的十六进制表示,进程当前打开的句柄数量,安装日期,进程在内核模式下运行的总时间,进程可使用的最大工作集大小(内存页数),进程可使用的最小工作集大小(内存页数),进程的名称,操作系统创建的类的名称,操作系统的名称,其他操作计数,其他传输计数,进程引起的页面错误次数,进程使用的页面文件大小,创建此进程的父进程的ID
# Caption,CommandLine,CreationClassName,CreationDate,CSCreationClassName,CSName,Description,ExecutablePath,ExecutionState,Handle,HandleCount,InstallDate,KernelModeTime,MaximumWorkingSetSize,MinimumWorkingSetSize,Name,OSCreationClassName,OSName,OtherOperationCount,OtherTransferCount,PageFaults,PageFileUsage,ParentProcessId
wmic process get Caption,CommandLine,ExecutablePath,InstallDate,Name,ProcessId /format:csv | findstr "phpstudy"
# format:
# /FORMAT:CSV 逗号分隔值格式
# /FORMAT:HTML 超文本标记语言格式
# /FORMAT:LIST 以列表形式输出(默认格式)
# /FORMAT:MOF 管理对象格式
# /FORMAT:RAWXML 原始XML格式
# /FORMAT:TABLE 以表格形式输出WinRM端口复用连接排查
在默认情况下,WinRM服务的端口为5985,但可通过配置将其改成80端口
在排查时,可使用命令
winrm enumerate winrm/config/listener
查看是否启动服务,当存在返回信息时,则说明服务运行中,当无返回信息时,则服务关闭关闭服务命令
- cmd:
winrm delete winrm/config/Listener?Address=*+Transport=HTTP
- powershell
Set-Service -Name winrm -StartupType Disabled
Stop-Service winrm
- cmd:
检查启动项、计划任务、服务
什么是Windows启动项?
- 开机的时候系统会在前台或者后台运行的程序
什么是Windows启动项后门?
Windows启动项后门也是攻击者常用的权限维持方式,大体上可以分为两种。
- 一是重启电脑时自启动后门程序实现权限维持;
- 二是点击某应用、服务、程序时自启动后门程序实现权限维持。
什么是计划任务?
- 一般是指在操作系统中设置定时任务
- 计划任务是系统的常见功能,利用任务计划功能,可以将任何脚本、程序或文档安排在某个最方便的时间运行。
什么是计划任务后门?
- 计划任务是经常被攻击者拿来利用的控制点,计划任务可以让目标主机在特定的时间执行我们预先准备的后门程序从而帮助我们进行权限维持。
什么是Windows服务?
- Windows 会话中可运行的可执行应用程序
- 在Windows系统中还有一个重要的机制,就是服务。通常大部分的服务都拥有SYSTEM权限,如果攻击者利用Windows的服务机制创建一个后门服务,那么这个后门将比一般的持久化方法更为强健。
检查服务器是否有异常的启动项
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39# 检查方法:
a. 登录服务器,单击【开始】>【所有程序】>【启动】,默认情况下此目录在是一个空目录,
确认是否有非业务程序在该目录下.
b. 单击开始菜单>【运行】,输入msconfig,查看是否存在命名异常的启动项目,
是则取消勾选命名异常的启动项目,并到命令中显示的路径删除文件.
c. 单击【开始】>【运行】,输入regedit,打开注册表,
查看开机启动项是否正常,特别注意如下注册表项:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\policies\Explorer\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
(ProfilePath)\Start Menu\Programs\Startup 启动项
检查右侧是否有启动异常的项目,如有请删除,并建议安装杀毒软件进行病毒查杀,清除残留病毒或木马.
# 注册表目录含义
# 此处存储的信息可确保在Windows资源管理器中执行时打开正确的程序.它还包含有关拖放规则、快捷方法和用户界面信息的更多详细信息
HKEY_CLASSES_ROOT(HKCR)
# 包含当前登录系统的用户的配置信息,有用户的文件夹、屏幕颜色和控制面板设置
HKEY_CLASSES_USER(HKCU)
# 包含运行操作系统的计算机硬件特定信息,有系统上安装的驱动器列表及已安装硬件和应用程序的通用配置
HKEY_LOCAL_MACHINE(HKLM)
# 包含系统上所有用户配置文件的配置信息,有应用程序配置和可视配置
HKEY_USERS(HKU)
# 存储有关系统当前配置的信息
HKEY_CLASSES_CONFIG(HCU)
# 注册表操作命令
1. reg add添加注册表
2. reg delete删除注册表
3. reg query返回注册表的子项下的项和下一层项的列表
d. 利用安全软件查看启动项、开机时间管理等.
e. 组策略,运行gpedit.msc.
f. msconfig 图形化查看启动项autoruns
:检查启动项、计划任务、服务最推荐的工具。https://learn.microsoft.com/en-us/sysinternals/downloads/autoruns
WMI后门:无文件,相对来说难以排查,但也可以使用
autoruns
排查。检查计划任务
1
2
3
4
5
6
7
8
9
10# 检查方法:
a. 单击【开始】>【设置】>【控制面板】>【任务计划】
查看计划任务属性,便可以发现木马文件的路径.
b. taskschd.msc
c. compmgmt.msc
d. schtasks
e. powershell输入Get-ScheduledTask
f. C:\Windows\System32\Tasks\
g. C:\Windows\SysWOW64\Tasks\
h. C:\Windows\tasks\服务自启动
服务可以理解为运行在后台的进程,这些服务可以在计算机启动时自动启动,也可以暂停和重新启动,而且不显示任何用户界面
服务作为一种运行在后台的进程,是恶意软件常用的贮存方法
1
2
3# 检查方法:
单击【开始】>【运行】,输入services.msc,注意服务状态和启动类型
检查是否有异常服务.
进程分析
Windows进程排查,主要是找到恶意进程的PID,程序路径有时还需要找到PPID(PID的父进程),及程序加载的DLL
1 | 1. 任务管理器 |
主要注意点大致就是:没有厂商名字、没有签名验证信息、没有描述信息的可疑进程。还有典型的挖矿现象(CPU 或内存资源占用长时间过高)的进程。
Pchunter
:黑色为微软官方进程,蓝色为外界安装软件进程,红色为可疑进程,同时注意进程参数
但是,因为版本老旧,一般都是使用火绒剑代替:
process Explorer
:进程浏览器。界面功能从左到右为:Process进程
、CPU占比
、Private Bytes提交大小
、Working Set(工作设置、内存)
、PID
、Description描述
、Company Name
公司名。
小技巧:被注入的进程属性里会多出.NET Assemblies
和 .NET Performance
两个菜单
文件痕迹排查
1 | 1. 敏感目录 |
辅助功能镜像劫持-Shift粘贴键后门
什么是Shift粘贴键后门?
- Shift粘滞键是当用户连按5次shift就会自动弹出的一个程序,其实不光是粘滞键,还有各种辅助功能,这类辅助功能都拥有一个特点就是当用户未进行登录时也可以触发。所以攻击者很有可能通过篡改这些辅助功能的指向程序来达到权限维持的目的。 (辅助功能镜像劫持是一样的原理)
为了使电脑更易于使用和访问,Windows 添加了一些辅助功能。这些功能可以在用户登录之前以组合键启动。根据这个特征,一些恶意软件无需登录到系统,通过远程桌面协议就可以执行恶意代码。
比如最常见的按5下shift出现的粘滞键Sethc.exe,还有Windows + U组合键时启动的utilman.exe程序
还有:
1 | 屏幕键盘: C:\Windows\System32\osk.exe |
低版本
在较早的 Windows 版本,只需要进行简单的二进制文件替换,比如经典的shift后门是将C:\Windows\System32\sethc.exe
替换为cmd.exe
。
仅限windows 2003、xp系统
1 | copy c:\windows\system32\sethc.exe c:\windows\system32\sethc.exe.bak |
高版本
我们需要用到IFEO,即映像劫持
什么是IFEO
所谓的IFEO就是Image File Execution Options,直译过来就是映像劫持。它又被称为“重定向劫持”(Redirection Hijack),它和“映像劫持”(Image Hijack,或IFEO Hijack)只是称呼不同,实际上都是一样的技术手段。白话来讲就是做某个操作的时候被拦截下来,干了别的事。
当我们双击运行程序时,系统会查询该IFEO注册表,如果发现存在和该程序名称完全相同的子键,就查询对应子健中包含的“debugger”键值名,如果该参数不为空,系统则会把 Debugger 参数里指定的程序文件名作为用户试图启动的程序执行请求来处理。这样成功执行的是遭到“劫持”的虚假程序。
劫持的原理总结:
- 正常流程:用户启动某个程序(如
notepad.exe
)。 - IFEO 检查:操作系统检查 IFEO 注册表中的配置,看是否存在与该程序名相同的键。
- 劫持:如果存在
"Debugger"
键且其值指向恶意程序,操作系统会启动恶意程序而不是目标程序。
攻击者如何利用 IFEO:
- 替代合法程序:攻击者可以在 IFEO 配置中注入指向恶意可执行文件的路径。当用户启动被劫持的程序时,实际启动的可能是攻击者设定的恶意程序。
- 绕过安全检测:有时,攻击者可以使用 IFEO 来执行与正常操作相关的恶意代码,例如通过在
cmd.exe
或powershell.exe
等系统程序中设置恶意调试器,来执行未被检测的恶意脚本或命令。 - 持久化:由于 IFEO 是在注册表中配置的,因此只要该项没有被删除,劫持就会持续有效,增加了攻击者持久化的能力。
防御措施:
- 监控注册表:定期检查
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
路径下的子项,确保没有被修改或注入恶意条目。 - 加固程序执行权限:限制程序的执行权限,防止恶意软件修改系统配置。
- 防病毒软件:使用反病毒软件进行实时监控,检查是否存在恶意劫持行为。
IFEO 劫持是一种巧妙且隐蔽的攻击手段,攻击者可以通过这种方式在用户不知情的情况下执行恶意程序,因此它对安全防护提出了较高要求。
命令行修改
1 | # 需要管理员权限 |
成功。
Windows日志及工具
Windows日志介绍
依赖的服务:EventLog服务
位置:
- Windows 2000 / Server2003 / Windows XP :
%SystemRoot%\System32\Config\*.evtx
- Windows Vista / 7 / 10 / Server2008 及以上版本:
%SystemRoot%\System32\Winevt\Logs\*.evtx
Windows日志分类
类型 | 描述 |
---|---|
系统日志(System.evtx) | 系统日志包含由Windows系统组件记录的事件,记录系统进程和设备 驱动程序的活动。由它审核的系统事件包括启动失败的设备驱动程序、硬件错误、重复的IP地址 以及服务启动、暂停和停止。 |
应用程序日志(Application.evtx) | 记录程序在运行过程中的日志信息。 |
安全日志(Security.evtx) | 安全日志记录各种系统审核和安全处理,包括用户权限的变化、文件 和目录的访问、打印以及用户系统登陆和注销,如有效或无效的登陆尝试、与资源使用有关的事 件。管理员有按需要指定安全日志中要记录的事件类型。 |
系统日志
简介:主要指Windows系统中的各个组件在运行中产生的各种事件
- 系统驱动在运行中出现的问题
- 操作系统的多种组件在运行中出现的各种问题
- 应用软件在运行中出现的重大问题
问题包括:数据丢失、错误,以及系统崩溃行为
Windows2000-WindowsServer2003
:C:\WINDOWS\System32\config\SysEvent.evt
Windows Vista-Win10以及Windows Server 2008/2012
:%SystemRoot%\System32\Winevt\Logs\System.evt
1 | # 分析方法: |
安全日志
简介:记录系统各种安全事件
- 各种登录与退出系统的成功或不成功的信息
- 对系统中各种重要资源的操作,如对系统文件的创建、删除、修改等操作
Windows2000-WindowsServer2003
:C:\WINDOWS\System32\config\SecEvent.evt
WindowsVista-Win10以及WindowsServer2008/2012
:%SystemRoot%\System32\Winevt\Logs\Security.evt
应用程序日志
简介:各类应用程序产生的各类事件:登录、退出等日志
Windows2000-WindowsServer2003
:C:\WINDOWS\System32\config\AppEvent.evt
WindowsVista-Win10以及WindowsServer2008/2012
:%SystemRoot%\System32\Winevt\Logs\Application.evt
在默认情况下, Windows日志仅仅记录一些特定日志,因为Windows日志中每种日志的大小默认为 20M,超过大小之后会覆盖最早的日志记录。如果我们需要记录详细的安全日志,则需要通过修改本地策略或者在高级审核策略配置中来启用其他项的日志记录功能。
Windows事件ID
审核策略更改
此安全设置确定 OS 是否对尝试更改用户权限分 配策略、审核策略、帐户策略或信任策略的每 一个实例进行审核.
类别 | 子类别 | 默认状态 | 对应高级审核策略配置 |
---|---|---|---|
审核策略更改 | 审核审核策略更改 | 成功 | 策略更改 |
审核身份验证策略更改 | 成功 | 策略更改 | |
审核授权策略更改 | 无审核 | 策略更改 | |
审核筛选平台策略更改 | 无审核 | 策略更改 | |
审核 MPSSVC 规则级策略更改 | 无审核 | 策略更改 | |
审核其他策略更改事件 | 无审核 | 策略更改 |
子类别 | 默认状态 | 事件ID | 事件说明 |
---|---|---|---|
审核审核策略更改 | 成功 | 4715 | 对象的审核策略 (SACL) 已更改. |
成功 | 4719 | 系统审核策略已更改. | |
成功 | 4817 | 对象的审核设置已更改. | |
成功 | 4902 | 创建了每用户审核策略表. | |
成功 | 4904 | 已尝试注册安全事件源. | |
成功 | 4905 | 已尝试取消注册安全事件源. | |
成功 | 4906 | CrashOnAuditFail 值已更改. | |
成功 | 4907 | 对象的审核设置已更改. | |
成功 | 4908 | 特殊组登录表已修改. | |
成功 | 4912 | 每用户审核策略已更改. | |
审核身份验证策略更改 | 成功 | 4713 | Kerberos 策略已更改. |
成功 | 4716 | 可信域信息已修改. | |
成功 | 4717 | 系统安全访问被授予一个帐户. | |
成功 | 4718 | 系统安全访问权限已从帐户中删除 | |
成功 | 4739 | 域策略已更改. | |
成功 | 4864 | 检测到命名空间冲突. | |
成功 | 4865 | 添加了受信任的林信息条目. | |
成功 | 4866 | 删除了受信任的林信息条目. | |
成功 | 4867 | 受信任的林信息条目已修改. |
审核登录事件
此安全设置确定 OS 是否对尝试登录此计算机 或从中注销的用户的每个实例进行审核.
类别 | 子类别 | 默认状态 | 对应高级审核策略配置 |
---|---|---|---|
审核登录事件 | 审核账户锁定 | 成功 | 登录/注销 |
审核 IPsec 扩展模式 | 无审核 | 登录/注销 | |
审核 IPsec 主模式 | 无审核 | 登录/注销 | |
审核 IPsec 快速模式 | 无审核 | 登录/注销 | |
审核注销 | 成功 | 登录/注销 | |
审核登录 | 客户端:成功 服务器:成功和失败 | 登录/注销 | |
审核网络策略服务器 | 成功和失败 | 登录/注销 | |
审核其他登录/注销事件 | 无审核 | 登录/注销 | |
审核特别登录 | 成功 | 登录/注销 |
子类别 | 默认状态 | 事件ID | 事件说明 |
---|---|---|---|
审核账户锁定 | 成功 | 4625 | 帐户登录失败. |
审核注销 | 成功 | 4634 | 帐户已注销. |
审核注销 | 成功 | 4647 | 用户发起的注销. |
审核登录 | 客户端PC: 成功 服务器: 成功和失败 | 4624 | 帐户登录成功. |
4625 | 帐户登录失败. | ||
4648 | 尝试使用显式凭据登录. | ||
4675 | SID 被过滤. | ||
审核网络策略服务器 | 成功和失败 | 网络策略服务器授予用户访问权限. | |
6273 | 网络策略服务器拒绝访问用户. | ||
6274 | 网络策略服务器放弃了对用户的请求. | ||
6275 | 网络策略服务器丢弃了用户的计费请求. | ||
6276 | 网络策略服务器隔离了一个用户. | ||
6277 | 网络策略服务器授予用户访问权限,但由于主机不符合定义的健康策略而使其处于试用状态. | ||
6278 | 网络策略服务器授予用户完全访问权限,因为主机符合定义的健康策略. | ||
6279 | 由于多次失败的身份验证尝试,网络策略服务器锁定了用户帐户. | ||
6280 | 网络策略服务器解锁了用户帐户. | ||
审核特别登录 | 成功 | 4964 | 已将特殊组分配给新登录 |
登录类型 | 描述 | 说明 |
---|---|---|
2 | 交互式登录(Interactive) | 用户在本地进行登录. |
3 | 网络(Network) | 最常见的情况就是连接到共享文件夹或共享打印机时. |
4 | 批处理(Batch) | 通常表明某计划任 务启动. |
5 | 服务(Service) | 每种服务都被配置 在某个特定的用户 账号下运行. |
7 | 解锁(Unlock) | 屏保解锁. |
8 | 网络明文(NetworkCleartext) | 登录的密码在网络 上是通过明文传输 的,如FTP. |
9 | 新凭证(NewCredentials) | 使用带/Netonly参数 的RUNAS命令运行一 个程序. |
10 | 远程交互(RemoteInteractive) | 通过终端服务、远程桌面或远程协助访问计算机. |
11 | 缓存交互(CachedInteractive) | 以一个域用户登录而又没有域控制器可用 |
地位和子状态码 | 描述 |
---|---|
0xc0000064 | 用户名不存在 |
0xc000006a | 用户名是正确的,但密码是错误的 |
0xc0000234 | 用户当前锁定 |
0xc0000072 | 帐户目前禁用 |
0xc000006f | 用户试图登录天的外周或时间限制 |
0xc0000070 | 工作站的限制 |
0xc0000193 | 帐号过期 |
0xc0000071 | 过期的密码 |
0xc0000133 | 时钟之间的直流和其他电脑太不同步 |
0xc0000224 | 在下次登录用户需要更改密码 |
0xc0000225 | 显然一个缺陷在Windows和不是一个风险 |
0xc000015b | 没有被授予该用户请求登录类型(又名登录 正确的)在这台机器 |
0xc000006d | 似乎是由于系统问题和不安全 |
审核账户管理
此安全设置确定是否审核计算机上的每个帐户管理事件.帐户管理事件示例包括:
- 创建、更改或删除用户帐户或组.
- 重命名、禁用或启用用户帐户.
- 设置或更改密码.
类别 | 子类别 | 默认状态 | 对应本地审核策略 |
---|---|---|---|
帐户管理 | 审核应用组程序管理 | 无审核 | 审核账户管理 |
审核计算机帐户管理 | 无审核 | ||
审核通讯组管理 | 无审核 | ||
审核其他账户管理事件 | 无审核 | ||
审核安全组管理 | 成功 | ||
审核用户账户管理 | 成功 |
子类别 | 默认状态 | 事件ID | 事件 |
---|---|---|---|
审核安全组管理 | 成功 | 4727 | 已创建启用安全性的全局组. |
4728 | 一个成员被添加到启用安全的全局组中. | ||
4729 | 成员已从启用安全的全局组中删除. | ||
4730 | 已删除启用安全的全局组. | ||
4731 | 已创建启用安全性的本地组. | ||
4732 | 一个成员被添加到启用安全的本地组. | ||
4733 | 成员已从启用安全的本地组中删除. | ||
4734 | 已删除启用安全的本地组. | ||
4735 | 已更改启用安全的本地组. | ||
4737 | 已更改启用安全的全局组. | ||
4754 | 已创建启用安全的通用组. | ||
4755 | 已更改启用安全的通用组. | ||
4756 | 一个成员被添加到启用安全的通用组. | ||
4757 | 成员已从启用安全的通用组中删除. | ||
4758 | 已删除启用安全的通用组. | ||
4764 | 组的类型已更改. | ||
审核用户账户管理 | 成功 | 4720 | 已创建用户帐户. |
4722 | 已启用用户帐户. | ||
4723 | 试图更改帐户的密码. | ||
4724 | 已尝试重置帐户密码. | ||
4725 | 用户帐户被禁用. | ||
4726 | 用户帐户被删除. | ||
4738 | 用户帐户已更改. | ||
4740 | 用户帐户被锁定. | ||
4765 | SID 历史记录已添加到帐户 | ||
4766 | 尝试向帐户添加 SID 历史记录失败. | ||
4767 | 用户帐户已解锁. | ||
4780 | ACL 是在作为管理员组成员的帐户上设置的. | ||
4781 | 帐户名称已更改: | ||
4794 | 已尝试设置目录服务还原模式. | ||
5376 | 凭据管理器凭据已备份. | ||
5377 | 凭据管理器凭据是从备份中恢复的. |
远程登录事件
当通过远程桌面协议(RDP)进行远程登录时,会在源主机和目的主机上生成一系列事件。以下是与RDP远程登录相关的重要事件ID及其含义,这些事件可以在Windows安全日志和远程连接日志中找到。
安全日志(Security.evtx)
事件ID | 描述 | 重点说明 |
---|---|---|
4624 | 账户成功登录 | 表明有账户成功通过RDP登录 |
4648 | 使用明文凭证尝试登录 | 可能表明凭证被窃取或滥用 |
4778 | 重新连接到一台Windows主机的会话 | 表明会话被重新连接 |
4779 | 断开到一台Windows主机的会话 | 表明会话被断开 |
远程连接日志
应用程序和服务日志
->Microsoft
->Windows
->TerminalServices
->RemoteConnectionManager
->Operational
事件ID | 描述 | 重点说明 |
---|---|---|
1149 | 用户认证成功 | 表明用户通过RDP认证成功 |
21 | 远程桌面服务:会话登录成功 | 表明RDP会话登录成功 |
24 | 远程桌面服务:会话已断开连接 | 表明RDP会话被断开 |
25 | 远程桌面服务:会话重新连接成功 | 表明RDP会话被重新连接 |
登录类型
登录类型 | 描述 | 重点说明 |
---|---|---|
10 | RemoteInteractive | 专用于RDP登录 |
12 | CachedRemoteInteractive | 表明使用了缓存的RDP登录信息 |
Log Parser
-i
参数表示输入格式,可以接受以下值:EVT
: 表示输入格式为 Windows Event Log 格式 (.evt 或 .evtx 文件)。CSV
: 表示输入格式为逗号分隔值 (CSV) 文件。
IISW3C
: 表示输入格式为 IIS (Internet Information Services) W3C 扩展日志文件格式。TSV
: 表示输入格式为制表符分隔值 (TSV) 文件。
TEXTLINE
: 表示输入格式为文本文件,每行作为一个数据行。TEXTWORD
: 表示输入格式为文本文件,每个单词作为一个数据行。
-o
参数表示输出格式,可以接受以下值:DATAGRID
: 表示输出结果以数据网格形式显示,适合交互式探索和查看。CSV
: 表示输出结果为逗号分隔值 (CSV) 格式,适合导出和后续处理。
TSV
: 表示输出结果为制表符分隔值 (TSV) 格式。XML
: 表示输出结果为 XML 格式。
SQL
: 表示输出结果为 SQL 数据库表格格式。
1 | # 图形化 |
1 | # 在入侵事件中,我们经常会需要查找"post"请求,判断是否有上传木马文件等行为,或者访问页面中包含"user"、"manager"、"admin"等类似管理员的字段判断是否访问了后台管理页面。 |
LogParser Studio
打开需要分析的日志文件
选中需要分析的日志文件,接着新建一个查询
我们还是以刚才统计出访问次数最多的IP地址及次数为例子
SELECT top 10 c-ip,count(c-ip) FROM '[LOGFILEPATH]' GROUP BY c-ip ORDER BY COUNT(c-iP) DESC
然后点击我们的执行按钮,即可输出结果
这里注意
LogParser Studio
与LogParser
有几个区别:输入文件类型:
LogParser Studio
已经预先选择输入文件类型,查询语句不需要再定义输出文件类型:
LogParser Studio
默认使用窗口展示数据,如需指定其他输出文件类型或者导出文件,需要在语句中定义也可将我们自定义的SQL语句,保存加入到库中,方便下次使用
也可点击相应的按钮将查询统计的数据导出。