爱美容
当前位置: 首页 美容百科

恶意软件防范三要(恶意软件分析102之零门栏)

时间:2023-06-03 作者: 小编 阅读量: 1 栏目名: 美容百科

初步观察与轻量级分析。判断文件签名我们看待文件并不是去看一个文件的后缀名是不是.exe等。举个例子:如果您将.exe和.jpg分别用十六进制编辑器打开,开头都是4D5A。您就可非常肯定,这个.jpg文件就是可执行文件。我们将上面的东西统称为“文件签名”:您也可认为这是文件取证或恢复中数据雕刻的重要资源。因为它们的最终目的都是“隐藏真实内容”。

文章定位
  • 在企业中遇到不明文件时,如何快速初步的判断它是否为恶意文件?
  • 在攻防演练过程里,某平台告警恶意文件或收到钓鱼邮件时,如何快速判断该样本是否为恶意?
  • 如何在不必学习C的同时进行API分析工作?
  • 您不想用“牛刀”分析一个月再给出结论,只想在“短时间”内快速给出大概率是“正确”的初步结论?
  • 寻找溯源过程里您感兴趣的信息。
  • 初步观察与轻量级分析。
  • 强化您的体验感,让工作更有趣。
获取文件哈希指纹
  • 工具:pestudio (https://www.winitor.com/) 或PPEE (https://www.mzrst.com/)

主要是拿md5,sha1,sha256的“文件哈希指纹”

然后来VT进行搜素:https://www.virustotal.com/gui/home/search

  • 建议使用sha256:因为即使您用md5值搜素,它也会自动转成sha256去匹配。
判断文件签名

我们看待文件并不是去看一个文件的后缀名是不是.exe等。具有其他文件后缀名的文件仍然可以执行,比如.jpg可执行文件。

  • 简而言之:不论什么文件都可将其内容转成十六进制的值。然后再将十六进制的值与真实性文件做比对。

举个例子:如果您将.exe和.jpg分别用十六进制编辑器打开,开头都是4D 5A。您就可非常肯定,这个.jpg文件就是可执行文件。

如何获取真实性文件?这更简单,系统是您的,您可以新建文件修改后缀名为exe再用十六进制编辑器打开看看它的头部分。

  • 我们将上面的东西统称为“文件签名”:您也可认为这是文件取证或恢复中数据雕刻的重要资源。

当您遇到这些八股文所提及的工具时,它们都可拿来干文件签名这种事情。

我怎么知道上百种的文件签名分别都是什么?使用此网站已轻松搜素:https://www.garykessler.net/library/file_sigs.html

判断文件是否被混淆与打包

不用太在意混淆,打包,加密,加壳等概念的区别。因为它们的最终目的都是“隐藏真实内容”。为了增强体验感与“我上我也行”,直接从本质出发:任何商业软件都不想被任何人看见其代码内容,为此他们引入各种乱七八糟的“技术”。

这个工具怎么用?看什么地方?这非常简单,任何人都可以干这种“活”。

在这个文件中,我们发现了有趣的内容:FSG 1.0 -> dulek/xt

搜素一下便可得知这个文件进行了打包。

可选工具:TrID(http://mark0.net/soft-trid-e.html)、TRIDNet(http://mark0.net/soft-tridnet-e.html) ,轻松检测(http://ntinfo.biz/)、RDG Packer检测器(http://www.rdgsoft.net/)、packerid.py(https://github.com/sooshie/packerid)和PEiD (http://www.softpedia.com/get/Programming/Packers-Crypters-Protectors/PEiD-updated.shtml)

【注意】:这些检测混淆,打包工具的本质是它们提出准备了一个打包指纹的文本数据库来与具体文件进行匹配,最后给出“结论”。(就是提前记录123456,如果目标文件中存在123456的指纹,则”告警“)

IDA free 加壳检测初体验

工具:https://hex-rays.com/ida-free/

我们如果知道该文件是可执行文件,则选择第一个。如果不知道则更加好办,每个都看看。。

该文件仅导入了两个API?这很奇怪,可用其他正常文件基线值来比对一下(我们需要注意库文件叫什么,导入的API name叫什么)

  • 其他工具也提供了导入库导入API的查看功能注意:运行之后导入的后续API则不在此工具里“显示”

一个文件它要编写,读取,查看,保存,初始化配置等多功能性,怎么可能只需要导入两个API?以下是正常文件打开时导入的API示例之一:

.text: 一般包含运行PE文件时执行的CPU指令。此部分被标记为可执行。.data: PE文件使用的全局变量和其他全局数据。.rsrc: 资源,例如图像、图标等。

  • AV样本中的导入API查看:

https://www.virustotal.com/gui/file/d8b87863c68d2da9bf62d7f029b8f2fda567f6a61e71a2bac0a3a390a765c0b3/details

点击第二个标签进入详情:

这些都是导入的库文件与API:

查看文件字符串
  • 划重点:将所有的十六进制,编码成ASCII或者utf-8等字符串,再从字符串里面看看有什么异常。
  • sysinternals套件的strings工具:https://docs.microsoft.com/zh-cn/sysinternals/downloads/strings

下载,解压缩并进入到sysinternals目标下的strings工具中,”相对路径“来运行strings工具并给出”绝对路径“目标文件。

strings "C:\Users\Analysis\Desktop\67844C01"

您会得到大量有”含义“的字符串。

  • 除此之外,还有其他字符串提取工具

pestudio (https://www.winitor.com/) 工具字符串提取

linux系统中的strings命令提取字符串:man strings

  • 一些字符串看起来像长编码的地址,可以尝试搜一搜区块链:https://live.blockcypher.com/
  • 一些字符串看起来像 Windows API。 例如,CloseHandle,GetExitCodeProcess,TerminateProcess。当提及API时,感觉很“深奥”,事实证明它们也可以很简单,比如类似python中的导库导函数罢了。

这可以去微软的官方文档中搜索确认其API的功能:https://docs.microsoft.com/en-us/windows/win32/api/_winprog/

  • 其他字符串google搜索,进行初步关联。
  • 如果您看见以下毫无意义可言的字符串,则说明该文件使用了打包和混淆。
尝试解码混淆后的字符串

使用FLOSS解码混淆后的字符串

大多数时候,恶意软件作者使用简单的字符串混淆技术来避免检测。 这种情况下,字符串打印将杂乱无章。 FireEye Labs混淆字符串求解器(FLOSS),用于自动识别并从恶意软件中提取混淆字符串。

参考资料:https://www.fireeye.com/blog/threat-research/2016/06/automatically-extracting-obfuscated-strings.html

软件包下载

https://github.com/fireeye/flare-floss/releases

使用手册

https://github.com/fireeye/flare-floss/blob/master/doc/usage.md

下载并解压,cmd开箱即用

floss.exe -h

floss.exe malware.bin

沙箱资源部分

诞生于2010 年google某开源项目的杜鹃沙箱(现在已过时):https://cuckoosandbox.org/

CAPE沙箱,目前得到积极的开发:https://github.com/kevoreilly/CAPEv2

  • 在线沙箱

https://cuckoo.cert.ee/

https://www.capesandbox.com/

https://any.run/

https://analyze.intezer.com/

https://hybrid-analysis.com/

  • 反分析技术

长时间的休眠调用:恶意软件开发者熟悉沙箱运行时间有限,长时间的睡眠使得沙箱过期。

用户活动检测:恶意软件开发者加入鼠标移动检测功能来识别是否为自动化的沙箱。

追踪用户活动:恶意软件开发者检测是否存在office办公文件记录,浏览器信息等来识别沙箱。

检测虚拟机:恶意软件开发者检测虚拟机与沙箱相关的文件,进程等指纹来识别沙箱。

关于Yara规则

语法糖如下:https://yara.readthedocs.io/en/v3.7.0/writingrules.html

  • 简而言之:Yara是一种字符串匹配。比如您发现123456是恶意软件的特征值,您想基于123456的特征进行“全盘”搜索已寻找所有感染。这就是Yara的“战场”。
  • 您只需要知道,最重要的特征,数据或者指纹信息才是最本质的东西。如果找不到恶意软件本身的特征,编写Yara规则将成为一件毫无意义的事情
  • 您可将Yara规则视同于一切其他规则一样(基于各种玄学设备的防御产品,IDS/IPS,AI。代码本身也是另一种“规则”)

一个示例如下:搜索samples/文件夹下的所有文件

yara -r suspicious.yara samples/

搜索特征123456,使用ASCII码或Unicode(wide),不区分大小写(nocase)【文件在机器中已十六进制提现是机器的事情,数据取出来怎么“显示”是您的事情(取成“各种”编码,图表,或者图片都行,只要能找到特征。)】

rule suspicious_strings{strings: $a = "123456" ascii wide nocase $b = "123456" ascii wide nocase $c = "123456" ascii wide nocasecondition: ($a or $b or $c)}

  • 全流量数据包下的威胁狩猎示例如下:

...strings:$gst1 = {47 68 30 73 74 ?? ?? 00 00 ?? ?? 00 00 78 9c}$gst2 = {63 62 31 73 74 ?? ?? 00 00 ?? ?? 00 00 78 9c}$gst3 = {30 30 30 30 30 30 30 30 ?? ?? 00 00 ?? ?? 00 00 78 9c}$gst4 = {45 79 65 73 32 ?? ?? 00 00 ?? ?? 00 00 78 9c}$gst5 = {48 45 41 52 54 ?? ?? 00 00 ?? ?? 00 00 78 9c}$any_variant = /.{5,16}\x00\x00..\x00\x00\x78\x9c/...

yara poc.yara pcaps/

监视服务、网络连接、磁盘活动

Process Hacker (http://processhacker.sourceforge.net/)Process Monitor (https://technet.microsoft.com/en-us/sysinternals/processmonitor.aspx)

  • 示例:执行恶意软件样本后,创建了一个新进程 iexplorer.exe,进程 ID 为 1272。该进程可执行文件位于 %Appdata% 目录中。
自定义通信协议
  • 80端口通信的TCP流,如下图所示,不是标准的HTTP流量; 这表明恶意软件可能使用自定义协议或加密通信。
  • 在大多数情况下,恶意软件使用自定义协议或对其网络流量进行加密以绕过基于网络的签名。
  • 这种特征也是一种研判辅证。
动态链接库 (DLL) 分析
  • 您可将DLL文件视为库文件,类似python中的导入库文件再使用函数。
  • 攻击者可自定义一个DLL库文件包含恶意行为函数,再使用该函数,类似python编程中导入的库文件依赖本身出了问题被植入恶意代码,导致您使用函数时执行了恶意代码。
  • DLL库文件需要包含或者导入(注入到进程里面才能使用它的恶意函数)
  • 分析 DLL 并不简单。
  • DLL文件在被导入时(类似包含,导入语法)可能执行恶意函数,导出时(类似函数调用)也可能执行恶意函数。就是包含它时干了啥,调用它的函数时又想干啥。

DLL 需要一个进程才能运行。 在 Windows 上,rundll32.exe 可用于启动 DLL 并调用从 DLL 导出的函数。语法如下:rundll32.exe <full path to dll>,<export function> <optional arguments>

导入时示例:WININET.dll文件被导入,它可能在导入时执行InternetOpenA与InternetOpenUrlA的API函数,它们可能涉及HTTP 或 FTP 协议C2隧道的建立。

导出时示例:它要注册(Register)服务了。触发了与 C2 服务器的 HTTPS 通信。

如何知道这个API触发了C2服务器HTTPS通信的?C:\>rundll32.exe c:\poc.dll,DllRegisterServer在语法正确或错误(就连web渗透非200都可以利用成功,它也可以。)的情况下运行它并抓包网络流量看看

  • DLL注入攻击工具示例:RemoteDLL (http://securityxploded.com/remotedll.php)

大多数情况下,使用 rundll32.exe 启动 DLL 可以正常工作它们的恶意函数。但总有一些其他DLL需要一些不同的环境来启动。

比如tdl.dll会检查它是否在spoolsv.exe下运行,如果不是则初始化失败,DLL注入攻击则失败。

一旦注入进程成功,就会引爆恶意DLL的行为,就可以使用监视类工具观察服务、网络连接、磁盘、注册表活动等。

为了控制篇幅长度,今先聊到这。

感谢师傅们很有耐心的阅读到了这里。我们还会再见面的。共勉。

参考资料

Learning Malware Analysis Explore the concepts, tools, and techniques to analyze and investigate Windows malware by Monnappa K A

https://tryhackme.com/module/malware-analysishttps://www.freebuf.com/articles/system/282301.html 恶意软件分析101

,
    推荐阅读
  • 融劵是什么 融资融券是啥意思

    融券是指接受做空交易可以使证券公司赚取反方向交易佣金,同时可以使投资者锁定多仓风险。证券公司将自有股票或客户投资账户中的股票借给做空投资者,投资者借证券来出售,到期返还相同种类和数量的证券并支付利息。

  • 反问句的特点(关于反问句的特点)

    接下来我们就一起去研究一下吧!反问句的特点反问句是对陈述句的修饰,强调语气。相比之下,前一句话的语气要强烈得多。加强语气,更明显的表达出自己所要表达的东西。那些经常使用反问句的人在语言上更具攻击性,有很强的自我保护意识。这可能是自卑的表现,尤其是在与异性的交流中。这在择偶过程中也会产生负面影响。因此,建议在日常生活中不要经常使用反问句。

  • 2023佛山新生儿入户办理条件(2023佛山新生儿入户办理条件及流程)

    父母双方或一方为本市户籍居民所生育的小孩,自愿选择随父随母登记入户;同一市内夫妻一方户口为家庭户、一方户口为集体户的,所生子女应当随家庭户一方申报出生登记;父母离婚的小孩跟随抚养权属方登记入户。

  • 文艺说说大全简短(林下漏月光疏疏如残雪)

    得之我幸,失之我命,如此而已。霜雪吹满头,也算是白首。每个女孩子都是由糖香料以及一切美好的东西做成的,仅比天使差一点眼里藏着十年春秋与西北。四方食事,不过一碗人间烟火。昨日种种,皆成今我。天可补,海可填,南山可移。宇宙山河浪漫,生活点滴温暖。我不晓得将去何方,但我已在路上。夏日里的遗憾一定会被秋风温柔化解。春花、秋月、夏日、冬雪。即许一人以偏爱,愿有余生之慷慨。小池塘边跌坐看鱼,挑眉烟火过一生。

  • 华莱士店铺一年能赚多少(华莱士开万店捞金)

    正是这家快餐店,却先后遭到有关部门的处罚。尤其是今年华莱士后厨卫生事件,更是深受外界所诟病。针对此问题,华莱士虽第一时间出来道歉,华莱士霍营店也被相关部门处罚20多万元。在9月份,华莱士北京南站店工作人员没有健康证明。但其暴露出的问题也不断增多,尤其是旗下门店的后厨卫生条件多次被相关部门罚款。

  • 辉煌腾达的意思(辉煌腾达的解释)

    辉煌腾达的意思是形容骏马奔腾飞驰比喻骤然得志,官职升得很快,接下来我们就来聊聊关于辉煌腾达的意思?以下内容大家不妨参考一二希望能帮到您!辉煌腾达的意思辉煌腾达的意思是形容骏马奔腾飞驰。

  • 乡村爱情电视剧有哪些(大家可以了解一下)

    我们一起去了解并探讨一下这个问题吧!乡村爱情电视剧有哪些《乡村爱情》是于2006年至2019年赵本山主演的系列电视剧。截至2020年,目前共11部。《乡村爱情11》于2019年1月26日在优酷独家播出。延续了前几部的故事,讲述了以刘能、广坤、赵四为首的象牙山村民在新时代背景下,就“精准扶贫”“招商引资”等国家惠农政策的误解,与新到任大学生村官杜小双以及到象牙山投资的神秘富豪,发生的一系列依旧搞笑无解的故事。

  • 世界ol大刀战士技能加点(世界ol大刀战士技能加点推荐)

    我们一起去了解并探讨一下这个问题吧!世界ol大刀战士技能加点天无相神功加满,飞天御剑流加5,武器大师加5,精通破甲加5,圣灵力魄加满,武器娴熟加五,熊象巨力加十,战争艺术加十,基础刀法加满,轩辕惊天决加十,强化训练加满,统御之力加满,攻守兼备加十,五气朝元加满,精通重击加满。这些都是很使用的技能,建议加满。技能主动英勇开始学到十二就可以打四个,被动,娴熟,刀法,大师,剑流,必满,前期可以先点到十。

  • 鱼工念什么(鱼工读什么)

    下面内容希望能帮助到你,我们来一起看看吧!鱼工念什么鱼工念魟读音。〔魟鱼〕身体扁平,略呈圆形或菱形,软骨无鳞,胸鳍发达,如蝶展翅,尾呈鞭状,有毒刺。种类很多,常见的有尖嘴魟、赤魟、燕魟等。鱼名,泛指属于魟科及其他有关科的许多种,在其鞭形的尾的基部旁边有一根或数根带倒钩的又大又尖的背棘,能重创敌人,有时它们能长得很大,其中有些种类对牡蛎危害很大。

  • 许昌带状疱疹怎么治?可以预防吗?(带状疱疹能不能根治?)

    部分患者会发生带状疱疹后神经痛,此类患者除了药物治疗和其他辅助治疗措施外,必要时还需要联合心理治疗与行为调节。预防措施带状疱疹疫苗是目前有效的预防途径。接种疫苗后可预防带状疱疹的发生,降低带状疱疹后神经痛的发生率,缩短带状疱疹的持续时间。带状疱疹疫苗属于自愿、自费接种的非免疫规划疫苗,有意接种者可以咨询居住地附近社区卫生服务中心预防接种门诊,预约接种。