×

保持可爱 发表于 2023-5-9 09:24
  


感谢楼主分享,学习一下。
西红柿煮番茄的猫 发表于 2024-8-21 09:50
  
非常好的实践教程,谢谢分享
guhui 发表于 2024-8-22 09:42
  
非常好的实践教程,谢谢分享
不想上班 发表于 2024-8-25 09:38
  
打卡学习,感谢大佬分享!
何东升 发表于 2024-9-27 13:23
  
感谢分享,有助于工资和学习!
【2022争霸赛*干货满满】Windows应急响应指导分析
  

亦迅 2943611人觉得有帮助

{{ttag.title}}
windows应急响应指导分析
一、病毒分类
1、蠕虫病毒(worm)
文件夹蠕虫、网络蠕虫、邮件蠕虫等,主要特点是具有很强的传播性
2、挖矿病毒(CoinMiner/XMiner)
利用被感染主机进行挖矿,占用主机资源,近几年十分流行,通常与僵尸网络搭配
3、木马病毒(Trojan/Backdoor)
木马、后门等主要是为了获得主机的控制权限,窃取信息,执行C&C端的功能指令等
4、感染型病毒(Virus)
主要行为是感染文件,常见家族有Sality、Ramnit、Virut等
5、宏病毒(W200M/X97M/OMacro)
文档类,启用宏功能后执行宏代码,通常为一个DownLoader,下载执行其他恶意软件
6、勒索病毒(Ransom)
加密文件,勒索赎金
理解上,僵尸网络:是由大量中了木马病毒的主机组成,不特定单一主机中了僵尸网络病毒。
感染型病毒和蠕虫病毒:都具有扩散性,但感染型病毒只是在同台主机的不同文件间扩散;而蠕虫病毒是在不同主机间扩散,范围不一样。
勒索病毒:其实可以算是影响比较大的感染型病毒,也会感染文件,但它感染程度更恶劣,破坏文件。
宏病毒:比较类似木马病毒,用来执行指令,或者下载文件等。
二、进程排查
病毒的存在形式是多样的,可能是独立运行的进程,也可能是将动态库或恶意代码注入到系统进程、应用进程中运行。这里,粗略分为三种,即独立进程模块、动态库模块、隐藏模块。
1、独立进程块
这是最简单的一种形式,即病毒是独立可执行文件,以独立进程在运行。这类进程通常要么进程名随机,要么伪装成与系统进程相似的名字,或者名字与系统进程完全一样,但文件位置完全不是系统默认的正常路径。以某中毒主机为例,打开任务管理器后观察如下:病毒进程名为svch0st.exe,而系统进程为svchost.exe。
遇到这种,我们可以使用PCHunter对所有进程文件校验签名,检查无签名或签名可疑的进程。
或者使用微软提供的procexp,他支持自动上传进程文件至virustotal
2、动态库模块
病毒也可能以动态库的方式注入到系统进程或应用进程中去。如下图所示,客户某一中毒主机,我们使用PCHunter工具观察到病毒体sdbot.dll模块注入到系统进程explorer.exe进程中,并且对该进程挂了应用层钩子,包括IAT、EAT和inline等类型的钩子。
同上,可以使用PCHUNTER校验某个进程的dll文件做快速判断。
同时也可以使用procexp自动上传某个进程的dll至virustotal
如果已知病毒dll,需要找到对应的进程,可以使用如下命令。或者使用以上工具搜索所有进程的dll
  
tasklist /m xxx.dll
  
3、隐藏模块
隐藏模块往往也是动态库模块,但它肉眼观察不到(Windows系统工具看不到,PCHunter等工具也看不到),是很隐蔽的一种手段,属于难查难杀的类型。
譬如,在某客户主机上,我们怀疑svchost.exe进程有问题(进程有问题并不代表进程对应的文件有问题,这一点一定要区分好),但我们使用系统工具和PCHunter等等工具均查看不到任何异常模块。至此,怀疑有隐藏模块,祭出特殊工具dump出该svchost.exe的所有模块空间(按模块分割成独立文件),观察到有隐藏的模块:
svchost_exe_PID384_hiddenmodule_2560000_x86.exe就是隐藏在svchost.exe进程中的模块
注:此特殊工具会将隐藏模块文件名加上“hiddenmodule”字眼
可使用微软的procdump工具pd64.exx -pid [PID]
4、进程内存字符串
在网络端检测出某个恶意域名或 IP 后,可以在所有系统进程中搜索该域名,帮助定位发起域名连接的进程,从而定位病毒文件。
深信服SfabAntiBot即可对内存进行扫描
需要注意的是上面扫描是对进程所有内存进行扫描,一个是会比较卡,并且同样会扫描到代码段,这样可能会有误判,把代码当成域名字符串。
所以需要结合process hacker等工具查看指定进程内存是否确实存在指定字符串信息。
三、网络行为排查
威胁情报等辅助网站
1、 https://www.virustotal.com/ , 国外知名安全站点,可能需翻墙,可查询文件MD5、IP、域名、URL是否恶意,也可上传文件进行病毒扫描。
2、 https://x.threatbook.cn/ , 国内威胁情报站点,可查询文件MD5、IP、域名、URL是否恶意,也可上传文件进行病毒扫描。
5、 Google与Baidu等搜索引擎,输入文件MD5/IP/域名,有时候可以查询到对应病毒信息。
网络连接查看命令
  
