Injection methods

Тема в разделе "WASM.WIN32", создана пользователем everistic, 24 май 2018.

Статус темы:
Закрыта.
  1. everistic

    everistic New Member

    Публикаций:
    0
    Регистрация:
    24 май 2018
    Сообщения:
    6
    Доброго времени суток. Практикуюсь с различными паблик техниками внедрения собственного кода в адресное пространство стороннего процесса. много чего попробовал, от классики Рихтера до новых фич типа EarlBrd
    Сабж - ав ругается на цепочки API вызовов, в основном на шагах createremotethread / setthreadcontext и т.д. посылает на 3 буквы и выпиливает сигнатуру "инжектор".
    Как разбавить / разорвать цепочки чтобы скрыться от ав, обмануть эмулятор и сделать код чистым? какие существуют сейчас методы обхода эмуляции (+- эффективные) или хотябы в какую сторону смотреть / гуглить?
    Юзаю функции юзер-мод winapi / ntdll в написание драйверов пока не лезу, может можно обойтись и без этого...
    Что делал - вызывал функции перебором по хэшу, закидывал мусорными инструкциями и т.д.
    В общем за советы был бы крайне благодарен. Если что - в лс либо о5 же в темке.
    Варианты: собственноручная реализация некоторых функций (уперся когда понял что все winapi функции почти - обертка для вызова ф-й nt/zw а те в свою очередь просто сисколят в ntos.exe)
    Хардкодить функции
    Разбавлять код
    Есть ли какие-то совершенно неизвестные аналоги тех же createremotethread / setcontext и т.д. ( не прошу, конечно, о них писать, это дебилизм, просто проясните стоит ли или нет там на данный этап уже ничего нового интересного)
    Большое спасибо всем прочитавшим =)
    P.S. исключительно в исследовательских целях. Серьезно. Понимаю что вопросы возможно туповатые, но надо же как-то и где-то учиться...
     
  2. superakira

    superakira Active Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    290
    Какой именно ав?
    драйвера тебе не помогут, если ты на таком этапе сыпешься.
    потоки палят из дрова на колбаках. те собирают евенты и потом тебя оперделяют по поведенческой сигнатуре.

    Делать на сисколах - это тебе ничего почти не даст, кроме гемора по саппорту на туче виндовсах. Работа с процессама потоками залогируется все равно из драйвера (маппинг секций или еще чего такого обойдешь может, но они почти не участвуют в сигнатурах).

    По хэшу - тоже пофиг, это колхоз из 2000 (для шеллкодов еще может актуально). Те может как правила ксакепского тона, но это по практике вообще не актуально для малварки уже, если делаешь чисто юм малварь.

    Все цепочку распиши.
     
    Последнее редактирование: 24 май 2018
  3. everistic

    everistic New Member

    Публикаций:
    0
    Регистрация:
    24 май 2018
    Сообщения:
    6
    Функции вызываю через связку из самописного гетпрокадреса и лоадлиба.
    цепочка обычная ранпе: openprocess -> createfile -> getfilesize -> virtualalloc -> ntgetcontextthread -> ntreadvirtualmemory -> ntunmapviewofsection -> virtuaallocex -> ntwritevirtualmemory -> setthreadcontext -> resumethread
    Авер бьет исполнение на смене контекста потока.
    либо цепочка такая: virtualallocex -> writeprocessmemory -> QueueUserAPC
    Естественно палится на последнем шаге...
     
  4. superakira

    superakira Active Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    290
    createfile -> getfilesize - ты с диска инжектируемый модуль читаешь (запихни в ресурсы и пошифруй)?

    тебя могут палить не только по апи, а по процессам тоже. те есть процессы куда инжектиться очень палевно например explorer.exe если напряимую, те добавь прокси процессе для инжекта.

    какой ав тебя палит и что говорит? если дефендер, то это одно, если аваст/авг - это другое.

    так же посмотри - ставят ли у тебя в процессе твой ав юм хуки. снимай их перед работой если есть (аваст как пример)
     
  5. zerodawn

    zerodawn Member

    Публикаций:
    0
    Регистрация:
    16 янв 2018
    Сообщения:
    70
    Посмотри в сторону Atom Bombing. https://github.com/BreakingMalwareResearch/atom-bombing

    Да ладно, еще остались ав которые юм хуки юзают? Так что мешает самому прогружать нужные либы вручную и их парсить... Мож че не понимаю


    А вообще, инжекты в процессы - старый век, сейчас почти нереально беспалевно заинжектить что-либо ( чтобы идеальные результаты были, а.k.a fud в рантайме ). Если только совершенно извращенные техники, в которых не используются в явном виде апи для записи в процесс.

    А так пора уже другие техники юзать. Почти все, что достигается засчет инжекта в процессы можно реализовать без инжектов. Банкботы работающие через прокси тому пример.
     
  6. superakira

    superakira Active Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    290
    zerodawn, хай!
    ты удивишься по поводу ав но это так) например как я сказал аваст (да ты можешь загрузить дубликат, но тебе его надо будет потрогать на диске - это тоже шум и его палят), трасти-раппорт - самоделка за миллиард) там все как в 2000 еще. Те эти скилы и методы еще актуальны.

    На счет инжекта в другой процесс - ты прав и не прав одновременно. Естественно реально заинжектить.
    Другой вопрос про прокси - да с одной стороны решается много проблем, но там вылазят другие. Ди и потом - заредиректить тоже не так тихо. Либо так же заинжектить и там редиректнуть через сплайс все (но это масло маслянное), либо лсп (шум), либо браузеры перенастроить через настроки (шум), либо через дров (wfp) - но там повторюсь много подводных комней вылазит и в проде ты редко такие банкеры увидишь, тру крабы как я слышал не любят такое решение ибо не стабильно работает.

    Вообще это больше даже архитектурный вопрос конечно. Все зависит от автора и его скилов такого для такого программного комплекса.

    На счет бомбинга thnx за ссылку я его протабанил как-то. С виду пока не очень вкусно, поразбираюсь. Еще раз thnx.
     
  7. Rel

    Rel Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    1.613
    меня это тож удивляет... у всех нормальных аверов уже давно дров перехваты делает... к тому же создание удаленных потоков в другом процессе, изменения контекста потока из другого процесса, доставка APC потокам другого процесса - это все очень палевные операции, легитимное применение которым можно найти разве что в отладчиках... Касперский, насколько я помню, никаких цепочек вообще не строил, а сразу орал на создание удаленных потоков...
     
  8. superakira

    superakira Active Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    290
    Rel, не на все, только на то что пердоставляет винда (реестр, потоки, процессы, сеть, фс). Но например как ав отловит создание секции в дрове? патч ссдт? так патчгард, конечно можно через гипервизор, но вендоры не юзают. не на каждой машине железячная поддержка есть итд. отрубать патчгард? тоже не делают. так что часть апи им надо ловить в юм.
    На счет каспера - хз. Я бы так не сказал. Ладно не суть.
     
  9. zerodawn

    zerodawn Member

    Публикаций:
    0
    Регистрация:
    16 янв 2018
    Сообщения:
    70
    Помнится мне N лет назад ( 13-15 год, не помню ) каспер выдавал рантайм алерт на создание саспендет процесса.

    Насколько я знаю от общения с крабами им очень нравился Axe bot за свою стабильность. Насколько я знаю от автора акса - он регал в системе проксю.

    Да он грязный довольно как по мне. Там насколько я помню ROP цепочки юзаются для инжекта шеллкода. Роп имхо не самое приятное. Но я лично видел рантайм Dridex'а который юзал Atom bombing - там все было очень и очень чисто.
     
  10. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    3.407
    у любой схемы инжекта есть МАЛЕНЬКАЯ ПРОБЛЕМКА == в системе с большой долей вероятности может присутствовать конкурирующая малваря и акь мин. она становится причиной косвенного детекта(даже одна и та же малваря может устраивать забеги с многократным патчем/инжектом одного и того же файла/процесса). второй момент == сама аверка может инжектить всю систему, что позволяет ей отлавливать любой левач на лету. короче, схемы труЪ инжектов являют лишь теоретическую ценность, а дикая малваря мб эффективной только с помощью соц. инженерии: к примеру, основной проблемой всех аверок является тормознутость компа + ложная тревога. малваря перед инжектом должна вынудить юзера снизить уровень защиты иль отключить аверку вовсе. а в идеале используется сугубо соц. инженерия :)
     
  11. sato

    sato Member

    Публикаций:
    0
    Регистрация:
    15 янв 2012
    Сообщения:
    206
    я в этой теме не силён .... но если оказался на чужой машине , что наверно самое сложное
    у тебя развязаны руки,можно наверно запустить код когда ав выключен или отсутствует(как у меня например)
    если создать два левых процесса ,один будет инжектить другой -- если всё норм то запускать "основной процесс"
     
  12. everistic

    everistic New Member

    Публикаций:
    0
    Регистрация:
    24 май 2018
    Сообщения:
    6
    Спасибо всем за ответы. Еще вопрос - а если обернуть все это в отладчик т.е. вызывать ф-и через генерацию отладочных событий разница для авера какая то будет?
     
  13. somebodynew

    somebodynew New Member

    Публикаций:
    0
    Регистрация:
    18 май 2018
    Сообщения:
    5
    SetWindowsHooks?
    Direct syscalls (хотя если используется гипервизор, то это такая себе идея)
    Еще может быть цепочка типа VirtualAlloc (под шелл) + WriteProcessMemory (в любом потенциально исполняемом месте трамплин к шеллу)
     
  14. Rel

    Rel Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    1.613
    https://www.bleepingcomputer.com/ne...ing-trojan-uses-never-before-seen-techniques/ - щас все моднее и моднее в банковских троянах такие штуки юзать, тк браузеры пытаются построить защиту от инжектов, вне зависимости от оной со стороны антивируса... довольно интересный подход имхо...
     
  15. zerodawn

    zerodawn Member

    Публикаций:
    0
    Регистрация:
    16 янв 2018
    Сообщения:
    70
    А кстати, чуть не забыл. Тут недавно новая техника проскакивала. Инжекты в CLI процессы

    Вот он, "Ctrl-inject"
    https://blog.ensilo.com/ctrl-inject

     
  16. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    3.407
    мдааа… :) но сказать, что тута что-сь новое низя: тот же линь чрез консоль очень бодро ломают == особенно доставляет смотреть ролики ламо-линуксойдов, где они дюже вольно настраивают sudo.. xdotool -- тожь зачётная утилитка. К$t@, в свете интеграции линя в вынь проклятие башика (bash) станет большой печалью для вынь юзверей. Однако, на компе всё же достаточно легко обеспечить защищённый онлайн банкинг: даже просто поставив отдельный бравзер для банкинга, ужо решается проблема левых редиректов, а для пущей защиты можно фаерволом запретить бравзеру любые ой-пи, окромя банка.
     
  17. zerodawn

    zerodawn Member

    Публикаций:
    0
    Регистрация:
    16 янв 2018
    Сообщения:
    70
    Пущей защиты - громко сказано. Всегда можно сливать данные через пайп в стороннее сетевое приложение.
     
  18. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    3.407
    нагромоздить костылей всяких можно, но вышеозначенный методы хороши именно своим минимализмом. к тому ж, аким дикобразом ты подкинешь скрипт для инжекта в бравзер, кой используется сугубо для банкинга ???
     
  19. zerodawn

    zerodawn Member

    Публикаций:
    0
    Регистрация:
    16 янв 2018
    Сообщения:
    70
    не понял вопроса. Найти можно даже портейбел версии с переименованными экзешниками.
     
  20. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    3.407
    Ты ещё и левый экзе подкидывать собрался ??? то есть юзверь должен с твоей репы качнуть хромого со встроенной малварей ???:blush2::crazy::read::scratch_one-s_head:
     
Статус темы:
Закрыта.