Долго я голову ломал над этом багом, и вот что надумал. Не надо никаких интерактивных сервисов, наша цель - winlogon'овое окно "NetDDE Agent" (по крайней мере, в w2k), находящееся в десктопе default.
1. WM_COPYDATA копирует туда что хочешь. Эмпирически (айсом ;) узнавал, куда, и бомбил winlogon коллами на ту страницу с интервалами в 10б. Однако вылетает.
2. WM_GETTEXT на caption почему-то не пашет, хотя в качестве адреса я что только не ставил...
3. Я заметил, что по адресу, равному хэндлу окна (у моего winlogon'а - 1001c, у csrss или какого-то его друга - 20040 или что-то в этом роде) страница всегда проинициализирована. Это есть гут, так как куча функций первым параметром получает адрес, в который что-то пишет.
4. Есть кульная функция GetCursorPos, с одним параметром, в который она пишет 2 небольших числа (и трет, тем самым, 8 байт). Если я поставлю курсор у себя, скажем, так:
call SetCursorPos,'\',0
то GetCursorPos, будучи исполненным таким макаром:
call PostMessage,winlogon_wnd,WM_TIMER,0,getcurpos_addr
напишет по адресу winlogon_wnd '\',0,0,0,0,0,0,0
5. Есть кульная функция SetCurrentDirectoryA/W, коия, будучи исполненная точно таким же способом (в winlogon'е) после GetCursorPos, установит его куррент директори на корневуху %systemroot% диска. Это тоже есть гут.
Теперь кульминация: при релогоне winlogon любит грузить либыбез_указания_пути_к_ним!!
В частности, этим балуется msgina.dll.
То есть мы делаем так: пишем в корневуху нашу либу, обзываем ее так, как больше нравится msgina, переставляем текущий какталог у winlogon'а и делаем релогон. Телемаркет ;))) наша либа в винлогоне.
Все это конечно, хорошо, но пока я дизазмил\трейсил winlogon (w2k), я обнаружил преинтереснейшую вещь: msginaсамапри логоне ставит curdir winlogon'а на '\', и после делает LoadLibraryW на es.dll без указания пути. То есть просто пишем es.dll в корень системного диска и релогинимся...
Ух, как по ламерски, но ведь работает... Или это только у меня? В любом случае, с переброской каталога - это эксплоит еще тот. Но защититься просто - залочить писанину в корень системы и все ;)
wbr, 90210//HI-TECH
|