企业-勒索病毒应急响应流程
bcloud 发表于 四川 企业安全 1806浏览 · 2024-05-15 14:11

此文章是作为从勒索病毒的角度来进行应急响应,目前勒索病毒很多,并且有许多家族把勒索病毒进行打包售卖,只需通过简单的几步操作就可以让一个略懂皮毛的黑客就可以实施勒索操作,所以勒索的成本很低,也是目前危害最高的安全事件之一。
勒索病毒99%是无法解密的,常见的状态为加后缀,对于不是最新勒索病毒互联网上一般都会有分析文章,告诉它是通过什么入侵传播的。
此片文章主要以windows应急响应为主来简单讲解一下当出现勒索病毒我们应该怎么进行判断和排查,此文知识还可用于其他例如挖矿,webshell等手法。

确定感染者

系统架构

首先需要确认该公司网络拓扑图和感染者中招主机信息,比如下表信息:

系统名称 IP地址 端口开放 物理机/虚拟机/其它 主机名 设备型号 操作系统
Server--DB1(数据库) 110.xx.xxx.1 80,3389 物理机 DB 9.x.x windows
操作系统版本 管理后台IP 中间件类型 中间件版本 数据库 数据库版本 URL
windows2008 10.xx.x.99 应用服务中间件 8.x oracle 10g ytm.net
应用端口 存储设备类型 存储设备型号 web框架 网站语言 第三方组件
8080 磁带库 3584/L53 struts java shiro

感染文件加密方式和时间

勒索病毒一般都会系统文件进行全部加密并且会在桌面最显眼的地方留下文本文件,可以查看操作系统桌面是否有新的文本文件,文本文件中是否有详细的加密信息及解密联系方式;
被加密文件类型

.der, .pfx, .key, .crt, .csr, .p12, .pem, .odt, .ott, .sxw, .stw, .uot, .3ds, .max, .3dm, .ods, .ots, .sxc, .stc, .dif, .slk, .wb2, .odp, .otp, .sxd, .std, .uop, .odg, .otg, .sxm, .mml, .lay, .lay6, .asc, .sqlite3, .sqlitedb, .sql, .accdb, .mdb, .dbf, .odb, .frm, .myd, .myi, .ibd, .mdf, .ldf, .sln, .suo, .cpp, .pas, .asm, .cmd, .bat, .ps1, .vbs, .dip, .dch, .sch, .brd, .jsp, .php, .asp, .java, .jar, .class, .mp3, .wav, .swf, .fla, .wmv, .mpg, .vob, .mpeg, .asf, .avi, .mov, .mp4, .3gp, .mkv, .3g2, .flv, .wma, .mid, .m3u, .m4u, .djvu, .svg, .psd, .nef, .tiff, .tif, .cgm, .raw, .gif, .png, .bmp, .jpg, .jpeg, .vcd, .iso, .backup, .zip, .rar, .tgz, .tar, .bak, .tbk, .bz2, .PAQ, .ARC, .aes, .gpg, .vmx, .vmdk, .vdi, .sldm, .sldx, .sti, .sxi, .602, .hwp, .snt, .onetoc2, .dwg, .pdf, .wk1, .wks, .123, .rtf, .csv, .txt, .vsdx, .vsd, .edb, .eml, .msg, .ost, .pst, .potm, .potx, .ppam, .ppsx, .ppsm, .pps, .pot, .pptm, .pptx, .ppt, .xltm, .xltx, .xlc, .xlm, .xlt, .xlw, .xlsb, .xlsm, .xlsx, .xls, .dotx, .dotm, .dot, .docm, .docb, .docx, .doc

加密后文件后缀

.WNCRYT,.lock,.pre_alpha,.aes,.aes_ni,.xdata,.aes_ni_0day, .pr0tect,.[stopstorage@qq.com].java,文件后缀无变化;

确认感染时间
Linux

使用stat来查看,三个时间access time(访问时间)、modify time(内容修改时间)、change time(属性改变时间),例如查看/etc/passwd文件,如下图


Windows

Windows相对简单,可以直接鼠标右键即可查看文件属性,查看文件时间,也可以使用命令的方式来查看,如下图
dir a.docx /t:w  文件被修改时间
dir a.docx /t:a  文件被访问时间
dir a.docx /t:c  文件被创建的时间


临时处置方法

被感染主机

1.立即对被感染主机进行隔离处置,禁用所有有线及无线网卡或直接拔掉网线,防止病毒感染其他主机;
2.禁止在被感染主机上使用U盘、移动硬盘等可执行摆渡攻击的设备;

未被感染主机

1.关闭SSH、RDP等协议,并且更改主机密码;
2.备份系统重要数据、且文件备份应与主机隔离;
3.禁止接入U盘、移动硬盘等可执行摆渡攻击的设备;

事件排查

Windows

文件排查

开机启动有无异常文件
1.msconfig查看开机自启文件
直接在文件路径栏输入msconfig回车即可

可查看启动项目

2.temp(tmp)目录异常文件:windows产生的临时文件
C:\Windows\Temp,Temp文件路径

3.Recent是系统文件夹,里面存放着你最近使用的文档的快捷方式,查看用户recent相关文件,通过分析最近打开分析可疑文件
win+R输入%UserProfile%\Recent即可打开


4.根据文件夹内文件列表时间进行排序,查找可疑文件。当然也可以搜索指定日期范围的文件及文件
选择时间排序即可

5.查看文件时间,创建时间、修改时间、访问时间,黑客通过菜刀类工具改变的是修改时间。所以如果修改时间在创建时间之前明显是可疑文件,这个方法上述已经讲过了。这里就不在多说了

进程排查

netstat -ano 查看目前的网络连接,定位可疑的ESTABLISHED,netstat 显示网络连接、路由表和网络接口信息;
参数说明:

-a      显示所有网络连接、路由表和网络接口信息
-n      以数字形式显示地址和端口号
-o      显示与每个连接相关的所属进程 ID
-r      显示路由表
-s      显示按协议统计信息、默认地、显示IP

常见的状态说明:

LISTENING      侦听状态
ESTABLISHED    建立连接
CLOSE_WAIT     对方主动关闭连接或网络异常导致连接中断

1.netstat定位established

NETSTAT.EXE -ano | findstr ESTABLISHED


2.根据netstat定位出的pid,再通过tasklist命令进行进程定位

tasklist.exe | findstr 5

wmic process | findstr "WeChatAppEx.exe"


任务管理器查找

蠕虫特征

很多种类的病毒都依赖网络进行传播和复制,并感染局域网中的大量终端。可以通过开放端口进行分析,有助于病毒对象的确认;
下面提供一些常用的病毒使用的端口信息,可以作为参考:

系统信息

查看环境变量的设置

排查内容:temp变量的所在位置的内容;后缀映射PATHEXT是否包含有非windows的后缀;有没有增加其他的路径到PATH变量中(对用户变量和系统变量都要进行排查);
【我的电脑】->【属性】->【高级系统设置】->【高级】->【环境变量】

win+r输入sysdm.pcl也可打开

Windows 计划任务

直接搜索计算机管理即可打开

win+r打开即可

3.Windows帐号信息,如隐藏帐号
此方法打开方式与上述windows计划任务一摸一样 (用户名以$结尾的为隐藏用户,如:admin$)

命令行方式:net user,可直接收集用户信息(此方法看不到隐藏用户),若需查看某个用户的详细信息,可使用命令net user 需要查看的用户名

reg query HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names   使用该命令可查看注册表所有用户包括隐藏用户(需要高权限才能使用该命令,如果访问拒绝,打开注册表找到上述路径效果是一样的)

4.查看当前系统用户的会话
使用query user 查看当前系统的会话,比如查看是否有人使用远程终端登录服务器;

logoff 踢出该用户;

5.查看systeminfo信息,系统版本以及补丁信息
可直接拿着补丁信息使用360进行查看那些补丁没有打,看看是否能够利用

工具排查

PC Hunter

PC Hunter是一个Windows系统信息查看软件
下载地址:http://www.xuetr.com/

功能列表如下:

1.进程、线程、进程模块、进程窗口、进程内存信息查看,杀进程、杀线程、卸载模块等功能
2.内核驱动模块查看,支持内核驱动模块的内存拷贝
3.SSDT、Shadow SSDT、FSD、KBD、TCPIP、Classpnp、Atapi、Acpi、SCSI、IDT、GDT信息查看,并能检测和恢复ssdt hook和inline hook
4.CreateProcess、CreateThread、LoadImage、CmpCallback、BugCheckCallback、Shutdown、Lego等Notify Routine信息查看,并支持对这些Notify Routine的删除
5.端口信息查看,目前不支持2000系统
6.查看消息钩子
7.内核模块的iat、eat、inline hook、patches检测和恢复
8.磁盘、卷、键盘、网络层等过滤驱动检测,并支持删除
9.注册表编辑
10.进程iat、eat、inline hook、patches检测和恢复
11.文件系统查看,支持基本的文件操作
12.查看(编辑)IE插件、SPI、启动项、服务、Host文件、映像劫持、文件关联、系统防火墙规则、IME
13.ObjectType Hook检测和恢复
14.DPC定时器检测和删除
15.MBR Rootkit检测和修复
16.内核对象劫持检测
17.WorkerThread枚举
18.Ndis中一些回调信息枚举
19.硬件调试寄存器、调试相关API检测
20.枚举SFilter/Fltmgr的回调

