Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Alisa Belousova - API sniffer (windows ver.)

DC7499
December 11, 2015

Alisa Belousova - API sniffer (windows ver.)

DEFCON Moscow 11

DC7499

December 11, 2015
Tweet

More Decks by DC7499

Other Decks in Research

Transcript

  1. :: Usermode WinAPI data sniffer ]x[ Export functions fuzzing ]x[

    Анализ трафика без установки. ]x[ Перехват и подмена данных на лету. ]x[ Быстрый анализ malware. ]x[ Анализ данных пользовательских функций. ]x[ Построение визуального представления. ]x[ Подключение внешних обработчиков in/Out данных
  2. Hard & Soft аналитика Start cat.exe Exit CreateProcess(dog.exe) Rutine… WriteFile()

    CreateFile(AV path) CreateFile(VM path) CreateRemoteThread(Explorer.exe) Connect( http://iMs.com/?d=34324
  3. :: Методы внедрения рабочего кода -:] Внедрение кода в рабочий

    процес -:] Внедрение dll в рабочий процесс -:] Подключение dll при запуске процесса: -=) ^ Легитимное by OS -=) ^ Поиск метода by Path
  4. The questions ᕙ(⇀‸↼‶)ᕗ [:::]- Работа с не документированными функциями OS

    [:::]- Работа с пользовательскими функциями [:::]- Работа в user space или трансляция из Driver? [:::]- Трансляция из Service? [:::]- Как использование GetProcAddress GetModuleHandle? [:::]- __asm{} вставки, don’t break my heart [:::]- Детектирование Hook [:::]- Вложенность функций -_-) [:::]- Скорость обработки -_-)
  5. :-: Вложенность функций _-_ Разрядность и assembler’овский код? Окай.. <(._.)>

    Попытка работы с EIP <(._.)> Попытка работы со stack’ом ヽ(*≧ω≦)ノ TlsSetValue/TlsGetValue?? (。◕‿◕。) Переход в ntdll.dll ¯\_(ツ)_/¯ Еще ниже…
  6. Try HeapAlloc Sprintf() & TlsSetValue() опять HeapAlloc J EIP: return

    0; pop edi pop esi pop ebx mov esp, ebp pop ebp ret Stack: int isMyFuncArg3; __asm { lea eax, LastArg add eax,4 push [eax] pop isMyFuncArg3} if(isMyFuncArg3 != 0) printf("Вызов из моей функции.\r\n");
  7. Итогo: - Дамп данных любой API функции в пользовательском пространстве.

    - Подключаемые обработчики данных - Повышение привилегий для внедрения в чужие или привилегированные процессы. - Дамп данных функций в скрытом режиме - Fuzzing In/Out данных на лету в GUI. - Ручная правка In/Out данных в GUI. - Сохранение потоков winAPI данных ПО для дальнейшего анализа.