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

admin 2023-11-25 01:24:02 4HOU_新闻 来源:ZONE.CI 全球网 0 阅读模式

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

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

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

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

250k_1 (1).png

你可以尝试一下输出一些东西,比如写一个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的列表:

250k_2.png

我们可以通过将该命令的输出重定向到“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

250k_3.png

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

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

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

250k_4.png

你会如何解释这一结果呢?——那里有一些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

250k_5.png

您可以查看每个样本的开始,并确定许多不同编译器的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/

1 - 4HOU.COM
weinxin
版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
评论:0   参与:  0