Мы обра­тили вни­мание на при­выч­ную всем фун­кцию пред­прос­мотра окон в Windows. Превью может хра­нить пос­леднее видимое сос­тояние окна, даже ког­да само при­ложе­ние заб­локиро­вано или спря­тало содер­жимое. Это может быть каналом утеч­ки дан­ных, и сегод­ня пос­мотрим, как его экс­плу­ати­ровать.

Ког­да ты наводишь мышь на панель задач, ты видишь малень­кое изоб­ражение окна.

Превью приложения на панели задач
Превью при­ложе­ния на панели задач

Нас заин­тересо­вало, что превью ста­тич­но: по сути, это скрин­шот при­ложе­ния, который не обновля­ется до тех пор, пока мы не перек­лючим­ся в прог­рамму.

Мы, как безопас­ники, час­то име­ем дело с при­ложе­ниями, где есть тайм‑аут и защита паролем, нап­ример OneNote, KeePass, бра­узе­ры, уда­лен­ные сес­сии и про­чее в таком духе. Давай пос­мотрим, как это мож­но исполь­зовать. Заод­но прой­дем­ся по дру­гим слу­чаям, в которых получить­ся при­менить воз­можнос­ти «гра­фичес­кого» наб­людения и не толь­ко. Так что начинай готовить свой банано­вый раф на кокосо­вом — будет инте­рес­но.

 

Что такое DWM

DWM (Desktop Window Manager, дис­петчер окон рабоче­го сто­ла) — тех­нология, появив­шаяся еще во вре­мена Windows Vista. Она пред­назна­чена для гла­мур­ного отоб­ражения эски­зов при­ложе­ний. В Windows 11 она тоже есть.

Ты можешь уви­деть эти эски­зы при нажатии сочета­ний кла­виш Alt-Tab или Win-Tab.

Превью приложений Windows
Превью при­ложе­ний Windows

DWM работа­ет с живым пред­став­лени­ем окна, но это пред­став­ление может ока­зать­ся неак­туаль­ным, если при­ложе­ние не перери­сова­ло содер­жимое или ушло в бло­киров­ку осо­бым обра­зом. Тог­да превью показы­вает пос­леднее сос­тояние откры­того при­ложе­ния.

Ес­ли не откры­вать окно (это при­ведет к обновле­нию эски­за), мож­но обра­тить­ся нап­рямую к кар­тинке и под­смот­реть, что про­исхо­дило в при­ложе­нии. В некото­рых вер­сиях Windows, если навес­ти мышь на эскиз, он пол­ностью раз­ворачи­вает­ся, но не тро­гает при­ложе­ние. Дру­гими сло­вами, ты бук­валь­но смот­ришь в прош­лое.

Ста­ло жут­ко инте­рес­но — а как его вытащить‑то? На пер­вом эта­пе вооб­ще иска­ли скрин­шоты в памяти, но потом сда­лись и осме­лились погуг­лить...

warning

Статья пред­назна­чена для озна­ком­ления и рас­счи­тана на спе­циалис­тов по безопас­ности, которые про­водят тес­тирова­ние по кон­трак­ту. Автор и редак­ция не несут ответс­твен­ности за вред, при­чинен­ный с исполь­зовани­ем при­веден­ной информа­ции. Рас­простра­нение вре­донос­ных прог­рамм, наруше­ние работы сис­тем и тай­ны перепис­ки прес­леду­ются по закону.

 

Пишем кастомное приложение

Пос­коль­ку речь идет о вин­де, про­ще все­го доб­рать­ся до этих превью через .NET. Напишем минима­лис­тичное при­ложе­ние, которое будет исполь­зовать фун­кции DWM, под­клю­чать­ся к окнам и бук­валь­но стри­мить эски­зы... ради науки, разуме­ется!

На­рису­ем прос­тей­шую фор­му, в которой будет выпада­ющий спи­сок для выбора активных окон, мес­то для превью и пол­зунок для нас­трой­ки проз­рачнос­ти. Так­же добавим кноп­ку для обновле­ния спис­ка активных окон. Все‑таки мы тут рису­ем PoC, а не пол­ноцен­ный хакер­ский модуль.

Заготовка лучшего решения всех времен и народов
За­готов­ка луч­шего решения всех вре­мен и народов

Те­перь напишем неболь­шой код. По сути, нам не нуж­ны никакие допол­нитель­ные биб­лиоте­ки — все уже есть в сис­теме. Нам понадо­бят­ся фун­кции все­го двух сис­темных биб­лиотек: user32.dll и dwmapi.dll. Пер­вая нуж­на, что­бы по­лучать спи­сок откры­тых окон и их заголов­ки, а вто­рая — это интерфейс для работы с DWM.

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии