跳转到帖子

游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

TheHackerWorld官方

精选回复

发布于

PE病毒分析

准备工作

[1]. Filemon等软件监控laborDayVirus病毒行为,观察文件、注册表、进程的变化

  1. FileMon和RegMon的界面设置:

a) 字体:Option-Font(选项-字体)

b) 禁止自动滚动ly5y2vkydqc2703.jpg

c) 监控前清空屏幕记录2hp22fylnaz2704.jpg

  1. FileMon和RegMon的过滤设置

a) “Filter”按钮可以设置并查看过滤项规则

b) 新建过滤规则:

i. “排除:”选项后面添加不需要监控的进程:

vmtoolsd.exe;ctfmon.exe;TPAutoconnect.exe;Lsass.exe;FileMon.exe;Regmon.exe;tcpview.exe;procexp.exe;System

等,可在此基础上手动右键排除无关进程。

ii. 设置日志监控方式:选择“日志写入”“日志成功”

by23e5xec0b2706.png

实验步骤

一、 病毒感染程序

(1) 新建文件夹“text”,将无毒文件“hei0.txt”拷贝至“text”文件夹中。将病毒文件“LaborDayVirus.rar”解压后“LaborDayVirus.exe”拷贝至“text”文件夹中。

iuk5lnb4bim2707.png

(2) 将系统时间调整为5月1日,双击“text”文件夹中“LaborDayVirus.exe”获得染毒文件hei0.exe。

suimwzgz30u2708.png

感染

(3) 记录hei0.exe染毒前后的文件大小、程序的入口点(OEP),(可使用PEiD或PE explorer)。

3pehon3n3nl2710.png

各区段大小qkb4xwwgikw2711.png

双击运行

sdz4s3wwcak2713.png

入口地址发生变化

t4tu14jzs1p2714.png

data全局变量数据段大小猛增。

zmjx1dyhic42715.png

可见EP段,文件偏移链接器等信息全部被修改了。

二、为染毒程序脱壳

问题1:感染病毒的文件hei0.exe是否加壳?

程序加壳的判断条件

1) 程序入口点不在第一节(.text section),是程序是否加壳的条件之一。

2) PEiD,查看EP section,如果存在非标准的section 名,也是加壳的判断条件之一。

z553ovpuv242717.jpg

3) 查看上图,第一个WBCPACK Section,内存大小V.size不为空,文件大小R.size为空,也是加壳的判断条件之一。

加壳。程序入口点不在第一节(.text ),而是在.data里

3quymsj4o0n2718.png

但段表显示正常

vlv43mcpyya2720.png

(1)用OD打开hei0.exe,弹出如下窗口

cncikcyn3wm2722.jpg

思考:为什么会弹出该窗口?

提示:用PE explorer 查看该文件,观察sizeofcode字段,sizeofImage字段,Address of entry point(OEP)字段的值

病毒只是修改了OEP,但并没有修改sizeofImage,sizeofcode两个大小,程序误以为这会在运行时解压调整位置

(2)找到OEP(0x00403200),留意OEP后面所有的跳转方向向上的jmp。

k0styj5gvvu2723.jpg

在0x00404818,按F2设置断点,随后按F9运行,程序会在断点0x00404818上中断,观察跳转对象EAX的值为( 00401000)。

发现导致此之前已经感染了病毒

m4y1qbv2cqo2725.png

问题2:为什么要跳转到EAX的值,EAX的含义?

EAX是.text段的入口地址,即源程序的OEP。应该是返回到真实的入口点。病毒通过劫持入口来运行,不会对原来的程序功能造成影响。

(3)执行实验步骤一(2)

注:如何在被感染的程序中找到原程序的OEP。

OD打开染毒的hei0.exe,跳转方向向上的跨节长跳(.data section到.text section),可以考虑为——由病毒代码返回到原始程序的OEP。

随后前往EAX处查看

drzjcalv1xx2727.png

F8逐步调试,发现运行了原本的程序

orsav3jvkr02729.png

三、病毒感染机制分析

(1) 准备一个无毒的可执行程序“hei0.exe”和染毒的可执行程序“hei.exe”,复制到新的文件夹“text1”中。使用PE Explorer分别打开“hei0.exe”和“hei.exe”,对比两个文件的入口点和ImageBase,并记录如下。