PC Hunter 数字签名颜色说明

黑色:微软签名的驱动程序;
蓝色:非微软签名的驱动程序;
红色:驱动检测到的可疑对象,隐藏服务、进程、被挂钩函数;
PS:最简单的使用方法,根据颜色去辨识可疑进程,隐藏服务、被挂钩函数:红色,然后根据程序右键功能去定位具体的程序和移除功能。根据可疑的进程名等进行互联网信息检索然后统一清除并关联注册表;

ProcessExplorer

Windows系统应用软件监控工具

Microsoft Network Monitor

一款轻量级网络协议数据分析工具,没用过该工具,使用方法可参考互联网文章

日志排查

Windows登录日志排查

输入快捷键win+r输入eventvwr即可打开时间管理器


主要分析安全日志,可以借助自带的筛选功能


可以把日志导出为文本格式,然后使用记事本或者notepad++打开,使用正则模式去匹配远程登录过的IP地址,在界定事件日期范围的基础。



这样就可以把界定事件日期事件快速检索出来进行下一步分析;

Linux

文件排查

1.敏感目录的文件分析[类/tmp目录,命令目录/usr/bin /usr/sbin等]
ls 用来显示目标列表

-a   显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影藏,不会列出);
-C   多列显示输出结果。这是默认选项;
-l   以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等;
-t   用文件和目录的更改时间排序;

2.查看tmp目录下的文件 ls –alt /tmp/

如图,发现多个异常文件,疑似挖矿程序病毒:

对已发现的恶意文件进行分析,查看559.sh脚本内容:脚本先是杀掉服务器上cpu占用大于20%的进程,然后从远程27.155.87.26(福建,黑客所控制的一个IDC服务器)下载了病毒程序并执行;

3.查看开机启动项内容ls -alt /etc/init.d,/etc/init.d 是 /etc/rc.d/init.d 的软链接

4.时间排序查看指定目录下文件ls -alt | head -n 10

针对可疑文件可以使用stat进行创建修改时间、访问时间的详细查看,若修改时间距离事件日期接近,有线性关联,说明可能被篡改或者其他。

Access Time:简写为atime,表示文件的访问时间。当文件内容被访问时,更新这个时间。
Modify Time:简写为mtime,表示文件内容的修改时间,当文件的数据内容被修改时,更新这个时间。 
Change Time:简写为ctime,表示文件的状态时间,当文件的状态被修改时,更新这个时间,例如文件的链接数,大小,权限,Blocks数。

5.查看历史命令记录文件~/.bash_history
查找~/.bash_history命令执行记录,主要分析是否有账户执行过恶意操作系统;命令在linux系统里,只要执行过命令的用户,那么在这个用户的HOME目录下,都会有一个.bash_history的文件记录着这个用户都执行过什么命令;
cat /root/.bash_history | more

那么当安全事件发生的时候,我们就可以通过查看每个用户所执行过的命令,来分析一下这个用户是否有执行恶意命令,如果发现哪个用户执行过恶意命令,那么我们就可以锁定这个线索,去做下一步的排查;
6.查看操作系统用户信息文件/etc/passwd
查找/etc/passwd文件, /etc/passwd这个文件是保存着这个linux系统所有用户的信息,通过查看这个文件,我们就可以尝试查找有没有攻击者所创建的用户,或者存在异常的用户。我们主要关注的是第3、4列的用户标识号和组标识号,和倒数一二列的用户主目录和命令解析程序。一般来说最后一列命令解析程序如果是设置为nologin的话,那么表示这个用户是不能登录的,所以可以结合我们上面所说的bash_history文件的排查方法。首先在/etc/passwd中查找命令解释程序不是nologin的用户,然后再到这些用户的用户主目录里,找到bash_history,去查看这个用户有没执行过恶意命令。

/etc/passwd中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下:

用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

7.查看新增文件
find:在指定目录下查找文件

-type   b/d/c/p/l/f查是块设备、目录、字符设备、管道、符号、链    接、普通文件
-mtime -n +n    按文件更改时间来查找文件,-n指n天以内,+n指n天前
-atime -n +n    按文件访问时间来查找文件,-n指n天以内,+n指n天前
-ctime -n +n    按文件创建时间来查找文件,-n指n天以内,+n指n天前

find ./ -mtime 0 -name ".py"(查找24小时内被修改的py文件)

find / -ctime 2(查找72小时内新增的文件)

PS:-ctime 内容未改变权限改变时候也可以查出;
8.特殊权限的文件
查看find / \
.txt -perm 4777

9.隐藏的文件

ls -ar  | grep "^\."   以 "."开头的具有隐藏属性的文件


PS:在文件分析过程中,手工排查频率较高的命令是 find grep ls 核心目的是为了关联推理出可疑文件;
10.查看分析任务计划

crontab -u <-l, -r, -e>
-u  指定一个用户
-l  列出某个用户的任务计划
-r  删除某个用户的任务
-e  编辑某个用户的任务(编辑的是/var/spool/cron下对应用户的cron文件,也可以直接修改/etc/crontab文件)

通过crontab –l 查看当前的任务计划有哪些,是否有后门木马程序启动相关信息;
查看etc目录任务计划相关文件,ls /etc/cron*

进程排查

1.用netstat 网络连接命令,分析可疑端口、可疑IP、可疑PID及程序进程
netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
选项参数:

-a  显示所有连线中的Socket。 
-n  直接使用IP地址,而不通过域名服务器。
-t  显示TCP传输协议的连线状况。
-u  显示UDP传输协议的连线状况。
-v  显示指令执行过程。
-p      显示正在使用Socket的程序识别码和程序名称。
-s      显示网络工作信息统计表。

netstat –antlp | more

说明:
a)"Recv-Q"和"Send-Q"指的是接收队列和发送队列。
b)Proto显示连接使用的协议;RefCnt表示连接到本套接口上的进程号;Types显示套接口的类型;State显示套接口当前的状态;Path表示连接到套接口的其它进程使用的路径名。
c) 套接口类型:
-t  TCP
-u  UDP
-raw   RAW类型
--unix  UNIX域类型
--ax25  AX25类型
--ipx    ipx类型
--netrom  netrom类型
d)状态说明:
LISTENING    侦听状态
ESTABLISHED  建立连接
CLOSE_WAIT   对方主动关闭连接或网络异常导致连接中断

如图,可查看到外部连接行为:

2.根据netstat 定位出的pid,使用ps命令,分析进程

-a       代表 all。同时加上x参数会显示没有控制终端的进程
-aux  显示所有包含其他使用者的行程(ps -aux --sort -pcpu | less根据cpt使用率进行排序)
-C    显示某的进程的信息
-axjf   以树形结构显示进程
-e        显示所有进程。和 -A 相同。
-f    额外全格式
-t ttylist by tty   显示终端ID在ttylist列表中的进程
ps aux | grep pid | grep –v grep


将netstat与ps 结合:下图案例随意举例的,知道该方法即可
使用netstat -antlp该命令发现1067和965

假设上述pid进程可疑我们可以使用ps来查看该进程绝对路径

日志排查

1.查看系统用户登录信息
使用lastlog命令,系统中所有用户最近一次登录信息。

使用lastb命令,用于显示用户错误的登录列表;
使用last命令,用于显示用户最近登录信息(数据源为/var/log/wtmp,var/log/btmp);

utmp文件中保存的是当前正在本系统中的用户的信息。
wtmp文件中保存的是登录过本系统的用户的信息。
/var/log/wtmp 文件结构和/var/run/utmp 文件结构一样,都是引用/usr/include/bits/utmp.h 中的struct utmp;

处置建议与防御措施

感染文件恢复办法

360 提供的解密工具恢复感染文件;
支付赎金进行文件恢复;

防御措施

安装360天擎,对被感染机器进行安全扫描和病毒查杀;
对系统进行补丁更新,封堵病毒传播途径;
制定严格的口令策略,避免弱口令;
结合备份的网站日志对网站应用进行全面代码审计,找出攻击者利用的漏洞入口进行封堵;
配合全流量设备(如天眼)对全网中存在的威胁进行分析,排查问题;

0 条评论
某人
表情
可输入 255