Установка и использование Pwncat (Netcat на максималках)

Как установить и использовать pwncat

Мы уже рассказывали про использование Netcat в пентесте, но Netcat имеет некоторые ограничения, которые не имеет Pwncat. В этой статье я покажу, как установить и использовать Pwncat.

Еще по теме: Используем MSFVenom для создания полезной нагрузки Android

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

Статья написана в образовательных целях для обучения пентестеров (белых хакеров). Взлом и несанкционированный доступ уголовно наказуем. Ни редак­ция spy-soft.net, ни автор не несут ответс­твен­ность за ваши действия.

Установка и использование Pwncat

Это и заставило меня найти альтернативу Netcat, и так я обнаружил Pwncat: программу на Python, которая имеет два режима: один режим для ввода команд Pwncat, а другой для работы с шеллом жертвы. Первый режим позволяет использовать различные команды автоматизации, о которых поговорим позже.

Установка Pwncat

Устанавливается просто, но есть зависимости:

или

Создание обратного шелла (Reverse Shell)

Для начала я буду использовать Pwncat для ожидания входящего подключения:

Создание обратного шелла (Reverse Shell)
Ожидание подключения

Теперь представьте, что я могу запустить любую команду на целевой машине. Итак, я отправлю шелл с помощью bash -i:

После запуска получаю обратный шелл в моем Pwncat:

Создание Reverse Shell pwncat
Сессия получена

Мы можем увидеть несколько фрагментов информации о нашем терминале: Pwncat «нормализует» шелл (мы переключаемся на интерактивную оболочку). Таким образом, мы можем вводить специальные команды Pwncat, такие, как скачивание, загрузка и т. д.

Создание бэкдора

Теперь, когда я подключен к целевой машине, я хочу сохранить соединение, для этого я установлю бэкдор. У Pwncat есть модуль, который делает это автоматически и другими способами. В этот раз я просто дам ему SSH-ключ для установки на целевую машину.

Путь к ключу ssh тот же, что и на моем компьютере, с которого я запустил Pwncat.

Следующая команда отобразит бэкдоры со списком запускаемых имплантатов:

Создание бэкдора Pwncat
Бэкдор создан с помощью Pwncat

Теперь, если целевая машина будет отключена и заново запущена, я всегда смогу переподключиться с помощью этого бэкдора.

Повышение привилегий с помощью Pwncat

Я подключен к цели, но я не имею прав администратора. Попробуем с помощью Pwncat отыскать какую-нибудь ошибку или неправильную конфигурацию. Для этого в Pwncat есть модуль enumerate:

Повышение привилегий с помощью Pwncat

Эта команда отобразит важную информацию. И, как мы видим исполняемый файл env имеет SUID бит.

/usr/bin/env принадлежит пользователю root

Я мог бы найти эту неправильную конфигурацию, сообщив Pwncat, какой поиск я хочу сделать.

Теперь, когда я нашел уязвимый исполняемый файл, все, что мне нужно сделать, это переключиться на шелл жертвы (Ctrl+D) и выполнить полезную нагрузку:

Использование Pwncat

Терминал может немного подглючить. Pwncat не любит, когда делается privesc таким образом. Чтобы исправить это, просто переключитесь к локальному контексту (CTRL+D) и снова вернитесь к целевому шеллу.

Использовать Pwncat

Пример использования.

Заключение

Pwncat — очень мощный инструмент, который во многих отношениях может облегчить вашу жизнь в работе с обратным шеллом. Я не рассмотрел модуль автоматического повышения привилегий, который, на мой взгляд, на данный момент слабоват.

У Pwncat есть также API, который позволяет автоматизировать некоторые задачи, но с этим попробуйте разобраться сами, благо документация позволяет это сделать, не ломая голову.

Рекомендуем:

ВКонтакте
OK
Telegram
WhatsApp
Viber

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *