Многие форматы файлов, помимо представления контента, например, JPEG, показывающий сделанную фотографию, могут содержать метаданные. Эта скрытая информация может быть бесценной при расследованиях OSINT и тестах на проникновение. Давайте рассмотрим несколько случаев и инструментов, полезных для извлечения этой кажущейся скрытой информации.
Отсутствие очистки метаданных из фотографий
Времена, когда известные социальные сети не очищали метаданные из фотографий пользователей, опубликованных в профилях, уже прошли. Извлечение не удаленных GPS-координат могло бы стать серьезным нарушением конфиденциальности, например, путем раскрытия домашнего адреса пользователя. Хотя социальные сети сейчас удаляют метаданные из фотографий, многие приложения другого характера часто этого не делают. Важно обратить внимание на этот аспект во время тестов, чтобы защитить пользователей тестируемого программного обеспечения от ситуаций, подобных той, что произошла с немецкой телевизионной журналисткой. Она разместила в интернете такую фотографию:
Любопытные интернет-пользователи скачали эту фотографию и проверили её метаданные. Помимо классической информации, оказалось, что она содержит нечто большее. При вырезании указанного кадра графическая программа сохранила оригинал фотографии в виде миниатюры, показывающей более широкий кадр, что раскрывало слишком много информации.
FOCA — Массовое обнаружение метаданных в документах
Извлечение GPS-координат или скрытых миниатюр из фотографии является «лишь» нарушением конфиденциальности. Однако, проверяя документы на наличие метаданных, мы можем обнаружить информацию, которая может существенно помочь нам в тестах на проникновение. Ручной поиск таких файлов и их просмотр может занять много времени. Инструмент FOCA (Fingerprinting Organizations with Collected Archives) автоматизирует этот процесс. Для указанного домена FOCA ищет такие документы, как Microsoft Office, Open Office или PDF, а затем извлекает из них метаданные.
Метаданные самих документов могут содержать логины пользователей, которые создали этот документ. Эта информация может быть использована для попыток войти в тестируемое приложение с учетной записью этого пользователя.
Другие важные данные, которые можно там найти, это информация о программном обеспечении, использованном для создания файла, вместе с его версией. Может оказаться, что выявленное программное обеспечение уязвимо для какого-то вида атаки, и достаточно использовать готовый эксплойт для дальнейшего проникновения в систему.
Помимо информации о программном обеспечении, иногда документы также оставляют аннотации о версии операционной системы. Такое упоминание также значительно упрощает тесты на проникновение. Ведь теперь мы знаем, под какую систему компилировать наш кусок вредоносного кода.
Еще одна интересная вещь, которая может быть найдена в метаданных документов, это информация о сетевом местоположении принтеров. Это может помочь атакующему в картировании сетевой инфраструктуры и атаке на сами принтеры.
Инструмент доступен на GitHub — https://github.com/ElevenPaths/FOCA
ExifTool Scanner — автоматизация при проведении тестов на проникновение
В то время как ранее обсуждавшийся инструмент работает как автономный сканер документов, ищущий уже проиндексированные поисковыми системами документы, он не поможет нам в ручной разведке. В конце концов, документы часто создаются по запросу в виде одноразового доступа к скачиванию. Здесь на помощь приходит плагин Burp Suite под названием ExifTool Scanner. Он будет пассивно мониторить трафик на предмет появления файлов с метаданными и извлекать для нас полезную информацию. В одном из аудитов тестируемое приложение оставило информацию об инструменте, динамически генерирующем PDF, и версии системы, на которой оно работало.
Инструмент доступен в BApp Store и на GitHub — https://github.com/portswigger/exiftool-scanner
Забавно — удаление метаданных может быть опасным
В 2021 году GitLab заплатил 20 000 долларов за обнаружение бага, который вследствие удаления метаданных привел к удаленному выполнению кода на сервере. Достаточно было поместить следующий код в метаданные изображения:
(metadata
(Copyright "\
" . qx{echo vakzz >/tmp/vakzz} . \
" b ") )
Уязвимая версия ExifTool выполняет проверку в строке 31 exiftool/lib/Image/ExifTool/DjVu.pm, которая отвечает за удаление атрибутов, использующих $ (переменные Perl) или @ (массивы Perl), чтобы обеспечить безопасность. Это делается потому, что этот контент затем используется в функции eval [9] в строке 34, которая выполняет содержимое как код. Чтобы вызвать уязвимую функцию, необходимо создать правильный файл DjVu с аннотацией, содержащей полезную нагрузку, которая будет выполнена функцией eval как код Perl.
Больше о этой уязвимости можно прочитать здесь: A Case Study on CVE-2021-22204: ExifTool RCE.