应急响应-----Windows系统排查(学习笔记)

**

1.windows应急响应事件分类

**
Windows 系统的应急事件,按照处理的方式,可分为下面几种类别:

病毒、木马、蠕虫事件
Web 服务器入侵事件或第三方服务入侵事件
系统入侵事件,如利用 Windows 的漏洞攻击入侵系统、利用弱口令入侵、利用其他服务的漏洞入侵,跟 Web 入侵有所区别,Web 入侵需要对 Web 日志进行分析,系统入侵只能查看 Windows 的事件日志。
网络攻击事件(DDoS、ARP、DNS 劫持等)

**

2.排查思路

**
了解情况:
什么时间发现主机异常?
异常现象是什么?
受害人做了什么处理?
为什么会产生异常
反推入侵思路
主机上可能留下的痕迹
确定入侵过程

3.日志

windows自带事件查看器管理日志,使用命令eventvwr.msc打开
w10 搜索事件查看器 (管理工具下)

日志位置
Windows 2000/Server2003/Windows XP
%SystemRoot%\System32\Config*.evt

Windows Vista/7/10/Server2008
%SystemRoot%\System32\winevt\Logs*.evtx

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

应急响应-----Windows系统排查(学习笔记)_第1张图片
常用事件 ID 含义
应急响应-----Windows系统排查(学习笔记)_第2张图片
登录类型 ID

成功/失败登录事件提供的有用信息之一是用户/进程尝试登录(登录类型),但 Windows 将此信息显示为数字,下面是数字和对应的说明:
应急响应-----Windows系统排查(学习笔记)_第3张图片
账户类型

用户账户
计算机账户:此帐户类型表示每个主机。 此帐户类型的名称以字符“$”结尾。 例如,“DESKTOP-SHCTJ7L $” 是计算机帐户的名称。
服务账户:每个服务帐户都创建为特定服务的所有者。 例如,IUSR是IIS的所有者,而krbtgt是作为密钥分发中心一部分的服务的所有者。

应用程序和服务日志

应用程序和服务日志是一种新类别的事件日志。这些日志存储来自单个应用程序或组件的事件,而非可能影响整个系统的事件。

查看 PowerShell 的日志
Microsoft->Windows->PowerShell->OPtions

**

4.远程登录

**
攻击者可能造成的远程登录事件

RDP
攻击者使用 RDP 远程登录受害者计算机,源主机和目的主机都会生成相应事件。

重要的事件 ID(安全日志,Security.evtx)

4624:账户成功登录
4648:使用明文凭证尝试登录
4778:重新连接到一台 Windows 主机的会话
4779:断开到一台 Windows 主机的会话
远程连接日志(应用程序和服务日志->Microsoft->Windows->-TerminalServices->RemoteConnectionManager->Operational),重要事件 ID 和含义:

1149:用户认证成功
21:远程桌面服务:会话登录成功
24:远程桌面服务:会话已断开连接
25:远程桌面服务:会话重新连接成功
远程连接日志关注 RemoteInteractive(10) 和CachedRemoteInteractive(12)表明使用了 RDP ,因为这些登录类型专用于RDP使用。

计划任务和 AT 关注的事件 ID

4624:账户成功登录
计划任务事件 Microsoft-Windows-TaskScheduler/Operational.evtx,计划任务 ID 含义:

100:任务已开始
102:任务完成
106:已注册任务(关注点)
107:在调度程序上触发任务
110:用户触发的任务
129:创建任务流程(推出)
140:任务已更新
141:任务已删除
200:运行计划任务
325:启动请求排队
统一后台进程管理器(UBPM)

服务控制管理器 - 管理 Windows 服务
任务计划程序 - 管理 Windows 任务
Windows Management Instrumentation - 管理 WMI 供应商
DCOM Server Process Launcher - 管理进程外 COM 应用程序

**

**

powershell日志

**

**

应急响应-----Windows系统排查(学习笔记)_第4张图片
应急响应-----Windows系统排查(学习笔记)_第5张图片
应急响应-----Windows系统排查(学习笔记)_第6张图片

6.Windows 日志删除和日志集中化

**
攻击者入侵系统后,很可能会删除日志,比较粗暴的手法是直接删除所有日志和停止日志服务,对于应急来说删除掉的日志本身就是就是入侵的明显特征,根据文件创建时间也能大概判断入侵时间。另外有工具可以删除单条日志,这样只是分析 Windows 日志时对分析人员来说很难找到攻击痕迹,单条日志删除工具 https://github.com/360-A-Team/EventCleaner,另外可以参考 https://github.com/3gstudent/Eventlogedit-evtx--Evolution。

对抗删除的的措施是实施日志集中化,从 Windows 7 开始,Windows 记录日志为 XML 格式。

7.检查账户

检查账户的几种方式:

