Кто-то знает существует ли сообщение Windows (SendMessage...), один из параметров которого - ФАЙЛ!
Условие: приложение получившее сообщение, должно попытатся открыть этот файл!
Нужно, и даже очень!
Windows Messages не надо =)20.07.03 08:06 Автор: DgtlScrm Статус: Member Отредактировано 20.07.03 08:26 Количество правок: 1
Я нашел решение, не требующее никаких сверх естественных извращений с API. Оказывается все уже давно придумали =)
Кстати, как узнать из консоли, что уменя права системы. Чтобы запустить утилитку и она говорит: "здраствуй у тебя права системы, или пользователя"... прямо в окно cmd.exe?
(и чтобы входила в стандартный состав винды)
Я немного опоздал, но все же...06.08.03 07:01 Автор: gh Статус: Незарегистрированный пользователь
> Я нашел решение, не требующее никаких сверх естественных > извращений с API. Оказывается все уже давно придумали =) > > Кстати, как узнать из консоли, что уменя права системы. > Чтобы запустить утилитку и она говорит: "здраствуй у тебя > права системы, или пользователя"... прямо в окно cmd.exe? > (и чтобы входила в стандартный состав винды) Попробуй запустить regedit и посмотреть HKLM->SAM->SAM (пусто там или нет). Если эту ветку сможешь раскрыть и дальше - то у тебя права system.
Раз уж ветка поднялась06.08.03 11:39 Автор: amirul <Serge> Статус: The Elderman
> > Я нашел решение, не требующее никаких сверх > естественных > > извращений с API. Оказывается все уже давно придумали > =) > > > > Кстати, как узнать из консоли, что уменя права > системы. > > Чтобы запустить утилитку и она говорит: "здраствуй у > тебя > > права системы, или пользователя"... прямо в окно > cmd.exe? > > (и чтобы входила в стандартный состав винды) Не совсем в стандартный состав, но на инсталляхах с виндами обычно есть каталог SUPPORT, там в суппорт-тулзах есть тулза whoami.exe - это именно то что тебе надо (Who am I?)
а можно еще с сервисами поигратся. запустить\остановить какой нить beep. если получилось - есть все права06.08.03 16:30 Автор: Killer{R} <Dmitry> Статус: Elderman
Создавал именованную трубу, MaxIntance = 1.
Делаю WaitNamedPipe с малым тайм-аутом, возвращает 1.
Вызываю CreateProcess(), где lpApplicationName — моя труба. Возвращает, ессно, ошибку типа «это не есть приложение Win32». После этого WaitNamedPipe возвращает 0, что радует...
После вызываю ImpersonateNamedPipeClient(), но получается ошибка типа «пока не произведено чтения Named Pipe, не могу олицетворить клиента». Так и не понял, кто должен читать трубу, чтобы можно было сделать олицетворение — клиент или сервер?
Дальше сильно хотелось спать ;-)
Сегодня уже поостыл, но остался Основной Вопрос:
Для всех гуру по NT: если труба будет читаться из ядра, кого олицетворит серверная часть трубы?
А знаешь ли ты о ConnectNamedPipe()...21.07.03 15:48 Автор: DgtlScrm Статус: Member
Перед тем как ты хочешь воспользоватся ImpersonateNamedPipeClient(). Кто-то должен к нему подключтися, чтобы ты мог "представидся им". Чтобы подождать подключения используй:
ConnectNamedPipe (hPipe, NULL);
А подключиться...
если имя твоему пайпу \\.\pipe\getsys =) то лезь в выполнить и пиши \\имя_твоего_компа\pipe\getsys
Windows Messages не надо, но что там с сервисами?21.07.03 13:23 Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
> но всетаки, опять меня заволновал вопрос... > Какие сервисы работают с пользовательскими файлами... > Если ктото знает, отвечайте или пишите на мыло.
McAfee NetShield и возможно другие антивирусники.
А что со стандартным набором сервисов21.07.03 16:00 Автор: DgtlScrm Статус: Member
> Кто-то знает существует ли сообщение Windows > (SendMessage...), один из параметров которого - ФАЙЛ! > Условие: приложение получившее сообщение, должно попытатся > открыть этот файл! > > Нужно, и даже очень! как я понимаю хошь заюзать пресловтую дыру в виндах и заставить запустить прогу от продвинутого процесса. начнем с того что стандартных месаг таких нету. во вторых даже если ты найдешь такую мессагу юзающуюся как custom как ты собираешься передавать ФАЙЛ в приложение? Tckb в lParam указатель на его имя - а фиг тебе. это уже будет не твой процесс и не твое адресное пространство. В лучшем случае тот процесс упадет если нету обработки исключений. Чтоб передать строку придется использовать VirtualAllocEx\WriteProcessMemory а если процесс тот не твой ниче не выйдет. Аналогично передача хэндла файла- твой хэндл совершенно нерабоспособен в чужом процессе. Надо делать DuplicateHandle а она в свою очередь потребует хэндл чужого процесса Ж).
ЗЫ а хотя всегда есть дыры ;)
а ты как думал?19.07.03 22:36 Автор: DgtlScrm Статус: Member Отредактировано 19.07.03 22:52 Количество правок: 2
> > как я понимаю хошь заюзать пресловтую дыру в виндах и > > заставить запустить прогу от продвинутого процесса. > > ты меня раскусил =) > > > ЗЫ а хотя всегда есть дыры ;) > > на это я и расщитываю... > > есть функция SetWindowProperty, или как-то так... с ее > помощью, можно загнать строку в адресное пространство > чужого приложения... При помощи WM_SETTEXT (функция SetWindowText) или EM_SETTEXTEX. Но никогда точно не известно куда именно попадет эта строка.
А вообще при помощи "пресловутой дыры" можно засунуть в процесс шеллкод, а он может принять по любому из IPC (например шаровая память, или именованный канал) имя файла.
Мы говорим о разныж дырах(мне кажется)20.07.03 02:23 Автор: DgtlScrm Статус: Member
Имееется ввиду использование уязвимости именных каналов, а не атаки класа shatter, как многие могли подумать. Я могу получить права системы если системный процесс попробует обратится к моему файлу(читать как именному каналу =) ).
Нужно найти способ заставить его это сделать...
А, ImpersonateNamedPipeClient()… Прикольно. Есть, кстати, DdeImpersonateClient(), тоже весело. Надо думать. ;-)20.07.03 18:56 Автор: HandleX <Александр М.> Статус: The Elderman