将Python远控隐藏在文档图片中的行动分析

news2024/9/24 1:24:09

1、概述

**
**近日,安天CERT通过网络安全监测发现了一起恶意文档释放Python编写的远控木马事件。通过文档内容中涉及的组织信息和其中攻击者设置的诱导提示,安天CERT判断该事件是一起针对阿塞拜疆共和国国家石油公司进行的定向攻击活动。此次事件中,攻击者充分利用技术实现规避反病毒软件查杀,具体为利用了隐写术将远控木马相关文件以压缩包格式存储于恶意文档里的图片中以备后期提取利用。首先将该恶意文档另存为docx文件,该文件格式具备ZIP文件的特性,然后另存为ZIP格式进行解压并获取其中的图片,最后提取图片中的远控木马文件。此远控木马采用Python语言编写,具备一般远控的上传、下载和命令执行等功能。

##2、事件对应的ATT &CK映射图谱

**
**本报告中涉及事件为攻击者针对目标系统投放恶意文档,释放并运行远控木马。通过梳理该事件对应的ATT&CK映射图谱,揭示攻击者在该事件中使用的技术点,如下图所示:

图 2-1 此次攻击活动的ATT &CK映射图谱

具体的ATT&CK技术行为描述如下表所示:

表 2-1 事件对应的ATT
&CK技术行为描述表
table2-1.png

##3、样本分析

###3.1 样本标签

表3-1
样本标签
table3-1.png

###3.2 样本运行流程

当恶意文档中的宏代码运行后,存在两个自动执行函数,在不同状态下触发执行。一个是当文档状态处于打开时触发执行,通过创建目录、拷贝、另存ZIP格式、解压等操作获取嵌入图片中的Python编写的远控木马;另一个是当文档状态处于关闭时执行,调用shell以隐藏窗口的方式执行bat远控启动脚本,进而运行远控木马脚本,该脚本主要功能为释放vbs脚本文件(内容为调用bat远控启动脚本),并以该脚本为载体创建计划任务,同时建立循环加载配置文件与C2建立连接,获取指令,执行对应操作。

图 3-1 宏代码创建和释放的相关文件

图 3-2 样本运行流程

###3.3 恶意文档分析

样本为一个具有恶意宏代码的Word文档,从内容上看,是以SOCAR公司的名义伪造的一份“关于分析用催化剂的出口”的文档,同时利用模糊效果和提示信息的手段,诱骗目标通过点击“启动宏”按钮的方式可查看文档详细内容。SOCAR是阿塞拜疆共和国国家石油公司的简称,结合文档内容,判断这是一起针对阿塞拜疆共和国国家石油公司员工的恶意文档投递活动。

3-3.png

图 3-3 文档内容通过提取文档中的宏代码分析,主要有两个触发操作的函数“Document_Open()”和“Document_Close()”,同时该宏代码存在大量混淆,具体是将“rqxjx”、“RXQYE”、“RXQYE_20210329_092748_rqxjx”字符大量嵌入到自定义变量和函数中,能够在一定程度上规避反病毒软件和干扰分析工作。

3-4.png

图 3-4 自动执行的相关函数3-5.png

图 3-5 混淆的宏代码

解混淆后,从Document_Open()函数中可以看到其中定义了一些文件路径变量,通过MyFunc23函数解密相关路径,依据这些变量创建相应目录和文件,同时提取恶意文档中利用隐写术保存于图片中的远控木马相关文件。

3-6.png

图 3-6 Document_Open函数内容 表3-2变量信息

table3-2.png

3-7.png

图 3-7 Python编写的远控相关文件Document_Close函数功能为以隐藏方式运行远控木马启动脚本,脚本文件即为“C:\Users\MA\AppData\Roaming\nettools48\”目录下的runner.bat文件。该脚本文件初始设置了一定时间的延迟,而后运行当前文件夹下的远控木马脚本“vabsheche.py”。

3-8.png

图 3-8 运行远控木马启动脚本脚本内容如下:

code.png###远控木马脚本内容主要分为三部分:

###3.4 释放的远控木马分析

第一部分定义了多个系统判断函数,包括Windows、Linux和Mac OS
X,同时读取C2地址配置文件,获取对应域名和端口。从系统判断函数上看,虽然本次发现的脚本中只调用了Windows系统判断函数,且后续内容只能在Windows系统上执行,但是不排除攻击者后期会开发针对Linux和Mac
OS X系统的脚本。

3-9.png

