Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何使用DotNet-MetaData识别.NET恶意软件源码文件元数据

如何使用DotNet-MetaData识别.NET恶意软件源码文件元数据

作者头像
FB客服
发布于 2024-05-27 13:35:39
发布于 2024-05-27 13:35:39
16100
代码可运行
举报
文章被收录于专栏:FreeBufFreeBuf
运行总次数:0
代码可运行
关于DotNet-MetaData

DotNet-MetaData是一款针对.NET恶意软件的安全分析工具,该工具专为蓝队研究人员设计,可以帮助广大研究人员轻松识别.NET恶意软件二进制源代码文件中的元数据。

工具架构

当前版本的DotNet-MetaData主要由以下两个部分组成:

1、DotNetMetadata.yar:这是一个Yara规则文件,用于将源代码数据显示到终端; 2、DotNetMetadata.py:该脚本负责从.NET源代码文件中提取GUID、MVID、YTPELIB和程序集名称等信息;

工具下载

由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3环境。

接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone https://github.com/bartblaze/DotNet-MetaData.git

工具使用

DotNetMetadata.yar

DotNetMetadata.yar可以将目标.NET源代码文件的相关数据显示到终端,使用方法如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yara64.exe DotNetMetadata.yar c:\fakepath\all_samples

Yara规则需要至少Yara v4.2.0版本以上,因此我们建议广大研究人员从【https://github.com/VirusTotal/yara/releases】获取最新的发布版本。

DotNetMetadata.py

DotNetMetadata.py脚本可以从.NET源代码文件中提取GUID、MVID、YTPELIB和程序集名称等信息,该脚本支持在WindowsLinux操作系统上运行,按理来说macOS也应该没有问题。

脚本使用样例如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python DotNetMetadata.py c:\fakepath\all_samples -c samples_output.csv

该脚本的正常运行需要使用到pythonnet库,安装命令如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install pythonnet

然后dnlib.dll文件也应该位于相同目录中。

针对类Linux系统,你还需要使用mono-complete安装Mono,在Ubuntu上可以使用下列命令安装:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt-get install mono-complete

然后从【https://github.com/0xd4d/dnlib】获取并编译dnlib,或直接从【https://github.com/dnSpyEx/dnSpy】下载dnSpy-netframework.zip,然后从bin目录中获取dnlib.dll文件即可。这里建议使用最新版本的dnlib文件。

样本规则

项目提供的「sample rules」目录中包含了相关的检测样本规则,你可以根据自己的需求跟新和修改规则。

输出样例

下面给出的输出样例主要针对的是「Mpyiuepnw」单个文件,即PureLogStealer的其中一个版本,其SHA256哈希如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
c201449a0845d659c32cc48f998b8cc95c20153bb1974e3a1ba80c53a90f1b27


使用Yara规则
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ yara64.exe DotNetMetadata.yar c:\fakepath\Mpyiuepnw.vir

Original Filename: Mpyiuepnw.exe

Internal Name: Mpyiuepnw.exe

Imphash (use with caution): f34d5f2d4577ed6d9ceec516c1f5a744

Compile timestamp (epoch): 1710224522

Module name: Mpyiuepnw.exe

Assembly name: Mpyiuepnw

Typelib: 856e9a70-148f-4705-9549-d69a57e669b0

# of GUIDs: 1

dotnet.guid: 0

 -> guid (MVID) = 9066ee39-87f9-4468-9d70-b57c25f29a67

# of streams: 5

# of resources is: 9

dotnet.resource: 0

 -> name = Rdfeunq.Properties.Resources.resources

 -> offset = 715528

 -> length = 2818774

dotnet.resource: 1

 -> name = Mpyiuepnw.Attributes.WrapperManager.resources

 -> offset = 3534306

 -> length = 180

dotnet.resource: 2

 -> name = Mpyiuepnw.Collections.ImporterHelperCollection.resources

 -> offset = 3534490

 -> length = 180

dotnet.resource: 3

 -> name = Mpyiuepnw.Roles.ConfigOrderRole.resources

 -> offset = 3534674

 -> length = 2932

dotnet.resource: 4

 -> name = Mpyiuepnw.Roles.CodeManager.resources

 -> offset = 3537610

 -> length = 2933

