Хабрахабр

[Перевод] Конференция DEFCON 27. Извлечение пользы из хакерских продуктов для macOS. Часть 1

Всякий раз, когда обнаруживается новый образец вредоносного ПО для macOS, он предоставляет нам возможность оценить новые возможности взлома, которые можно использовать с пользой для себя. Брифинг выступления. Я имею в виду то, что жизнь коротка, зачем же тратить её на написание собственного вредоносного ПО?

Затем мы пройдем через вепонизацию различных образцов вредоносных программ для macOS, включая интерактивный бэкдор, имплантат для эксфильтрации файлов, вымогателей и да, даже рекламное ПО. Мы начнем этот разговор с обсуждения методологии приспособления для «личного использования» существующих вредоносных программ, подчеркивая как недостатки, так и преимущества такого подхода. Наши настройки включают в себя различные бинарные модификации среды выполнения, которые заставляют эти вредоносные программы принимать задачи от наших собственных серверов C&C и/или автоматически выполнять действия от нашего имени.

Поэтому мы рассмотрим модификации, которые обеспечат незаметность наших «хакерских» инструментов для традиционных антивирусных программ. Конечно, сейчас в своем первозданном состоянии эти образцы обнаруживаются антивирусными продуктами.

Зачем это нужно? В заключение мы рассмотрим новые эвристические методы, которые все же смогут обнаруживать такие угрозы, чтобы обеспечить защиту пользователей Mac даже от таких модифицированных угроз. Потому что это нормальный цикл развития человечества, и мы просто не осознаем, что видимое нами разрушение означает внедрение новой технологии, которая, прежде чем создать новые рабочие места, уничтожает старые.

Приветствую всех, сегодня мы обсудим тему создания «оружия массового поражения» на основе продуктов для взлома macOS. Меня зовут Патрик, я аналитик компании Synack, сотрудник Digital Security и также являюсь создателем веб-сайта безопасности Mac и набора бесплатных инструментов защиты Objective-See для macOS.

Затем я покажу, как именно переделываются различные образцы вредоносного ПО для Mac, и поскольку мы хотим, чтобы наши эксплойты оставались незаметными как для встроенных антивирусных сервисов Apple, так и для антивирусного ПО сторонних разработчиков. Мы будем говорить о переделывании чужих вредоносных программ для своих собственных тайных целей и я расскажу, почему это является отличной идеей. В конце мы рассмотрим различные общие методики обнаружения этого переделанного программного продукта, потому что на самом деле наша конечная цель состоит в том, чтобы убедится, что пользователи Mac остаются защищенными от подобных угроз.

Начнем со схемы, которая концептуально объясняет процесс перепрофилирования вредоносного ПО для собственных нужд.

Хакеру В удалось разжиться этим вредоносным ПО случайно или же путем извлечения его из какой-то зараженной системы. Представьте себе, что хакер А тщательно разработал сложное полнофункциональное вредоносное ПО и заразил им различные компьютерные системы по всему миру. Когда мы говорим о перепрофилировании, то имеем ввиду переделку или перенастройку части существующего вредоносного ПО под свои потребности. Этот хакер помещает образец данного продукта в свою лабораторию и перепрофилирует.

Это достаточно разумная идея. На слайде показано, что после переделки хакер В может использовать это ПО против новых целей, против другой инфраструктуры, нежели та, для которой её разрабатывал хакер А. Вы можете спросить, зачем это нужно, а мы можем назвать как минимум две причины, почему этим стоит заниматься.

К тому же это полнофункциональное ПО неоднократно испытано в полевых условиях. Во-первых, существуют хорошо финансируемые организации, отлично мотивированные и технически вооруженные группы, хакеры, работающие на правительственные агентства типа CIA и целые научные лаборатории, разрабатывающие невероятно вредоносное ПО.

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

Вы можете спросить: «ОК, Патрик, если это такая классная идея, почему люди до сих пор этим не занялись»? Во-вторых, если наши переделанные программы кто-то обнаружит, их авторство все равно припишут оригинальным разработчикам, а не нам, и это очень хорошо. Я не могу конкретно что-либо комментировать, но попавшие в открытый доступ слайды демонстрируют, что NSA использовало перепрофилирование вредоносного ПО с целью тестирования уязвимостей популярных антивирусных программ. Отвечу: «Они этим занимаются»! «Нью-Йорк Таймс» сообщала, что подобную методику также используют китайские хакеры.

Во-первых, они без особого риска используют шпионское ПО, разработанное в других странах против целей, над которыми уже «работает» другое агентство, другая страна или APT-группа, занимающаяся кибершпионажем. Использование переделанного хакерского ПО предоставляет этим хорошо обеспеченным агентствам двойное преимущество. При этом ваша деятельность останется в тайне, так как уже есть те, кого в этом заподозрят в первую очередь. Например, если вы работаете в NSA и собираетесь взломать объект, которым уже занимаются другие хакеры, но не хотите внедрять туда свой собственный код, то спокойно можете использовать переделанное чужое ПО.

Конечно, с переделкой хакерских программ возникают проблемы, о которых мы сегодня поговорим. Поскольку такие агентства предпочитают работать тайно, они не заинтересованы в том, чтобы кто-то узнал об их участии в подобных делах, и переделанное ПО этому способствует.

Предположим, мы завладели куском чужого вредоносного ПО для переделки. Но мы увидим, что эти проблемы не являются непреодолимыми. Я называю это стадией анализа, когда мы пытаемся понять, что делает это ПО, как оно реализуется, как устанавливается, какими возможностями обладает и, конечно же, мы выясняем, с каким C&C сервером оно общается. Во-первых, у нас нет исходного кода, имеется только образец двоичного кода, поэтому придется использовать реверс-инжиниринг.

Поскольку у нас нет исходника, мы разрабатываем патчинг на бинарном уровне. После того, как мы со всем этим разберемся, начинается второй этап – выяснение, как же можно пропатчить это вредоносное ПО.

Только после этого можно создать свой C&C-сервер, на котором развернется переделанное ПО, чтобы оттуда взаимодействовать с новой инфицированной системой. Так как это ПО в большинстве случаев взаимодействует с собственным сервером C&C, мы выясняем, каким образом оно узнает, где взять адрес этого сервера и какой протокол используется для обмена данными.

Поэтому на завершающей стадии перепрофилирования мы должны придумать, как предупредить обнаружение переделанного ПО. Поскольку мы используем хорошо известное вредоносное ПО, у систем безопасности Apple или других антивирусов, скорое всего, имеются сигнатуры этой угрозы.

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

В процессе патчинга мы забыли изменить адрес резервного копирования на хакерский C&C-сервер. Приведу пример, как мы пытались переделать отрывок вредоносного ПО для macOS. Поэтому к переделке чужого ПО нужно подходить очень тщательно. Мы были уверены, что применяем полностью переделанную часть malware, однако в какой-то момент отослали бэкап на оригинальный хакерский сервер, предоставив ему доступ к атакуемой нами инфраструктуре.

Теперь давайте поговорим конкретно о переделке malware для Mac, цель которой состоит в том, чтобы сделать своим чужое хакерское ПО.

Первый – выяснение того, что это malware должно дать вам понимание, нужен ли вам интерактивный бэкдор, или криптомайнер и т.д. Первый шаг заключается в выборе образца вредоносного ПО для переделки на основе 2-х критериев.

На сайте objective-see.com мы собрали впечатляющую коллекцию malware для macOS. Возможно, для вас имеет значения атрибуция шпионского ПО – будет ли оно приписано CIA или русским хакерам. Все образцы переделанного ПО, о котором мы будем сегодня говорить, можно загрузить с этого сайта.

Его основная цель – выяснить такие вещи, как возможность удаленного доступа. Как только вы выбрали образец для переделки, наступает время анализа. Если malware обращается к удаленному C&C-серверу, нужно выяснить, что это за сервер и имеется ли возможность модифицировать ПО так, чтобы он потом не смог к нам обращаться.

И конечно, вы должны полностью понимать возможности этого malware – как оно работает, как взаимодействует с системой, в том числе удаленно, чтобы знать, какие команды сможете использовать для дистанционного управления вредоносным ПО. Если вредоносное ПО не общается с удаленным сервером, нам все равно нужно разобраться с протоколом, чтобы знать, чем можно озадачить эту программу, когда она снова с нами соединится.

Обычно это означает, что вы должны пропатчить malware на бинарном уровне. Как только вы со всем этим разобрались, наступает время перенастройки или перепрофилирования.

Это означает, что после переделки это ПО сможет связываться с нашим собственным сервером и получать оттуда задачи. На этом слайде показано, что мы нашли встроенный в код адрес оригинального C&C-сервера и можем в HEX-редакторе заменить его нужным нам адресом.

Как я уже говорил, если вредоносное ПО является бэкдором или имплантом и управляется с оригинального C&C-сервера, то нам придется написать свой собственный управляющий сервер и убедиться, что программа уверенно регистрируется и подключается к нему так, что мы сможем удаленно пользоваться всеми её возможностями.

На предыдущем DefCon говорилось, как создать один из таких C&C-серверов для анализа образцов ПО. Кастомный C&C — сервер не должен быть слишком сложным, достаточно написать грамотный Python-скрипт, но если вы планируете использовать свое ПО против множества целей, вам может понадобиться что-то более серьезное. Вероятно, что каждый из образцов, который вы станете анализировать, будет отличаться от других использованием другого протокола, следовательно, вам понадобиться отдельный C&C-сервер для каждого из образцов переделываемого ПО.

Переделка бэкдора FruitFly

Давайте рассмотрим реальный образец переделки вредоносного ПО для Mac. Этот бэкдор, созданный около 15 лет назад, который совсем недавно обнаружили эксперты безопасности Mac, получил название FruitFly, или «Плодовая мушка».

Он обладает возможностями инфицирования файлов и системных процессов, управления веб-камерой, командной строкой, служит кейлоггером, может удаленно делать скриншоты рабочего стола жертвы и собирать информацию о зараженных компьютерах под управлением macOS. Это полнофункциональный бэкдор, поддерживающий удаленную мультизадачность, послужил для нас идеальным кандидатом на перепрофилирование. Все эти функции мы намеревались использовать для решения своих собственных задач.

Можно сказать, что этот скрипт проверяет, не заставляют ли его что-либо сделать определенные параметры командной строки или флаги. Бэкдор FruitFly представлял собой сильно запутанный скрипт на Perl, но если посмотреть на него внимательно, видно, что его логика
 обрабатывает аргументы командной строки.

Это означает, что если мы через командную строку сможем создать направление на свой собственный сервер, то нам не потребуется переделывать оригинальный скрипт Perl или вредоносный бинарник. Оказывается, что он ищет порт или комбинацию портов для соединения вашего компьютера со своим C&C-сервером.

Как показано на слайде, мы можем встроить в него адрес нашего собственного C&C-сервера. Мы стали разбираться, можно ли сохранить этот скрипт FruitFly в качестве лаунчера. Это значит, что мы элементарно можем перепрофилировать этот бэкдор для соединения с нашим сервером, минуя коннект с оригинальным хакерским сервером.

Хорошей новостью является то, что я уже написал такой установщик, который доступен на pastebin.com. Однако для использования этого бэкдора его необходимо установить на компьютер пользователя. Поскольку я также предварительно написал C&C-сервер для анализа данного образца, мы можем приступить к наглядной демонстрации его работы. Он представляет собой несколько строчек кода, которые устанавливают вредоносное ПО точно таким же способом, каким устанавливается оригинальный бэкдор.

Повторюсь – я намерен показать вам всю мощь переделанного malware, а демонстрация в реальных условиях вызывает больше доверия, так что давайте посмотрим на это ПО в действии на реальном «железе». Подобные демонстрации в режиме реального времени — это всегда риск, так что я собираюсь запустить это вредоносное ПО на своем собственном исследовательском ноутбуке, а не на виртуальной машине.

Вы видите, что сейчас система ожидает соединения с ним. Первое, что нужно сделать – это запустить C&C-сервер. После запуска мы видим в правой части окна, что malware успешно подсоединилось к нашему C&C-серверу. Затем нужно запустить malware через установщик, передав ему IP-адрес этого сервера. Мы также видим целую кучу хакерских задач, которые это вредоносное ПО может использовать против процессов, запущенных на моем персональном ноутбуке.

C помощью команды №2 можно сделать снимок экрана, причем использование параметра 0 позволяет сделать полноэкранный скриншот. Выполнение команды №13 показывает, где установлено данное malware – в директории /Users/Patrick/fpsaud.

Как видите, все работает как нужно. Сейчас я попробую сделать скриншот и отправить его на наш C&C-сервер. Вот таким образом действует перепрофилированный бэкдор FruitFly.

Переделка майнера CreativeUpdate

Далее мы поговорим о переделке для своих целей майнера криптовалют CreativeUpdate. Он пригодится, если вы хотите использовать чужие компьютеры для криптомайнинга, но при этом не располагаете временем, навыками и ресурсами.

На слайде приведен пример установки браузера Firefox Quantum, который не имеет подписи оригинального разработчика Mozila и закачивает на компьютер пользователя криптомайнер с одного из серверов Adobe Creative Cloud. Этот криптомайнер встраивается в троянские программы и распространяется через популярные приложения сторонних разработчиков с сайта MacUpdate.com.

Если с помощью декомпилятора или дизассемблера взглянуть, что он делает, можно увидеть, что он просто исполняет файл под названием «скрипт» вне каталога ресурсов приложения. Если мы смонтируем образ инфицированного диска, содержащий такую троянскую программу, и применим реверс-инжиниринг к основному бинарнику, то обнаружим, что в нем используется метод под названием «execute script with prints» -«исполняющий скрипт с отпечатками». Сначала он запускает троянскую программу под видом копии популярного продукта, который пользователь скачал на свой компьютер, например, браузер Firefox, так что он не подозревает ничего плохого.

В процессе распаковки этот архив устанавливает в системе нечто под названием mdworker. Далее мы видим в этом скрипте, что он связывается с сервером злоумышленника, откуда загружает архив mdworker.zip. Если посмотреть на извлеченный из архива файл MacOS.plist, видно, что он сохраняет на компьютере пользователя этот самый вредоносный бинарник mdworker.

Если выполнить этот двоичный файл mdworker, то можно увидеть, что это вполне легальный майнер криптовалюты, принадлежащий майнинговой компании Miner Gate. Мы также видим аргументы командной строки, которые передаются этому бинарнику.

Аргументы командной строки также указывают на аккаунт майнера, на который будут отсылаться результаты майнинга и тип криптовалюты для майнинга.

Поэтому мы сначала модифицируем файл списка свойств property list, или .plist вредоносной программы так, чтобы он указывал на наш собственный майнерский аккаунт, и снова запаковываем все компоненты вредоносного ПО в архив. Так как соответствующие параметры передаются через командную строку, а не встраиваются в двоичный файл, мы, как и в случае с «Плодовой мушкой», можем подменить аргументы командной строки, чтобы перепрофилировать это вредоносное ПО для своих целей. Это гораздо проще и автономнее, так как нам не нужно настраивать удаленный сервер для загрузки. Далее вместо того, чтобы скачивать архив с сервера, мы просто добавляем его в приложение malware.

В завершение мы все перепаковываем в образ Firefox.dmg и можем приступать к работе. Далее мы перенастраиваем скрипт так, чтобы он работал с архивом, который мы добавили.

В окне с файлами вы видите компоненты приложения, включающие в себя вредоносный скрипт, архив mdworker.zip, файл настроек приложения AppSettings.plist и оригинальный браузер Firefox. Предлагаю вашему вниманию второе демо.

В главном окне мы видим то, как выглядит загруженный пользователем контент, который он собирается запустить.

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

Мы видим, как идет установка вредоносного ПО и выполнение скрипта mdworker, который мы переделали так, что все операции майнинга теперь адресуются мне на почту patrick@objective-see.com. Чтобы посмотреть, что в действительности происходит в системе после запуска этого приложения, я вызываю на экран окно терминала macOS.

Программа-вымогатель ransomware

Раз уж мы заговорили о том, как можно делать деньги, возможно, вы захотите использовать готовую программу-вымогатель ransomware, чтобы не тратить время на её разработку.

Это первый полнофункциональный вымогатель, используемый хакерами для компьютеров под управлением macOS. В качестве примера мы рассмотрим, как переделать приложение KeRanger. Пользователь заходит на сайт, скачивает этот клиент, и его компьютер становится зараженным. Они инфицируют этим вредоносным ПО популярный клиент для скачивания файлов Bit-Torrent, размещаемый на официальных веб-сайтах.

Он имеет расширение текстового файла, однако это не текст, а бинарный файл macOS. Двоичный код вируса показывает, что при заражении запускается файл под названием General.rtf. Несколько дней он пребывает в спящем состоянии, а затем подключается к хакерскому C&C-серверу за получением ключа шифрования и инструкции по дешифровке.

Это стандартный прием программ-вымогателей. Далее он зашифровывает этим ключом все содержимое компьютера жертвы, размещая на экране инструкцию, что должен сделать пользователь, чтобы «разморозить» свой Мак.

