Наши продукты

Все продукты →
  • Подписка на «Хакер»

    Все статьи, архив, PDF выпуски и бонусы при покупке товаров

    6000₽ в год

    Подписаться
  • Предзаказ четвертого печатного выпуска «Хакера»

    лучшее август..ноябрь 2026

    2000₽

    Заказать
  • Третий печатный выпуск «Хакера»

    лучшие материалы мая..июля 2026

    2000₽

    Заказать
  • Печатный спецвыпуск №4.

    Лучшие материалы 2021-2022 годов

    2000₽

    Заказать
В юнос­ти мы час­то уго­рали по при­колю­хе Canarytokens: ука­зыва­ешь поч­ту, ска­чива­ешь файл DOCX, XLSX или PDF, чуть пра­вишь, отправ­ляешь дру­гу — и вычис­ляешь его по IP-адре­су. Сегод­ня пос­мотрим на этот древ­ний трюк с про­фес­сиональ­ной точ­ки зре­ния.

Рань­ше на получе­нии IP такие игры и закан­чивались. Но что, если нуж­но делать это мас­сово и как‑то цен­тра­лизо­ван­но управлять про­цес­сом? А еще хотелось бы внед­рять свою «канарей­ку» в любой документ, а не толь­ко в пус­тую заготов­ку. В этой статье мы покажем, как сде­лать собс­твен­ный дви­жок для управле­ния «канарей­ками».

warning

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

 

О канарейках

Ес­ли сов­сем корот­ко: «канарей­ка» — это спо­соб зас­тавить объ­ект отсту­чать­ся наружу при обра­щении к нему. Чаще все­го для это­го исполь­зуют уни­каль­ный URL, заранее сге­нери­рован­ный для кон­крет­ного докумен­та. Зап­рос к нему поз­воля­ет зафик­сировать IP-адрес, User-Agent, GeoIP, реферер, парамет­ры устрой­ства и дру­гую телемет­рию.

Для докумен­та и при­ложе­ния, в котором ты его откры­ваешь, все выг­лядит как легитим­ная активность: ну тянет докумен­тик внеш­нюю кар­тинку — и пусть. Или дела­ет DNS-зап­рос — мы что, зве­ри, что­бы ему мешать? Час­то канарей­ки исполь­зуют проп­риетар­ные осо­бен­ности фор­матов и популяр­ных при­ложе­ний, нап­ример Microsoft Word, Microsoft Excel и прос­мот­рщи­ков PDF.

В сво­бод­ных офис­ных фор­матах — LibreOffice, OpenOffice, Apache OpenOffice и подоб­ных, а так­же в откры­ваш­ках PDF канарей­ки будут сра­баты­вать через раз, но чаще не будут. Но если средс­тво безопас­ности или песоч­ница вытащит URL из докумен­та и решит про­верить его активным зап­росом, канарей­ка опо­вес­тит нас: откры­тие было — зна­чит, все работа­ет.

Да­вай поп­робу­ем клас­сику. Заходим на сайт Canarytokens, выбира­ем Word, ука­зыва­ем поч­ту для алер­та и, если нуж­но, ком­мента­рий, а затем ска­чива­ем сге­нери­рован­ный файл. Так же сде­лаем для PDF.

Заполняем непростую анкету
За­пол­няем неп­ростую анке­ту

От­крой любой документ в Microsoft Office — толь­ко сна­чала вый­ди из защищен­ного прос­мотра и вклю­чи режим редак­тирова­ния — или закинь PDF в ста­рень­кий Adobe Acrobat Reader. При откры­тии докумен­та при­летит «пись­мо счастья».

Нас заметили
Нас замети­ли

Но если открыть файл в дру­гих редак­торах — нап­ример, в EZViewer или прос­то в бра­узе­ре — либо в све­жих вер­сиях Adobe Acrobat, уве­дом­ление не при­дет. Или, сла­ва богам безопас­ности, появит­ся зап­рос‑пре­дуп­режде­ние.

Алярма. Конечно, доверяю!
Аляр­ма. Конеч­но, доверяю!

Ми­ни‑офтоп. В кор­поратив­ной сре­де мож­но добавить сай­ты, которые ловят канарей­ки, в спи­сок доверен­ных — тог­да пре­дуп­режде­ние о соеди­нении не появит­ся. Нап­ример, в Adobe Acrobat это нас­тра­ивает­ся в парамет­рах прог­раммы или в реес­тре:

HKEY_CURRENT_USER\Software\Adobe\Adobe Acrobat\DC\TrustManager\cTrustedSites\cAlwaysTrustedForJavaScript
Acrobat URL Fix
Acrobat URL Fix

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

 

Канарейки в PDF

 

Анализ PDF-объектов

Да­вай крат­ко ос­вежим в памяти струк­туру фай­ла PDF. Как ты зна­ешь, прос­то открыть PDF в обыч­ном тек­сто­вом редак­торе и поп­равить содер­жимое не вый­дет.

PDF сос­тоит из мно­жес­тва хит­ро переп­летен­ных объ­ектов. Даже что­бы прос­то най­ти текст в сыром PDF-фай­ле, при­ходит­ся про­вали­вать­ся внутрь объ­ектов и декоди­ровать их.

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

Декод объектов PDF — канарейка найдена
Де­код объ­ектов PDF — канарей­ка най­дена

Ес­ли работа­ешь в сво­ей инфраструк­туре, про­ще и безопас­нее взять готовые ути­литы — их пол­но: есть ог­ромный спи­сок на GitHub, pdfxplr для быс­тро­го поис­ка полез­ной инфы вро­де URL, email и IP-адре­сов, а еще PDForensic — прав­да, на ряде докумен­тов он у нас работал не очень.

Пример анализа PDF через pdfxplr
При­мер ана­лиза PDF через pdfxplr

Ка­залось бы, почему прос­то не взять откры­тые шаб­лоны и код и не вко­рячить их в свои ИТ‑решения? Потому что такой путь усложня­ет работу с уже сущес­тву­ющи­ми фай­лами — нап­ример, их мар­киров­ку. А нам нуж­на уни­вер­саль­ность: хотим дос­тавлять свою канарей­ку в каж­дый дом.

Для поис­ка дефол­тных канаре­ек тоже есть готовые решения — нап­ример, одно опи­сано в бло­ге Adam on Security.

 

Практика

Сра­зу ска­жем: эта статья не выш­ла бы без PoC и огромной работы кам­рада aaaaaaaalesha. Он иссле­довал и реали­зовал спо­собы внед­рять канаре­ек в любое мес­то докумен­та — за это ему отдель­ное спа­сибо.

Сра­бота­ем на опе­реже­ние: сна­чала напишем прос­тей­ший сер­вер, который будет слу­шать при­лета­ющих канаре­ек. Возь­мем Python и пос­тавим Flask коман­дой pip3 install flask. Соз­дай каталог templates и положи в него белую кар­тинку раз­мером 1 × 1 пик­сель — pic.jpg. Фор­мат можешь выб­рать любой: GIF, PNG или какой тебе нра­вит­ся.

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

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

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

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

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

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

    Подписаться

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