微信又改版了,为了我们能一直相见
你的加星和在看对我们非常重要
点击“长亭安全课堂”——主页右上角——设为星标🌟
期待与你的每次见面~
首先,现代沙箱都是纯黑盒程序 ,扔进一个文件,输出一个结果,而且还在云端部署,无法对其进行逆向分析定位特征,只能通过扔进去运行的程序主动收集并传出相关环境信息。
这个 demo 共分为七个部分:
-
第一个部分是检查沙箱的出网情况,由于本 demo 的初衷是为了研究C2客户端的反沙箱方式,所以对于内部不出网的云沙箱直接阻止程序运行。 -
第二部分为沙箱基础环境收集,最开始是锚定了:用户名、文件名、进程数、主机名、C盘大小四个因素,后来又加入了绝对路径的探测。 注:在与群友沟通后,又提供了@xrayteam(dns 缓存,arp 缓存探测);@haya (麦克风探测)的想法,感谢! -
第三部分是信息传出,对收集的数据进行异或和 base64 后以 http(s) 请求发送到指定的 server 进行接收,此处为了方便采用的是 GET 请求方式。 -
第四部分为 server 端,这里写的比较粗糙,采用 flask 框架,主要功能是对于第一个出网探测包进行回应以及接受传出数据并写入文件。 -
第五个部分是对于文件数据的解码脚本,把密文数据解码为明文并转换为更易于分析的 json 格式。 -
第六个部分为数据分析,这也是最为重要并且目前最欠缺的部分,由于个人能力的限制,只做到了单类型信息的提取,并未做到信息之间的关联分析。此处后续可借鉴威胁情报中的 IOC 的部分分析思路。 -
第七个部分为恶意诱饵,在检测器中硬编码恶意 shellcode ,作用是引诱云沙箱对样本进行主动运行。
把 demo 完成后扔到各大沙箱,virustotal,各大杀软云检测平台进行检测并等待数据传出,在测试几天的过程中一共收到了401个沙箱环境样本去重数据。
注:这一步骤是可以做成自动化的,即定时任务自动生成恶意样本,自动对接api提交样本,自动提取特征文件并去重添加,由于时间仓促并未能实现。
粗略的特征提取过滤结果如下图所示:
经过整理,提取高频非关联数据后的反沙箱程序可至少避免一半以上的沙箱探测。
整个项目的 demo 过段时间会开源(本人拖延症晚期),欢迎与我探讨。
Github主页:https://github.com/timwhitez
希望能起到一个抛砖引玉的作用,个人能力有限,见谅。
-
https://www.usenix.org/system/files/conference/woot16/woot16-paper-blackthorne.pdf -
https://www.rapid7.com/globalassets/_pdfs/whitepaperguide/rapid7-whitepaper-metasploit-framework-encapsulating-av-techniques.pdf -
https://medium.com/@calebcheng_87413/avaudit-fingerprinting-av-emulators-part-1-introduction-7817b333e25c
本文始发于微信公众号(长亭安全课堂):针对云沙箱特征探测的一次尝试
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论