Народ, подскажите, где можно найти материал о том, как мона перейти в XP и Vista в ring0. И то с какими при этом можно столкнуться проблемами. Заранее Вам благодарен.
dgs да я отстал от этой темы но просто занят первоочередными своими проблемами но эта тема сто пудово тянет на КОММЕРЦ т.к. это нужно для извлечения прибыли или нанесения вреда кому-то с помощъю сабжа ) dgs а это не ВЫ товарищъ зарегились одноразово для этой темы под ТС ????
DrSlonix 1) Написать драйвер, материал: - гугл - на этом сайте 2) Использовать паблик и не очень уязвимости, материал: - собственные разработки - васм.коммерц
Вопрос про смену дпл ? Чтобы перейти нужно это через шлюз делать. Прерывания или калгейт. Мне больше калгейт нравится, тоесть в GDT шлюз вызова. Проблема может быть с установкой шлюзов на каждом процессоре. Я это делаю поиском KiAbiosGdt, там список указателей на GDT каждого процессора. Собственно со сменой кольца защиты проблем нет, только два нюанса: > Перед тем как передать управление через гейт на код, в диапазоне юзермодных адресов нужно залочить страницы. Это делается созданием захватывающего потока - тред который в цикле обращается к страницам, которые будут юзаться после смены кольца защиты, что позволяет держать страницы в памяти без выгрузки их в своп. > После перехода через шлюз перезагрузить все сегментные регистры, загрузив в них ядерные селекторы(в Ds и Es могут быть юзермодные селекторы), Fs обязательно перезагружать, так он адресует PCR.
DrSlonix Вопрос слишком общий, уточни пожалуйста что ты имел ввиду, просто есть много способов и не понятно что именно тебе нужно
Clerk будь добр мож даш линк на какой-нибудь семпл или пример приведешь. Я ранее такого рода вещами не занимался :-(((((, а щас от пришлось. Спасибо за ранее....
Clerk, спасибо. Пока еще не разбирался, а токо мельком взглянул асмы и инки. Но думаю это то, что мне нужно. (Гы, мелочь, а приятно, шо код покоменчено на великом и могучем...)
Легальный способ с ZwLoadDriver. Нелегальный - это сплоиты всякие, если найдете (паблик/приват) где-либо. Clerk Что-то мне не сильно верится, что товарищу надо просто сменить дпл. Ибо вопрос тогда странный про ОС. Твой iInstallCallgate видать надо из драйвера запускать? -) Тогда в чем, собственно, смысл. Ради коннекта с юзермодом?
Мы с товарищем хотели в сплоите заюзать. Код прозрачный всеголишь установка шлюза. Рабочий, использовали следующим образом. Некоторая уязвимость в ядре передавала управление при вызове сервиса на адрес, который находится по адресу 0:3, тоесть в начале адресного пространства. Мы записывали по этому адресу указатель на наш обработчик. Обработчиком и был этот код. Он копировал второй обработчик, который и являлся полезной нагрузкой в пул, затем создавал калгейт, при вызове которого из юзермода управление и получал тот код. До вызова кода, который вызывал передачу управления в юзермод, выделялась память с нулевого адреса и страницы захватывались потоком, который просто исполнял инструкции перехода в цикле в этих страницах, изза чего они не выгружались в своп. Затем при эскалации, когда вызывался уязвимый сервис получал управление этот код, он устанавливал гейт и копировал тот обработчик в пул, после чего управление возвращалось в ядро. Далее для эксплуатирования уязвимости просто вызывался этот шлюз. Такова была модель. Great Насчёт драйвера - подобный код не используют в драйверах, да он исполняется в режиме ядра, но никак в модуле.