Заинтересовался я, а действительно-ли эта сраная проактивка так защищает прям не пробиваемая, начал я интересоваться, читать различные статьи, а как-же всё-же обойти, таки насобирал достаточно много инфы, к своему удивлению !
Хоть здесь и мало хакеров, всем нужны ключи к АВ, но думаю данная тема здесь тоже будет интересна, хотя-бы в ознакомительных целях, итак начнём:
Обход можно поделить условно на 2 вида: активный (диалоговое окно uac не появляется) и пассивный (появляется).
К активному отнесём:
И ещё существуют готовые утилиты для поиска уязвимых приложений в системе (например, "DllHijackAuditKit"). Плюс к этому можно наваять ещё пару дополнительных тулз для более точного, качественного анализа конкретных файлов/процессов/etc (поиск по строкам, коду и т.д.).
Хоть здесь и мало хакеров, всем нужны ключи к АВ, но думаю данная тема здесь тоже будет интересна, хотя-бы в ознакомительных целях, итак начнём:
Обход можно поделить условно на 2 вида: активный (диалоговое окно uac не появляется) и пассивный (появляется).
К активному отнесём:
- эксплоиты;
- (возможные) инжекты в процессы;
- некоторые другие специфические фишки (например, известная манипуляция c интерфейсом "IFileOperation");
- имя нашего приложения должно содержать любую из следующих строк: "install", "setup", "update", "patch" (сработает эвристик загрузчика приложений, и наша прога при запуске попросит повышение привилегий);
- клепаем в приложении специальный манифест (etc + доки по манифесту для повышения прав);
- заёб юзера: проверка своих привилегий, и если они низкие - запускаем себя с повышенными правами (ShellExecute(Ex) с командой "runas") до тех пор, пока юзер не охуеет от диалоговых окон (и, наконец-то, разрешит выполнение с нужными нам привилегиями);
- после старта наша прога скачивает какой-нибудь подписанный инсталлятор/апдейт/etc (обычно такой апдейт заранее анализируется для атаки dll hijack), кладёт рядом с ним заранее подготовленную, нашенкованную всякими прелестями dll с определённым именем и запускает скачанный файл. (Обычно) если юзер подтверждает запуск такого апдейта, он будет выполняться с повышенными правами, а вместе с ним и наша dll;
- после старта наша прога мониторит появление новых процессов. Если таковой найден, то выходим на его файл, анализируем и стараемся провести dll hijack (как вариант, перед новым процессом мониторинг "Consent.exe"). Другой путь - переименовываем свой файл в имя нового процесса и запускаем его с повышением привилегий;
- использование буфера обмена в надежде на то, что файл попадёт в нужное место;
- и т.д.;
И ещё существуют готовые утилиты для поиска уязвимых приложений в системе (например, "DllHijackAuditKit"). Плюс к этому можно наваять ещё пару дополнительных тулз для более точного, качественного анализа конкретных файлов/процессов/etc (поиск по строкам, коду и т.д.).