Сейчас на форуме: hgdagon (+5 невидимых) |
eXeL@B —› Программирование —› Методы внедрения DLL в процессы |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 06 августа 2007 07:51 · Личное сообщение · #1 Привет. Интересует информация о возможностях внедрения DLL в процесс. Однако предлагаемые варианты должны удовлетворять определенным требования 1/ Исключительно юзермод. 2/ Ключ AppInit_Dlls, функция SetWindowsHookEx не интересуют. 3/ Варианты, в той или иной мере требующие открытия процесса (в том числе через сервер процессов) также не интересны, так как невозможно получить нормальный хэндл процесса. 4/ Внедрение должен быть в максимально возможное количество процессов, winlogon отдельно не интересует. 5/ Модификация файлов на диске не рассматривается. 6/ Внедрение через перехват той или иной фазы создания процесса не интересует. 7/ Желательно, чтобы все начинало работать без перезагрузки, но не обязательно. Есть ли что-то ещё или нет? Если кто готов поделиться информацией буду очень благодарен. TIA ----- Security through obscurity is just an illusion |
|
Создано: 06 августа 2007 08:13 · Личное сообщение · #2 |
|
Создано: 06 августа 2007 08:47 · Личное сообщение · #3 |
|
Создано: 06 августа 2007 09:31 · Личное сообщение · #4 |
|
Создано: 06 августа 2007 12:34 · Личное сообщение · #5 Смотрел. InjectDll стандартный прием с LoadLibraryA/CreateRemoteThread. Неприемлимо, поскольку CreateRemoteThread требует хэндл процесса, который получить для целевого процесса в моем случае из юзермод невозможно, мой пункт №3 в первом посте. InjectDllEx запись DLL в процесс и инжект трида с передачей управления. Неприемлимо, опять же никто не даст открыть и тем более писать в процесс, пункт №3. InjectDllAlt используется инжект, основанный на SetThreadContext. Совершенно неприменимо, поскольку к сожалению потоки целевого процесса закрыты от доступа хуками на уровне SSDT. Для более полного понимая поясню, что задача проникнуть в АП уже запущенного процесса средствами юзермод, при этом процесс не дает просто так открыть себя в юзермод Хм. Может существуют ещё какие-нибудь ключи в реестре (кроме AppInit), которые могут подгрузить dll в процесс (помимо winlogon)? ----- Security through obscurity is just an illusion |
|
Создано: 06 августа 2007 12:40 · Поправил: sotona · Личное сообщение · #6 |
|
Создано: 06 августа 2007 13:33 · Личное сообщение · #7 |
|
Создано: 06 августа 2007 14:34 · Личное сообщение · #8 |
|
Создано: 06 августа 2007 15:56 · Личное сообщение · #9 |
|
Создано: 06 августа 2007 16:00 · Личное сообщение · #10 |
|
Создано: 06 августа 2007 16:15 · Личное сообщение · #11 |
|
Создано: 06 августа 2007 17:22 · Личное сообщение · #12 SLV Это про Image File Execution Options? Метод известный, спасибо. Executioner пишет: И все же, почему ты не можешь получить "нормальный" хэндл процесса? Потому что перекрыто SSDT (десяток функций инлайном), пропатчена таблица хэндлов в ядре, а все что осталось от следов присутсвия процесса в системе было закрыто принудительно самой программой. SSDT почти всегда восстанавливается легко и непринуждено в двух случаях 1/это хуки антивируса 2/тебе дали загрузить драйвер в нашем случае 1/это не дребедень вроде кав, хуки стоят инлайном и это мониторит их, восстанавливая немедленно 2/если я загружу драйвер, мне уже ничего из темы этого топика будет не нужно ----- Security through obscurity is just an illusion |
|
Создано: 06 августа 2007 17:24 · Личное сообщение · #13 |
|
Создано: 06 августа 2007 17:52 · Личное сообщение · #14 |
|
Создано: 07 августа 2007 05:54 · Личное сообщение · #15 SLV Вот я и ищу n0name Приложение оконное. Однако, не стоит на это расчитывать, так как его окна тоже бронированные. Хотя здесь могут быть варианты. хвнд окна стандартными средствами получить невозможно. Вообще эту программу писали фанатики самозащиты по аналогии с крякми и катчме это можно назвать факме ----- Security through obscurity is just an illusion |
|
Создано: 07 августа 2007 05:59 · Личное сообщение · #16 |
|
Создано: 07 августа 2007 08:53 · Личное сообщение · #17 Sly Ass Спасибо большое. Если можно поподробнее про shell extensions. AFAIK они и называются потому так, что работают в оболочке и вызываются из оболочки? И как здесь поможет layered service provider? Насчет врапера я тоже смотрел, однако оказалось, что таблица импорта у программы отсутствует, в силу чего она не работает под win2k. Анализ показал, что программа самостоятельно подгружает kernel32.dll и далее грузит все, что ей нужно. Что неужели все прикрыто? ----- Security through obscurity is just an illusion |
|
Создано: 07 августа 2007 09:02 · Личное сообщение · #18 |
|
Создано: 07 августа 2007 09:03 · Поправил: W[4Fh]LF · Личное сообщение · #19 |
|
Создано: 07 августа 2007 09:57 · Личное сообщение · #20 HoBleen пишет: А если открыть csrss и получить хендл через DuplicateHandle? А почитать первый пост в топеге не судьба? pushick пишет: Если можно поподробнее про shell extensions. Это DLL которые добавляют пункты в контекстное меню оболочки. (к примеру rarext.dll в WinRar). Могут быть загружены в любой процесс использующий file open dialig, либо другие функции оболочки. Смотри HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers и потом HKEY_CLASSES_ROOT\CLSID pushick пишет: И как здесь поможет layered service provider? Если процесс юзает winsock, то LSP в него загрузиться. HoBleen пишет: Насчет врапера я тоже смотрел, однако оказалось, что таблица импорта у программы отсутствует, в силу чего она не работает под win2k. Анализ показал, что программа самостоятельно подгружает kernel32.dll и далее грузит все, что ей нужно. Что неужели все прикрыто А загрузиться ДО нее и после хукать создание процессов не судьба? К примеру это можно сделать из BootExecute З.Ы. можно ссылку на прогу в личку? |
|
Создано: 07 августа 2007 10:01 · Поправил: Unmoored · Личное сообщение · #21 |
|
Создано: 07 августа 2007 11:04 · Личное сообщение · #22 |
|
Создано: 07 августа 2007 11:29 · Личное сообщение · #23 |
|
Создано: 07 августа 2007 11:57 · Личное сообщение · #24 HoBleen Пункт №3 первого поста. Хэндл процесса отсутствует в csrss.exe Sly Ass пишет: Это DLL которые добавляют пункты в контекстное меню оболочки. (к примеру rarext.dll в WinRar). Могут быть загружены в любой процесс использующий file open dialig, либо другие функции оболочки. Смотри HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers и потом HKEY_CLASSES_ROOT\CLSID Это понятно. К сожалению не применимо, программа не использует шел диалоги. Sly Ass пишет: Если процесс юзает winsock, то LSP в него загрузиться. Нет, ничего такого там нет. Sly Ass пишет: А загрузиться ДО нее и после хукать создание процессов не судьба? К примеру это можно сделать из BootExecute Пункт №6 первого поста. На целевых компьютерах такой возможности просто не будет. Sly Ass n0name Программа является частной и закрытой разработкой одной команды моего города. Мне отвинтят башку, если я выложу её в паблик. Если бы я имел такое право, я бы это сделал ещё в первом посте. ----- Security through obscurity is just an illusion |
|
Создано: 07 августа 2007 12:06 · Личное сообщение · #25 n0name пишет: проверяет что это реальный kernel32? Идет получение симболик линка на системную директорию, а потом типа strcatW(buf, '\system32\kernel32.dll'); Hellspawn пишет: хех))) что же это такое то? по осписанию что-то знакомое, но говорить не буду на счёт хендла окна, его можно получить многими способами врядли они прикрыли все, всё зависит от задачи, я так бегло пробежал топик, но вроде не заметил, а для чего это всё? Сомневаюсь, что ты знаешь, что это такое, поскольку ни одна из пяти версий никогда не выкладывалась в паблик. По описанию это похоже на антивирус или систему предотвращения, но это совсем не оно. Перекрыты NtUserQueryWindow, NtUserFindWindowEx, NtUserBuildHwndList, NtUserWindowFromPoint, соответственно, все юзермод функции использующие их не дают результата. Если есть идеи, поделись Unmoored пишет: И вобще это странно. Прога может рушить хендлы только из режима ядра. Бороться с ядром из юзер-мода... А что мешает сделать простенький драйвер? Из режима ядра можно будет напрямую пообщаться с обьектом ядра процесс... Рушить хэндлы в других процессах в юзермод можно через ZwDuplicateObject с флагом DUPLICATE_CLOSE_SOURCE, если я правильно тебя понял. Бороться с ядром вполне возможно, если авторы драйвера дураки. При выходе в кернел мод не нужен и инжект длл. А тогда условия будут не выполнены и этот своеобразный "факме" будет не факнут. ----- Security through obscurity is just an illusion |
|
Создано: 07 августа 2007 12:22 · Личное сообщение · #26 |
|
Создано: 07 августа 2007 12:49 · Личное сообщение · #27 |
|
Создано: 07 августа 2007 13:04 · Личное сообщение · #28 |
|
Создано: 07 августа 2007 15:06 · Личное сообщение · #29 n0name пишет: а с потоками как? хендлы прикрыты? Их тоже нет в csrss. Hellspawn пишет: что-то мне всё странно это кажется, а не тестят ли очередной говнопродукт? Вот насчет этого можешь быть абсолютно спокоен. На кавнокомпании я не работаю. Hellspawn пишет: если это закрытая разарботка, нахера такая защита? Потому как эта программа всегда применяется только в жутко агрессивной среде =) Кстати, спасибо за BitBlt, GetForegroundWindow, это конечно уже из области высоких извращений, но тоже можно попробовать в будущем. Должен всех успокоить решение найдено - простое как полено, удивительно как я сам не догадался. Правда товарищ просил не говорить само решение Пусть и не внедрение длл, но получив хэндл окна процесса с ним уже можно кое-что сотворить. Теперь задача тривиальна и не требует сторонней помощи. ----- Security through obscurity is just an illusion |
|
Создано: 07 августа 2007 15:08 · Личное сообщение · #30 |
. 1 . 2 . >> |
eXeL@B —› Программирование —› Методы внедрения DLL в процессы |