QMRootkit:不会编程的军人不是好的安全研究员

不懂逆向的开发人员不可能写出来对抗能力很强的软件,不会开发的逆向就像是没有手脚的大脑,没办法做出产品或者能推广成形的东西。逆向的学习最大提高点是去逆向自己编写的源代码程序。

逆向和开发相辅相成,安全开发和逆向分析自动化的需求也很大。

废话少说,本篇就介绍一个由本人开发的很沙雕的驱动Rootkit攻击模拟工具:QMRootkit

驱动功能板块

应用层使用MFC窗口界面开发,分为进线程操作、文件操作、网络操作和实际测试界面。
在这里插入图片描述
测试的界面如下所示。实现了9种驱动层对抗功能。主要演示进程是calc.exe,通过DeviceIoControl向驱动发送数据,之后实现驱动动作。驱动实现技术多数来自《windows黑客编程技术详解》,少部分从看雪论坛中获取。(processhacker.sys有空也可以研究一下)
在这里插入图片描述

下图是驱动代码程序,驱动的编译环境在vs2017+win10之前提到的搭建好的虚拟机中,支持win7 x86位,win7-win10可以全部支持,但是内核结构体和函数特征码不一样,所以需要比较大的精力去补充。由于驱动没有签名,所以暂时不支持自动释放加载,需要手动加载测试。
在这里插入图片描述

部分CTL控制码如下所示:

#define X86_CTL_HIDEPROCESS \
    CTL_CODE(FILE_DEVICE_UNKNOWN,0x830,METHOD_BUFFERED,FILE_ANY_ACCESS) 
#define WIN7X86_CTL_HIDEPROCESS \
    CTL_CODE(FILE_DEVICE_UNKNOWN,0x831,METHOD_BUFFERED,FILE_ANY_ACCESS)
#define X86_CTL_HIDEDRIVER \
    CTL_CODE(FILE_DEVICE_UNKNOWN,0x832,METHOD_BUFFERED,FILE_ANY_ACCESS)
#define X86_CTL_HOOKSSDT \
    CTL_CODE(FILE_DEVICE_UNKNOWN,0x833,METHOD_BUFFERED,FILE_ANY_ACCESS)
#define WIN7X86_CTL_HOOKIOPCREATEFILE \
    CTL_CODE(FILE_DEVICE_UNKNOWN,0x834,METHOD_BUFFERED,FILE_ANY_ACCESS)
#define X86_CTL_IRPPROTECTFILE \
    CTL_CODE(FILE_DEVICE_UNKNOWN,0x835,METHOD_BUFFERED,FILE_ANY_ACCESS)
#define X86_CTL_CMREGISTERCALLBACK \
    CTL_CODE(FILE_DEVICE_UNKNOWN,0x836,METHOD_BUFFERED,FILE_ANY_ACCESS)
#define X86_CTL_LOADIMAGECALLBACK \
    CTL_CODE(FILE_DEVICE_UNKNOWN,0x837,METHOD_BUFFERED,FILE_ANY_ACCESS)
#define X86_CTL_OBREGISTERCALLBACK \
    CTL_CODE(FILE_DEVICE_UNKNOWN,0x838,METHOD_BUFFERED,FILE_ANY_ACCESS)

除此之外本人对驱动层对抗技术也有所研究,大部分都来自于以往底层Rootkit病毒的技术,特制作了个表格。
在这里插入图片描述

进线程功能模块

look at this picture。进程枚举是通过CreateToolhelp32Snapshot,线程枚举是通过NtQueryInformationThread实现。这里进程其实是想现时启动时间的,因为这个时间我有特殊作用。
线程和进程基本都能干掉,干不掉就传给驱动让驱动干它。
在这里插入图片描述

文件遍历清理模块

这里主要是写了一个根据磁盘进行遍历的逻辑,后续想搞成勒索解密或者感染文件清理的模块。
最重要的是文件的最后一次修改时间。Infected?表明是否被感染病毒感染。
在这里插入图片描述
有时间再继续写吧

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

摔不死的笨鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值