OEP ImageBase
hei0.exe 00401000 00400000h
hei.exe 00403200 00400000h

kvuqodj2vnx2730.png

(2) 点击“View”菜单中的“Section Headers”,对比“hei0.exe”和“hei.exe”的section Header的数据,并记录如下:

jvk5riky1wj2732.png

.data的段头数据结构 Visual size Visual address Size of raw data point of raw data
hei0.exe的.data 00000027h 00403000h 00000200h 00000800h
hei.exe的.data 00001A00h 00403000h 00001A00h 00000800h

显而易见,data段长度和内容发生了变化,病毒代码也正是存在于此。

问题3:感染文件在磁盘存放时,病毒代码的相对地址是什么,导入内存中,病毒代码的虚拟地址是什么?

在磁盘中,病毒代码的相对地址为0xa00,导入内存后,病毒代码的虚拟地址为0x403200。

(3) 打开UltraEditor,选择“文件”菜单中的“比较文件”功能对“hei0.exe”和“hei.exe”进行二进制比对,可以发现“hei.exe”的0Xa00处开始的数据块为存储于.data节的病毒代码。

2pvn0ea2dzs2733.png

而第一个点正是OEP。

n50iuqqfj5t2736.png

第二个点是限制版本

yreds3sy5zn2737.png

第三个点则是大小

v3jwhlxg3gr2739.png

注:该段数据在.data节是因为“hei0.exe”和“hei.exe”的.data节都开始于各自文件的Point to Raw Data 处。这段数据是病毒代码是因为0xa00-0x800+0x403000=0x403200(感染病毒文件hei.exe OEP的虚地址(VA))。

(4) 使用UltraEditor打开“hei.exe”定位光标到“hei.exe”的.data块的Point to Raw Data 处,并以16进制形式查找“hei0.exe”的入口点(注意字节顺序),将查找到的数据的文件偏移记录是________________,该偏移的保护模式内存虚拟地址是__________________________。

2yajracwvdh2741.png

第一、二个不同点是空间大小

swhyh0cxyik2743.png

skqoro3rpr22745.png

最后一个是字符段

ne2uijftwfk2746.png

(5) 定位“hei.exe”的jmp断点,在jmp指令上面会发现如下的汇编代码:

1lp3upyrm4l2748.jpg

0x40481c在病毒代码之后,为被加载到内存的病毒数据的存储区,0x1000为“hei0.exe”OEP的RVA,0x1000在反汇编代码中的表示是0010.

(6) 新建“text2”文件夹,将“LaborDayVirus.exe”病毒和“notepad.exe(C:\WINDOWS\notepad.exe)”“mspaint.exe(C:\WINDOWS\system32\mspaint.exe)”文件放在“text2”文件夹中。运行“LaborDayVirus.exe”感染“notepad.exe”“mspaint.exe”,将各个病毒文件最后一个跳转指令的目的地址记录到下表。

文件 源文件入口地址 感染病毒文件的入口地址 感染病毒文件的最后一个跳转目的地址
Mspaint.exe 01034CF5 01053800 01034CF5
Notepad.exe 010073A5 01013000 010073A5

(7) 通过以上的分析,就可以初步断定,该病毒的感染方式为:将病毒代码写入到data段上

提示:病毒的感染方式有三种,分别为

i. 添加一个新的段。

ii. 将病毒代码附加在最后一个段上。

iii. 将病毒代码写入到PE文件的各个段的未用空间。

四:手工恢复染毒文件hei.exe。

a) 以二进制形式打开染毒文件hei.exe,病毒修改PE文件“hei.exe”的哪些字段?

可选头部段的OEP,SizeOfImage。datad段的VirtualSize,SizeOfRawData。

b) 如何对这些字段进行修改,以清除“hei.exe”文件的病毒?

对应修改,定点清除。

头部

3ygmms05n552750.png

data

fm3p4gp3yel2751.png

随后恢复正常

tg3q4k50dlq2753.png

创建帐户或登录后发表意见

最近浏览 0

  • 没有会员查看此页面。