dotnet.resource: 5

 -> name = NAudio.Pages.TemplateAuthenticationPage.resources

 -> offset = 3540547

 -> length = 180

dotnet.resource: 6

 -> name = Mpyiuepnw.Roles.SchemaManager.resources

 -> offset = 3540731

 -> length = 2936

dotnet.resource: 7

 -> name = Mpyiuepnw.Polices.SingletonSingleton.resources

 -> offset = 3543671

 -> length = 180

dotnet.resource: 8

 -> name = NAudio.Common.PrototypeSingleton.resources

 -> offset = 3543855

 -> length = 180

# of module references: 7

# of strings: 710

使用Python脚本

单个文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ python DotNetMetadata.py c:\fakepath\Mpyiuepnw.vir

File: c:\fakepath\Mpyiuepnw.vir

  Assembly Name: Mpyiuepnw

  MVID: 9066ee39-87f9-4468-9d70-b57c25f29a67

  GUID: 856e9a70-148f-4705-9549-d69a57e669b0

目录:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$  python DotNetMetadata.py c:\fakepath\quasar

File: c:\fakepath\quasar\02f0a7f184fcdaaa4d9a46ca29712c8daae0a46d2038bd362dc818025df8d553.vir

  Assembly Name: Client

  MVID: 60f5dce2-4de4-4c86-aa69-383ebe2f504c

  GUID: None



File: c:\fakepath\quasar\0790bb235f27fa3843f086dbdaac314c2c1b857e3b2b94c2777578765a7894a0.vir

  Assembly Name: spoolsv

  MVID: fb86b5ea-fecf-4314-9908-dfb44a648349

  GUID: ab37fd48-1226-4126-b12d-dea3361fb533



File: c:\fakepath\quasar\07f103ec9f4cf73a1ea534a7b1fed490045e8611c14cb66dfe8784f01ea63e5c.vir

  Assembly Name: Client

  MVID: 60f5dce2-4de4-4c86-aa69-383ebe2f504c

  GUID: None



File: c:\fakepath\quasar\0847a32772909b1685150473294dccd837d8ab3bf8d3a42fc75e8402c8fa9237.vir

  Assembly Name: Client

  MVID: 41eb6d08-2e57-46a1-826d-1b6049ebf6a6

  GUID: None



File: c:\fakepath\quasar\1332bb84dff1a55902b5eb2c76988f94a9edf4727d2c79871c47858b270f0856.vir

  Assembly Name: jkepkr

  MVID: da2e26cb-0ca3-474a-8fb6-08aa7ff3de20

  GUID: None



File: c:\fakepath\quasar\14b67f3273192e061b04c05bb81aea8794f58a856b762006fb2359f55230327c.vir

  Assembly Name: led注Sbm

  MVID: c4653540-cdba-4dba-965f-6b232d0313d8

  GUID: None



File: c:\fakepath\quasar\15931de8e192e8932d881c6d450d52090f92f9b5e9f0f0b903cc5ec033b58b54.vir

  Assembly Name: Client

  MVID: 60f5dce2-4de4-4c86-aa69-383ebe2f504c

  GUID: None

CSV输出样例

表格:

CSV:

许可证协议

本项目的开发与发布遵循MIT开源许可协议。

项目地址

DotNet-MetaData:

https://github.com/bartblaze/DotNet-MetaData

参考资料:

