Бэкдоры

#2 Учимся генерировать бэкдоры. Обзор Veil 3.1.11. Основы пэйлоадов.

Итак, мы в главном меню Veil, и Вы можете наблюдать выбор инструментов (Available Tools): «Evasion» и «Ordnance», а ниже возможные команды (Available Commands):

меню veil

Давайте пройдемся по основным командам по-порядку. Они интуитивно понятны, но тем не менее. Первая команда «exit», и Вы можете ее использовать для того, чтобы выйти из Veil. Далее идет команда «info», и с помощью нее Вы можете узнать больше информации про конкретный инструмент. Вы также можете воспользоваться командой «list», и с помощью нее Вы можете увидеть список доступных инструментов. Следующая очень важная команда «update», и она позволяет обновить программу. Это необходимость иметь самую актуальную версию программы для того, чтобы обходить антивирусы. Последняя команда «use», и с помощью нее можно использовать конкретные инструменты. С описанием завершили, и теперь давайте поработаем с Veil. Если мы выполним команду «list», то у нас появится выбор основных инструментов:

команда list veil

Как видим — это 1) Evasion, и 2) Ordnance. Первый инструмент нам более интересен, так как мы с помощью него будем генерировать бэкдоры, которые не будут детектироваться антивирусами. Второй инструмент генерирует пэйлоады, которые использует Evasion. Можно представить, что это вспомогательный инструмент к основному. Пэйлоад — это часть кода бэкдора, который выполняет то, что мы в него заложили. Как правило, этот код позволяет запустить обратное соединение с машины жертвы, загрузить что-то и выполнить процесс, и вообще выполнить то, что мы хотим.  Продолжаем работать с Veil, и нам нужен инструмент Evasion. Для выбора нужна команда «use 1»:

evasion ordnance

Мы в меню инструмента «Veil-Evasion», и для справки, пару лет назад это был отдельный инструмент, но на данный момент он является частью фреймворка. Перед нами запись о том, что имеется 41 пэйлоад, а ниже располагается меню. Первое, что мы сделаем — это посмотрим список актуальных пэйлоадов. Команда для просмотра «list»:

команда list

Перед нами список пэйлоадов, который насчитывает 41 позицию. Все пэйлоады расположены в определенном порядке. Давайте для самого распространенного примера рассмотрим пэйлоад под номером «15»:

пэйлоад под номером 15

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

go

Иными словами, нам нужен вредоносный код, и он должен быть спрятан в определенном языке программирования, и который понимает компьютер жертвы. В нашем примере — это язык «Go». Если мы пройдемся по всем пэйлоадам, то заметим, что они скомпонованы в группы, которые реализованы с помощью разных языков. Можем наблюдать язык «C», «CS», «Lua», «Powershell», «Python», «Ruby» и т. д. Вторая часть пэйлоада очень важна, так как это тип пэйлоада, который будет выполнен на компьютере жертвы. В нашем примере мы используем «Meterpreter» — это пэйлоад от Metasploit, т.е он был там разработан:

meterpreter

Не будем отвлекаться подробно на фреймворке Metasploit, так как он огромен и предоставляет неограниченные возможности для взлома. Meterpreter хорош тем, что он запускается в оперативной памяти и позволяет нам перемещаться между системными процессами. У нас может быть пэйлоад или бэкдор, который может быть запущен из обычного процесса, такого как, к примеру. Explorer. Этот самый пэйлоад позволяет нам осуществить доступ к машине, и предоставляет множество возможностей, например, перемещение по файловой системе, скачивание файлов, загрузка файлов, включение микрофона, включение камеры и т.д. Да, можно также использовать этот компьютер для взлома других компьютеров, устанавливать кейлоггеры. Самое главное, что все это будет запущено из памяти, из нормального процесса в системе. Его очень сложно обнаружить в принципе, хотя сейчас в 2019 году темпы защиты наращиваются очень стремительно. И последняя, третья часть имени, это метод, который мы будем использовать для того, чтобы установить соединение:

rev_https

 Исходя из названия не трудно догадаться, что он означает. Давайте объясню. Вот название самого пэйлоада: «rev_https.py», «rev» означает reverse (обратное), а «https» — это протокол, который используется для того, чтобы установить соединение.  Расшифруем и получим, что этот пэйлоад создаст обратное https-соединение. Можно оглядеться в списке и заметить, что есть протокол «http» вверху, и «tcp» внизу. Это значит обратное http и tcp соединение. Обратное значит то, что жертва сама устанавливает соединение с моей машиной. Суть заключается в том, что жертва получает бэкдор и дважды кликает по нему, тем самым установив соединение с моей машиной. Очевидный плюс этой атаки в том, что соединение идет не с атакующего компьютера, а это важно при детекте антивируса, и со стороны все будет выглядеть так, что жертва просто подключается к обычному веб-сайту. В атаке также будет использоваться тот же самый порт, который используют веб-сайты, а именно «80» и «8080», так что, если жертва будет анализировать трафик и подключения, ничего необычного она не заметит. В случае, если компьютер жертвы спрятан за роутером или за сетью, этот способ будет работать. Обратное подключение — очень действенный способ получения доступа к компьютеру жертвы, так как препятствий и барьеров на этом пути очень много, и в следствии этого, они не позволят подключиться к компьютеру напрямую.

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

Я надеюсь, что Вы теперь поняли, что такое пэйлоады, какие они бывают и в чем их различия.

Первая часть про бэкдоры.