恶意PNG:隐藏在图片中的“恶魔”

2024-09-08 15:18
文章标签 图片 隐藏 png 恶意 恶魔

本文主要是介绍恶意PNG:隐藏在图片中的“恶魔”,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

<img src="https://i-blog.csdnimg.cn/blog_migrate/bffb187dc3546c6c5c6b8aa18b34b962.jpeg" title="214201hhuuhubsuyuukbfy_meitu_1_meitu_2.jpg"/></strong></span></p>

在互联网安全这场持久战中,网络攻击者一直在不断改进自己的攻击技术。安全研究人员发现,最新的Graftor木马变种可以将恶意DLL文件内嵌到PNG图片中,然后以图片为载体隐藏并将恶意DLL下载到目标系统上,并能够躲避杀毒软件的检测。针对本文中的样本,恶意内容被嵌入在了真实PNG图片数据的末尾。

广告软件,甚至是绑定恶意软件的正版软件越来越多地被作为攻击者用来初始访问目标用户系统的手段。在这些情况下,用户会被诱导访问一些恶意网站或者安装一些软件。在这次所分析的样本中,它访问了系统之后,恶意软件通过下载一个包含恶意DLL和其他可执行内容的PNG文件,并利用该PNG文件进行进一步的漏洞利用。其中,PNG文件的下载发生在系统后台,而无需与用户进行交互,并且会将恶意内容隐藏在PNG文件的末尾,通过这种方法攻击者试图绕过系统和网络的安全检测。

意在窃取用户输入数据

在我们1月份分析的样本中,恶意软件首先试图通过HTTP请求从http://174.128.244.58:808 toopu.png网站下载恶意PNG图片,分析代码如下图所示。

<img src="https://i-blog.csdnimg.cn/blog_migrate/71c6dbf5de2017da7321894428d24f25.jpeg" title="1.png"/></p>

在toopu.png文件的末尾附加了一个DLL文件,该DLL并未以任何方式混淆或隐藏,而只是附加到PNG文件中IEND标志的后面,通常IEND标记表明图像文件的结束。

搜索VirusTotal,就能发现toopu.png同时还与一千多个样本联系密切,这些样本也都使用到了该PNG文件中的恶意内容。通过检测最近的很多样本,我们发现toopu.png文件从192.253.234.50处下载。此外,我们也发现攻击者还使用了其他PNG文件,例如khbgvkh.png和test.png文件。在我们分析的这个样本中,VT表明它hook了键盘和鼠标操作的相关函数。简单地查看test.png文件中添加的内容可以发现一些字符串,例如“ActiveOfflineKeyLogger”和“UnActiveOfflineKeyLogger”,表明恶意软件确实试图获取用户输入的键盘数据。

修改主机文件

通过检测VirusTotal上其他下载toopu.png文件的样本,还发现攻击者使用的另一个常见的技巧,即修改本地主机文件内容,将不同反病毒厂商的网址链接指向本地主机,从而防止本机访问这些网址。在其中一个样本中,恶意软件修改主机文件(hosts)的内容如下所示:

<img src="https://i-blog.csdnimg.cn/blog_migrate/de248024ed281a3f4298320c4e738d95.jpeg" title="png-host-file.png"/></p>

分析用于构建获取恶意PNG文件的HTTP请求的函数,可发现似乎该它缺少一些功能。它有大多数HTTP头的格式化字符串,但只提供了一个用户代理(User-Agent)和接受语言(Accept-Language)值,且对toopu.png的请求中只有空的referrer和cookie头。

<img src="https://i-blog.csdnimg.cn/blog_migrate/578d4ee2b1ec810e05d1b7bca3e5bfac.jpeg" title="2.png"/></p>

<img src="https://i-blog.csdnimg.cn/blog_migrate/e530d365ac0aed0e1c5c6892462f0491.jpeg" title="toopu-get-request-550x179.png"/></p>

恶意软件执行流程

如果该函数获取PNG文件失败,它将休眠一段时间然后再次请求。一旦获取到PNG文件,检索函数将执行一些基本的验证操作,以确保获取的是正确的图像文件。样本检测“200 OK”响应并核对文件长度是否为0x41EA9(269993),然后移动到嵌入的DLL文件开始偏移0xEA9(3753)。

<img src="https://i-blog.csdnimg.cn/blog_migrate/0184a300ce673da846a676a68e191d80.jpeg" title="3.png"/></p>

嵌入的DLL文件实际上包含一些C&C功能,函数中的参数type和cr都被硬编码成了“loadall”和“yes”。

<img src="https://i-blog.csdnimg.cn/blog_migrate/be98c5ca061e74d75bf9011c813908ee.jpeg" title="4.jpg"/></p>

UPX加壳文件内容

PNG文件中还包含了一个UPX加壳文件,该文件中包含一个域名列表和用户代理列表,C&C对应的域名包括:

niudoudou.com
fxxx114.com
wlkan.cn
it885.com.cn
aquametron.com

加壳文件中包含的用户代理都是独一无二的,其中一个列出了Chrome浏览器的过时版本,两个列出了两个版本的IE浏览器,还有一个列出了IE11浏览器和火狐浏览器。

