一、事件分类
-
病毒、木马、蠕虫事件
-
Web 服务器入侵事件或第三方服务入侵事件
-
系统入侵事件,如利用 Windows 的漏洞攻击入侵系统、利用弱口令入侵、利用其他服务的漏洞入侵
-
网络攻击事件(DDoS、ARP、DNS 劫持等)
跟 Web 入侵有所区别,Web 入侵需要对 Web 日志进行分析,系统入侵只能查看 Windows 的事件日志。
二、Windows日志:
打开方式
eventvwr.msc
Windows 10 搜索框直接搜索事件查看器
开始菜单-Windows 管理工具-事件查看器
存放位置
Windows Vista/7/10/Server2008: \%SystemRoot%\System32\winevt\Logs\*.evtx
Windows 2000/Server2003/Windows XP:\%SystemRoot%\System32\Config\*.evt
其他:
C:\Windows\System32\WDI\LogFiles
C:\Windows\System32\WDI\<guid>\<guid>
C:\Windows\System32\LogFiles\WMI
C:\Windows\System32\SleepStudy
分类
1.系统日志
系统日志包含Windows系统组件记录的事件。如:在启动过程中加载驱动程序或其他系统组件失败等
2.应用程序和服务日志
应用程序日志存储来自单个应用程序或组件的事件,而非可能影响整个系统的事件。
如:数据库程序可在应用程序日志中记录文件错误。程序开发人员决定记录哪些事件。
查看 PowerShell 的日志:Microsoft->Windows->PowerShell->OPtions
3.安全日志:
简介
安全日志包含诸如有效和无效的登录尝试等事件,以及与资源使用相关的事件(如创建、打开或删除文件或其他对象)
管理员可以指定在安全日志中记录什么事件。如:如果已启用登录审核,则安全日志将记录对系统的登录尝试。
常用事件ID
ID:描述:日志名称
4624 成功登录 Security
4625 失败登录 Security
4776 成功/失败的账户认证 Security
4720 创建用户 Security
4732 添加用户到启用安全性的本地组中 Security
4728 添加用户到启用安全性的全局组中 Security
7030 服务创建错误 System
7040 IPSEC服务服务的启动类型已从禁用更改为自动启动 System
7045 服务创建 System
# 以上为(Vista/7/8/2008/2012)及以上事件ID,老版本可现找
登录类型ID
ID 登录类型 描述
2 Interactive 用户登录到本机
3 Network 用户或计算手机从网络登录到本机,如果网络共享,或使用 net use 访问网络共
享,net view 查看网络共享
4 Batch 批处理登录类型,无需用户干预
5 Service 服务控制管理器登录
7 Unlock 用户解锁主机
8 NetworkCleartext 用户从网络登录到此计算机,用户密码用非哈希的形式传递
9 NewCredentials 进程或线程克隆了其当前令牌,但为出站连接指定了新凭据
10 Remotelnteractive 使用终端服务或远程桌面连接登录
11 Cachedlnteractive 用户使用本地存储在计算机上的凭据登录到计算机(域控制器可能无
法验证凭据),如主机不能连接域控,以前使用域账户登录过这台主机,再登录就会产生这样日志
12 CachedRemotelnteractive 与 Remotelnteractive 相同,内部用于审计目的
13 CachedUnlock 登录尝试解锁
##:2为本地登录,3为远程网络登录,10为3389登录
远程登录事件
RDP:
简介
攻击者使用 RDP 远程登录受害者计算机,源主机和目的主机都会生成相应事件
远程连接日志关注 RemoteInteractive(10) 和CachedRemoteInteractive(12)表明使用了 RDP ,因为这些登录类型专用于RDP使用。
安全日志重要事件ID
4624:账户成功登录
4648:使用明文凭证尝试登录
4778:重新连接到一台 Windows 主机的会话
4779:断开到一台 Windows 主机的会话
远程连接日志重要事件ID
打开方式:应用程序和服务日志-Microsoft-Windows-TerminalServices-RemoteConnectionManager-Operational 1149:用户认证成功 21:远程桌面服务:会话登录成功 24:远程桌面服务:会话已断开连接 25:远程桌面服务:会话重新连接成功
计划任务和 AT:
登录类型ID
打开方式(默认禁用)应用程序和服务日志-Microsoft-Windows-TaskScheduler/Operational 100:任务已开始 102:任务完成 106:已注册任务(关注点) 107:在调度程序上触发任务 110:用户触发的任务 129:创建任务流程(推出) 140:任务已更新 141:任务已删除 200:运行计划任务 325:启动请求排队
统一后台进程管理器(UBPM)
- 服务控制管理器 - 管理 Windows 服务
- 任务计划程序 - 管理 Windows 任务
- Windows Management Instrumentation - 管理 WMI 供应商
- DCOM Server Process Launcher - 管理进程外 COM 应用程序
PsExec:
PsExec的典型行为
在具有网络登录(3)的远程计算机上将 PsExec 服务执行文件(默认值:PSEXESVC.exe)复制到%SystemRoot%。
如果使用-c选项,则通过 $Admin 共享将文件复制到 %SystemRoot% 执行命令。
注册服务(默认值:PSEXESVC),并启动服务以在远程计算机上执行该命令。
停止服务(默认值:PSEXESVC),并在执行后删除远程计算机上的服务。
相关选项或用法(见psexec部分)
相关事件ID
安全 4624:帐户已成功登录
系统 7045:系统中安装了服务
检测特征
PSExec服务执行文件(默认值:PSEXESVC.exe)被复制到远程计算机上的“%SystemRoot%”目录中
服务名称与没有“.exe”扩展名的执行名称相同
服务以“用户模式”执行,而不是“内核模式”
“LocalSystem”帐户用于服务帐户
实际帐户用于执行服务执行文件,而不是“SYSTEM”
GUI日志工具
eventvwr.msc
Event Log Explorer
- Microsoft Message Analyzer
- ETL Viewer
- Log Parser
PowerShell 日志操作:
Get-WinEvent
# Get-WinEvent帮助命令:get-help Get-WinEvent
# 列出所有事件日志:Get-WinEvent -ListLog *
# powershell管理员权限下获取安全事件日志:Get-WinEvent -FilterHashtable @{LogName='Security'}
# 过滤安全事件ID 4624:Get-WinEvent -FilterHashtable @{LogName='Security';ID='4624'}
# 查询今天的应用和系统日志,显示前2条:Get-WinEvent @{logname='application','system';starttime=[datetime]::today } -MaxEvents 2
# 根据ID查询事件:Get-WinEvent -LogName Microsoft-Windows-PowerShell/Operational | Where-Object {$_.ID -eq "4100" -or $_.ID -eq "4104"}
# 查询指定时间内的事件:
$StartTime=Get-Date -Year 2017 -Month 1 -Day 1 -Hour 15 -Minute 30
$EndTime=Get-Date -Year 2017 -Month 2 -Day 15 -Hour 20 -Minute 00
Get-WinEvent -FilterHashtable @{LogName='System';StartTime=$StartTime;EndTime=$EndTime}
Get-EventLog
Get-EventLog (Microsoft.PowerShell.Management) - PowerShell | Microsoft Docs
三、检查账户
-
本地用户和组(lusrmgr.msc)
-
net user列出当前登录账号,wmic UserAccount get列出当前系统所有账户
-
检查注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ProfileList
HKLM\SAM\Domains\Account\(默认是 SYSTEM)权限,需要配置成管理员权限查看。
四、网络连接
常用命令
检查网络监听和连接的端口和应用程序:netstat -anob
路由:netstat -rn
防火墙配置:netsh firewall show all
PS查看建立的链接:Get-NetTCPConnection -State Established
netstat选项
-a :显示所有连接和侦听端口。
-b :显示在创建每个连接或侦听端口时涉及的可执行程序。在某些情况下,已知可执行程序承载多个独立的组件,这些情况下,显示创建连接或侦听端口时涉及的组件序列。
在此情况下,可执行程序的名称位于底部[ ] 中,它调用的组件位于顶部,直至达到 TCP/IP。注意,此选项可能很耗时,并且在你没有足够权限时可能失败。
-n :以数字形式显示地址和端口号。
-o :显示拥有的与每个连接关联的进程 ID。
-r :显示路由表。
五、检查进程
常用命令
进程通常结合网络查看异常,先检查异常的网络连接,再获取由哪个进程生成的网络连接
netstat -abno | find "port number"tasklist | findstr PID
使用 wmic 命令获取进程信息
wmic process | find "Proccess Id" > proc.csv
wmic process | findstr "Fast.exe Caption"
Get-WmiObject -Class Win32_Process
Get-WmiObject -Query "select * from win32_service where name='WinRM'" -ComputerName
Server01, Server02 | Format-List -Property PSComputerName, Name,
ExitCode, Name, ProcessID, StartMode, State, Status
可用工具``
任务管理器,procexpz
可疑进程
- 没有签名验证信息的进程
- 没有描述信息的进程
- 进程的属主
- 进程的路径是否合法
- CPU或内存资源占用长时间过高的进程
从内存分析进程:
内存dump
- 计算机属性,系统属性,高级选项卡中选择“启动和故障恢复设置”,选择完全转储内存,然后点击确定,系统会提示重启。
- 使用SysinternalsSuite 工具集的 notmyfault64 工具,admin模式下运行:NotMyFault64.exe /crash
内存分析
利用 Volatility 进行内存取证,分析入侵攻击痕迹。包括网络连接、进程、服务、驱动模块、DLL、handles、检测进程注入、检测Meterpreter、cmd历史命令、IE浏览器历史记录、启动项、用户、shimcache、userassist、部分rootkit隐藏文件、cmdliner等。
Volatility教程:利用Volatility进行入侵痕迹分析 - 先知社区
项目地址:https://github.com/volatilityfoundation/volatility
六、其他
开机启动
相关注册表位置
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
(ProfilePath)\Start Menu\Programs\Startup
其他检查位置
- 开始菜单,启动项里(C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup)
- 任务管理器,启动选项卡(或者运行 msconfig,查看启动选项卡)
- 运行gpedit.msc在本地组策略编辑器里查看开机运行脚本,包括计算机配置和用户配置的。
- 使用 SysinternalsSuite 工具集的 Autoruns 工具查看开机启动项目
查看服务
- PS:Get-Service 或 service
- services.msc
计划任务
查看方式
schtasks(命令行),taskschd.msc(任务面板)
查看2月19日运行过的计划任务:schtasks -v | findstr “2/19”
文件位置
C:\Windows\System32\Tasks\
C:\Windows\SysWOW64\Tasks\
C:\Windows\tasks\
文件后缀*.job
文件检查
思路
- 通过可疑进程(CPU 利用率、进程名)关联的文件
- 按照时间现象关联的文件
- 文件大小也可以 作为辅助的判断方法
需要关注的文件位置
下载目录
回收站文件
程序临时文件
历史文件记录
应用程序打开历史
搜索历史
快捷方式(LNK)
驱动:driverquery
进程 DLL 的关联查询:tasklist -M
共享文件
最近的文件(%UserProfile%\Recent)
文件更新
已安装文件:hklm:\software\Microsoft\Windows\CurrentVersion\Uninstall\
异常现象之前创建的文件
注册表
查看/修改方式
regedit.msc(图形界面),reg (命令行)
各目录含义
HKEY_CLASSES_ROOT(HKCR):此处存储的信息可确保在Windows资源管理器中执行时打开正确的程序。它还包含有关拖放规则,快捷方式和用户界面信息的更多详细信息。
HKEY_CURRENT_USER(HKCU):包含当前登录系统的用户的配置信息,包括用户的文件夹,屏幕颜色和控制面板设置。HKEY_USERS中特定于用户的分支的别名。通用信息通常适用于所有用户,并且是HKU.DEFAULT。
HKEY_LOCAL_MACHINE(HKLM):包含运行操作系统的计算机硬件特定信息。它包括系统上安装的驱动器列表以及已安装硬件和应用程序的通用配置。
HKEY_USERS(HKU):包含系统上所有用户配置文件的配置信息,包括应用程序配置和可视设置。
HKEY_CURRENT_CONFIG(HCU):存储有关系统当前配置的信息。
**重要的注册表键
hklm:\Software\Microsoft\Windows\CurrentVersion\policies\system
hklm:\Software\Microsoft\Active Setup\Installed Components
hklm:\Software\Microsoft\Windows\CurrentVersion\App Paths
hklm:\software\microsoft\windows nt\CurrentVersion\winlogon
hklm:\software\microsoft\security center\svc
hkcu:\Software\Microsoft\Windows\CurrentVersion\Explorer\TypedPaths
hkcu:\Software\Microsoft\Windows\CurrentVersion\explorer\RunMru
hklm:\Software\Microsoft\Windows\CurrentVersion\explorer\Startmenu
hklm:\System\CurrentControlSet\Control\Session Manager
hklm:\Software\Microsoft\Windows\CurrentVersion\explorer\ShellFolders
hklm:\Software\Microsoft\Windows\CurrentVersion\ShellExtensions\Approved
hklm:\System\CurrentControlSet\Control\Session Manager\AppCertDlls
hklm:\Software\Classes\exefile\shell\open\command
hklm:\BCD00000000
hklm:\system\currentcontrolset\control\lsa
hklm:\Software \Microsoft\Windows\CurrentVersion\Explorer\BrowserHelper Objects
hklm:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects
hkcu:\Software\Microsoft\Internet Explorer\Extensions
hklm:\Software\Microsoft\Internet Explorer\Extensions
hklm:\Software\Wow6432Node\Microsoft\Internet Explorer\Extensions
本文由本人总结优化,参考原文:Windows 系统安全事件应急响应 - 先知社区