netstat -ano
  
Process Hacker 查看网络连接,出现绿色的连接表示新增,红色的连接表示断开的。
四、文件排查
1、临时目录排查
黑客往往可能将病毒放在临时目录(tmp/temp),或者将病毒相关文件释放到临时目录,因此需要检查临时目录是否存在异常文件。
假设系统盘在C盘,则通常情况下的临时目录如下:
C:\Users\[用户名]\Local Settings\Temp
C:\Documents and Settings\[用户名]\Local Settings\Temp
C:\Users\[用户名]\桌面
C:\Documents and Settings\[用户名]\桌面
C:\Users\[用户名]\Local Settings\Temporary InternetFiles
C:\Documents and Settings\[用户名]\Local Settings\Temporary InternetFiles
2、浏览器相关文件排查
黑客可能通过浏览器下载恶意文件,或者盗取用户信息,因此需要检查下浏览器的历史访问记录、文件下载记录、cookie信息,对应相关文件目录如下:
C:\Users\[用户名]\Cookies
C:\Documents and Settings\[用户名]\Cookies
C:\Users\[用户名]\Local Settings\History
C:\Documents and Settings\[用户名]\Local Settings\History
C:\Users\[用户名]\Local Settings\Temporary InternetFiles
C:\Documents and Settings\[用户名]\Local Settings\Temporary InternetFiles
3、最新打开文件排查
检查下最近打开了哪些文件,可疑文件有可能就在最近打开的文件中,打开以下目录或者运行中输入recent即可看到:
C:\Users\[用户名]\Recent
C:\Documents and Settings\[用户名]\Recent
4、文件时间排查
可以根据文件夹内文件列表时间进行排序,查找可疑文件。一般情况下,修改时间离现象发现时间越近的文件越可疑。当然,黑客也有可能修改”修改日期“,但遇到很少。
用everything对所有exe文件排序,查找现象时间段内创建和修改的文件。
5、其他重要目录排查
System32也是常见的病毒释放目录,因此也要检查下该目录。hosts文件是系统配置文件,用于本地DNS查询的域名设置,可以强制将某个域名对应到某个IP上,因此需要检查hosts文件有没有被黑客恶意篡改。
C:\Windows\System32
C:\Windows\System32\drivers\hosts
五、远程登录排查
系统产生的日志默认分为三类:应用程序日志、安全性日志、系统日志
这些日志以evt文件形式存储在%systemroot%\system32\config目录下,使用日志查看器可查看这些日志(开始 – 运行 –eventvwr)
1、RDP远程登录
RDP登录日志位于windows安全日志中,登录类型为10,该日志记录了此主机上的所有登录行为。
审计RDP登录日志的目的是为了发现可疑登录记录,包括:
1.是否有异常的没有登录成功的审计事件,比如RDP爆破登录;
2.是否有成功登录的不明帐号记录;
3.是否有异常IP的登录事件,比如IP非此主机用户常用IP;
4.是否有异常时间的登录事件,比如凌晨2点远程登录主机;
注意:有时候登录记录会十分多,分析起来难度大,因此我们可以根据前期收集到的信息来帮助我们缩小审计范围,比如异常现象发生的时间,恶意文件创建的时间等,可在这类时间点附近查找异常的登录记录。
  
操作系统
  
事件ID
登录类型
说明
Xp/2003
528
10
RDP远程登录成功
Xp/2003
529
10
RDP远程登录失败
2008/2012/2016/win7/win8/win10
4624
10
RDP远程登录成功
2008/2012/2016/win7/win8/win10
4625
10
RDP远程登录失败
应用程序和服务日志 -> Microsoft -> Windows ->TerminalServices-RemoteConnectionManager->Operational,事件ID 1149为RDP登录成功日志,会记录源IP和用户。
查看本机登录过的IP:
打开注册表,打开此路径:HKCU\Software\Microsoft\Terminal ServerClient。
选中Default可以看到连接过的IP。
选中Servers -> [IP]可以查看登陆名。
2、SMB远程登录
共享目录登录记录位于windows安全日志中,登录类型为3,常见的基于共享目录的攻击行为是IPC爆破,若爆破成功,攻击者可以将受攻击主机的磁盘文件映射到本地,造成信息泄露。同时,共享目录可作为传输恶意文件的途径之一,了解共享目录的访问情况可以帮助我们了解攻击者的攻击方法。
  
操作系统
  
事件ID
登录类型
说明
Xp/2003
540
3
SMB远程登录成功
2008/2012/2016/win7/win8/win10
529
3
SMB远程登录失败
2008/2012/2016/win7/win8/win10
4624
3
SMB远程登录成功
2008/2012/2016/win7/win8/win10
4625
3
SMB远程登录失败
六、启动项排查
黑客为了保持病毒能够开机启动、登录启动或者定时启动,通常会有相应的启动项,因此有必要找出异常启动项,并删除之。启动项的排查,这里引入一个非常好用的工具,工具名字Autoruns(官网www.sysinternals.com)。
1、自启动项
autoruns查看
注册表查看
永久启动项
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
一次性启动项,下次启动会自动删除
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
32位程序启动项
HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
通过以下路径放置程序也可以自启动程序
%appdata%\Microsoft\Windows\Start Menu\Programs\Startup
2、任务计划
autoruns查看
微软自带工具
taskschd.msc可启动系统自带任务计划程序,可以查看任务计划具体操作,显示所有正在运行的任务,并且可以开启任务历史记录。
注册表查看
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Schedule\TaskCache\Tree
有些任务计划做了隐藏可通过注册表查看,这里任务计划只有名称,如果想知道任务计划执行内容,可以结合任务计划历史记录日志看判断。
服务排查
通过tasklist /svc,可以查看每个进程所对应的PID和服务
使用autoruns查看
注册表查看
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services存储着所有的服务启动项
七、账户排查
查看用户最后一次登录,修改密码时间,以及账户是否启动。
  
net user xxx
  
通过PCHunter等工具可以查看隐藏用户,如添加$符号的隐藏账号,以及克隆账号。
八、宏病毒分析处置
现象:
EDR等杀软报宏病毒,病毒名提示类似于W97M、VBA、MSWor、Macro。
分析过程:
根据文件后缀其实就能看出,该word文档是带有宏代码的,m即为macro。
为了分析脚本内容,打开文件就会触发脚本运行,但如果禁用宏的话,打开文档是看不到脚本内容的。为了以静态方式提取样本,这里会使用到一个分析程序oledump.py(https://github.com/decalage2/oledump-contrib)
oledump.py是一个用于分析OLE文件(复合文件二进制格式)的程序,而word、excel、ppt等文档是OLE格式文件的,可以用它来提取宏代码。
先进行文件基础分析,可以看到A3这段数据被标记为“M”,“M”即表示Macro,说明这段数据是带有VBA代码的。
python oledump.py SSL.docm
接下来我们就需要将这段VBA代码提取出来,执行以下命令,可以看到VBA代码就被提取出来了。我们把他重定向到一个文件里即可。
python oledump.py -s A3 -v SSL.docm
这段代码其实比较简单。
1.先判断操作系统位数设置不同路径的rundll32.exe,然后通过CreateProcessA启动rundll32.exe。
2.通过VirtualAllocEx在rundll32进程里申请一段内存空间。
3.通过WriteProcessMemory将myArray数组的内容,按字节写入到刚才申请的内存空间。
4.通过CreateRemoteThread在rundll32进程创建远程线程,入口点为刚才申请的内存空间首地址,并启动该线程。
综上所述,该代码为远程注入恶意代码到其他进程,可以判断为病毒。
九、勒索病毒
勒索病毒特征
1、文件被加密成统一后缀,无法使用。
2、桌面存在勒索信息文件,或勒索信息背景。
勒索信息文件里的一串二进制字符串,实际上是加密密钥,但它被其他算法又加密了一层。
加密原理
1.常见的勒索病毒加密算法为RSA+AES。
2.勒索病毒运行时会随机生成一串AES密钥,用该密钥来加密文件,加密结束后,使用RSA公钥对AES密钥进行加密,保存在本地。
3.解密需要病毒开发者提供RSA私钥,解密本地AES密钥文件,从而得到AES密钥来解密系统数据。
所以别寄希望于逆向分析来解密
十、sysmon监控
sysmon为windows提供了更强大的监控功能,但遗憾的是sysmon只支持2008以后的系统。
sysmon安装推荐xml文件下载链接
最常用的安装方式
  
sysmon.exe -accepteula -i -n
  
但上述方式不支持DNS记录,而且日志量会过大。
推荐安装命令,使用上述git里的配置,可支持DNS记录,并且可自行修改过滤器,记录自己需要的。
  
Sysmon64.exe -accepteula -i z-AlphaVersion.xml
  
卸载
  
sysmon.exe -u
  
日志通过事件查看器查看,因为sysmon的日志是以evtx格式存储的。
具体事件路径为
应用程序和服务日志-Microsoft-Windows-Sysmon-Operational
如下图所示,或者你直接去C盘指定路径查文件也行
如同windows自带的系统日志,安全日志有事件ID一样,sysmon日志也有对应的事件ID,最新版本支持23种事件。
Event ID 1: Process creation
Event ID 2: A process changed a file creation time
Event ID 3: Network connection
Event ID 4: Sysmon service state changed
Event ID 5: Process terminated
Event ID 6: Driver loaded
Event ID 7: Image loaded
Event ID 8: CreateRemoteThread
Event ID 9: RawAccessRead
Event ID 10: ProcessAccess
Event ID 11: FileCreate
Event ID 12: RegistryEvent (Object create and delete)
Event ID 13: RegistryEvent (Value Set)
Event ID 14: RegistryEvent (Key and Value Rename)
Event ID 15: FileCreateStreamHash
Event ID 17: PipeEvent (Pipe Created)
Event ID 18: PipeEvent (Pipe Connected)
Event ID 19: WmiEvent (WmiEventFilter activity detected)
Event ID 20: WmiEvent (WmiEventConsumer activity detected)
Event ID 21: WmiEvent (WmiEventConsumerToFilter activity detected)
Event ID 22: DNSEvent (DNS query)
Event ID 255: Error
案例
常用的有事件ID 1,监控进程创建,恶意进程的创建,包括他的父进程,PID,执行命令等等。
之前遇到过一起,开启会自动运行powershell,但查了启动项,任务计划,wmi都没发现痕迹,苦苦无解,然后使用sysmon监控进程创建,最终定位是谁拉起了powershell,往上溯源找到是一个伪造成正常程序图标和后缀的link文件,存放在Startup目录下,链接到存放在另一处的vbs脚本。
下图即为进程创建监控日志,可以看到几个关键点,创建的进程,命令行,以及父进程
事件ID3,监控网络连接,当恶意程序外连CC服务器或者矿池等操作的时候,可以监控到是哪个进程发起的连接。这边也举个例子,之前遇到一种病毒,当你去用进程管理器或分析工具去查看时,该病毒会自动退出,防止被检测到,并且随机一段时间重启,但态势感知上发现确实有挖矿行为,使用sysmon监控,当他不定时运行时,即可捕捉到他连接矿池的行为,从而定位到进程。
下图为网络连接监控日志,可以看到网络连接的五元组,和对应的进程。
事件ID22,是这次重磅推出的新功能,DNS查询记录,这功能让应急响应人员可以很轻松的通过域名定位到进程,并且你即使开启了dnscache服务,也能定位到原先进程。dnscache是一个缓存服务,简单来讲,就是会代理其他进程进行dns解析,并且会缓存解析结果,下一次解析就不再发送请求,读取缓存内容返回给指定程序即可。所以大家使用内存扫描工具,可能会定位到dnscache服务进程。
在监测设备上发现可疑域名解析时,通过这个功能,可以轻松定位到发起解析的进程,从而进一步分析进程文件是否确实有问题。
如下图所示,为dns查询日志,会记录解析域名和结果,以及对应的进程PID和路径。

打赏鼓励作者,期待更多好文!

打赏
83人已打赏

发表新帖
热门标签
全部标签>
西北区每日一问
技术盲盒
安全效果
【 社区to talk】
技术笔记
干货满满
每日一问
信服课堂视频
新版本体验
GIF动图学习
技术咨询
功能体验
2023技术争霸赛专题
产品连连看
安装部署配置
通用技术
秒懂零信任
技术晨报
自助服务平台操作指引
原创分享
标准化排查
排障笔记本
玩转零信任
排障那些事
SDP百科
深信服技术支持平台
POC测试案例
畅聊IT
答题自测
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
每日一记
运维工具
云计算知识
用户认证
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
产品预警公告
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
社区帮助指南
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
每周精选
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
高手请过招
升级&主动服务
高频问题集锦
社区新周刊
全能先锋系列
云化安全能力

本版达人

新手68983...

本周分享达人

零和一网络

本周提问达人