图 3-9 远控脚本第一部分内容第二部分定义一个task_registration函数,主要功能为将启动脚本runner.bat的路径写入vbs脚本中,实现vbs脚本调用运行远控,而vbs的调用,是通过调用schtasks命令创建计划任务,实现每三十分钟运行一次vbs脚本。最后以Windows系统判断函数运行结果来触发task_registration函数。

3-10.png

图 3-10 远控脚本第二部分内容最后一部分功能是C2命令处理过程,具体如下:通过同目录下的证书文件“cert.pem”结合前期获取的域名和端口,同C2建立连接,获取C2返回信息。

3-11.png

图 3-11 连接C2代码在整体代码上添加了循环和容错处理,如果连接成功,则解析C2返回的信息,依据特定数据,执行不同的指令操作;连接失败,则延迟120秒,继续尝试连接C2,持续运行此过程。远控木马C2地址:pook.mywire.org
端口:220。

表3-3 远控木马指令表

table3-3.png

##4、总结

**
**由于该远控木马是用Python编写,对应文件具备脚本文件特性,其实质文件格式为文本文件,相较于PE文件,这种文件格式在一定程度上能够降低被反病毒软件查杀的可能性,同时结合远控木马VT检测结果,安天CERT认为这种脚本形式的远控木马将会更加频繁的被攻击者使用,甚至结合混淆编码进行使用。

PE文件,这种文件格式在一定程度上能够降低被反病毒软件查杀的可能性,同时结合远控木马VT检测结果,安天CERT认为这种脚本形式的远控木马将会更加频繁的被攻击者使用,甚至结合混淆编码进行使用。

最后

分享一个快速学习【网络安全】的方法,「也许是」最全面的学习方法:
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)

2、渗透测试基础(一周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等

3、操作系统基础(一周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)

4、计算机网络基础(一周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现

5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固

6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)

在这里插入图片描述

恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k。

到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?

想要入坑黑客&网络安全的朋友,给大家准备了一份:282G全网最全的网络安全资料包免费领取!
扫下方二维码,免费领取

有了这些基础,如果你要深入学习,可以参考下方这个超详细学习路线图,按照这个路线学习,完全够支撑你成为一名优秀的中高级网络安全工程师:

高清学习路线图或XMIND文件(点击下载原文件)

还有一些学习中收集的视频、文档资源,有需要的可以自取:
每个成长路线对应板块的配套视频:


当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。

因篇幅有限,仅展示部分资料,需要的可以【扫下方二维码免费领取】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/798628.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

单线程与多线程的理解与学习(入门到深入)

文章目录 一、在Java中,有多种方式可以创建线程。以下是几种常用的方法:二、线程的调度线程的调度分为两种调度模型分时调度模型抢占式调度模型 三、线程传值四、什么是线程同步五、线程安全六、线程的同步机制七、线程控制 一、在Java中,有多…

惠普HP Color Laser 150a开机红色感叹号闪烁不打印故障解决方法

故障描述: 惠普HP Color Laser 150a开机红色感叹号闪烁,不能打印,电脑提示C3-6140。 检测分析: 在解决C3-6140错误代码之前,我们需要先检查打印机是否连接正常。如果打印机连接不正常,也可能会出现这个错误…

mysql_2.4——安装常见问题

1. 将MySQL添加到环境变量 将 mysql 的 bin 目录地址添加到 系统环境变量 --> PATH 中 2. 将MySQL添加到服务 以管理员的方式启动 cmd (命令提示窗口),使用命令进入到 [mysql]\bin ,执行如下命 令。 # mysqld --install (服务名) # 如: mysqld --…

SQL注入实操Less21-30)

文章目录 一、sqli-lab靶场1.轮子模式总结2.Less-21a.注入点判断b.轮子测试c.获取数据库名称d.获取表信息e.获取列信息f.获取表内数据 3.Less-22a.注入点判断b.轮子测试c.获取数据库名称d.获取表信息e.获取列信息f.获取表内数据 4.Less-23a.注入点判断b.轮子测试c.获取数据库名…

questasim界面的个性化设置

