
Apache Struts (CVE-2017-5638) Shell
Shell do Apache Struts (CVE-2017-5638)
O "LowNoiseHG (LNHG) Struts Shell" ("StrutsShell" daqui em diante) foi concebido em março de 2017, ao perceber a utilidade de não precisar explorar o Apache Struts CVE-2017-5638 manualmente (requisições HTTP GET feitas à mão) e ao perceber que o respectivo módulo do Metasploit para essa vulnerabilidade não funcionava (pelo menos em nossos casos de teste).
O funcionamento básico do StrutsShell consiste no processamento de uma entrada de linha de comando (shell) para a plataforma atacada (Windows, Linux, etc.) e no uso da vulnerabilidade do Apache Struts para enviá-la ao shell para ser executada. A ferramenta então retorna a resposta e aguarda o próximo comando do shell, proporcionando uma experiência de interação impecável.
# LowNoiseHG Apache Struts (CVE-2017-5638) Shell v.0.1 (2017/03/17)
# by F4Lc0N - LNHG - USA/Colombia
#
# Thanks to Andrew Weidenhamer (@AWeidenhamer), David Llorens (c4an),
# Tauseef Ghazi (@tghazi), and AJ (@nikamajinkya) for inspiration, ideas
# and debugging/betatesting help.
usage: StrutsShell.py [-h] [-d] [-u URL]
LNHG Apache Struts (CVE-2017-5638) Shell v.0.1
optional arguments:
-h, --help show this help message and exit
-d, --debug show debugging info
-u URL, --url URL Apache Struts vulnerable URL (i.e.:
http://www.example.com/test/login.action)
for inspiration, ideas and debugging/beta-testing help.
Como a maior parte da pesquisa e desenvolvimento (P&D) realizada na LowNoiseHG (LNHG), esta ferramenta foi projetada e desenvolvida apenas por sua utilidade e sem fundos econômicos ou tempo alocados a ela. Todo o desenvolvimento foi feito somente em tempo pessoal, e continuará à medida que recursos interessantes surgirem, e se houver tempo disponível, levando em conta outros projetos.
A versão atual funciona muito bem, embora ainda existam alguns pequenos ajustes (bugs) a resolver e alguns recursos básicos que podem ser melhorados.
O StrutsShell e todo o seu código relacionado são distribuídos sob a licença de código aberto GPL v3. A licença completa está anexada no arquivo LICENSE.md.
Para executar o StrutsShell "direto do git", com todas as opções habilitadas, você precisará de:
NOTA: o StrutsShell foi desenvolvido e testado no Kali, Ubuntu e Debian. Tenho certeza de que VOCÊ pode fazê-lo funcionar em outras plataformas de sua escolha ;)
$ sudo apt-get install -y python git
$ pip install requests
$ cd /opt
$ sudo git clone https://github.com/falcon-lnhg/StrutsShell.git
$ cd StrutsShell
$ ./StrutsShell.py -u http://www.example.com/test/login.action
Você pode verificar a lista completa de opções a qualquer momento com:
$ ./StrutsShell -h
