VBS远控病毒(二)|攻击模拟与取证分析 – 作者:光通天下

一、前言:

本篇继续针对远控功能进行了全面分析,模拟攻击场景、取证分析。

二、攻击模拟:

图片0.png↪ 被控端会定时向主控发送Post请求,等待主控下发指令,代码如下所示:

图片1.png➥ 主控接收肉鸡报文如下所示:

图片2.png➥ 模拟主控操纵,部分代码如下:

图片3.png➥ 黑客通过发送格式参数,对肉鸡操纵:

代码格式:cmd(0)<|>cmd(1)<|>cmd(2)<|>cmd(3)<|>cmd(4)<|>cmd(5)

格式解析:标识<|>远控指令<|>文件路径 或 下载urlpath<|>文件目录<|>文件名<|>下载执行标志

➥ 被控端解析指令, Split以<|>切割成数组,代码如下所示:

respontext = “”

respontext = post (“is-ready”,””,addr)

cmd = Split (respontext,”<|>”)

✍ 下面针对函数功能进行了攻击复现,下述举例部分函数功能远控模拟,思考如何防御,远控过程测试电脑开启了winDefender和360主动防御,并没有检测到可疑行为。

㊀ 肉鸡被控后首先会向主控发送Get请求,意味着肉鸡上线,包含当前用户信息、系统信息、杀毒软件等数据。

揣测黑客用意,黑客采集数据做初步判断。比如针对360、卡巴根据杀软的不同分别做免杀,过杀软的方式不一样。根据系统win10 64或win7 32兼容性下载payload,判断当前用户权限,是否需要提权等操作,如下所示:

图片4.png㊁ 后续每隔5000ms就会向主控发送post请求,等待主控进行指令下发。

主控端下发远控指令后,动态调试截获如下,通过switch做分支控制,执行主控发来的指令,ctrl-driver获取全部盘符数据:

图片5.png图片6.png㊂ ctrl-process利用cimv2对象,查询当前系统进程,获取当前正在运行的进程,如下所示:

图片7.png㊃ 主控端通过ctrl-process遍历肉鸡活跃的process,获取进程PID,通过exit-process结束指定进程。

exit-process会调用exitprocess函数,参数是进程的PID,如下所示:

图片8.png图片8(2).png㊄ recv接收指令,用途上传指定路径下的文件,调用upload函数,通过主控发来的文件路径,读取文件数据发送至主控端,如下所示:

图片9.png主控端接收肉鸡发来的报文如下,包传输过程没有做任何加密处理:

图片10.png㊅ ctrl-faf指令是为了获取当前目录下文件夹、文件名及属性数据,调用函数ctrlfaf,参数是文件夹路径,如下所示:

图片11.png意图也很明显,遍历文件收集信息,通过get-faf的远控指令,调用函数readfile将肉鸡目录下的文件遍历上传,主控端伪代码如下:

Recvfdir = ctrl-faf(发送远控指令)

For filedir,filename,…. in Recvfdir:

 get-faf调用readfile(filedir + filename)

图片11(2).png㊆ 上篇文章中提到,样本基于公众平台进行投毒部署,动态解密提取大量的url字符串,这些样本中url是写死的,循环调用chekWeb的检测,如果网页失效或url被截断呢?

主控端为了更灵活的投毒部署,send指令调用download函数进行指定平台下载。这样好处显而易见,只要本体不被查杀,对流量监控检测发现对某url异常,限制url出入规则或失效,这种情况下主控端可以随时更换公共平台部署,再次远程投毒:

图片12.png

模拟了github下载README.md测试,主控端发来toexec参数y数值,下载后直接本地执行,否则落地等待时机。

✃ 一般病毒下载后内存中执行,不会将文件落地,因为很容易被查杀。

病毒持久化尤为重要,注册表Run修改、镜像劫持、计划任务等很轻易就被检测。脚本就会用冷门api,如WmiConsumer等,随着HOOK底层成熟,可识别与启发式查杀提示用户可疑启动进程。落地式的文件一般是持久化操作的恶意软件,如自我保护、挖矿等。

➨ 攻击模拟对指令功能梳理如下:

图片12(2).png✈ 病毒代码的逻辑、手法写的很不错,每个肉鸡当作节点,主控可以针对不同的肉鸡编写控制逻辑与自动化主控。

代码逻辑分离,不需要下发配置文件对已控制肉鸡迭代更新,只需主控端进行代码修改,客户端即可更新,有点热部署平滑升级的感觉。

✎  wireshark抓包来分析网络状态或用Python去解析pcapng都是可以的,如下所示:

1. 吞吐量:

图片13.png2. http请求过滤:

图片14.png3.流量图数据

图片15.png4. Get报文分析

图片16.png

三、取证分析:

感染vbs病毒,定点巡检响应触发规则库,发送告警,如何取证分析?这里简述一些思路,不局限于病毒类型,以上述vbs病毒为例,从网络、文件、注册表、进程等多维度进行内存取证分析,抛砖引玉。

✁注:真实环境中本文的流程反序化,应该先安全巡检,规则触发初控,响应预警,取证分析,清理及加固,最后样本分析与专杀开发,事件报告产出等。

图片16(2).png① 沙箱或者虚拟机中运行病毒样本,假设安全事件监控预设规则触发,严重预警,对相关的执行数据、环境初步隔离限制处理,使用DumpIt进行镜像转储.

图片17.png②将转储的.raw使用volatility工具进行分析,win/linu下都可以,输入指令格式如下,获取:

图片17(2).png图片18.png③我们先来观察进程状况,查看是否有可以的进程名称、启动时间、观察PPID大于PID是否可疑,因为本文测试时候cmd进行病毒执行,如下所示:

图片18(2).png图片19.png图片20.png图片20(2).png图片21.png我们通过pstree可以看出cmd执行了wscript.exe,分析样本后知道是病毒,如果没有可疑的进程,只有cmd如何分析呢?

下面将会以路径进行dump文件,但是像dump进程wscript如何做呢?

图片21(2).png④定位到cmd,下面查看cmd执行了什么指令与数据,如下所示:

图片21(3).png图片22.png

⑤获取了cmd执行的文件及路径,需要定位文件dump下来,dump文件使用filescan先定位,后dumpfiles,而dll则有dlldump等指令。

注搜索文件不需要过滤直接路径,文件名称即可,因为病毒一般会拷贝其它目录下,根据情况而定,为了快速辨别黑白,这里就直接线上分析了:

图片22(2).png图片23.pngdump文件线上辨黑白,还可以YARA规则,通过yarascan配合,如下所示:

图片23(2).png图片24.png图片25.png⑥ 排查外链,Foreign address排查是否被远控挂链,可以看到访问的外链80端口,如下所示:

图片25(2).png图片26.png图片27.png⑦例举内存的注册表分析进行分析,排查可疑的注册表项,其实有很多注册表操作,显示如下所示:

图片27(2).png图片28.png图片29.png⑧服务查看,个人一般过滤Binary Path来查看,这样能非常清晰的显示服务加载了那些可执行模块路径:

图片29(2).png图片30.png⑨ 如果在pslist中看到了chrome或ie,猜测是否通过Web下载数据,chrome与ie会留下痕迹在内存中,指令如下所示:

图片30(2).png还有很多细节需要取证与分析,需要再深入一个层面,还需要依赖一些插件与格外的工具,这里只是分享抛砖引玉。

四、总结:

混淆与免杀的手段愈加复杂,通过网络或系统漏洞,落地或无落地执行payload数据,通常比较难以截获查杀,所以通常执行加载内存后仍会对一些敏感文件事件截断,内存中对数据进行敏感规则触发也,大多也是最后一道防线。

目前pc端杀毒软件都做的很不错,针对vbs、js等语言引擎并不是特别完善。网络心跳包检测ms级或s级同步检测,但针对大量业务或加密传输协议,实现流量截获检测是耗能的,传输流量被截获验证本身就是一种不安全行为,虽然本无恶意。一般都会限制ip域或只允许特定的协议,如STMP、VPN规则出入。

文中内存取证分析过程中还有很多细节性工作没有涉及到,能快速辨识病毒加载器、下载器、样本源、阻断自启动、切断c&c等敏感高危事件,应该在短时间内完成应急响应与电子取证,对样本关键点进行快速分析,生成事件响应报告等。补丁及时更新、软件管理、权限的控制、规则出入设定、流程的规范制定,包括人员安全,工作人员安全意识普及与提升等,都可以有效的预防未知的安全风险。

来源:freebuf.com 2020-07-06 14:34:30 by: 光通天下

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论