https://github.com/VirusTotal/yara/releases https://github.com/0xd4d/dnlib https://github.com/dnSpyEx/dnSpy https://www.freebuf.com/articles/network/396717.html

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
音视频面试题集锦 2022.05
1)如何根据 NALU 裸流数据来判断其是 H.264 编码还是 H.265 编码?
关键帧
2022/06/13
1.2K0
音视频面试题集锦 2022.05
图像的表示(2):YCbCr 怎么来的?必看这篇颜色空间发展简史丨音视频基础
在前面的文章《图像的表示(1)》里,我们提出了一个问题:从我们眼睛看见的『画面』,到我们用手机、电脑所处理的『图像数据』,其中经历了什么?从这个问题出发,我们探讨了『图像的定义是什么』和『图像成像的原理是什么』这两个问题,接下来我们继续探讨下个问题:『怎样对图像进行数学描述』。全文分为如下几节内容:
关键帧
2022/06/13
2K0
图像的表示(2):YCbCr 怎么来的?必看这篇颜色空间发展简史丨音视频基础
音视频基础概念合集:148 个问题带你快速上车音视频丨音视频基础
音视频是一个有一定技术门槛的垂直领域,对于前端、iOS/Android 客户端、服务端开发同学来说,这都是一个不错的职业发展方向。对于刚开始接触音视频开发的同学,最头疼的问题应该是音视频纷繁庞杂的概念,如果删繁就简,音视频生产及消费的核心环节其实只有:采集(声音和图像的数字化) → 编码(压缩数据便于存储和传输) → 封装(按格式封装便于控制音视频的展现) → 传输(用于网络) → 解封装(封装的逆过程) → 解码(编码的逆过程) → 渲染(声音和图像的展现)。
关键帧
2022/06/13
1.3K0
音视频基础概念合集:148 个问题带你快速上车音视频丨音视频基础
菜鸟也能懂的 - 音视频基础知识
1,光和颜色光是一种肉眼可以看见(接受)的电磁波(可见光谱)。在科学上的定义,光有时候是指所有的电磁波。光是由一种称为光子的基本粒子组成。具有粒子性与波动性,或称为波粒二象性。人类肉眼所能看到的可见光只是整个电磁波谱的一部分。电磁波之可见光谱范围大约为 390~760nm(1nm=10-9m=0.000000001m)。
入门笔记
2023/03/08
9850
菜鸟也能懂的 - 音视频基础知识
HDR关键技术:HEVC/H.265编码优化
与传统标准动态范围(SDR)视频相比,高动态范围(HDR)视频由于比特深度的增加提供了更加丰富的亮区细节和暗区细节。最新的显示技术通过清晰地再现HDR视频内容使得为用户提供身临其境的观看体验成为可能。面对目前日益增长的HDR视频消费需求,研究现有的压缩工具或引入新的技术来高效压缩HDR视频变得十分迫切。本文将介绍有关MPEG及VCEG针对HDR视频压缩的研究进展。
用户1324186
2018/08/08
5.5K0
HDR关键技术:HEVC/H.265编码优化
YCbCr与YUV的区别
yuv色彩模型来源于rgb模型,该模型的特点是将亮度和色度分离开,从而适合于图像处理领域。
lcyw
2022/06/10
1.7K0
【音视频原理】图像相关概念 ③ ( RGB 色彩简介 | RGB 排列 | YUV 色彩简介 | YUV 编码好处 )
RGB 是 计算机 中的 颜色编码方法 , 红 ( R ) / 绿 ( G ) / 蓝 ( B ) 三个颜色通道 可以设置不同的值 , 每个 通道 的 颜色值都可以取值 0 ~ 255 , 这样 三个通道 叠加 , 可以表示出
韩曙亮
2024/01/20
6340
【音视频原理】图像相关概念 ③ ( RGB 色彩简介 | RGB 排列 | YUV 色彩简介 | YUV 编码好处 )
HDR关键技术:色度学,颜色空间及转换
HDR技术的第二个理论基础是色度学。从前面的文章中我们了解到,光学以及人类视觉感知模型为人类提供了解释与分析人类感知亮度的理论基础,但是HDR技术不仅仅关注于提升图像与视频的亮度范围,同时也关注于提供更加丰富的色彩。因此,在本文中,我们将首先介绍人眼与色度学相关的生理特征以及人类对颜色的识别方式,然后介绍颜色空间的概念,最后再回到HDR,介绍与HDR相关的颜色标准。
用户1324186
2018/09/21
5.2K0
HDR关键技术:色度学,颜色空间及转换
音视频基础知识大全
音视频开发要掌握图像,视频,音频的基础知识,并学会如何对他们进行采集,渲染,处理,传输等一系列开发和应用。
Jasonangel
2022/04/08
9610
音视频基础知识大全
音视频知识体系(基础篇3)----图像颜色空间
我们从视频的信号表示方法开始讲起,逐步深入到视频压缩编码的原理。我们主要从下面几个要点来讲解或者加深记忆。
jerrypxiao
2021/02/04
2K0
数字视频基础知识
一、光和颜色 1 光和颜色 可见光是波长在380 nm~780 nm 之间的电磁波,我们看到的大多数光不是 一种波长的光,而是由许多不同波长的光组合成的。如果光源由单波长组成,就 称为单色光源。该光源具有能量,也称强度。实际中,只有极少数光源是单色的, 大多数光源是由不同波长组成,每个波长的光具有自身的强度。这称为光源的光 谱分析。 颜色是视觉系统对可见光的感知结果。研究表明,人的视网膜有对红、绿、 蓝颜色敏感程度不同的三种锥体细胞。红、绿和蓝三种锥体细胞对不同频率的光 的感知程度不同,对不同亮度的感知程度也不同。 自然界中的任何一种颜色都可以由R,G,B 这3 种颜色值之和来确定,以这 三种颜色为基色构成一个RGB 颜色空间。
lcyw
2022/06/10
8060
数字视频基础知识
关于NTSC/PAL如何选择?
N/P基本就是帧率的区别了,选PAL 50P比较好,一方面是与交流电工频一致,避免拍到灯光闪烁,再者50比较省空间,流畅度OK.
云深无际
2021/04/14
9K0
关于NTSC/PAL如何选择?
【AI PC端算法优化】七,一步步优化RGB和YUV互转算法
继续学习指令集优化的知识,今天来讨论一个图像颜色空间转换经常碰到的一个问题即RGB和YUV图像的颜色空间转换,我们从原理介绍和普通实现开始,然后介绍一些优化方法并引入SSE指令集来优化这个算法的速度。
BBuf
2020/05/21
1.9K0
【AI PC端算法优化】七,一步步优化RGB和YUV互转算法
FPGA图像处理之rgbtogray算法的实现
FPGA图像处理之rgbtogray算法的实现 作者:lee神 1.背景知识 在正是入题之前先给大家讲解一下gray图像,YUV图像以及Ycbcr图像。 Gray图像:灰度图像就是我们常说的黑白图像,由黑到白为灰阶为0-255。 YUV是被欧洲电视系统所采用的一种颜色编码方法(属于PAL),是PAL和SECAM模拟彩色电视制式采用的颜色空间。在现代彩色电视系统中,通常采用三管彩色摄影机或彩色CCD摄影机进行取像,然后把取得的彩色图像信号经分色、分别放大校正后得到RGB,再经过矩阵变换电路得到亮度信号Y和两个
企鹅号小编
2018/02/28
1.3K0
FPGA图像处理之rgbtogray算法的实现
颜色空间
HSV(Hue, Saturation, Value)是根据颜色的直观特性由 A. R. Smith 在 1978 年创建的一种颜色空间, 也称六角锥体模型(Hexcone Model)。
为为为什么
2022/08/10
2.2K0
颜色空间
音视频入门基础理论知识
视频(Video) 泛指将一系列静态影像以电信号的方式加以捕捉、 纪录、 处理、 储存、 传送与重现的各种技术。
Gnep@97
2023/09/01
5680
音视频入门基础理论知识
为什么受损的视频数据通常显示为绿色?为什么很多30帧/秒的视频实际都是29.976帧/秒?
4)视频标准H.264、H.265中的H代表什么?H.264为什么又叫MPEG-4 AVC?
微帧Visionular
2024/11/19
2550
为什么受损的视频数据通常显示为绿色?为什么很多30帧/秒的视频实际都是29.976帧/秒?
色彩空间RGB/CMYK/HSL/HSB/HSV/Lab/YUV基础理论及转换方法:RGB与YUV
之前做个设计,现在从事IT,脑子里面关于RGB,RGBA,CMY,CMYK,YUV,但是具体理论还是不扎实。若干年前之前写过《水煮RGB与CMYK色彩模型—色彩与光学相关物理理论浅叙》《三色视者与四色视者身后的理论基础:色彩原理》
周陆军博客
2023/04/22
9160
香橙派Armbian系统安装之认识
以及健全的网络功能,自带的WiFi只能说是羸弱了~不过有OTG,USB什么的,可以外挂网卡,加驱动就好了~
云深无际
2021/02/23
2.2K0
香橙派Armbian系统安装之认识
RGB转YCbCr算法 之Matlab & FPGA实现介绍
虽然现在RGB是计算机视觉最基本的三原色组成结构,但是YCbCr也有非常重要的角色,甚至却之不可,理由如下:
ExASIC
2021/09/17
2.4K0
RGB转YCbCr算法 之Matlab & FPGA实现介绍
相关推荐
音视频面试题集锦 2022.05
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验