怎样利用Python进行图片分析
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样利用Python进行图片分析相关的知识,希望对你有一定的参考价值。
from PIL import Image ### 此处为导出包,注意字母大小写import os, os.path
# 指明被遍历的文件夹
rootdir =os.path.abspath(os.curdir)+\'/Image/\'
rootdir1=os.path.abspath(os.pardir)+"/Image/"
#打包用
if os.path.isdir(rootdir):
pass
else:
rootdir=rootdir1
size = 315, 560
i=0
for parent,dirnames,filenames in os.walk(rootdir):
for filename in filenames:
infile=os.path.join(parent,filename)
im = Image.open(infile) ### 此处Image.open(dir)为多数对象应用的基础.
im.thumbnail(size) ### 此处size 为长度为2的tuple类型,改变图片分辨率
im.save(infile) ### im.save(dir),图片处理的最后都用这个,就是保存处理过后的图片
i+=1
print(i,"Done")
要用pil包 安装如下:pip install pillow
参考技术A Python读取图片属性信息的方法,读取的内容包括GPS 信息、图片分辨率、图片像素、设备商、拍摄设备等。利用Python脚本读取图片信息,有几个说明如下:
1、没有实现错误处理
2、没有读取所有信息,大概只有 GPS 信息、图片分辨率、图片像素、设备商、拍摄设备等
3、简单修改后应该能实现暴力修改图片的 GPS 信息
4、但对于本身没有 GPS 信息的图片,实现则非常复杂,需要仔细计算每个描述符的偏移量
将Python远控隐藏在文档图片中的行动分析
1、概述
近日,安天CERT通过网络安全监测发现了一起恶意文档释放Python编写的远控木马事件。通过文档内容中涉及的组织信息和其中攻击者设置的诱导提示,安天CERT判断该事件是一起针对阿塞拜疆共和国国家石油公司进行的定向攻击活动。此次事件中,攻击者充分利用技术实现规避反病毒软件查杀,具体为利用了隐写术将远控木马相关文件以压缩包格式存储于恶意文档里的图片中以备后期提取利用。首先将该恶意文档另存为docx文件,该文件格式具备ZIP文件的特性,然后另存为ZIP格式进行解压并获取其中的图片,最后提取图片中的远控木马文件。此远控木马采用Python语言编写,具备一般远控的上传、下载和命令执行等功能。
2、事件对应的ATT&CK映射图谱
本报告中涉及事件为攻击者针对目标系统投放恶意文档,释放并运行远控木马。通过梳理该事件对应的ATT&CK映射图谱,揭示攻击者在该事件中使用的技术点,如下图所示:
图 2-1 此次攻击活动的ATT&CK映射图谱
具体的ATT&CK技术行为描述如下表所示:
表 2-1 事件对应的ATT&CK技术行为描述表
3、样本分析
3.1 样本标签
表3-1 样本标签
3.2 样本运行流程
当恶意文档中的宏代码运行后,存在两个自动执行函数,在不同状态下触发执行。一个是当文档状态处于打开时触发执行,通过创建目录、拷贝、另存ZIP格式、解压等操作获取嵌入图片中的Python编写的远控木马;另一个是当文档状态处于关闭时执行,调用shell以隐藏窗口的方式执行bat远控启动脚本,进而运行远控木马脚本,该脚本主要功能为释放vbs脚本文件(内容为调用bat远控启动脚本),并以该脚本为载体创建计划任务,同时建立循环加载配置文件与C2建立连接,获取指令,执行对应操作。
图 3-1 宏代码创建和释放的相关文件
图 3-2 样本运行流程
3.3 恶意文档分析
样本为一个具有恶意宏代码的Word文档,从内容上看,是以SOCAR公司的名义伪造的一份“关于分析用催化剂的出口”的文档,同时利用模糊效果和提示信息的手段,诱骗目标通过点击“启动宏”按钮的方式可查看文档详细内容。SOCAR是阿塞拜疆共和国国家石油公司的简称,结合文档内容,判断这是一起针对阿塞拜疆共和国国家石油公司员工的恶意文档投递活动。
图 3-3 文档内容
通过提取文档中的宏代码分析,主要有两个触发操作的函数“Document_Open()”和“Document_Close()”,同时该宏代码存在大量混淆,具体是将“rqxjx”、“RXQYE”、“_RXQYE_20210329_092748_rqxjx_”字符大量嵌入到自定义变量和函数中,能够在一定程度上规避反病毒软件和干扰分析工作。
图 3-4 自动执行的相关函数
图 3-5 混淆的宏代码
解混淆后,从Document_Open()函数中可以看到其中定义了一些文件路径变量,通过MyFunc23函数解密相关路径,依据这些变量创建相应目录和文件,同时提取恶意文档中利用隐写术保存于图片中的远控木马相关文件。
图 3-6 Document_Open函数内容
表3-2变量信息
图 3-7 Python编写的远控相关文件
Document_Close函数功能为以隐藏方式运行远控木马启动脚本,脚本文件即为“C:\\Users\\MA\\AppData\\Roaming\\nettools48\\”目录下的runner.bat文件。该脚本文件初始设置了一定时间的延迟,而后运行当前文件夹下的远控木马脚本“vabsheche.py”。
图 3-8 运行远控木马启动脚本
脚本内容如下:
远控木马脚本内容主要分为三部分:
3.4 释放的远控木马分析
第一部分定义了多个系统判断函数,包括Windows、Linux和Mac OS X,同时读取C2地址配置文件,获取对应域名和端口。从系统判断函数上看,虽然本次发现的脚本中只调用了Windows系统判断函数,且后续内容只能在Windows系统上执行,但是不排除攻击者后期会开发针对Linux和Mac OS X系统的脚本。
图 3-9 远控脚本第一部分内容
第二部分定义一个task_registration函数,主要功能为将启动脚本runner.bat的路径写入vbs脚本中,实现vbs脚本调用运行远控,而vbs的调用,是通过调用schtasks命令创建计划任务,实现每三十分钟运行一次vbs脚本。最后以Windows系统判断函数运行结果来触发task_registration函数。
图 3-10 远控脚本第二部分内容
最后一部分功能是C2命令处理过程,具体如下:通过同目录下的证书文件“cert.pem”结合前期获取的域名和端口,同C2建立连接,获取C2返回信息。
图 3-11 连接C2代码
在整体代码上添加了循环和容错处理,如果连接成功,则解析C2返回的信息,依据特定数据,执行不同的指令操作;连接失败,则延迟120秒,继续尝试连接C2,持续运行此过程。远控木马C2地址:pook.mywire.org 端口:220。
表3-3 远控木马指令表
4、总结
由于该远控木马是用Python编写,对应文件具备脚本文件特性,其实质文件格式为文本文件,相较于PE文件,这种文件格式在一定程度上能够降低被反病毒软件查杀的可能性,同时结合远控木马VT检测结果,安天CERT认为这种脚本形式的远控木马将会更加频繁的被攻击者使用,甚至结合混淆编码进行使用。
文章到这里就结束了,感谢你的观看
说实在的,每次在后台看到一些读者的回应都觉得很欣慰,我想把我收藏的一些编程干货贡献给大家,回馈每一个读者,希望能帮到你们。
干货主要有:
① 2000多本Python电子书(主流和经典的书籍应该都有了)
② Python标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)
⑤ Python所有知识点汇总(可以弄清楚Python的所有方向和技术)
*如果你用得到的话可以直接拿走,在我的QQ技术交流群里,可以自助拿走,群号是857113825。*
以上是关于怎样利用Python进行图片分析的主要内容,如果未能解决你的问题,请参考以下文章
《利用python进行数据分析》读书笔记--第八章 绘图和可视化
人口普查分析:利用python+百度文字识别提取图片中的表格数据