【Windows攻防】恶意软件容器化

news/2025/1/17 22:53:05/文章来源:https://www.cnblogs.com/o-O-oO/p/18676915

# windows

微软在2022年7月为了帮助用户保持安全,在Office中默认阻止了internet宏。

阻止从Internet下载的文档中的VBA宏。

接下来我们来了解一下MOTW标记,其实就是网络标记。

什么是MOTW标记?

MOTW全名Mark of the Web,他是windows操作系统中的一个安全特性,为了帮助用户在处理下载文件时提供更多的安全保障设计的。

MOTW标记是一种XML注释,可以将其添加到文件的头部,以指示该文件是从internet上下载的,这个标记告诉Windows操作系统,该文件来自互联网,并提醒用户在打开文件时要小心。例如,当用户双击打开一个包含MOTW标记的文件时,Windows会显示一个警告,提醒用户该文件可能不安全,并询问用户是否确实要打开它。

MOTW标记的目的是增强安全性,帮助用户警惕可能包含潜在风险的文件。这对于防止恶意软件传播和保护系统安全非常有用。

所以一般如果我们互联网上下载的文件有可能会被打上这个标记,例如显示这个文件来自另一台计算机,Unbland可能会被阻止以帮助保护他的计算机。

那么我们如何去逃避呢?

逃避MOTW标记

针对于逃避MOTW标记,我们可以使用某些容器来搭载我们从互联网上下载的恶意软件,有些容器他不会MOTW标记传播到内部文件。

使用镜像文件进行逃避,例如ISO文件,IMG文件,DMP文件。

也可以使用CAB文件,CAB 文件是一种 Microsoft Windows 上常见的存档文件格式。

CAB 文件通常用于将一组文件打包成单个文件,以便于在 Windows 系统中进行分发、安装或存档。这种格式在安装 Windows 软件、更新、驱动程序等方面非常常见。CAB 文件通常可以通过 Windows 的内置工具或者第三方解压软件进行解压缩。

我们可以使用windows自带的工具来进行压缩文件,首先需要创建一个txt文件,里面要写你自己要压缩的文件路径。

然后使用makecab来进行压缩。

makecab /F .\cab.txt

如上图就压缩好了,然后我们就可以直接双击进行解压。

也可以通过WMI文件格式来作为容器,WIM文件是一种 Windows 映像文件格式,用于捕捉、存储和部署 Windows 操作系统的映像。WIM 文件通常用于 Windows 安装介质和部署工具(如 Windows 部署服务、MDT 等)中。

如果我们先将文件压缩成WIM文件的话,我们可以使用Windows自带的工具Dism.exe。

也可以通过7zip直接压缩。

现在让我们来手动压缩一下:

Dism /Capture-Image /ImageFile:C:\Users\Administrator\Downloads\relaysec.wim /CaptureDir:C:\Users\Administrator\Downloads /Name:"relaysec" /Description:"Files to deploy"

这里简单来解释一下这几个参数:

/ImageFile: 指定输出的 WIM 文件名
/CaptureDir: 指定要捕捉为映像的文件夹
/Name: 指定映像的名称
/Description: 关于影响的描述

如下图成功创建:

创建的wim文件就是ImageFile指定的路径。

尝试解压:

可以看到压缩包中的文件。

复杂感染链

这里其实指的是钓鱼链,例如我们之前说到过的zip->lnk->白程序->黑dll->shellcode。

所以只是一组链接文件,这些文件将被很好的链接在一块,从而导致被感染。

如下例子:

我们可以通过发送邮件的方式里面嵌入链接,或者在PDF中嵌入链接,需要注意的是这里嵌入的链接是HTML走私的页面,目标访问HTML走私页面获取到ISO恶意文件载体,然后通过ISO解压,通过lnk去执行我们的木马。

如下链:

email ⏩ HTML走私 ⏩ lnk ⏩ dll ⏩ shellcode

那么也就是说无论是HTML走私还是说SVG走私都是可以的。

接下来我们可以尝试使用webdav去钓鱼,这种方式其实公众号是发过的。

参考如下:

