Сейчас на форуме: bezumchik, tyns777, Lohmaty (+7 невидимых)

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

Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

Создано: 23 мая 2019 02:32 · Поправил: vden
· Личное сообщение · #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



Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

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

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

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

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

Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

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

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



Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

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

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



Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

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

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



Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

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

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




Ранг: 150.3 (ветеран), 175thx
Активность: 0.160.07
Статус: Участник

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

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

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

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

Ранг: 590.4 (!), 408thx
Активность: 0.360.18
Статус: Модератор

Создано: 23 мая 2019 09:17
· Личное сообщение · #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


Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

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

r_e

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

-----
vx





Ранг: 324.3 (мудрец), 222thx
Активность: 0.480.37
Статус: Участник

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

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

-----
IZ.RU




Ранг: 590.4 (!), 408thx
Активность: 0.360.18
Статус: Модератор

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

Нормальный вопрос. Мирный атом такой мирный.

-----
старый пень



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