Инструмент Backdoor представляет собой компактный комплект из двух Python-скриптов — server.py
и backdoor.py
— который демонстрирует базовые техники удалённого управления системой жертвы через обратную оболочку (reverse shell), передачу файлов и выполнение команд. Репозиторий создан для учебных целей и этического пентестинга, а его открытый код позволяет быстро разобраться в механике сокет-соединений, организации надёжного канала и попыток персистентного переподключения.
Назначение и сценарии применения
Сам автор позиционирует проект как тренировочную площадку для специалистов, изучающих обратные шеллы, удалённое выполнение команд и файлообмен при подготовке к красным командам или CTF-соревнованиям. В широком контексте бэкдор — это механизм обхода аутентификации, позволяющий получить скрытый административный доступ к устройству или сети. Подобные инструменты легитимны лишь при наличии письменного разрешения владельца инфраструктуры; в инных случаях использование может подпадать под уголовное законодательство.
Ключевые функции
- Реверс-шелл: инициатива соединения исходит от машины жертвы, что помогает обходить NAT-шлюзы и межсетевые экраны.
- Удалённое выполнение команд: любой ввод на сервере транслируется в
subprocess
-вызовы на клиенте и возвращает STDOUT/STDERR обратно по сокету. - Передача файлов (upload/download) через побайтовую сериализацию в JSON, что упрощает переносимость между платформами.
- Персистентность: скрипт жертвы входит в бесконечный цикл переподключений, пытаясь восстановить сеанс при обрыве связи.
- Минимальная CLI-оболочка: оператор получает привычный командный интерфейс с поддержкой
cd
,clear
,quit
и любых системных команд.
Архитектура и реализация
server.py
прослушивает указанный порт (5555
по умолчанию) и принимает строки JSON, автоматически разбирая их для вывода и отправки команд. backdoor.py
запускается на целевой машине, открывает TCP-сокет, кодирует результаты команд в JSON и отправляет их обратно серверу. Код написан исключительно на стандартной библиотеке Python, что обеспечивает кроссплатформенность и отсутствие внешних зависимостей (100% Python в статистике репозитория).
Установка и использование
- Настройка IP: в обоих скриптах нужно заменить
YOUR-IP-HERE
на адрес сервера. - Запуск: сначала
python server.py
на машине оператора, затемpython backdoor.py
на машине жертвы. - Команды: передаются текстом; для выхода используется
quit
, для переноса файлов —upload
/download
.
Безопасность и этические аспекты
Автор подчёркивает, что проект предназначен только для образовательного использования и может быть незаконным при применении без согласия владельца системы. Бэкдоры, оставленные без ведома пользователя, представляют серьёзную угрозу: они позволяют атакующим миновать стандартные механизмы защиты и получить root-доступ. Поэтому при работе в лабораторных условиях важно изолировать тестовую машину и использовать виртуальные сети.
Преимущества и ограничения
Сильные стороны | Слабые стороны |
---|---|
Простой чистый код, легко модифицировать под собственные нужды | Отсутствие шифрования трафика — пакеты видно IDS/IPS сразу |
Поддержка передачи файлов и смены каталогов | Нет встроенных механизмов эскалации привилегий или скрытности |
Персистентные попытки переподключения | Жёстко заданный порт/адрес; требует ручного редактирования |
Использует только стандартную библиотеку → легко портировать | Отсутствует упаковка (obfuscation) и антивирусная маскировка |
Сравнение с аналогами
- Meterpreter (Metasploit) предлагает динамическую миграцию процессов, встроенный TLS и дополнительные пост-эксплуатационные модули, однако весит значительно больше и зависит от базы эксплойтов.
- Empire даёт PowerShell-агентов с обходами AMSI, но требует Windows-среды и сложнее в развёртывании.
- Backdoor же полезен именно как минимальный референс-код для обучения тому, как из socket и subprocess быстро собрать рабочую обратную оболочку.
Рекомендации по доработке
- Шифровать трафик (например, через TLS-оболочку
ssl.wrap_socket
) — это затруднит сетевое обнаружение. - Добавить автоматическую эскалацию привилегий на OS-специфичных уязвимостях.
- Упаковать клиент в исполняемый файл (PyInstaller, Nuitka) и встроить механизмы отложенного запуска, чтобы повысить стойкость к антивирусам.
- Реализовать канал управления по HTTP/HTTPS (C2 over web) или через DNS-туннелирование для обхода жёстко фильтруемых сетей.
Заключение
Backdoor от Daniyal Khan — это лаконичный пример Python-бэкдора, который позволяет новичкам наглядно освоить принципы reverse shell, обмена данными и управления удалённой системой. При всех ограничениях (открытый трафик, отсутствие стелса) его исходники служат удобной отправной точкой для более сложных проектов и помогают лучше понять, какие механизмы защиты требуются в боевой инфраструктуре.