Как загрузить неподписанный драйвер без Test Mode?

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by canvas123, 25 May 2018.

  1. canvas123

    canvas123 New Member

    Joined:
    25 May 2018
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Нужно загрузить драйвер на Win10 без загрузки в Test Mode. Оное PatchGuard успешно запатчил:
    https://github.com/Volkanite/TestSpoof
    https://github.com/hfiref0x/DSEFix

    Много думал, но так и не нашел решения, может кто-то знает? Если нет, то может вы знаете подписанные уязвимые драйвера, которые можно эксплуатировать для того чтобы снять callbackи с PsSetCreateThreadNotifyRoutine.
     
  2. DooD

    DooD Elder - Старейшина

    Joined:
    30 Sep 2010
    Messages:
    1,168
    Likes Received:
    450
    Reputations:
    288
    легко ты захотел, не получится так.
    можешь в настройках загрузки винды только отключить проверку подписи.
     
  3. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    1,106
    Likes Received:
    8,474
    Reputations:
    25
    Ну почему. Можно найти уязвимость в дровах и из kernel уже все отключить (или работать без объекта-устройства, это ушь зависит от целей сего драйвера).
     
  4. DooD

    DooD Elder - Старейшина

    Joined:
    30 Sep 2010
    Messages:
    1,168
    Likes Received:
    450
    Reputations:
    288
    Сможешь?)
     
    #colorblind likes this.
  5. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    1,106
    Likes Received:
    8,474
    Reputations:
    25
    Бесплатно ? Ни в жисть :)
    А платно... это не законно а я человек исключительно законопослушный.

    Но вообще нужна локальная уязвимость в каком-либо драйвере. Каг говорят "эскалация привилегий". Можно среди этого хлама поискать. Далее, находясь в ядре, вместо исполнения кода их "эскалации привилегий" нужно пейсать свой код. Первоначально обрести хоть какие-то указатели ибо у тебя ничего нет вообще. К примеру найти указатель на объект-устройство. Системные таблицы ты и так найдешь. И у тебя уже достаточно инструментов для работы, даже более чем надо.
    ====
    Кстате если в дровее есть затычка которую никто не вызывает - еще и получится беспалевно принимать/передавать запросы ввода-вывода. Чтобы сильно не заморачиваться - просто достаточно реализовать возможность писать куда угодно и читать откуда угодно(с опцией выбора уровня IRQL желательно). Потом уже из юзермода делать что вздумается. Для многих целей этого тоже достаточно.
     
    #5 DartPhoenix, 30 May 2018
    Last edited: 30 May 2018
  6. DooD

    DooD Elder - Старейшина

    Joined:
    30 Sep 2010
    Messages:
    1,168
    Likes Received:
    450
    Reputations:
    288
    ну знаешь, так можно на любой вопрос ответить, типа ищи багу на уровне ринг 0 и юзай все че угодно)
     
  7. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    1,106
    Likes Received:
    8,474
    Reputations:
    25
    Если в теме - все вроде понятно. Делать екземпл... надо угробить время. У меня ни WDK не стоит, ни оси на виртуалке нет ни дебугга не подключен. Этим заниматься уже пол-дня похерить надо.
    Потом поковырять inj3ctor на предмет поиска PoC сплоета, разобрать его соответственно, найти нужную версию дрова...

    Многовато работы чтобы кому-то что-то показать.
    Минимальная требуемая для реализации матчасть:
    * ман "Rootkits Subverting Windows Kernel" (как-то так). Желательно еще М.Руссиновича почитать.
    * знание структуры PE-файла и умения ее использовать
    * хотя-бы базовые знания о работе сплоетов.

    Чтобы реализовать загрузку в дикой природе... подходящий драйвер и сплоет к нему надо искать самому. А это уже отдельные пляски с бубном.
    =============
    Сделать можно.
     
    #7 DartPhoenix, 30 May 2018
    Last edited: 30 May 2018