ROP

Тема в разделе "WASM.RESEARCH", создана пользователем 7mm, 4 июл 2010.

  1. 7mm

    7mm New Member

    Публикаций:
    0
    Регистрация:
    15 дек 2009
    Сообщения:
    442
    Всем привет. Кто этим занимался? Есть ли какие наработки по созданию баз гаджетов для стандартных библиотек?
     
  2. inter4et

    inter4et New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2008
    Сообщения:
    2
    hxxp://www.corelan.be:8800/index.php/security/rop-gadgets/ - здесь посмотри.
     
  3. 7mm

    7mm New Member

    Публикаций:
    0
    Регистрация:
    15 дек 2009
    Сообщения:
    442
    Ну это я знаю :) Хотел пообщаться на тему))
     
  4. xssww2

    xssww2 New Member

    Публикаций:
    0
    Регистрация:
    11 апр 2009
    Сообщения:
    84
    Пара скриптов для hex-редактора 010 Editor, дублируют функционал metasploit'a:

    FindOffset.1sc - для поиска смещения в файле где располагаюца нужные данные, типа если произошел переход по 41414141h и цепочка длинная из 41h, скрипт создаст уникальную последовательность типа: 41414141 41414142 и тд. для облегчения поиска в данных нужного смещения

    FindROP.1sc - для поиска последовательности команд в dll, exe по шаблону, расширямый скрипт на любой шаблон
    аналоги: findjmp.exe, msfpescan (metasploit)
    pop reg;pop eax;pop ebx;pop ecx;pop edx;pop esi;pop edi;pop esp;pop ebp;popa;popf
    pop [reg];pop [eax];pop [ebx];pop [ecx];pop [edx];pop [esi];pop [edi];pop [esp];pop [ebp]
    pop [reg+];pop [eax+];pop [ebx+];pop [ecx+];pop [edx+];pop [esi+];pop [edi+];pop [esp+];pop [ebp+]
    jmp reg;jmp eax;jmp ebx;jmp ecx;jmp edx;jmp esi;jmp edi;jmp esp;jmp ebp
    jmp [reg];jmp [eax];jmp [ebx];jmp [ecx];jmp [edx];jmp [esi];jmp [edi];jmp [esp];jmp [ebp]
    для байтового операнда
    jmp [reg+];jmp [eax+];jmp [ebx+];jmp [ecx+];jmp [edx+];jmp [esi+];jmp [edi+];jmp [esp+];jmp [ebp+]
    call reg;call eax;call ebx;call ecx;call edx;call esi;call edi;call esp;call ebp
    call [reg];call [eax];call [ebx];call [ecx];call [edx];call [esi];call [edi];call [esp];call [ebp]
    для байтового операнда
    call [reg+];call [eax+];call [ebx+];call [ecx+];call [edx+];call [esi+];call [edi+];call [esp+];call [ebp+]
    leave
    ret

    К примеру: pop reg;pop eax;call [reg+]

    нету поиска для:
    jmp [reg+reg]
    call [reg+reg]
    мнемоника не выводица
     
  5. NTarakanov

    NTarakanov New Member

    Публикаций:
    0
    Регистрация:
    19 ноя 2010
    Сообщения:
    94
    перевод дизасма в SSA форму намного облегчит поиск нужных гаджетов
     
  6. xssww2

    xssww2 New Member

    Публикаций:
    0
    Регистрация:
    11 апр 2009
    Сообщения:
    84
    Есть реализации?

    ЗЫ
    про SSA в общих чертах знаю
     
  7. NTarakanov

    NTarakanov New Member

    Публикаций:
    0
    Регистрация:
    19 ноя 2010
    Сообщения:
    94
    xssww2
    из паблика - vine IL, но к сожалению он сыроват и его надо допиливать.
     
  8. LMaster

    LMaster New Member

    Публикаций:
    0
    Регистрация:
    31 янв 2010
    Сообщения:
    14
  9. test555

    test555 New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2007
    Сообщения:
    241
    Подскажите, как использовать технику ROP если я могу записать данные не в стек?

    То есть я могу записать данные по произвольному адресу, но адрес стека мне не изместен.
    Могу сделать что-то типа CreateThread на любой адрес...
     
  10. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Вы бы объяснили подробнее механизм воздействия на жертву. А то как в кине "тут могу, тут не могу". Невозможно подсказать. ROP, если я правильно знаю, используется при уязвимости переполнение буфера. У вас другой случАй :) Уязвимость уже использована и сидит "вредитель".
     
  11. test555

    test555 New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2007
    Сообщения:
    241
    valterg, сожалею, но могу лишь приближенно скачать, что имею возможность выполнить действия, аналогичные WriteProcessMemory и CreateRemoteThread (без OpenProcess и тд)....

    Вот и сижу думаю, как адаптировать эти возможности под ROP-технику...
     
  12. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Я задал вам конкретный вопрос. А вы продолжаете "туман пускать". Тогда ответ - НИКАК.
     
  13. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    test555
    а зачем тогда вам роп вообще, если вы можете записать в память и запустить записанное как поток?
     
  14. test555

    test555 New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2007
    Сообщения:
    241
    Потому что при выполнении этих инструкций вылазит исключение - DEP не дает выполнить этот участок кода, потому как он не помечен как EXECUTE.

    Потому мне и нужно сменить аттрибуты памяти (либо выделить новый регион)
     
  15. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    test555
    А ты вообще уверен, что ты можешь WriteProcessMemory делать? Может он тоже не выполняется.

    qqwe
    Надо читать так "могу вызвать CreateRemoteThread". Трудно помочь человеку, который не знает что он может :-(
     
  16. test555

    test555 New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2007
    Сообщения:
    241
    valterg,
    Да, 100%