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. 1.
  2. 4.

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

    Анализ трафика без установки. ]x[ Перехват и подмена данных на лету. ]x[ Быстрый анализ malware. ]x[ Анализ данных пользовательских функций. ]x[ Построение визуального представления. ]x[ Подключение внешних обработчиков in/Out данных
  3. 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
  4. 10.

    :: Методы внедрения рабочего кода -:] Внедрение кода в рабочий

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

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

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

    :-: Вложенность функций _-_ Разрядность и assembler’овский код? Окай.. <(._.)>

    Попытка работы с EIP <(._.)> Попытка работы со stack’ом ヽ(*≧ω≦)ノ TlsSetValue/TlsGetValue?? (。◕‿◕。) Переход в ntdll.dll ¯\_(ツ)_/¯ Еще ниже…
  7. 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");
  8. 15.

    Итогo: - Дамп данных любой API функции в пользовательском пространстве.

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