В основном вирусы решают какую-то одну конкретную задачу. Например стиллер специализируется на отправке всех ценных данных на сервер хакеру. Кейлоггер запоминает нажатия клавиш. Клиппер подменяет адреса кошельков. В стороне от вирусов есть разные пейлоады, которые позволяют хакеру получать доступ к машине. Сюда добавляются ещё методы маскировки пейлоада и эксплоиты. Всё это непосредственно связано со взломом и используется хакерами, но это - разные программы. Фреймворки нужны как раз для того, чтобы объединить все эти инструменты в одном месте. Это платформа, которая позволяет создавать, маскировать и эксплуатировать вирусы. Самым популярным фреймворком является metasploit. У него модульная структура, что позволяет дополнять его новыми типами пейлоадов не изменяя код.
Фреймворки - очень полезные инструменты. Они позволяют не углубляться в суть новой уязвимости и не держать у себя в системе сотни программ. С их помощью можно автоматизировать атаку. Но с другой стороны такая автоматизация играет и плохую роль - антивирусу проще найти сгенерированный вирус. Все пейлоады metasploit известны и методы, которыми он пользуется для обхода антивирусов, тоже известны. Ещё бы, metasploit открытый фреймфорк и с выходом нового модуля его может получить каждый. В том числе и антивирусные лаборатории, которые пристально исследуют все новые разработки.
Если поискать, то можно найти много инструментов для маскировки кода и обхода детектов. В случае с интерпретируемым кодом это делается с помощью обфускации. Для исполняемых файлов есть методы упаковки, криптования и некоторые другие. Но все общедоступные решения приходят к одному концу: антивирусы обучаются как противостоять методу обхода и вместо снижения детектов вирус начинает ещё больше светиться. Хоть в фреймворках и есть методы для обхода детектов, но на практики проблем они не решают.
В этой лекции мы рассмотрим структуру metasploit. Потом глубже углубимся в функционал.
Структура
msfconsole - основной модуль. Все действия выполняются отсюда
msfd - сервер msfconsole к которому можно удалённо подключиться
msfdb - управление базой данных metasploit. В ней хранится информация о всех модулях
msfrpcd - RPC сервер metasploit
msfrpc - удалённое подключение к RPC серверу metasploit
msfvenom - фабрика пейлоадов
Терминология
payload - что-то(для упрощения скажем exe), что исполняется на заражаемой машине. В результате обработки пейлоада система заражается, после чего она доступна из metasploit
сессия - это активное соединение между метасплоитом и жертвой.
handler - это то, что обрабатывает и принимает соединения на сервере хакера.
Тут уже виднеется одно отличие фреймворка от типичного вируса: payload просто создаёт сессию с устройством. В от других вирусов, у которых есть конкретные задачи, metasploit нацелен на создание подключения. А что делать с этим подключением уже решает сам хакер.
И в metasploit есть обширный функционал, который можно применить на боте. Фреймворки особенно полезны в тех случаях, когда до заражения о жертве ничего не известно. Благодаря большому количеству модулей, атаку можно будет построить на месте, оперируя через открытую сессию.
Функционал
Это описание основных команд, которые доступны в активной сессии metasploit.
background - отсоединиться от текущей сессии, но не разрывать её.
cat %путь% - вывести содержимое файла по пути %путь%
cd %путь% - сменить текущую директорию на %путь%
pwd - напечатать текущую рабочую директорию на машине жертвы
clearev - сбрасывает логи на машине жертвы
download %путь% - качает файл по пути %путь% с машины жертвы
edit %путь% - редактирует файл по пути %путь%
execute -f %путь% - выполняет программу у жертвы по пути %путь%
getuid - выводит имя машины жертвы
idletime - выводит как долго компьютер находится в бездействии
ipconfig - печатает настройки сети
lcd - меняет рабочую папку на сервере metasploit
lpwd - печатает текущую рабочую директорию на сервере metasploit
ls - печатает содержимое текущий директории на жертве
ps - выводит список запущенных приложений
search -f %маска% - ищет файлы по маске %маска%. Маской может быть и имя файла
shell - даёт доступ к системной консоли на жертве
upload %имя% %путь% - %имя% это название файла на сервере, %путь% - место, куда жертве будет записан выбранный файл.
Как из них видно, большинство функций совершенно базовые. Это низкоуровневое управление машиной. Но используя этот функционал с машиной можно сделать всё, что угодно. Если надо загрузить сторонний вирус, в metasploiit есть все возможности для этого. Так же в нём практически нет функций, которые завязаны только на windows. Всё дело в том, что metasploit может работать с пейлоадами не только для windows, но и для других операционных систем.