home.social

#rop_chain — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #rop_chain, aggregated by home.social.

  1. #hacking #RCE #ROP_chain #0day #IPcamera #instar #shodan

    3. Обход ASLR без утечки

    libc с PIE + ASLR = адрес system() неизвестен. Классические методы утечки не работают, поскольку любой ROP chain крашит бинарник, и утечка становится бесполезной после релокации.​ Тут помогла эксплуатация GOT/PLT. В уязвимой функции вызывается isalnum() из libc, ее адрес уже разрешен и лежит в GOT. Расстояние между isalnum и system — константа 0x13230 байт.​

    4. ROP-chain магия

    — Читаем isalnum@got через gadget ldr r6, [r3, #0x10]​
    — Добавляем offset 0x13230 через gadget add r6, fp, r6 и получаем адрес system​
    — Пишем вычисленный адрес обратно в GOT через str r0, [r4, #4] (GOT writable благодаря partial RELRO)​
    — Готовим аргументы в r0​
    — Вызываем isalnum@plt, который теперь прыгает на system вместо isalnum​

    ВУАЛЯ! UnauthRCE одним запросом на 12k камер. One-shot эксплойт без утечек и множественных запросов.

    Подробности: modzero.com/en/blog/no-leak-no

  2. #hacking #RCE #ROP_chain #0day #IPcamera #instar #shodan

    3. Обход ASLR без утечки

    libc с PIE + ASLR = адрес system() неизвестен. Классические методы утечки не работают, поскольку любой ROP chain крашит бинарник, и утечка становится бесполезной после релокации.​ Тут помогла эксплуатация GOT/PLT. В уязвимой функции вызывается isalnum() из libc, ее адрес уже разрешен и лежит в GOT. Расстояние между isalnum и system — константа 0x13230 байт.​

    4. ROP-chain магия

    — Читаем isalnum@got через gadget ldr r6, [r3, #0x10]​
    — Добавляем offset 0x13230 через gadget add r6, fp, r6 и получаем адрес system​
    — Пишем вычисленный адрес обратно в GOT через str r0, [r4, #4] (GOT writable благодаря partial RELRO)​
    — Готовим аргументы в r0​
    — Вызываем isalnum@plt, который теперь прыгает на system вместо isalnum​

    ВУАЛЯ! UnauthRCE одним запросом на 12k камер. One-shot эксплойт без утечек и множественных запросов.

    Подробности: modzero.com/en/blog/no-leak-no

  3. #hacking #RCE #ROP_chain #0day #IPcamera #instar #shodan

    3. Обход ASLR без утечки

    libc с PIE + ASLR = адрес system() неизвестен. Классические методы утечки не работают, поскольку любой ROP chain крашит бинарник, и утечка становится бесполезной после релокации.​ Тут помогла эксплуатация GOT/PLT. В уязвимой функции вызывается isalnum() из libc, ее адрес уже разрешен и лежит в GOT. Расстояние между isalnum и system — константа 0x13230 байт.​

    4. ROP-chain магия

    — Читаем isalnum@got через gadget ldr r6, [r3, #0x10]​
    — Добавляем offset 0x13230 через gadget add r6, fp, r6 и получаем адрес system​
    — Пишем вычисленный адрес обратно в GOT через str r0, [r4, #4] (GOT writable благодаря partial RELRO)​
    — Готовим аргументы в r0​
    — Вызываем isalnum@plt, который теперь прыгает на system вместо isalnum​

    ВУАЛЯ! UnauthRCE одним запросом на 12k камер. One-shot эксплойт без утечек и множественных запросов.

    Подробности: modzero.com/en/blog/no-leak-no

  4. #hacking #RCE #ROP_chain #0day #IPcamera #instar #shodan

    3. Обход ASLR без утечки

    libc с PIE + ASLR = адрес system() неизвестен. Классические методы утечки не работают, поскольку любой ROP chain крашит бинарник, и утечка становится бесполезной после релокации.​ Тут помогла эксплуатация GOT/PLT. В уязвимой функции вызывается isalnum() из libc, ее адрес уже разрешен и лежит в GOT. Расстояние между isalnum и system — константа 0x13230 байт.​

    4. ROP-chain магия

    — Читаем isalnum@got через gadget ldr r6, [r3, #0x10]​
    — Добавляем offset 0x13230 через gadget add r6, fp, r6 и получаем адрес system​
    — Пишем вычисленный адрес обратно в GOT через str r0, [r4, #4] (GOT writable благодаря partial RELRO)​
    — Готовим аргументы в r0​
    — Вызываем isalnum@plt, который теперь прыгает на system вместо isalnum​

    ВУАЛЯ! UnauthRCE одним запросом на 12k камер. One-shot эксплойт без утечек и множественных запросов.

    Подробности: modzero.com/en/blog/no-leak-no

  5. Взлом INSTAR IP-камер (unauth RCE) через ARM ROP-chain без утечки адресов

    #hacking #RCE #ROP_chain #0day #IPcamera #instar #shodan

    Michael Imfeld из modzero нашел и проэксплуатировал 0day в немецких IP-камерах INSTAR IN-8401 2K+ и 4K. По данным Shodan, на текущий момент около 12к устройств INSTAR светятся в интернете. Исследователь построил целую ARM ROP-chain для обхода ASLR без единой утечки адресов с достижением unauthRCE.​

    1. Доступ к firmware

    Root через UART-интерфейс с прерыванием автозагрузки U-Boot и модификацией bootargs — добавление init=/bin/sh — создание root-пользователя — полный дамп файловой системы.​

    2. Находим баг

    В компоненте fcgi_server обнаружена кастомная реализация Base64-декодирования в обработчике basic auth. Декодированные данные копируются через memcpy в фиксированный стековый буфер 516 байт без проверки длины. Прям по классике, stack-based buffer overflow с перезаписью return address.​

  6. Взлом INSTAR IP-камер (unauth RCE) через ARM ROP-chain без утечки адресов

    #hacking #RCE #ROP_chain #0day #IPcamera #instar #shodan

    Michael Imfeld из modzero нашел и проэксплуатировал 0day в немецких IP-камерах INSTAR IN-8401 2K+ и 4K. По данным Shodan, на текущий момент около 12к устройств INSTAR светятся в интернете. Исследователь построил целую ARM ROP-chain для обхода ASLR без единой утечки адресов с достижением unauthRCE.​

    1. Доступ к firmware

    Root через UART-интерфейс с прерыванием автозагрузки U-Boot и модификацией bootargs — добавление init=/bin/sh — создание root-пользователя — полный дамп файловой системы.​

    2. Находим баг

    В компоненте fcgi_server обнаружена кастомная реализация Base64-декодирования в обработчике basic auth. Декодированные данные копируются через memcpy в фиксированный стековый буфер 516 байт без проверки длины. Прям по классике, stack-based buffer overflow с перезаписью return address.​

  7. Взлом INSTAR IP-камер (unauth RCE) через ARM ROP-chain без утечки адресов

    #hacking #RCE #ROP_chain #0day #IPcamera #instar #shodan

    Michael Imfeld из modzero нашел и проэксплуатировал 0day в немецких IP-камерах INSTAR IN-8401 2K+ и 4K. По данным Shodan, на текущий момент около 12к устройств INSTAR светятся в интернете. Исследователь построил целую ARM ROP-chain для обхода ASLR без единой утечки адресов с достижением unauthRCE.​

    1. Доступ к firmware

    Root через UART-интерфейс с прерыванием автозагрузки U-Boot и модификацией bootargs — добавление init=/bin/sh — создание root-пользователя — полный дамп файловой системы.​

    2. Находим баг

    В компоненте fcgi_server обнаружена кастомная реализация Base64-декодирования в обработчике basic auth. Декодированные данные копируются через memcpy в фиксированный стековый буфер 516 байт без проверки длины. Прям по классике, stack-based buffer overflow с перезаписью return address.​

  8. Взлом INSTAR IP-камер (unauth RCE) через ARM ROP-chain без утечки адресов

    #hacking #RCE #ROP_chain #0day #IPcamera #instar #shodan

    Michael Imfeld из modzero нашел и проэксплуатировал 0day в немецких IP-камерах INSTAR IN-8401 2K+ и 4K. По данным Shodan, на текущий момент около 12к устройств INSTAR светятся в интернете. Исследователь построил целую ARM ROP-chain для обхода ASLR без единой утечки адресов с достижением unauthRCE.​

    1. Доступ к firmware

    Root через UART-интерфейс с прерыванием автозагрузки U-Boot и модификацией bootargs — добавление init=/bin/sh — создание root-пользователя — полный дамп файловой системы.​

    2. Находим баг

    В компоненте fcgi_server обнаружена кастомная реализация Base64-декодирования в обработчике basic auth. Декодированные данные копируются через memcpy в фиксированный стековый буфер 516 байт без проверки длины. Прям по классике, stack-based buffer overflow с перезаписью return address.​