安装好questasim后默认的波形查看界面字体很小,颜色看起来也不舒服,所以调整了一下颜色布局如下图,顺便记录一下波形窗口颜色大小及选中行高亮如何设置 ​​​​​​​ 1、波形字体颜色设置 参考如何设置一个清爽的仿真窗口(仿真…

【无标题】linux就该这么学

linux就该这么学 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个注脚…

杰哥教你用Python对Emotet投递的恶意Excel表格提取IoCs

背景介绍 工作遇到多个经过同样方式混淆并隐藏的宏代码文档,利用Excel表格特性,将数据分离在不同的单元格中,再使用Office自带的函数对单元格的数值进行提取后组合成代码字符串运行。运行的代码完成下载恶意文件到本地并注册为服务的恶意行为…

spring项目中idea提示Application context not configured for this file

今天在重构项目的时候,碰到一个问题。就是在spring底下,有一个包里面的所有配置类,在idea的开发工具类底下提示,Application context not configured for this file,如图所示 一开始以为是警告,不予处理&am…

04 linux之C 语言高级编程

gcc和gdb GNU工具 编译工具:把一个源程序编译为一个可执行程序调试工具:能对执行程序进行源码或汇编级调试软件工程工具:用于协助多人开发或大型软件项目的管理,如make、CVS、Subvision其他工具:用于把多个目标文件链…

《入门级-Cocos2d 4.0塔防游戏开发》---第二课:游戏加载界面开发

一、开发环境介绍 操作系统:UOS1060专业版本。 cocos2dx:版本 环境搭建教程: 统信UOS下配置安装cocos2dx开发环境_三雷科技的博客-CSDN博客 二、开发内容 游戏在开始时都需要加载大量的资源,为了让用户有等待时间,因此最先开…

linux学成之路(基础篇)(二十三)MySQL服务(数据库备份——补充)

目录 一、MySQL数据库备份 概述 重要性 造成数据丢失的原因 二、备份类型 一、物理与逻辑角度 一、物理备份 二、逻辑备份 二、数据库备份策略角度 一、完整备份 二、增量备份 三、常见的备份方法 一、物理备份 二、使用专用备份工具 三、通过启用二进制日志增量…

漏洞发现-Xray+Awvs联动-Goby+Xray+Awvs+Vulmap联动

Acunetix: Acunetix一款商业的Web漏洞扫描程序,它可以检查Web应用程序中的漏洞,如SQL注入、跨站脚本攻击、身份验证页上的弱口令长度等。它拥有一个操作方便的图形用户界面,并且能够创建专业级的Web站点安全审核报告。新版本集成了漏洞管理功…

在家构建您的迷你 ChatGPT

这篇文章分为三个部分;他们是: 什么是指令遵循模型?如何查找遵循模型的指令构建一个简单的聊天机器人废话不多说直接开始吧!!! 什么是指令遵循模型? 语言模型是机器学习模型,可以根…

移动开发之Wifi列表获取功能

一、场景 业务需要通过App给设备配置无线网络连接,所以需要App获取附近的WiFi列表,并进行网络连接验证。 二、安卓端实现 1、阅读谷歌官网文档,关于Wifi 接口使用 https://developer.android.com/guide/topics/connectivity/wifi-scan?hl…

SpringBoot——内置数据库

简单介绍 关于数据层的三大组件,数据源,持久化技术,数据库。前两种都已经介绍过了SpringBoot的内置的解决方案,还有最后一个数据库,在SpringBoot中,内置了三款数据库。分别是: H2HSQLDerby 这…

ARTIF:一种先进的实时威胁智能识别框架

关于ARTIF ARTIF是一个新型的高级实时威胁智能框架,它基于MISP并添加了另一个抽象层,以实现根据IP地址和历史数据识别恶意Web流量。除此之外,该工具还可以通过收集、处理和关联基于不同因素的观测值来执行自动分析和威胁评分。 功能介绍 评…

uni-app在小米手机上运行【步骤细节】

注意细节重点: 1.手机使用数据线与电脑连接,手机连接模式必须是传输文件模式 2.手机必须打开开发者模式 3.打开开发者模式后,仔细浏览并调整USB调试权限,重点打开USB是否允许安装按钮!!! 操作步…

onnxruntime (C++/CUDA) 编译安装

一、克隆及编译 git clone --recursive https://github.com/Microsoft/onnxruntime cd onnxruntime/ git checkout v1.8.0如果克隆的时候报错: 执行以下: apt-get install gnutls-bin git config --global http.sslVerify false git config --global h…

自动化测试的技术路线

本文中我谈一下自动化测试的技术路线,同时也是测试团队的发展路线。 团队路线1.工程化路线 如果你们公司只有你一个测试,那工程化的路线是必然的选择。另外,我个人比较推崇工程化而非平台化。 下图介绍了工程化路线下写出来的自动化测试&…

[oeasy]python0075_删除变量_del_delete_variable

删除变量 回忆上次内容 上次我们研究了字节序 字节序有两种 符号英文名称中文名称<little-endian小字节序>big-endian大字节序 字节序 用来 明确 整型数字存储的 顺序 如果 读写数字出了错 可以 考虑一下 是否 字节序出了问题 变量现在可以 声明初始化存储了 但是 …