Chrome用户代理(Chrome的当前版本是41)是:

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US)AppleWebKit/534.15 (KHTML, like Gecko) Chrome/10.0.612.1
Safari/534.15

两个IE用户代理分别为:

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1;Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT
5.1; SV1) ; Maxthon/3.0)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1;Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT
5.1; SV1) ; 360SE)

火狐用户代理为:

Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101Firefox/24.0

IOC哈希值:

331177e4fbde6c98620f1c9927962c79d4c027807357f42002a14a2dc22b4044
b4cb0490afa7da6647dc7f255a6c4c742b649fe4ff853b83f7dd2f948b8686be
1fc6034b3ec99a01e3b2cde22846772656481d7374209ca0f068c8ab181bc8d9
4124a533037373a922b01421caca3821af36099d98b7d6aa534ad9a2c4f40d2b

域名:

niudoudou.com
fxxx114.com
wlkan.cn
it885.com.cn
aquametron.com

IP地址:

174.128.244.58
192.253.234.50

结论

捆绑恶意软件和其他广告软件正在变成越来越常见的攻击手段。这些嵌入恶意代码的PNG文件最初的检出率很低,本文分析的样本也是如此。所以,用户必须时刻保持警惕,提防攻击者安装其他软件或者访问恶意网站。此外,一个分层的安全方法有助于降低这种威胁,它可以限制软件后台访问恶意网站,并能在恶意软件运行之前阻止它们。


这篇关于恶意PNG:隐藏在图片中的“恶魔”的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1148467

相关文章

Python实现精准提取 PDF中的文本,表格与图片

《Python实现精准提取PDF中的文本,表格与图片》在实际的系统开发中,处理PDF文件不仅限于读取整页文本,还有提取文档中的表格数据,图片或特定区域的内容,下面我们来看看如何使用Python实... 目录安装 python 库提取 PDF 文本内容:获取整页文本与指定区域内容获取页面上的所有文本内容获取

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.

Go语言如何判断两张图片的相似度

《Go语言如何判断两张图片的相似度》这篇文章主要为大家详细介绍了Go语言如何中实现判断两张图片的相似度的两种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 在介绍技术细节前,我们先来看看图片对比在哪些场景下可以用得到:图片去重:自动删除重复图片,为存储空间"瘦身"。想象你是一个

使用Python实现base64字符串与图片互转的详细步骤

《使用Python实现base64字符串与图片互转的详细步骤》要将一个Base64编码的字符串转换为图片文件并保存下来,可以使用Python的base64模块来实现,这一过程包括解码Base64字符串... 目录1. 图片编码为 Base64 字符串2. Base64 字符串解码为图片文件3. 示例使用注意

c/c++的opencv实现图片膨胀

《c/c++的opencv实现图片膨胀》图像膨胀是形态学操作,通过结构元素扩张亮区填充孔洞、连接断开部分、加粗物体,OpenCV的cv::dilate函数实现该操作,本文就来介绍一下opencv图片... 目录什么是图像膨胀?结构元素 (KerChina编程nel)OpenCV 中的 cv::dilate() 函

使用Python实现调用API获取图片存储到本地的方法

《使用Python实现调用API获取图片存储到本地的方法》开发一个自动化工具,用于从JSON数据源中提取图像ID,通过调用指定API获取未经压缩的原始图像文件,并确保下载结果与Postman等工具直接... 目录使用python实现调用API获取图片存储到本地1、项目概述2、核心功能3、环境准备4、代码实现

Java应用如何防止恶意文件上传

《Java应用如何防止恶意文件上传》恶意文件上传可能导致服务器被入侵,数据泄露甚至服务瘫痪,因此我们必须采取全面且有效的防范措施来保护Java应用的安全,下面我们就来看看具体的实现方法吧... 目录恶意文件上传的潜在风险常见的恶意文件上传手段防范恶意文件上传的关键策略严格验证文件类型检查文件内容控制文件存储

Java实现图片淡入淡出效果

《Java实现图片淡入淡出效果》在现代图形用户界面和游戏开发中,**图片淡入淡出(FadeIn/Out)**是一种常见且实用的视觉过渡效果,它可以用于启动画面、场景切换、轮播图、提示框弹出等场景,通过... 目录1. 项目背景详细介绍2. 项目需求详细介绍2.1 功能需求2.2 非功能需求3. 相关技术详细

Java如何根据文件名前缀自动分组图片文件

《Java如何根据文件名前缀自动分组图片文件》一大堆文件(比如图片)堆在一个目录下,它们的命名规则遵循一定的格式,混在一起很难管理,所以本文小编就和大家介绍一下如何使用Java根据文件名前缀自动分组图... 目录需求背景分析思路实现代码输出结果知识扩展需求一大堆文件(比如图片)堆在一个目录下,它们的命名规

将图片导入Python的turtle库的详细过程

《将图片导入Python的turtle库的详细过程》在Python编程的世界里,turtle库以其简单易用、图形化交互的特点,深受初学者喜爱,随着项目的复杂度增加,仅仅依靠线条和颜色来绘制图形可能已经... 目录开篇引言正文剖析1. 理解基础:Turtle库的工作原理2. 图片格式与支持3. 实现步骤详解第