https://mp.weixin.qq.com/s/q4MyZKF8ed_WSz_PF2NCRg

针对于容器载体的话,一般我们会选择ISO/IMG文件,因为可以包含我们隐藏的文件,或者ZIP文件以及wim文件都是可以的,这些我们上面介绍过。

恶意文件触发

针对于恶意文件触发,我们有很多种方式,例如lnk文件,或chm文件。一般lnk文件会去运行cmd或者powershell或exe文件。

那么对于chm文件来说就比较笨重了,而且查杀会相对严重一点。

有些文件既可以充当恶意载体也可以进行恶意文件触发。

例如MSI文件,在安装的过程中触发恶意文件或执行相关命令。

包括我们前面所说的ClickOnce也可以进行远程加载恶意文件。 只是需要注意INSTALL=TRUE。

Payload

针对于payload有几种方式:

  • 白加黑的方式,就是白程序加黑dll的方式。
    
  • 直接或间接去加载dll,例如rundll32.exe shell32.dll,函数 evil.cpl
    
  • MSI文件
    
  • MSI + .MST文件
    
  • ClickOnce
    
  • 宏文档
    
  • html走私->ISO->autoit3.exe -> .au3 + pdf
    

接下来我们尝试使用第七种触发链。

这里的.au3脚本非常简单。

就是一个弹窗的代码。

然后我们尝试使用autoit64.exe去执行即可。

现在我们需要将其写到lnk文件中。

C:\Windows\System32\cmd.exe /c au.exe msgbox.au3

这里有一个简单的技巧,一般我们直接使用cmd.exe /c去调用的时候会有一个黑窗口,这里我们可以将运行方式改为最小化,就没有了。

这里我们可以选一下图标。

还是我们之前所说的。

因为我这里虚拟机没有装pdf解析器,所以这里使用计算器代替。

接下来我们就需要将这三个文件打成ISO文件了。

python PackMyPayload.py c:\Users\Administrator\Desktop\payload c:\Users\Administrator\Desktop\payload.iso --hide au.exe,msgbox.au3

获取到ISO文件之后。

我们需要来进行HTML走私。

python smuggler.py  c:\Users\Administrator\Desktop\payload.iso c:\Users\Administrator\Desktop\payload.html -M

然后尝试打开html文件。

一般我们会将html文件放置到我们的机器上来做。

这里为了方便就直接打开了。

下载之后就可以直接打开了。

可以看到这里只会显示这一个文件。

成功执行

一般我们在执行我们的恶意文件的之后也要去执行正常的文件,这样比较合理一点。

这里其实就可以使用到 | 这个符合,也就是或的意思。

例如:

C:\Windows\System32\cmd.exe /c au.exe msgbox.au3 | report.pdf

还有一点需要注意的是,尽量不要使用cmd去运行你的恶意软件,尽量采用LOLBIN的方式。

conhost --headless forfiles.exe /p c:\windows\system32 /m user32.dll /c "<hex-encoded-cmd /c>" /c  beacon.exe | report.pdf
conhost --headless forfiles.exe /p c:\windows\system32 /m user32.dll /c "<hex-encoded-cmd /c>" /c  report.pdf| beacon.exe

我们可以来看看如上命令使用到的进程链:

可以看到这里其实跑的是conhost.exe。

一般我们会去做一个白加黑的方式去加载:

HTML走私 ⏩ ISO ⏩ lnk ⏩ 白程序 ⏩ 黑dll ⏩ shellcode

原创 relaysec Relay学安全

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

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

相关文章

【Spring Cloud Alibaba AI】 入门与实践

一、概述 Spring AI 是 Spring 官方社区项目,旨在简化 Java AI 应用程序开发,让 Java 开发者像使用 Spring 开发普通应用一样开发 AI 应用。可参考文章《SpringAI:Java 开发的智能新利器》Spring Cloud Alibaba AI 是一个将 Spring Cloud 微服务生态与阿里巴巴 AI 能力无缝集…

Re:Re:笑死

