информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Spanning Tree Protocol: недокументированное применениеАтака на InternetЗа кого нас держат?
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Google заблокировала 2 с лишним... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[Win32 hack] Отлично! Радуйся :) 24.08.02 00:27  Число просмотров: 3331
Автор: Biasha <Бяша> Статус: Member
<"чистая" ссылка>
> Идея с AllocConsole рулит. Я думаю, можно ее немного
> развить:
> 1. Находим сервис с окном в нашем десктопе.
> 2. Делаем у него консоль (если ВДРУГ есть, то сначала, для
> профилактики, FreeConsole).

Да, я так сначала и дела, но, что интересно, всё работает и без FreeConsole. Странно, ведь консоль у сервиса обычно бывает (мало того, я тестировал на своём сервисе, который точно является консольным приложением), только не ясно, где же она...
Но это и не так уж важно.

> 3. Узнаем hwnd окна консоли и шлем ему WM_SETTEXT с
> заголовком - нашим эксплоитом (нулей быть не должно).

Я так пробовал, очень возможно я в чём-то ошибся (почти точно), но не получилось.
Наверное, нужно было ещё в oem перевести.

> 4. Делаем какому-либо окну сервиса GetConsoleTitle
> (WM_TIMER'ом) - два параметра, первый - адрес буфера,
> второй - длина (как раз WM_TIMER=113h)
> 5. На хэндл окна, которому делали этот WM_TIMER опять
> делаем WM_TIMER (штоб код исполнился).
>
> Минусы очевидны:
> - не всегда по адресу = хэндлу есть хорошая память ;)

Мне сейчас кажется, даже, что это скорее исключение, когда она там есть.

> - иногда процесс снимается после писания в эту память (или
> из-за дисбаланса стека, кто его знает).
>
> Плюсы тоже ничего - бомбить никого не надо.
>
> > > Кстати, To90210: HWND не есть валидный указатель.
> > > У
> > > меня
> > > они обычно в стек попадают.
> Чей?

Не знаю чей. Для Winlogon: зарезервирован интервал, посередине Guard Page, и что меня удивило, по обе стороны от него память выделена (а не просто зарезервирована снизу). hWnd попадал в нижние (меньшие) адреса – туда, куда стек ещё не дошёл.

> >
> > Дык, ИМХО, хэндл - это смещение в таблице указателей
> > на
> > структуры, содержащие информацию?
> hwnd - это песня другая. Это же не объект ядра и т.п. вещь.
> Те структуры, о которых ты говоришь, живут в твоем
> контексте (поэтому не валидны в других).
> Да и hwnd бывают довольно большие (числа то есть) - что ж
> это за индексы? ;)

Да, я тоже думаю, что это не смещение в таблице.
Впрочем, это тоже не важно. Главное что они не указывают на структуру. А значит, память под ними не пригодна для использования. А значит, нет никакого смысла передавать их первым параметром в какие либо функции.


А я у csrss окно нашёл :)
Правда, не ясно, что с его и Winlogon'овским окнами делать. Какие-то они не такие. Наверное, таки напишу прогу, которая нормально выдаёт инфу про владельцев окон, может виднее станет...
<programming> Поиск 






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach