首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

教你如何使用shell命令处理文本?

在此之前,我曾发布了25万份沙盒样本报告。也许这些报告并不完美,但可以帮助您了解许多恶意软件样本的执行流程。那么在实际的运用过程中会是怎样的呢?

我们想象一下…假设您想查看这25万份报告中包含的所有可能的驱动程序名称。当然也许你会问你为什么需要这个?——因为这可以告诉您恶意软件样本使用的反分析技巧,使用什么设备名称来指纹操作系统。也许这些设备中的一些甚至还没有记录!

grep -iE \\\\\.\\ Sandbox_250k_logs_Happy_New_Year_2018

然后你就会得到如下内容:

你可以尝试一下输出一些东西,比如写一个Perl / Python脚本来进行提取,这可能是一个更好的方式。

好的,那么使用GetProcAddress API能够得到什么样流行的功能呢?

它会给你答案:

grep -iE API :: GetProcAddress Sandbox_250k_logs_Happy_New_Year_2018 |cut -d:-f3 |cut-d,-f2 | cut -d = -f2 |cut-d)-f1

事实上,会给你一个所有API的列表:

我们可以通过将该命令的输出重定向到“gpa.txt”:

grep -iE API :: GetProcAddress Sandbox_250k_logs_Happy_New_Year_2018 |cut -d:-f3 | cut-d,-f2 | cut -d = -f2 | cut -d)-f1> gpa.txt

这可能需要一段时间。

您现在可以对其进行排序:

sort gpa.txt > gpa.txt.s

生成的文件gpa.txt.s可以进一步分析 – 按API发生次数排序,然后按降序排列结果,显示最流行的API:

cat gpa.txt.s | uniq -c | sort -r | more

所有上述命令可以组合成一个单一的“caterpillar”,但使用中间文件有时是方便的。它稍后有助于进一步的搜索,也可以加快速度。

回到我们最后的查询,我们可以查询所有包含'Reg'前缀/中缀/后缀的API – 这可以让我们大概了解一下最受欢迎的注册表API的解决方案:

cat gpa.txt.s | uniq -c | sort -r | grep -E "Reg" | more

你会如何解释这一结果呢?——那里有一些FP GetThemeBackgroundRegion,但这并不算什么。 ANSI API比Unicode更受欢迎。或者说是我们手边的数据集偏向于不考虑Unicode而编译的旧样本。

所以其实我们需要小心一点,当你进行解释的时候其实是非常有偏见的。但是你现在看到的是什么?这是一本开放的书!我再一次想要强调的是,所有的搜索可以通过多种方式完成。也有可能你会在我的查询中发现一些缺陷。没关系。这是一个尝试性的数据!

现在,想象一下你想看看我们拦截的所有的DELPHI API:

grep -iE Delphi:: Sandbox_250k_logs_Happy_New_Year_2018 | more

或者,Visual C ++中的所有内联函数:

grep -iE VC :: Sandbox_250k_logs_Happy_New_Year_2018 |more

或者所有包含“http://”的行(突出显示可能的URL):

grep -iE http:// sandbox_250k_logs_Happy_New_Year_2018 |more

您还可以看到调试字符串采样发送的内容:

grep -iE API :: OutputDebugString Sandbox_250k_logs_Happy_New_Year_2018 |more

您可以检查sleep功能使用的值:

grep -iE API::Sleep Sandbox_250k_logs_Happy_New_Year_2018 | more

以及在Windows下通过Anti-AV / Anti-analysis工具进行搜索:

grep -iE API :: FindWindow Sandbox_250k_logs_Happy_New_Year_2018 |more

您可以查看每个样本的开始,并确定许多不同编译器的WinMain过程的“动态”流程,发现不同样本使用的各种环境变量,从特定库中聚类API,观察过程挖空等技术,观察分配WriteProcessMemory以了解有多少个样本使用RunPE进行代码注入和执行,以及有多少个依赖于位置无关代码(PIC),您可以看到哪些启动点是最常用的(并不总是HKCU\ … \Run!),在外部/进程中使用什么机制来启动代码(例如RtlCreateUserThread,APC函数),有多少进程在代码注入之前暂停(CREATE_SUSPENDED)等等。

我最后再强调一点,这些数据我们可以将其保留为一个死的数据,但你也可以通过创造性和以任何可能的方式挖掘它,使它活起来。

http://www.hexacorn.com/blog/2018/01/20/what-can-you-do-with-250k-sandbox-reports/

文章转自嘶吼

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180124B075RA00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券