在本地用户和组里查看,运行lusrmgr.msc
使用net user列出当前登录账号,使用wmic UserAccount get列出当前系统所有账户
检查注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList,HKLM\SAM\Domains\Account\(默认是 SYSTEM)权限,需要配置成管理员权限查看。
SID 位于HKU\和 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList两个密钥中。 用户SID可以在值“Profilelist”下找到Subkeys(在用户登录系统时创建)。 值“ProfileImagePath”将列出该特定用户的配置文件的路径。 在操作系统级别,SID可识别无疑问题的帐户。 多用户系统看起来像这样

HKU.DEFAULT
HKU\S-1-5-18
HKU\S-1-5-19
HKU\S-1-5-20
HKU\S-1-5-21-1116317227-3122546273-4014252621-1000
HKU\S-1-5-21-1116317227-3122546273-4014252621-1000_Classes
HKU\S-1-5-21-1116317227-3122546273-4014252621-1003
HKU\S-1-5-21-1116317227-3122546273-4014252621-1003_Classes
前四个密钥是系统帐户,从计算机到计算机通常是相同的。 HKU.DEFAULT包含全局用户信息。 HKU\S-1-5-18属于“LocalSystem帐户”。HKU\S-1-5-19用于运行本地服务,是“本地服务帐户”。HKU\S-1-5-20 是用于运行网络服务的“NetworkService帐户”。 其他子键是唯一的SID,它们与已登录系统的各个用户相关联。 他们的解释如下:

“S”将字符串标识为SID。
“1”是SID规范的版本。
“5”是标识符权限值。
“21-1116317227-3122546273-4014252621”是域或本地计算机标识符,因计算机与计算机不同,因为它对应于唯一的个人用户帐户。
“1000”是相对ID(RID)。 默认情况下未创建的任何组或用户的RID均为1000或更高。
“1000_Classes”包含每用户文件关联和类注册。
“1003”是同一系统上另一个用户的相对ID(RID)。
“1003_Classes”包含第二个用户的文件关联和类注册。

**

8.检查网络连接

**
检查网络监听和连接的端口和应用程序

netstat -anob
输出主机上的所有侦听和活动连接,包括 PID 和连接到每个连接的程序的名称。 这也告诉 Netstat返回连接的 IP 地址,而不是试图确定它们的主机名。

-a :显示所有连接和侦听端口。
-b :显示在创建每个连接或侦听端口时涉及的可执行程序。在某些情况下,已知可执行程序承载多个独立的组件,这些情况下,显示创建连接或侦听端口时涉及的组件序列。在此情况下,可执行程序的名称位于底部 [] 中,它调用的组件位于顶部,直至达到 TCP/IP。注意,此选项可能很耗时,并且在你没有足够权限时可能失败。
-n :以数字形式显示地址和端口号。
-o :显示拥有的与每个连接关联的进程 ID。
-r :显示路由表。
路由

netstat -rn
结合findstr命令查找特定的端口或程序。

发现的感觉异常的 IP 地址可以在威胁情报平台上查询,如果是已知的恶意 IP,可以比较快速的确认攻击方式。

防火墙配置

netsh firewall show all
Windows 10 自带的网络连接可以参考:
https://betanews.com/2018/07/31/all-the-websites-windows-10-connects-to-clean-install/

**

9.检查进程

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

netstat -abno | find “port number”

tasklist | findstr PID
使用 wmic 命令获取进程信息

wmic process | find “Proccess Id” > proc.csv

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
PowerShell 的其他关于进程和网络的命令

Get-Process

Get-NetTCPConnection
Get-NetTCPConnection -State Established

进程跟服务的对应关系

tasklist /svc
使用 SysinternalsSuite 的 procexp 可以获取进程比较详细的信息,比如真实路径、加载的 DLL 文件等、CPU 和内存使用情况等。

当然也可以使用内存管理器。

查看可疑的进程及其子进程。可以通过观察以下内容:

没有签名验证信息的进程
没有描述信息的进程
进程的属主
进程的路径是否合法
CPU或内存资源占用长时间过高的进程
可以获取进程关联的文件 MD5 值,然后发送到威胁情报平台上辅助检查。进程关联的文件也可以使用在线病毒检测平台上直接检测。

2.4.1 内存 dump
有 2 种比较方便的方法:
第一种是使用系统自带功能,在计算机属性,系统属性,高级选项卡中选择“启动和故障恢复设置”,选择完全转储内存,然后点击确定,系统会提示重启。

重启后在配置的文件位置可以找到上次转储的内存文件。

另外一种方法,使用 SysinternalsSuite 工具集的 notmyfault64 工具,在使用管理员权限的命令行模式下(cmd、PowerShell),运行

NotMyFault64.exe /crash
2.4.2 内存分析
利用 Volatility 进行内存取证,分析入侵攻击痕迹,包括网络连接、进程、服务、驱动模块、DLL、handles、检测进程注入、检测Meterpreter、cmd历史命令、IE浏览器历史记录、启动项、用户、shimcache、userassist、部分rootkit隐藏文件、cmdliner等。

参考:https://xz.aliyun.com/t/2497

2.5 检查开机启动和运行服务
2.5.1 开机启动
关于开机启动需要分析的位置:

注册表中的关于开机启动的位置
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 工具查看开机启动项目

2.5.2 查看服务状态
服务状态,自动启动配置,在 PowerShell 下可以运行:

Get-Service

运行service命令

service
运行services.msc可以打开 Windows 服务工具,常见的 GUI 界面。

2.6 检查计划任务
存放计划任务的文件

C:\Windows\System32\Tasks
C:\Windows\SysWOW64\Tasks
C:\Windows\tasks
*.job(指文件)
使用命令查看计划任务

schtasks
运行taskschd.msc打开计划任务面板,或者从计算机管理进入,直接查看计划任务。

也可以使用 SysinternalsSuite 工具集的 Autoruns 工具查看计划任务。

2.7 检查文件
检查可疑文件的思路,一种是通过可疑进程(CPU 利用率、进程名)关联的文件,一种是按照时间现象关联的文件,文件大小也可以 作为辅助的判断方法,文件的操作可以使用Get-ChildItem命令查看。需要关注的文件位置:

下载目录
回收站文件
程序临时文件
历史文件记录
应用程序打开历史
搜索历史
快捷方式(LNK)
驱动

driverquery
进程 DLL 的关联查询

tasklist -M
共享文件
最近的文件(%UserProfile%\Recent)
文件更新
已安装文件
hklm:\software\Microsoft\Windows\CurrentVersion\Uninstall
异常现象之前创建的文件
2.8 检查注册表
注册表目录含义:

HKEY_CLASSES_ROOT(HKCR):此处存储的信息可确保在Windows资源管理器中执行时打开正确的程序。它还包含有关拖放规则,快捷方式和用户界面信息的更多详细信息。
HKEY_CURRENT_USER(HKCU):包含当前登录系统的用户的配置信息,包括用户的文件夹,屏幕颜色和控制面板设置。HKEY_USERS中特定于用户的分支的别名。通用信息通常适用于所有用户,并且是HKU.DEFAULT。
HKEY_LOCAL_MACHINE(H​​KLM):包含运行操作系统的计算机硬件特定信息。它包括系统上安装的驱动器列表以及已安装硬件和应用程序的通用配置。
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
活用注册表编辑器的搜索功能,根据进程名称、服务名称、文件名称搜索注册表。

  1. 特定事件痕迹检查
    3.1 挖矿病毒应急
    3.1.1 传播方式
    通常可能的传播方式:

通过社工、钓鱼方式下载和运行了挖矿程序(邮件、IM 等)
利用计算机系统远程代码执行漏洞下载、上传和执行挖矿程序
利用计算机 Web 或第三方软件漏洞获取计算机权限,然后下载和执行挖矿程序
利用弱口令进入系统,下载和执行挖矿程序
执行 Web 页面的挖矿 JS 脚本
3.1.2 挖矿程序特点
CPU、GPU、内存利用率高;
网络会连接一些矿工 IP,可以通过威胁情报获取。
3.1.3 挖矿程序应急目的
找出入侵原因
找到挖矿程序,并删除
挖矿事件应急可能需要对样本进行分析,需要二进制的一些分析能力,通过提取样本后确认样本分类、行为、危害。

3.2 勒索病毒事件应急
3.2.1 传播方式
通常可能的传播方式:

通过社工、钓鱼方式下载和运行了勒索程序(邮件、IM 等)
利用计算机系统远程代码执行漏洞下载、上传和执行勒索病毒
利用计算机 Web 或第三方软件漏洞获取计算机权限,然后下载和执行勒索病毒
利用弱口令进入计算机系统,下载和执行勒索病毒
3.2.2 勒索病毒特点
各种数据文件和可执行程序生成奇怪的后缀名;
明显的提示,要交赎金
3.3.3 勒索病毒应急目的
如果是重要数据,交付赎金恢复数据;
找到入侵的原因,排查同类漏洞,并进行加固(一般是重装)
确认勒索病毒后要立即拔掉网线,限制传播范围。

3.3 应急示例
http://blog.nsfocus.net/emergency-response-case-study/
https://blog.csdn.net/qq_27446553/article/details/81102198
http://vinc.top/2017/05/03/windows应急响应(20170503)/
https://mp.weixin.qq.com/s?src=11×tamp=1533106387&ver=1033&signature=8PAjLzeMdGnPg0SwF4o6I06Sx804FDLw6PUkEch4h8eCCyQEr8A9hbHaIHPrqR-WiIdoJPqMsmSVic4-gssd3j613UabGbt6z9mQT6p5fWutdawPYrht-VlixmLLS&new=1
https://mp.weixin.qq.com/s?src=11×tamp=1533106458&ver=1033&signature=8P
AjLzeMdGnPg0SwF4o6I06Sx804FDLw6PUkEch4hJcF-gDfZJVqz2bzHZt6fFEmCrKm*DXOl3CMpdqrFZwBPOuAKr1TQcF7qG2x72YvsE8D1nglxXyYenvA2HLqY&new=1
4. Sysinternals Utilities

你可能感兴趣的:(应急,鬼知道)