Alisa Belousova - API sniffer (windows ver.)

0c988f4618b436b14ce6ddcecd52d11d?s=47 DC7499
December 11, 2015

Alisa Belousova - API sniffer (windows ver.)

DEFCON Moscow 11

0c988f4618b436b14ce6ddcecd52d11d?s=128

DC7499

December 11, 2015
Tweet

Transcript

  1. None
  2. Белоусова Алиса ( eaS7@defcon.su )

  3. API sniffer (windows ver.)

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

    Анализ трафика без установки. ]x[ Перехват и подмена данных на лету. ]x[ Быстрый анализ malware. ]x[ Анализ данных пользовательских функций. ]x[ Построение визуального представления. ]x[ Подключение внешних обработчиков in/Out данных
  5. API Sniffer winAPI

  6. API Sniffer Control Data

  7. API Sniffer Control Data

  8. 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
  9. Подключаемые обработчики Hooked_WinApi_function ( In param1, Out Param2 ) Python.FuzzParam

    (In param1) Python (In param1)
  10. :: Методы внедрения рабочего кода -:] Внедрение кода в рабочий

    процес -:] Внедрение dll в рабочий процесс -:] Подключение dll при запуске процесса: -=) ^ Легитимное by OS -=) ^ Поиск метода by Path
  11. ·Внедрение кода в рабочий процесс:

  12. The questions ᕙ(⇀‸↼‶)ᕗ [:::]- Работа с не документированными функциями OS

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

    Попытка работы с EIP <(._.)> Попытка работы со stack’ом ヽ(*≧ω≦)ノ TlsSetValue/TlsGetValue?? (。◕‿◕。) Переход в ntdll.dll ¯\_(ツ)_/¯ Еще ниже…
  14. 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");
  15. Итогo: - Дамп данных любой API функции в пользовательском пространстве.

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

  17. That’s all folks