Когда-то была такая атака на повышение прав локального пользователя shatter. Запускался utilman ему слали сообщения , пересылали shell потом выполняли его. Сегодня пытаюсь найти имя окна (XP SP3 ru) и не могу ( Может кто подскажет? Код (Text): .486 .model flat,stdcall option casemap :none include \masm32\include\windows.inc include \masm32\include\user32.inc include \masm32\include\kernel32.inc includelib \masm32\lib\user32.lib includelib \masm32\lib\kernel32.lib include \masm32\include\masm32.inc includelib \masm32\lib\masm32.lib .data tWindow db 'Диспетчер служебных программ',0 cWindow db '#32770',0 _path db 'c:\windows\system32\utilman.exe',0 pi PROCESS_INFORMATION <> sinfo STARTUPINFO <> _info1 db '[+] Finding utilman Window...',13,10,0 _info2 db '[-] Couldn t Find utilman Window',13,10,0 _info3 db '[+] Found Main Window At...0x%u',13,10,0 ;шаблон для вывода .data? textBuf db 64 dup( ? );для вывода тек.времени cyrBuffer db ? .code start: invoke CreateProcess, addr _path, NULL,NULL,NULL,FALSE,\ NULL,\ NULL,NULL, addr sinfo, addr pi invoke StdOut, addr _info1 ; [+] Finding %s Window... invoke CharToOem, ADDR tWindow,ADDR cyrBuffer invoke FindWindow,ADDR cWindow, ADDR cyrBuffer .if eax == 0 invoke StdOut, addr _info2 ; [-] Couldn t Find utilman Window ;ret 0 .endif invoke wsprintf,ADDR textBuf,ADDR _info3,eax ; [+] Found Main Window At...0x%x invoke ExitProcess,0 end start Не могу найти дескриптор окна (eax =0)и все!!! Не подскажите?
_sheva740 CreateProcess выполняется успешно? Например, структура STARTUPINFO не инициализирована. Зачем CharToOem? Буфер под результат работы CharToOem ни маловат?
q_q Окно utilman - а появляется. не нужен - уберу! Но не помогает ( Не пойму, хотя Spy++ из VC 6.0 все нашел, может я что-то не так делаю?
_sheva740 > Но не помогает Ты попробовал? ps > _info3 db '[+] Found Main Window At...0x%u',13,10,0 ;шаблон для вывода Imho если добавляешь перед числом 0x, то логичнее использовать что-то похожее на %08X.
q_q Да не вот Код (Text): start: invoke CreateProcess, addr _path, NULL,NULL,NULL,FALSE,\ NULL,\ NULL,NULL, addr sinfo, addr pi invoke FindWindow,ADDR cWindow, ADDR tWindow;ADDR cyrBuffer .if eax == 0 invoke StdOut, addr _info2 ; [-] Couldn t Find utilman Window ;ret 0 .endif invoke wsprintf,ADDR textBuf,ADDR _info3,eax ; [+] Found Main Window At...0x%x invoke ExitProcess,0 end start пробовал, но нет а Вы находите это окно? Спасибо.
а окно utilman не закрывается, оно висит так долго как мне нужно. Пробовал, тот же результат. Код (Text): start: invoke CreateProcess, addr _path, NULL,NULL,NULL,FALSE,\ NULL,\ NULL,NULL, addr sinfo, addr pi invoke Sleep, 1000 invoke FindWindow,ADDR cWindow, ADDR tWindow;ADDR cyrBuffer .if eax == 0 invoke StdOut, addr _info2 ; [-] Couldn t Find utilman Window .endif invoke ExitProcess,0 end start Не знаю а если из драйвера запустить cmd.exe. Пока не знаю как но эта консоль будет с правами system?
Clerk Да проблема в том что не могу вот получить дескриптор окна по указателю на строку с именем окна (db 'Диспетчер служебных программ',0). Помнится в 2000 - ке без проблем было Не подскажите?
Хотя не то. Без заголовка окно вэба возвращает странно. Не знаю. С такимже успехом можно использовать винлогона окно: Class "SAS window class" Name "SAS window" Тоже дырявое, но не понятно как окна системных процессов искать. Хотя попробовать может Tcb привилегию включить..