• 某CCC-BASE的逆向


    背景

    很早之前就已经分析过一遍,一直放在。今天突然又看到了,放着也是放着,索性拿出来分享一下,很多东西的细节省略了,这里只是谈及用到了什么技术,具体细节需要自己去学习;这里的版本是22-03-14,时间比较久了,有些可能说的不全,可能和你的分析有差别,以你的为准。

    分析

    为了方便描述,这里就从驱动入口开始,去掉敏感信息,初始化MJ函数。之后初始化了一个事件。后面会创建了一个符号连接,之后会提到。

     这样就有了两个符号连接,这里称为A和B,A是用来初始化的,B是用来获取各个信息。来看看A中有什么东西(通信数据被加密,可逆,这里省略),内容很多,挑感兴趣的说一下。

    反调试

    每次通信时会检测的东西,前提是打开反调试。获取debugport、检测peb、queryprocess 1f、ticketcount是否大于5000,检测到之后结束被调试的进程

    顺便分离内核调试

    初始化各种数据

    api初始化,获取各个函数的地址

     ssdt/shadowssdt、pagelist、gTimerHashTable、lasspid、crsspid、以及win32k的某些偏移(对窗口、绘制等东西不熟,所以这里获取到的某些结构,我也不知道是什么)、ptebase等一些数据。

    获取物理内存的使用和vad的偏移,以及获取ssdt表的各个函数

     初始化系统线程,每十秒执行一次

    枚举受保护进程的FreezeCount

     20一次的枚举debugport、threadhinden、检测内核线程、以及和时间相关的东西

     

     30s一次的内核调试器分离,vm代码中有SharUserData的相关检测、以及KdRefreshDebuggerNotPresent,检测到bugcheck蓝屏

     其他功能

    进程、线程、dll回调、ob都注册了,看看检测了什么东西。

    时间检测

     vt和SharUserData检测

     mapping检测

     shellcode检测,和mdl有关,这里先看一看

     一些不常见检测

    intelPT和nmi中断相关的blog在分析之后也看到过,不过比我当时分析的更详细,更具体,这里简单描述一下,这两个功能的目的都是中断下来检测当前的rip是否在收保护的进程中操作,如果是这里会保存下来,给你标记下来。

    https://bbs.pediy.com/thread-273980.htm

    https://bbs.pediy.com/thread-274613.htm

     hook 0e是的,它真的还在,不过做的方式是替换页表,而且在kpti开启的情况下会蓝屏,具体可以参考看雪的blog,这里就是给一个假的cr3,记录访问这个cr3的进程,好消息是17763不支持(难道是有什么难言之隐,就算没有,也只有在不支持内核页表隔离的系统上跑)

     MiTrackPtesAborted、MiDeadPteTrackerSListHead、MmTrackPtes mdlmapping映射检测,简单来说就是当mapp结束之后会插入到MiDeadPteTrackerSListHead链表,这里会开一个线程去检测这里面的数据

    其他地方的线程暂停检测 

    检测线程的栈信息

     当前计算机信息收集获取ataport.sys、storport.sys、CLASSPNP.sys、ndis、scsi等一些计算机网络、串口、文件的驱动,调用他们并获取计算机的信息,这里需要注意的是只支持19041一下的版本,瞧不起我19041以上的用户?这里的信息可以通过符号路径B获取到对应的数据

     还有很多接口,这里就不一一列举了。

    符号链接B的接口

    这里也列举几个有意思的接口,其中有几个可以利用的接口,mdlread,以及内核内存读,这里没有写。

     以及很多接口

     这里选两个受害者出来看看,第一个是取消apc,通过将ethread下的SchedulerApc直接ret的方式取消apc的调用

     第二个是调整当前进程的vad属性,参考blog​​​​​​​可以看看

     其实里面还有很多内容,有兴趣的可以自己去学习学习。

  • 相关阅读:
    数组指针、二级指针传参
    初识散列表
    基于jquery+html开发的json格式校验工具
    对于Java循环中的For和For-each,哪个更快
    Java之异常
    voc(xml)标签查询种类并打印
    【TES720D】基于复旦微的FMQL20S400全国产化ARM核心模块
    2022年Java秋招面试必看的|Java并发编程面试题
    python3-函数与参数以及空值
    终于拿到了阿里P8架构师分享的JCF和JUC源码分析与实现笔记java岗
  • 原文地址:https://blog.csdn.net/qq_37353105/article/details/127565155