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

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

    TheHackerWorld官方

关于傀儡进程的笔记


XenoG

推荐的帖子

最近在分析一个病毒时,病毒通过创建傀儡进程,内存映射来执行恶意代码。

但在分析的时候遇到附加后傀儡进程数据出错的问题。

百度到的常见傀儡进程流程:

(1)CreateProcess一个进程,并挂起,即向dwCreationFlags 参数传入CREATE_SUSPENDED;

(2) GetThreadContext获取挂起进程CONTEXT,其中,EAX为进程入口点地址,EBX指向进程PEB;

(3) ZwUnmapViewOfSection卸载挂起进程内存空间数据;

(4) VirtualAlloc分配内存空间;

(5) WriteProcessMemory将恶意代码写入分配的内存;

(6) SetThreadContext设置挂起进程状态;

(6) ResumeThread唤醒进程运行。

我分析的病毒的傀儡进程流程:

1) CreateProcess一个进程,并挂起,即向dwCreationFlags 参数传入CREATE_SUSPENDED;

2)在傀儡进程创建映射mapviewofsection;

3)代码修改OEP的数据

4)ZwUnmapViewOfSection卸载挂起进程内存空间数据;

5)Mapviewofsection映射镜像。

6)ResumeThread唤醒进程运行。

病毒本身含有傀儡进程的静态数据,通过在内存中修改数据在映射,并未使用GetThreadContext SetThreadContext来改数据。

并且傀儡进程在调用dll的时候不是直接调用,而是通过另一段映射过来的数据来使用。

解决问题:

1.问题成因:傀儡进程为exe文件,而病毒映射过来的为DLL文件。其基址不同。在dump后获取到的是DLL的默认基址,而非exe.

2.解决方法:1.试了将dump后的文件基址改为0x400000,发现不成功。直接dump下来的文件内存中将病毒进程映射过来的内存空间给优化了。

                 2.用工具从病毒中将DLL数据取出来,然后创建一个exe文件。

                 3.给exe添加一个区段,修改了区段大小后,使用010edit将dll数据粘贴至区段中。

                 4.改变oep或者oep写代码跳转至区段。

3.说明:病毒在将DLL文件映射过来的同时还是PE头前加了一段代码,代码是用了调用dll数据的。所以不能直接调用DLL文件。(流程不同。。。)

链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...