A micro lab (playground?) for CVE-2021-44228 (log4j)
- Can be used for executing payloads against multiple targets.
- Target-specific payloads are generated runtime.
- Adjustable configuration and bypasses.
- Development / Running example
- Gradle
- Maven
- In order to test the recent log4j related vulnerabilities (CVE-2021-44228, CVE-2021-45046):
- JDK 8u121
- Ysoserial compiled JAR (https://github.com/frohoff/ysoserial)
- Make sure to have compatible JDKs on both sides.
% pip3 install pyasn1 pyjnius git+https://github.com/tasooshi/horrors
Copy and adjust the attacker_config.py.example configuration file.
Listens on 8080 by default and exposes two paths: / and /endpoint:
$ cd Vulnerable; mvn spring-boot:run
This daemon collects data incoming from exploited machines and logs into a JSON file:
(.venv) $ ./collector.py
Opens up several ports that get proxied to a single JNDI handler (class JNDI(services.Service)). Starts sending requests automatically:
(.venv) $ ./attacker.py
Visit http://127.0.0.1:8889/send-requests to resend the requests.
So, in the end you should have the following services running:
collector.pyat port8888attacker.pyfor static content and control at port8889attacker.pyat ports1389and8443Vulnerable.javaat port8080