Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Вроде все перечислил. Кроме KnownDlls 26.09.06 13:51 Число просмотров: 4855
Автор: amirul <Serge> Статус: The Elderman
|
> - загрузить в него dll, используя windows hooks;
Даже не знаю как это ограничить для админа. Наверное только драйвером
> - использовать вызов CreateRemoteThread; > - OpenProcess, WriteProcessMemory; > - использовать средства отладки, встроенные в windows; Эти три способа требуют сначала открыть процесс. Причем если у открывающего процесса есть DebugPrivilege (админский процесс очень легко может ее получить), то права доступа проверяться не будут вообще. Так что здесть тоже только хук на сервис ядра и собственная проверка.
> - отправлять его окнам и нитям сообщения (например > wm_copydata, затем > wm_timer, или же как ниже); > - эмулируя нажатия клавиш и события мыши, например вызывая > SendInput, сделать что-то "от имени" пользователя; > - можно даже записать какую-нить гадость в буфер обмена и > ждать, > что при вставке наступит переполнение буфера или ещё чего. Ну от этих угроз можно избавиться просто аккуратно написав свою WndProc.
> А какие ещё у простейшего win32 приложения с оконным > интерфейсом уже > есть дыры и как их можно закрыть (допускается даже > написание специального драйвера)? (Интересны случаи как Перехват ZwUserSetWindowsHook и запрет установки неизвестных хуков.
Перехват ZwOpenProcess и запрет открытия своего процесса
Аккуратное написание WndProc
> когда атакующее приложение выполняется с правами админа, > так и без.)
PS: Есть еще HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs
Длл-ка, прописанная здесь попадет в любой запускаемый процесс. Список "известных дллок" инициализируется при загрузке, так что до перезагрузки с твоим процессом ничего не случится.
Здесь нужно либо периодически проверять, чтобы в ключ не менялся, либо опять таки перехватывать ZwOpenKey/ZwCreateKey (либо ZwSetValueKey) и не давать создавать новых записей в этом ключе (не забывать о других ControlSet-ах).
|
|
|