首页 > 其他分享 >恶意代码上机排查思路与方法

恶意代码上机排查思路与方法

时间:2023-07-28 23:07:15浏览次数:35  
标签:文件 上机 数字签名 恶意代码 排查 内存 进程


阅览目录

  • 应急响应保留现场经验

 


回到顶部

1、排查标准

  • 记录检查机器IP信息
  • 记录每个工具的检查截图
- 文件的启动时间、路径、命令行参数,如果文件源文件存在就截图保留文件修改、创建时间。
- 记录内存模块存在进程中的内存地址范围、 IOC在进程全部内存的位置。
- 记录启动项、服务
  • 清除启动项、服务、进程,删除恶意代码文件。

应急响应保留现场经验

安全服务应急响应事件到客户现场先提醒客户注意保存现场。发现安全事件如果是当天还有流量,不要重启。
客户怕联网通报很正常。如果业务可以临时中断先拔出网线或者网络设备上设置中毒机器权限禁止跟互联网通信。
保存现场两个步骤:1、内存保存,2、硬盘文件留存。

* 内存保存:Windows下使用Dumpit.exe抓取,Linux下使用LiME抓取。提取的文件如果是可以插U盘就插U盘提取,不让插U盘就开启一个网络隔离区域,取证分析主机接入内网通过NC传送数据。

* 硬盘文件拷贝:看用户需求,视具体的情况而定。

避免重启后,出现无文件技术恶意代码无法提取的情况。

如果是当天检出的机器中招,有条件的情况下,找到C2回连的频率在设备上对中招机器的数据网络流量抓取一份含有C2联网的数据便于分析。

回到顶部

2、特征排查-自写上机排查工具

通过搜索国内外恶意代码公开的分析报告,分析样本,提取行为特征编写排查工具。

回到顶部

3、进程排查

1)数字签名排查

  1. 可疑进程检查。

通过校验数字签名、文件厂商、映像路径等信息排查存在的可疑程序。

关注重点

使用PChunter的右键模块【校验所有数字签名】检查所有进程的数字签名情况。

  • 检查不存在数字签名(紫红色),数字签名非微软的进程(蓝色)。

恶意代码上机排查思路与方法_搜索

  • 2、查进程可疑DLL

检查每个进程里的DLL文件是不是被远程线程注入。

关注重点

使用PChunter的【查看进程模块】-【校验所有模块数字签名】,查看是否被非法注入了其他厂商的签名文件。

恶意代码上机排查思路与方法_安全分析_02

恶意代码上机排查思路与方法_字符串_03

2)联网进程排查

关注联网的进程

关注重点

排查已知道恶意代码家族的域名、IP对应了哪个进程。使用Process Hacker 2的【Network】模块、PCHunter的【网络】模块检查正在联网进程。

恶意代码上机排查思路与方法_数字签名_04

3)进程注入技术排查

检查进程替换技术

关注重点

使用ProcessExplorer列出所有进程的DLL以树状结构显示。【分栏】-【View DLL】看文件描述看签名。从【View】-【Select Columns】可以显示DLL的属性和验证数字签名。

关注是不是有某家公司进程被其他家公司的签名文件注入的情况。

  • 服务以粉色高亮显示、进程为蓝色、新进程为绿色、被终止进程为红色。绿色和红色高亮显示是临时的。

恶意代码上机排查思路与方法_数字签名_05

恶意代码上机排查思路与方法_搜索_06

恶意代码上机排查思路与方法_搜索_07

4)进程替换技术排查

数字签名验证的是磁盘上的景象文件,而不是内存中的,查找内存中驻留的字符串排查进程空间是否被替换。

关注重点

使用ProcessExplorer.exe的右键【Properties】找到【string】选项对比模块中的【image】、【memory】。

恶意代码上机排查思路与方法_数字签名_08

通过比较包含在磁盘上可执行文件的字符串与内存同一个可执行文件的字符串,通过左下角的单选按钮在这两个字符串视图切换。如果这两个字符串列表有很大不同,那么可能就发生了进程替换。例如字符串FAVORITES.DAT多次在【Memory】中(内存中的镜像),但是在【Image】中无法找到(磁盘上的镜像)。

恶意代码上机排查思路与方法_搜索_09

回到顶部

4、文件排查

1)进程文件排查

通过进程查看工具找到对应的文件路径。

关注重点

使用Process Hacker 2的【Properties】模块查看进程运行的路径、命令行参数。

查看进程文件属性中的详细信息是否与映像路径、文件描述等相符合。

是否存在正常软件的说明信息。

检查文件说明、文件版本、产品名称、版权、原始文件名是否存在可疑信息。

恶意代码上机排查思路与方法_安全分析_10

如果为Wscript.exe、Powershell.exe、MShta.exe、MSBuild.exe这类程序要记录下来启动的命令参数,排查文件是不是还存在,存在就截图文件修改日期,创建日期。

几种可疑情况:

1)文件说明等必要信息不存在。

2)文件详细信息与映像路径不一致。

3)程序图标与程序功能说明不符。

4)原始文件名与现有文件名不符。

2)驱动排查

可疑驱动模块检查。检查数字签名、文件详细信息中是否存在可疑项。

关注重点

PChunter下的【驱动模块】-【校验所有数字签名】

如果文件不存在的情况( 正常应用不存在该现象)。此时需要用【拷贝内核内存】方式来获取样本。

拷贝内核内存:dump 驱动文件加载的内存。

回到顶部

5、启动信息排查

查看启动项,注册表启动、计划任务启动项目对应的文件、命令参数是否存在异常

关注重点

  • PChunter

PChunter中的【启动信息】模块,关注数字签名信息、文件信息,还要关注启动路径中的参数。 PChunter中启动项、服务、计划任务可以通过右键【校验所有数字签名】查看未签名或签名非微软的启动项。

重点关注经常利用的 Windows 后门程序: Regsvr32.exe、Mshta.exe、Rundll32.exe、Powershell.exe等

  • Autoruns.exe

更全面的信息可以在微软查看启动项的工具Autoruns.exe上查看,操作参数比操作PCHunter更方便。

打开软件界面,选择 【Scan Options】,勾选 【Verify code signatures】,选择 【Rescan】。

恶意代码上机排查思路与方法_搜索_11

恶意代码上机排查思路与方法_字符串_12

  • 红色代表数字签名异常的程序,因此需要重点关注。

【Properties 】属性选项是需要打开去查看文件信息是否异常。Everything 项目太多,下面单独介绍每个标签页。

  • Logon: 系统自启动项

查看文件信息是否异常,签名人是否异常,文件路径是否匹配等异常信息。

恶意代码上机排查思路与方法_字符串_13

  • Explorer:文件资源管理器加载项
  • InternetExplorer:IE 插件
  • ScheduledTask:计划任务
  • Services: 服务程序
  • Drivers: 自加载驱动

回到顶部

6、内存排查

通过内存导出工具导出内存,使用内存取证分析框架分析。

1)异地操作

远程协助时用【Dumpit.exe】把系统内存Dump下来后可以用volatility取证分析框架里的yara规则分析哪个进程中存在IOC,还有恶意代码的驻留内存。

恶意代码上机排查思路与方法_安全分析_14

证明正常进程空间里含有恶意代码,volatility.py方法

vol.py -f "xxx.raw" --profile=winxx yarascan -y fm.yara
vol.py -f "xxx.raw" --profile=winxx yarascan -Y "xxxx"
vol.py -f "xxx.raw" --profile=winxx pslist > pslist
vol.py -f "xxx.raw" --profile=winxx memdump -p 604 -D C:\projectcode\vir_mem_dump\

把受感染进程的内存dump出来,通过微软工具String将内存里的字符串打印出来,搜索恶意代码域名字符串就可以看到网络特征里的恶意代码域名了。注:图中604这个PID号对应受感染后的Winlogon进程。

尝试把Winlogon的DLL全都dump出来,依次用Strings打印出来。就可以定位到哪个DLL里有被注入的ShellCode了

恶意代码上机排查思路与方法_字符串_15

恶意代码上机排查思路与方法_安全分析_16

2)本地操作

  • Winhex

使用Winhex 的搜索查找功能去查找 IOC 信息字符串或特征字符串,其支持字符串和 16 进制两种
搜索方式。

打开内存(ALT+F9)出现 Edit Main Memory 页面。【工具】-【打开RAM(R)】,选择要搜索的进程,选择【整个内存】,【搜索】-字符串检测已经知道的恶意代码域名是否存在该进程中,支持十六进制搜索和ASCII、UNICODE搜索。

恶意代码上机排查思路与方法_搜索_17

恶意代码上机排查思路与方法_搜索_18

恶意代码上机排查思路与方法_安全分析_19

恶意代码上机排查思路与方法_数字签名_20

3)排查内存模块恶意代码

排查进程中可疑的内存模块,找出可能是Shellcode的模块代码。

关注重点

通过processhacker2-【Momory】模块,找到【Type】为Private,权限为【RWX】,大小为180~300KB的模块。查到以下内容就导出

- - 1、权限是RWX权限的。
- - 2、文件块大小在170~300内
- - 3、代码头是以下3种字符
           E8 DC C4 03
           4D 5A
           55 8B EC 8B 45

恶意代码上机排查思路与方法_数字签名_21

 

标签:文件,上机,数字签名,恶意代码,排查,内存,进程
From: https://blog.51cto.com/u_11908275/6888068

相关文章

  • Azure VM 远程桌面服务异常排查思路
    Windows服务默认的远程桌面服务端口号是3389,在创建完AzureVM之后基本都会添加一个anytoany的防火墙规则,方便多人登录这个机器。但是随时随地的3389扫描搞得我很烦,就修改了默认的windows远程桌面服务的端口号,修改完没有在VM里的windows自带防火墙中添加inbound新端口规则,重......
  • 揭示为何隐患排查和追责问责仍然挡不住重大校园安全事故
    作为一位中学生的家长,当我看到齐齐哈尔第三十四中学体育馆坍塌事故的相关报道,以及遇难孩子的家长因在事发后好几个小时无人通报孩子在医院抢救的最新状况而激愤陈词的视频,感同身受,十分痛心。图1箭头所指为出事的齐齐哈尔第三十四中学体育馆当我读到源自央视新闻的齐齐哈尔市委......
  • 排查mysql pxc集群故障节点
    排查MySQLPXC集群故障节点MySQLPXC(PerconaXtraDBCluster)是一个高可用性的数据库集群解决方案,它基于MySQL和GaleraCluster技术实现。在实际运行中,可能会遇到一些节点故障的情况,本文将介绍如何排查MySQLPXC集群的故障节点,并给出相应的代码示例。1.检查集群状态在排......
  • 一次服务启动慢问题排查
    随着时间推移,参与开发的人员越来越多,项目代码也会越来越复杂,需要我们有意识的定期对代码进行优化,有问题及时解决,避免技术债务越积越多。这不本人就遇到一个服务启动慢的问题,印象中服务启动是比较快的,一般也就20几秒,但这次开发一个需求发现服务启动要接近1分钟,这对本地开发调试,测......
  • Java服务刚启动时,一小波接口超时排查全过程
    原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明。简介我们组有一个流量较大的Java服务,每次发代码时,服务都会有一小波接口超时,之前简单分析过,发现这些超时的case仅发生在服务刚启动时,少量请求会耗时好几秒,但之后又马上恢复正常。问题发生如下,是我们服务的......
  • 流媒体视频融合平台EasyCVR更新版本后,首页无法打开的原因排查与解决
    EasyCVR视频融合平台基于云边端一体化架构,可支持多协议、多类型设备接入,包括:NVR、IPC、视频编码器、无人机、车载设备、智能手持终端、移动执法仪等。平台具有强大的数据接入、处理及分发能力,可在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理。有用户反馈......
  • 南京邮电大学《程序设计(上机)》题目[2023-07-21]
    南京邮电大学《程序设计(上机)》题目[2023-07-21]2022-2023学年第1学期程序设计实验指导书胥备17766106600一、 实验前准备硬件:微型计算机一台(个人笔记本电脑)软件:任一C或C++语言开发工具知识准备:1)复习C或者C++语言知识二、 实验目的与任务目的:本课程是在《高级语言程序......
  • squid 503问题排查,即ipv6下的squid应用
    squid不支持IPv6,按照里面的提示,在/etc/squid/squid.conf里面配置一个dns_v4_firston再次尝试的时候可以了!如果还是不行的话,直接修改系统的配置修改/etc/sysconfig/network:设置NETWORKING_IPV6=no......
  • 记:针对框架级别的bug如何高效排查及如何修复
    笔记最近从事公司混沌工程平台的搭建及研发工作。在平台研发及用户使用过程中发现了大量的框架级别的bug。并修复大量bug,并对插件做了扩展。平台是基于阿里开源的chaosblade框架搭建而成。我选取了一个典型的故障排查过程作为故障排查思路总结一:基于jdk11版本的jvm下的脚本故障......
  • linux排查命令
    都是高频好用的定位排查命令,冷知识:可以远程debugtomcat1,top2,top-Hp12798查看比较耗资源的线程3,jstack 12798 |grep 12799的16进制 31ff-A10-B10查看堆空间,上下10行4,ssh服务器安装arthas,(Arthas是Alibaba开源的Java诊断工具)执行thread命令。thread-428线程......