哈哈哈哈哈博客用的很熟练嘛 闲的没事去桃花湖那边开了一圈 下午的旅程后劲儿太大了 开车的时候仿佛眼前还都是山 今晚自己和猫猫独享大床真爽啊!!吼吼 再次给你欣赏一下12的美照哈哈哈哈哈哈

阿里面试:5000qps访问一个500ms的接口,如何设计线程池的核心线程数、最大线程数? 需要多少台机器?

本文原文链接 文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录 博客园版 为您奉上珍贵的学习资源 : 免费赠送 :《尼恩Java面试宝典》 持续更新+ 史上最全 + 面试必备 2000页+ 面试必备 + 大厂必备 +涨薪必备 免费赠送 :《尼恩技术圣经+高并发系列PDF》 ,帮你 …

WSL CUDA安装

【一文解决】已安装CUDA与Pytorch但torch.cuda.is_available()为False_torch.cuda.is available返回false-CSDN博客 cuda安装,选WSL e.g.Ubuntu 20.04安装CUDA & CUDNN 手把手带你撸_ubuntu20.04安装cuda-CSDN博客 【CUDA】Ubuntu系统如何安装CUDA保姆级教程(2022年最新)_…

未来已来:探索智能家居行业的创新与突破

智能家居行业正站在新科技革命的风口浪尖,不断推动着生活方式的革新。以下是该行业在创新与突破方面的详细介绍: 1.行业发展趋势: 智能家居行业正从单品智能设备过渡至全屋智能阶段,平台生态的构建成为主要发展方向。预计到2029年,中国智能家居市场规模将达到1.09万亿元。…

【洛谷训练记录】【LGR-213-Div.4】洛谷入门赛 #31

训练情况赛后反思 模拟题差点红温,差一道字符串模拟题AK A题 问一个数 \(a\) 加多少后的个位数变成 \(b\),取出 \(a\) 的个位数,再用 \(b\) 去减,如果小于零答案再加十。 #include <bits/stdc++.h> // #define int long long #define endl \nusing namespace std;voi…

WSL2配置代理

1、关闭梯子 2、设置为mirrored模式该设置会生成 C:/Users//.wslconfig【可选】修改.wslconfig文件内容如下 [experimental] autoMemoryReclaim=gradual networkingMode=mirrored dnsTunneling=true firewall=true autoProxy=true3、打开cmd并执行wsl --shutdown 4、重新启动…

【MySQL架构】图解

你是一个程序员,你做了一个网站应用,站点里的用户数据,需要存到某个地方,方便随时读写。 很容易想到可以将数据存到文件里。 但如果数据量很大,想从大量文件数据中查找某部分数据,并更新,是一件很痛苦的事情。 那么问题就来了,有办法可以解决这个问题吗? 好办,没有什…

2025 郑州一测 T18: 双变量问题探讨

2025 高考加把劲 /qtContent已知函数 \(f(x) = \log_a x(a>0, a\neq 1)\), \(y = f(x)\) 关于 \(y=x\) 对称的函数记为 \(g(x)\). (I) 若 \(a>1\), 方程 \(f(x)-g(x)=0\) 有且仅有一个实数解, 求 \(a\) 的值. (II) 讨论方程 \(g(x) = x_a = 0\) 在 \((0, +\infty)\) 上实…

笑死

哈哈哈哈哈笑死这个中国银行的标志出现的恰到好处,我还以为是什么标识

C#数据结构与算法入门实战指南

前言 在编程领域,数据结构与算法是构建高效、可靠和可扩展软件系统的基石。它们对于提升程序性能、优化资源利用以及解决复杂问题具有至关重要的作用。今天大姚分享一些非常不错的C#数据结构与算法实战教程,希望可以帮助到有需要的小伙伴。 C#经典十大排序算法 主要讲解C#经典…

29. 数据库操作

一、SQL与数据库数据库 (database)是统一管理的、有组织的、可共享的大量数据的集合。数据库将数据存储在一个或多个表格中,管理这个数据库的软件称为 数据库管理系统(database management system, DBMS)。数据库不是针对具体的应用程序,而是立足于数据本身的管理,它将所…