
Ferramenta de exploração para Apache 2.4.49-2.4.50 path traversal e RCE (CVE-2021-41773, CVE-2021-42013). Verifica listas de URLs, funciona com CGI e não-CGI, e automatiza a exploração.
Ataque de path traversal e RCE no Apache/2.4.49-2.4.50
-> Aceita uma lista de URLs
-> Funciona tanto para CGI quanto para não-CGI
-> Funciona para Apache/2.4.49 - 2.4.50
$ git clone https://github.com/CalfCrusher/Path-traversal-RCE-Apache-2.4.49-2.4.50-Exploit
$ cd Path-traversal-RCE-Apache-2.4.49-2.4.50-Exploit && pip3 install -r requirements.txt
$ python3 main.py urls.txt
Em 5 de outubro de 2021, foi divulgado um CVE detalhando um ataque de path traversal no Apache HTTP Server v2.4.49. Recebendo o número CVE-2021-41773, foi publicado com a seguinte descrição:
Foi encontrada uma falha em uma alteração feita na normalização de caminhos no Apache HTTP Server 2.4.49.
Um atacante poderia usar um ataque de path traversal para mapear URLs para arquivos fora do document root esperado. Se arquivos fora do document root não forem protegidos por "require all denied", essas solicitações podem ser bem-sucedidas.
Além disso (sic), essa falha poderia vazar o código-fonte de arquivos interpretados, como scripts CGI.
Sabe-se que esse problema está sendo explorado na natureza. Esse problema afeta apenas o Apache 2.4.49 e não versões anteriores.
Vamos decompor isso e ver o que realmente significa para nós:
Na primeira parte, vemos que uma alteração recente expôs a falha. A normalização de caminhos significa que transformamos um determinado caminho em alguma forma canônica que o software possa entender e, assim, mapear para o sistema de arquivos real. Isso já nos leva a suspeitar de um ataque de path traversal que pode potencialmente ler arquivos não intencionais.
A próxima parte confirma nossas suspeitas, e somos capazes de usar um ataque de path traversal para ler recursos fora do escopo pretendido.
Vemos que precisamos de uma configuração muito específica. Arquivos fora do document root devem ter permissões explicitamente concedidas. Essa não é a configuração padrão e, portanto, deve tornar esse exploit inútil contra uma grande porcentagem dos hosts Apache (felizmente).
A próxima parte fala sobre scripts CGI, o que erroneamente nos leva a acreditar que o CGI pode precisar estar habilitado para que esse ataque funcione ou que o caminho envolva CGI de alguma forma.
Mesmo que nossa configuração não seja diretamente afetada por esse bug, ainda assim vamos querer atualizar as versões vulneráveis o mais rápido possível.
Para resumir, para explorar essa vulnerabilidade, precisaremos ter uma configuração muito incomum no servidor alvo e atacar por meio de um caminho específico. Muita Correção Depois...
Então o Apache corrigiu esse bug e lançou a v2.4.50. Fim da história, certo? Bem, não exatamente. Apenas 2 dias depois, em 7 de outubro, um novo CVE foi divulgado citando o anterior. Este menciona que a correção para o ataque de path traversal anterior estava incompleta, e ainda poderíamos fazer traversal se o caminho em questão usasse uma diretiva alias para mapear suas URLs para o sistema de arquivos. O CVE recebeu o número CVE-2021-42013, com a seguinte descrição:
Foi constatado que a correção para o CVE-2021-41773 no Apache HTTP Server 2.4.50 era insuficiente.
Um atacante poderia usar um ataque de path traversal para mapear URLs para arquivos fora dos diretórios configurados por diretivas do tipo Alias.
Se arquivos fora desses diretórios não forem protegidos pela configuração padrão usual "require all denied", essas solicitações podem ser bem-sucedidas.
Se scripts CGI também estiverem habilitados para esses caminhos com alias (sic), isso poderia permitir execução remota de código. Esse problema afeta apenas o Apache 2.4.49 e o Apache 2.4.50 e não versões anteriores.
Assim como antes, podemos aprender algumas coisas aqui:
Embora o primeiro exploit supostamente tenha sido corrigido, existe outra entrada para permitir que o traversal funcione (lembre-se disso para depois).
Agora estamos limitados a diretivas de caminho com alias.
Diretórios fora dos caminhos usuais ainda exigem permissões explicitamente concedidas.
Se o CGI estiver habilitado, podemos obter RCE além da simples divulgação de informações.
Por favor, observe que não sou responsável por quaisquer danos e uso ilegal. Não seja um idiota!