实践内容

实践内容EXP5lab01-04中的sub_401000子程序1.401000传入的参数,位置12EAE8(EBP+8),意义:processid,openprocess的参数2.这一部分是将数据节的值转移到了EBP-14附近的区域403010附近的值EBP-14附近的值同样,下面这一段是将

大家好,欢迎来到IT知识分享网。

EXP5

lab01-04中的sub_401000子程序

1.401000传入的参数,位置12EAE8(EBP+8),意义:processid,openprocess的参数

2.这一部分是将数据节的值转移到了EBP-14附近的区域

image-20220605195432414

403010附近的值

image-20220605195528977

EBP-14附近的值

image-20220605195619527

同样,下面这一段是将从地址403024开始的值copy到了EBP-118

image-20220605195753270

这两段对应的是IDA中的这里

image-20220605200109593

下面就是将一整块地方赋值为0

image-20220605200402181

对应了这一部分的指令

image-20220605200854119

接着就是根据传入的参数(processid)进行打开进程(openprocess)的操作

image-20220605201100198

接着就是将0与这个函数的返回值进行比较,返回值为0,就直接跳到4010C2,也就是比较s1和s2的部分

image-20220605203250496

对应IDA里面应该就是这条分支

image-20220605203342022

接着就是push四个参数,调用40312c这个函数

image-20220605202933547

这个函数我比较陌生,不太了解具体功能

image-20220605202809666

总的来说,就这一部分的功能我们不太清楚image-20220605203944879

接着就是对s1、s2进行比较

不同就跳到4010EB处进行closehandle,也就是第二个(2号)closehandle,第二个closehandle在4010F7结束

相同就执行第一个(1号)closehandle,执行完第一个closehandle也需要跳到4010F7

也就是对应IDA中的这两个分支

image-20220605205147078

不为零(匹配到的不是winlogon.exe)

image-20220605191230436

为零(匹配到了winlogon.exe)

image-20220605191147757

接着就是函数的结束部分

发现的规律

进程打开(openprocess)的顺序都是System->smss.exe->csrss.exe->winlogon,这是每一次运行的过程中发现的相同点

不同点就是每一次的processid都是不相同的,需要靠传入的参数得知打开的processid,子函数目的是找到winlogon.exe

image-20220605120759175

运行lab01-04后会有什么后果?

1.访问一个windows更新的网址

貌似是运行了wupdmgr.exe,我运行了感染后的wupdmgr.exe(16KB)感染前的wupdmgr.exe(32KB)还有temp目录下的winup.exe都是跳转到了windows的更新地址,因为微软早已停止对WindowsXP系列更新,所以该网址并没有任何实际内容

目前暂不清楚其中的原理,目前有以下几种猜测:

(1)感染后的wupdmgr.exe(16KB)唤醒了位于temp目录下的winup.exe(32KB)

(2)直接运行了位于temp目录下的winup.exe

(3)感染后的wupdmgr.exe(16KB)就有跳转到windows的更新地址的功能

打开ProcessExplore,发现与上述文件貌似都没有关联,浏览器IEXPLORE.exe是在winlogon.exe下启动的,运行了winlogon.exe没有任何反应,无法判断实际情况是我们的哪种猜测,还是另有蹊跷,我们无从得知

image-20220605102308892

2.原wupdmgr.exe被更换

(1)原wupdmgr.exe的大小是32,256字节,运行Lab01-04后wupdmgr.exe的大小变成了16,384字节。文件大小的变化,是最容易发现,也是最明显的区别。

(2)原wupdmgr.exe与感染后的wupdmgr.exe图标不同

3.原wupdmgr.exe被移动到了temp目录下,并重命名为winup.exe

原wupdmgr.exe被移动到了temp目录下,并重命名为winup.exe。在课堂上分析此程序时也有提到这一点,但是刚开始我还以为是这个路径

C:\WINDOWS\Temp

运行了好几次都没有看到winup.exe的身影,情况一度陷入的僵局,OD单步调试时在这个目录下同样也没有看见winup.exe,调试过程中看到了C:\DOCUME1\ADMINI1\LOCALS~1\Temp\winup.exe这个路径,问题是这个路径根本无法打开,当时已经晚上10点多,那天也没有休息好。没办法,先好好睡一觉吧,明天看一看有什么解决方法吧

image-20220605113755660

貌似没有locals~1目录,cmd查看也无果

image-20220605115416708我想到了之前用的systracer,打算用这个来分析一下

image-20220605104056410

第二天重新恢复运行Lab01-04前的系统状态(恢复快照),运行前后各进行了一次“take snapshot”

点击“Files”标签,查看文件变化情况

查看相关文件,功夫不负有心人,终于找到了winup.exe的身影,点击这个jump to……即可跳转到相应位置

image-20220605114235979

才知道这是一个隐藏文件夹,网上查找winxp查看隐藏文件夹的方法,经过设置后也能够正常进入winup.exe所在的temp文件夹,参考链接在此,下图中可以看到了隐藏的Local Settings

image-20220605114843933

将运行前的wupdmgr和winup进行对比

运行前现将wupdmgr移动到主机的文件夹下保护起来,运行后也把winup移动到主机的相同目录,进行摘要计算,两者摘要一致

image-20220605182715198

4.原wupdmgr.exe的一些特点被破坏

wupdmgr.exe是 windows update manger 的缩写,是自动升级的程序,存在于c:\windows\system32下,被删除或被重命名后能立即自动生成。

经过实践,未运行lab01-04前将系统的wupdmgr.exe删除或者重命名,系统5秒过后都会自动生成一个新的,正常的wupdmgr.exe。运行了Lab01-04之后系统的一些保护被破坏了,将感染后的wupdmgr.exe删除,系统也无法自动生成正常的wupdmgr.exe。

目前的问题

运行了Lab01-04之后系统的一些保护被破坏了,将感染后的wupdmgr.exe删除,系统也无法自动生成正常的wupdmgr.exe。

但是如何才能让系统恢复保护,即删除感染后的wupdmgr.exe,系统能够自动生成正常的wupdmgr.exe呢?

解决思路:这个问题大概率可以通过对快照前后的注册表的变化进行逐项分析,这样应该可以解决问题

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/34068.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信