
Фреймворк веб-шеллов для пентестеров.
novahot — это фреймворк веб-шеллов для тестировщиков на проникновение. В нём реализован JSON-ориентированный API, который может взаимодействовать с троянами, написанными на любом языке. По умолчанию поставляются трояны на PHP, Ruby и Python.
Помимо выполнения системных команд, novahot умеет эмулировать интерактивные терминалы, включая mysql, sqlite3 и psql. Кроме того, он реализует «виртуальные команды», позволяющие загружать, скачивать, редактировать и просматривать удалённые файлы локально с помощью ваших любимых приложений.
Установите исполняемый файл напрямую из npm:
[sudo] npm install -g novahot
Затем создайте файл конфигурации:
novahot config > ~/.novahotrc
Просмотрите доступные трояны с помощью novahot trojan list.
Выберите троян на языке, подходящем для вашей цели, и скопируйте его исходный код в новый файл. (Пример: novahot trojan view basic.php > ~/my-trojan.php)
Измените контрольный пароль в созданном трояне.
Загрузите троян в веб-доступное место на цели.
Настройте информацию о цели в свойстве targets файла ~/.novahotrc.
Выполните novahot shell <target>, чтобы открыть оболочку.
Внутренне novahot использует «режимы» и «адаптеры» для эмуляции различных интерактивных клиентов, включая mysql, psql (postgres) и sqlite3.
Чтобы изменить режим novahot, введите соответствующую «dot-команду»:
.mysql { "username" : "mysql-user", "password" : "the-password", "database" : "the-database" }
(Параметры подключения можно указывать в JSON при смене режима или сохранять как данные конфигурации цели в ~/.novahotrc.)
Например, режим mysql позволяет напрямую выполнять запросы следующего вида:
mysql> SELECT ID, user_login, user_email, user_pass FROM wp_users;
Также существует режим payload, который можно использовать для POST-отправки произвольных данных трояну. Подробнее в вики.
novahot реализует четыре «виртуальные команды», использующие встроенные в трояны полезные нагрузки для расширения функциональности оболочки:
download <remote-filename> [<local-filename>]
Скачивает <remote-filename> в --download-dir, и, при указании, переименовывает в <local-filename>.
upload <local-filename> [<remote-filename>]
Загружает <local-filename> в текущую рабочую директорию оболочки (cwd), и, при указании, переименовывает <local-filename> в <remote-filename>.
view <remote-filename> [<local-filename>]
Скачивает <remote-filename> в --download-dir, и, при указании, переименовывает в <local-filename>. После скачивания файл открывается в приложении для просмотра, указанном в конфигурации.
edit <remote-filename>
Скачивает <remote-filename> во временный файл, после чего открывает его для редактирования с помощью редактора, указанного в конфигурации. Если файл после редактирования был сохранён локально, он автоматически загружается обратно на сервер.
Этот репозиторий содержит лабораторную среду, построенную на Vagrant, Docker и Damn Vulnerable Web Application («DVWA»). Шаги по настройке среды зависят от возможностей вашего физического хоста.
Если на вашем физическом хосте установлены docker и docker-compose, просто выполните следующее:
cddocker-compose upПосле запуска контейнера Docker DVWA будет доступна по адресу http://localhost:80.
Если docker не установлен на вашем физическом хосте, вы можете использовать Vagrant/Virtualbox для доступа к виртуальной машине с Docker:
cdvagrant upvagrant sshsudo su; cd /vagrant; docker-compose upDVWA будет доступна по адресу http://localhost:8000.
Укажите следующие строки подключения в файле ~/.novahotrc, чтобы подключить клиент novahot к трояну PHP, встроенному в контейнер DVWA:
{
"targets": {
"dvwa" : {
"uri" : "http://localhost:8000/novahot.php",
"password" : "the-password",
"mysql" : {
"username": "root",
"password": "vulnerables",
"database": "dvwa"
}
}
}
}
Затем вы можете установить веб-шелл с помощью:
novahot shell dvwa
Дополнительную информацию можно найти в вики: