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

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

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

tvrl4ea4ei1bog3dekukhvmico8.jpeg

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

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


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

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

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

ar0hqqjxnmmdzvxhgdyo22--8bc.jpeg

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

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

je92arzrz5ywc4c2ehpl1yijpci.jpeg

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

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

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

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

yiv2golydkeg9sy7da-izvcobzq.jpeg

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

bi81enenfuz14twl3sjbqwh2qwe.jpeg

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

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

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

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

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

dwpmvfoigcizeeajk4o828oppo4.jpeg

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

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

8pavzimr-jwncqt12sypeb-vbeg.jpeg

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

oqkor0zgt6egkpgqcg0heexqbx4.jpeg

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

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

el19ozfoidikywbelmn87bjzbao.jpeg

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

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

op2bamloaosdoqg6wkhjbv-sik0.jpeg

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

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

kfi9cnlonrkb7gwzsdwrtprreta.jpeg

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

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


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

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

q2igbv8bxidoucqh398afrut0w4.jpeg

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

m_jchouqkbuxw5dh0zi7rafbayg.jpeg

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

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

8k9khcoxopqticqaojsmrgwdhig.jpeg

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

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

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

vln0lwtlwelhpdr3y1v8zfasxkk.jpeg

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

mppc3blujqwwj7mbaey7s33fvpg.jpeg

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

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


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

jgwulpzh_d6c6qfz2fg597-cdrw.jpeg

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

9aruanbz7pv85jg0irp7mgfjzb0.jpeg

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

yrie2eidsplxe3up0v9cb5nyy9o.jpeg

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

rxi6uqgxuqtjbqcq5inuwtjuzag.jpeg

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

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

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

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

xbhlc73ts2ofwqfcdl0--pjifw4.jpeg

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

qcy90qwhi2c_htghgujrjbhlxog.jpeg

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

si6-qizmthmtmeipzrludaaxjne.jpeg

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

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

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


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

7twnrvk1wk853o2hvg_my32qkbm.jpeg

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

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

mieo6iymxpoxcg116xarhs3izgg.jpeg

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

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

u6ngbtuxi7brtza2nfjpth_l2zu.jpeg

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

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

anfzelfpla0mab3nqouakkukl_w.jpeg

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

904cntgxcyw4fcvfxx1wogob-la.jpeg

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

atrfagcuscbsrisiysy4atpxbhe.jpeg

Переделка Windtall


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

skub66ctvfoeenocme7-j8b0eea.jpeg

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

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

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

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

kw-skfacnumohxmrjnbo_jkz9po.jpeg

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

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

-qigvdzvffym3nebnatyn_zvtek.jpeg

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).

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

© Habrahabr.ru