实验环境:windows server2016虚拟机(切记千万不要再物理机上运行挖矿病毒)
项目背景:
2024 年 7 月 22 日, 接到XX 局用户电话反馈局域网内有一些终端设备在运行一段时间后出现莫名卡顿,怀疑内网感染了挖矿病毒。客户要求查出来原因,确认出影响范围,删除相关病毒文件并找出如如何感染的,梳理出时间链。从而避免下次出现相同的问题。
一、确定 IOC 入侵指标信息
ioc 指关于特定安全漏洞的信息,可以帮助我们是否发生了攻击。ioc 一般包括了攻击细节比如文件的类型、涉及的 IP 地址、域名、md5 值等信息。
ioc 信息一般通过杀毒软件、安全设备、流量审计、防火墙获取到
拿到 IOC 信息后,安全人员要进行核实,判断是否是误报。可以通过以下的在线情报中心进行判断。(也是HW 蓝初的工作内容)
确定挖矿地址(199.247.27.41)
在安天威胁情报中心中进行判断
二、获取异常程序的PID
process ID 进程号,是系统分配给每一个进程的唯一标识符。程序一旦运行,系统就会分配给他一个唯一的 PID,程序终止后,PID 会被回收。
一般情况下,一个程序对应一个进程。
一般情况下,浏览器会有多个进程。其他程序,一个进程。
(1).CPU占用率分析
-
通过任务管理器分析
Ctrl+Shift+Esc 或其他方式打开任务管理器,点击详细信息标签,可以通过点击 CPU 标题列来按照 CPU 占⽤降序排序,这样就可以获取到异常进程的pid 了,如图
-
通过 powershell 命令分析
列出当前CPU占用前五的进程 Get-Process | Sort-Object -Property CPU -Descending | Select-Object -First 5 ProcessName,Id, CPU
(2).内存占用率分析
-
通过任务管理器分析
点击内存标题列,降序排序
-
通过 powershell 分析
列出内存占用率排名前五的进程
Get-Process | Sort-Object -Property WorkingSet -Descending | Select-Object -Property Id, ProcessName, WorkingSet -First 5
(3).网络占用率分析
-
通过资源监视器分析
直接在菜单栏搜索resmon启动资源管理器
-
通过 process Hacker 分析
标题栏右键,选择choose columns...
根据实际需要,找到添加显示的栏,这⾥以 Network total rate 为例
按照 Network total rate 降序排列,就可以找到流量占⽤较⼤的进程 pid
三、定位恶意程序样本
不论通过上面哪种方式确定了可疑程序的 PID 后,我都可以通过 PID 找到恶意文件的位置以及恶意文件启动时的参数
(1).通过任务管理器分析
任务管理器默认情况显示的列⾥没有⽂件位置以及启动参数,可以通过调整显示列来显示
勾选 路径名称和命令行
就可以看到啦
(2).通过 CMD 的WMIC 命令分析
通过 PID 定位出恶意程序位置和执行的命令
wmic process where ProcessId=<恶意进程的PID> get Name, ExecutablePath,CommandLine /format:list
四、确定进程的启动时间
确定启动时间的主要目的是,对比进程启动时间和恶意文件的创建相关时间,可以帮我们确定刚刚定位到的进程文件,是不是我们要找的。
比如:我们在系统中发现了一个可疑的进程,这个进程的启动时间是 2024 年 7 月 22 号 10:53,同时,我们发现了系统中的某一个文件coolclay.exe的修改/创建时间是 2024 年 7 月 22 号 10:54.通过对比时间我们基本上可以推断出,这个文件很可能是进程启动后,被修改/执行了。表明,该文件和刚刚的进程有关联。甚至是进程创建或者修改的!
(1).通过 wmic 确定
wmic process where ProcessId=<进程PID> get ProcessId, CreationDate
(2).通过 process Explorer 确定
还是可以通过右键-properties查看
对比文件的创建/修改时间
文件浏览器
五、异常进程处理
经过前四个步骤的处理后,我们已经定位到了异常的进程、所关联文件所处的位置。接下来,要进行处理
0x01恶意文件样本采样
直接 U 盘拷贝,或者通过网络进行取样就可以
0x02威胁分析
可以通过人工、或者下面的一些平台进行分析
- [微步云沙箱](https://s.threatbook.com/)
- [Virustotal](https://www.virustotal.com/gui/home/upload)
- [virscan](https://www.virscan.org/)
- [哈勃](https://habo.qq.com/)
- [jotti](https://virusscan.jotti.org/)
- [scanvir](http://www.scanvir.com/)
- [HYBRID](https://www.hybrid-analysis.com/)
- [奇安信情报沙箱](https://sandbox.ti.qianxin.com/sandbox/page)
- 大圣云沙箱检测系统
- [YOMI](https://yomi.yoroi.company/upload)
- [360 云沙箱](https://ata.360.net/)
- [安恒云沙箱](https://sandbox.dbappsecurity.com.cn/)
0x03寻找病毒分析报告
- [深信服 EDR 团队安全情报分析](https://edr.sangfor.com.cn/#/information/information?%24tab=b)
- [安全客](https://www.anquanke.com/)
- [Freebuf](https://www.freebuf.com/)
- [微步在线 X 情报社区](https://x.threatbook.com/)
0x04进程查杀
kill 进程是一个高危操作,万一 kill 错可能会导致计算机的服务异常。我们不建议直接去把进程给 kill 掉,如果真要 kill,这个操作建议放给用户来去操作(甩锅)
建议先将进程暂停,看看暂停后的结果是否符合预期,再决定是不是要杀死进程。
需要注意的是,进程暂停后,该进程的网络并不一定会中断,一般情况下是无法发送和接受数据的
0x05暂停进程
通过资源监视器去暂停某个进程,通过暂停以及回复,我们基本上就可以确定该进程是不是找对了。
如果你百分之一百确定,那就可以直接 kill
并且可以恢复进程继续执行。被暂停掉的进程继续执⾏,暂停和恢复前 pid 不会发⽣变化
0x06杀死进程
通过 taskkill 杀死
taskkill /F /PID <进程ID>
通过 powershell 杀死
Stop-Process -Id <进程ID> -Force
通过 WMIC 命令杀死
wmic process where ProcessId=<进程ID> call Terminate
通过 PSKILL 工具杀死
pskill64.exe <进程ID>
通过资源监视器杀死
0x07杀死进程树
恶意软件一般会创建多个子进程来执行不同的任务比如下载其他恶意软件,窃取数据等等。杀死单个的进程可能无法完全停止所有恶意活动。而且有的软件有“watch dog”类机制,会互相唤醒。
Explorer 杀死进程树
显示进程树
下图可以看到, xmrig.exe 进程的⽗进程为 cmd.exe, pid 为2360 , 再上⼀层⽗进程为explorer.exe, pid 为 3156如果此时在 xmrig.exe 上右键,杀死进程和杀死进程树是没有⼤区别的,因为 xmrig.exe并没有⼦进程,但是如果在上⼀层 cmd.exe 上杀死进程树,那么cmd.exe (pid: 2360),以及其⼦进程 conhost.exe 和 xmrig.exe 也会被杀死
0x08杀死线程
杀死线程比杀死进程更加危险
进程:进程是操作系统中资源分配和调度的基本单位。每个进程都有自己的独立内存空间,包括代码段、数据段、堆和栈
线程:线程是进程中更小的执行单位,也被称为轻量级进程。一个进程可以包含多个线程,这些线程共享进程的资源(如内存、打开的文件等),但每个线程有自己的栈和寄存器。
六、删除恶意文件
0x01确定文件占用情况
通过搜索框搜索
定位到文件后将其删除
通过文件的句柄搜索(更推荐)
⚠️tips:文件句柄是由操作系统分配的唯一标识符,用于引用打开的文件。搜句柄更推荐
0x02查询注册表
一些恶意程序可能会对注册表进行了修改,方便启动和重新安装。所有很有必要在注册表中全局搜索一下
WIn+R 调出运行,输入 regedit 打开注册表。编辑-查找
0x03删除恶意程序
通过CMD删除:
del xxx
通过powershell删除:
remove-item -path xxx
七、善后阶段
- 定损过程就是确定受害范围的过程,此过程主要是与网络安全负责人、系统管理员、应用管理员、网络管理员等进行沟通交流
- 统计出与受害系统使⽤了相同密码的服务器
- 统计出与受害系统部署了相同存在漏洞或特有服务的服务器
- 例如负载均衡下的服务器
- 统计出与受害系统同⼀管理⼈员管理下的服务器
主要是系统管理员和应⽤管理员
- 统计出受害系统可以使⽤ ssh 密钥直接登录的服务器
- 统计出受害系统受害期间频繁交互的服务器
针对性排查
如果设备 不多,则人工进行排查即可
如果设备过多,利用安全设备来排查
修改服务器的密码,尽量保证每一台的服务器密码均不相同,且为强口令