Во-первых, мы не хотели ждать три дня, пока он обратится к своему серверу и начнет шифровать файлы. Давайте поговорим о переделке этого ПО.

0. Как видно на слайде, адреса сервера встроены непосредственно в бинарник вымогателя, так что мы решили проникнуть с помощью HEX-редактора в код, пока приложение «спит», и заменить этот адрес адресом своего C&C-сервера, использовав для тестирования локальный хост 127. 1. 0. Поскольку приложению нужен ключ RSA и инструкции по дешифровке, мы взяли собственный публичный RSA-ключ и вместе с инструкциями упаковали его в текстовый файл, а затем создали свой сервер и организовали соединение с ним с помощью утилиты NetCat.

Вы видите демо, где показано, как работает перепрофилированный KeRanger. Все это довольно легко проделать. NetCat организовал соединение с нашим сервером, а не с оригинальным сервером хакера.

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

Если пользователь его откроет, то увидит мое сообщение: «Пришлите все свои деньги на адрес wardle@objective-see.com!». После завершения процесса шифрования на рабочем столе появляется текстовый файл с инструкциями по дешифровке README_FOR_DECRIPT.txt.

Переделка Windtall

Последним образец для переделки носит название Windtall. Это отличный бэкдор, относящийся к сложным постоянным угрозам, разработанный одной из киберпреступных APT-групп. Мы попробовали перепрофилировать и их эксплойт, и их собственный бэкдор для наших нужд.

Способ инфицирования операционной системы компьютера пользователя заключается в использовании обычных функций macOS, в частности, обработчиков URL-адресов. Одним из интереснейших свойств этой атаки является вектор инфицирования malware.

Когда загруженное на компьютер приложение сохраняется в файловой системе, еще до того, как его запустит пользователь, macOS проверяет его на предмет содержания обработчиков Custom URL, и если таковые имеются, система автоматически их регистрирует. В моем блоге детально описаны технические подробности этого процесса, а сейчас попытаюсь описать его в двух словах.

Как только такой обработчик или приложение будет зарегистрировано, вы можете, например, с веб-страницы обратиться к URL, который macOS тут же запустит.

Сначала закачивается вредоносное приложение, содержащее схему обработчика протокола URL, который регистрируется операционной системой Mac. Хакерский эксплойт написан на Java и состоит из двух частей. Затем используется вторая часть Java-скрипта, которая инициирует обращение к этому зарегистрированному обработчику URL, который и загружает вредоносное ПО.
Используя терминологию бэкдора, можно сказать, что у нас имеется полезная нагрузка эксплойта, содержащая элемент проникновения в систему, что позволяет сбор и исследование файлов пользователя.

Например, мы видим, как оно вызывает встроенную утилиту распаковки для сжатия файлов, которые этот эксплойт подготовил для извлечения с компьютера пользователя, а затем использует встроенный системный механизм для связи с C&C-сервером злоумышленника и передачи ему украденных файлов. Запустив монитор процессов, мы можем увидеть, как это вредоносное ПО инфицирует систему.

Если с мощью дизассемблера посмотреть на инфраструктуру политики отправителя SPF, видно, что он расшифровывает адреса некоторых встроенных C&C-серверов, затем инициирует запрос на получение имени загружаемого файла и, наконец, отсылает запрос на получение этого файла с хакерского C&C-сервера. Эксплойт также поддерживает функцию загрузки файлов.

24:00

Продолжение следует…

Немного рекламы 🙂

Спасибо, что остаётесь с нами. Вам нравятся наши статьи? Хотите видеть больше интересных материалов? Поддержите нас, оформив заказ или порекомендовав знакомым, облачные VPS для разработчиков от $4.99, 30% скидка для пользователей Хабра на уникальный аналог entry-level серверов, который был придуман нами для Вас: Вся правда о VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps от $20 или как правильно делить сервер? (доступны варианты с RAID1 и RAID10, до 24 ядер и до 40GB DDR4).

6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 ТВ от $199 в Нидерландах! Dell R730xd в 2 раза дешевле? Только у нас 2 х Intel TetraDeca-Core Xeon 2x E5-2697v3 2. 2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB — от $99! Читайте о том Как построить инфраструктуру корп. Dell R420 — 2x E5-2430 2. класса c применением серверов Dell R730xd Е5-2650 v4 стоимостью 9000 евро за копейки?

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть