看流星社区

 找回密码
 注册账号
查看: 4767|回复: 16

讲解内核APC结合内存加载实现无模块注入附源码

[复制链接]

该用户从未签到

发表于 2018-2-28 11:51:30 | 显示全部楼层 |阅读模式

上一边帖子里回顾了一下内核APC注入,代码有个地方欠妥,就没有选择合适的线程去注入,这里做了如下修改
  1.         if (*(PULONG)((PCHAR)ethreAd + TCB_TEB_OFFSET) != 0 //teb!=0
  2.             && *((PUCHAR)ethreAd + 0x068) == 0x5 //state=5
  3.             && *(PULONG)((PCHAR)ethreAd + 0x06c) == 0 //waitstatus=0
  4.             && (((*(PULONG)((PCHAR)ethreAd + ALERTABLE_OFFSET) >> 5) & 1) == 1)) //alertable=1
  5.         {
  6.             KdPrint(("target ethreAd: 0x%x\n", ethreAd));
  7.             break;
  8.         }
复制代码


因为我们是在进程已经存在的时候注入的,我们需要选择处于等待状态而且可唤醒的线程,但是我们最好不要手动去设置UserApcPending,这样肯定会有问题
  1.         else if ((Thread->State == Waiting) &&
  2.                   (Thread->WaitMode == UserMode) &&
  3.                   (Thread->Alertable || Thread->ApcState.UserApcPending)) {

  4.             Thread->ApcState.UserApcPending = TRUE;
  5.             KiUnwaitThread(Thread, STATUS_USER_APC, Increment);
  6.         }
复制代码


这一段是wrk里一部分插入用户apc的代码,可以看到如过我们找到的线程合适,这里系统会自动设置这个值,而线程返回用户层时在KiServiceExit中系统会检查这个 UserApcPending,如果true才会执行用户apc。如果我们强行吧 UserApcPending置为true线程将会被强制唤醒,唤醒的原因就是STATUS_USER_APC,那么如果这个线程是不能被唤醒的,比方说他在等待另一个线程执行某个操作后才能走下去,那么此时他肯定会崩溃,就是一开始玩apc的时候经常把进程插崩掉的原因之一。另外就是这个waitstatus=0,应该是代表等待成功?这里我也没摸清具体是啥意思,只是在测试的时候这个状态为0的时候注入就没问题,各位老铁知道的话跟我讲讲啊0,0。

文章内容较多,感兴趣的同学,回复后继续学习。。。。

游客,如果您要查看本帖隐藏内容请回复
  • TA的每日心情
    可爱
    2021-9-23 21:11
  • 发表于 2018-5-29 23:11:13 | 显示全部楼层
    WIN7下,隐藏隐藏进程之进程链表断链。 [复制链接]
  • TA的每日心情
    开心
    2021-6-26 21:38
  • 发表于 2018-6-30 14:51:15 | 显示全部楼层
    看看后面的内容

    该用户从未签到

    发表于 2018-8-8 17:07:17 | 显示全部楼层
    RE: 讲解内核APC结合内存加载实现无模块注入附源码 [修改]

    该用户从未签到

    发表于 2019-9-26 17:30:39 | 显示全部楼层
    支持7和10嘛

    该用户从未签到

    发表于 2020-2-20 19:24:23 | 显示全部楼层
    49999999999999999999999999999999999999

    该用户从未签到

    发表于 2020-2-20 22:30:16 | 显示全部楼层
    刚接触注入这一块  看看前辈留的笔记

    该用户从未签到

    发表于 2020-2-20 22:33:17 | 显示全部楼层
    前辈的代码写的很好 晚辈还是看不懂 要多学学了

    该用户从未签到

    发表于 2020-6-30 13:56:41 | 显示全部楼层
    来看看
    消息队列发现
    点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
    您需要登录后才可以回帖 登录 | 注册账号

    本版积分规则

    小黑屋|手机版|Archiver|看流星社区 |网站地图

    GMT+8, 2024-3-28 17:11

    Powered by Kanliuxing X3.4

    © 2010-2019 kanliuxing.com

    快速回复 返回顶部 返回列表