eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 сентября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: Follower (+5 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Вопросы новичков —› Сделать скриншот под SYSTEM
Посл.ответ Сообщение

Ранг: 112.9 (ветеран)
Статус: Участник

Создано: 23 мая 2019 02:32 · Поправил: vden New!
Цитата · Личное сообщение · #1

Мой код работает под пользователем SYSTEM и делает снимок, вроде такого

https://github.com/rapid7/meterpreter/blob/master/source/screenshot/screenshot.c

т.е. вкратце
hWindowStation = OpenWindowStationA( "WinSta0", FALSE, WINSTA_ALL_ACCESS );
SetProcessWindowStation( hWindowStation );
hInputDesktop = OpenInputDesktop( 0, FALSE, MAXIMUM_ALLOWED );
SetThreadDesktop( hInputDesktop );
... и делает снимок

Сам снимок пока не вижу (там идет обработка, которая падает), но по разрешению видно что это не экран пользователя.

Вот текст из лога

17:22:31 SM_CXVIRTUALSCREEN = 1024
17:22:31 SM_CYVIRTUALSCREEN = 768
17:22:31 bmiHeader.biWidth = 1024
17:22:31 bmiHeader.biHeight = 768

а должно быть 1920 x 1080 у user-а

Видимо другая сессия (system).

Как правильно сделать снимок экрана user-a? win7, win10

Ранг: 142.2 (ветеран)
Статус: Участник

Создано: 23 мая 2019 02:46 New!
Цитата · Личное сообщение · #2

vden пишет:
Как правильно сделать снимок экрана user-a?

Запустить процесс в сессии юзера и уже из него делать скриншот. Службы начиная с висты живут в сессии 0, которая от гуя изолирована.

| Сообщение посчитали полезным: vden


Ранг: 112.9 (ветеран)
Статус: Участник

Создано: 23 мая 2019 02:48 New!
Цитата · Личное сообщение · #3

а без создания другого процесса можно?

Ранг: 142.2 (ветеран)
Статус: Участник

Создано: 23 мая 2019 02:49 New!
Цитата · Личное сообщение · #4

Ну, значит инжектом в существующий

Ранг: 112.9 (ветеран)
Статус: Участник

Создано: 23 мая 2019 02:49 · Поправил: vden New!
Цитата · Личное сообщение · #5

А не поможет имперсонация, вроде ImpersonateLoggedOnUser?
Чтобы, например, запустить поток, который делает снимки от имени другого пользователя, но в моем процессе.

Ранг: 142.2 (ветеран)
Статус: Участник

Создано: 23 мая 2019 02:56 New!
Цитата · Личное сообщение · #6

Вряд ли. Проблема не в правах доступа, а в изоляции твоего процесса от всего юзерского.


Ранг: 149.4 (ветеран)
Статус: Участник

Создано: 23 мая 2019 08:25 New!
Цитата · Личное сообщение · #7

В виндах иерархия идёт сессия-станции-десктопы-окна
Юзеров может быть несколько, и сессия для каждого своя.
Приложения, соответственно, присоединяются к сессии запустившего их юзера, и после запуска уже нет способа переключить сессию - это основа безопасности.
Все они изолированы друг от друга по максимуму, никаких документированых АПИ вы не найдете.

Я не проверял, возможно есть вариант создать локальное рдп подключение, но юзер должен будет согласиться на это.

| Сообщение посчитали полезным: vden


Ранг: 573.6 (!)
Статус: Модератор

Создано: 23 мая 2019 09:17 New!
Цитата · Личное сообщение · #8

Ну пару линков с ходу гуглится.
https://brianbondy.com/blog/100/understanding-windows-at-a-deeper-level-sessions-window-stations-and-desktops
https://docs.microsoft.com/en-us/windows/desktop/api/processthreadsapi/nf-processthreadsapi-createprocessasusera
https://docs.microsoft.com/en-us/previous-versions//aa379608(v=vs.85)

Вобщем, идея со стартом процесса под другим юзером, который сделает скрин и по пайпу (например) зашлет его твоему основному сервису.

| Сообщение посчитали полезным: vden, difexacaw



Ранг: 303.6 (мудрец)
Статус: Участник

Создано: 23 мая 2019 22:30 · Поправил: difexacaw New!
Цитата · Личное сообщение · #9

r_e

По вашему норм вопрос ?
Начнём со снятия скринов, а потом плавно перейдём и к OP-инжектам, это неизбежно и суть этой темы. Как процессы создавать уже научили.)


Ранг: 298.4 (наставник)
Статус: Участник

Создано: 23 мая 2019 23:58 · Поправил: DenCoder New!
Цитата · Личное сообщение · #10

difexacaw, ладно, не умничай )
Всё знать невозможно. Ты спец в драйверах и графах. А свёртку удобнее назад выполнять )

Ранг: 573.6 (!)
Статус: Модератор

Создано: 24 мая 2019 12:03 New!
Цитата · Личное сообщение · #11

Нормальный вопрос. Мирный атом такой мирный.
 eXeL@B —› Вопросы новичков —› Сделать скриншот под SYSTEM
Эта тема закрыта. Ответы больше не принимаются.

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS