Инжекты

Тема в разделе "WASM.BEGINNERS", создана пользователем Entropy, 15 дек 2023.

  1. Intro

    Intro Active Member

    Публикаций:
    0
    Регистрация:
    29 авг 2009
    Сообщения:
    600
    Интересно, а как "Солнцепёк" смог обрушить киевстар?
     
  2. q2e74

    q2e74 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2018
    Сообщения:
    999
    Aoizora, однако одни наслождаются любовью женщины, рожают детей, сочиняют музыку, поют песни на свадьбах, льют слезы на похоронах, воюют, побеждают и погибают в войнах, осознав цену братства - и это всё тысячилетиями. А другие сверхчеловеки по дуркам сидят :)
     
    Rel нравится это.
  3. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Ты так говоришь, как будто это событие из ряда вон.
     
  4. alex_dz

    alex_dz Active Member

    Публикаций:
    0
    Регистрация:
    26 июл 2006
    Сообщения:
    449
    децкий понос, уже все восттановили
     
  5. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.243
    выделяем память (на те же инты), устанавливаем контрольные значения, запускаем ропресс - сверяем контрольные значения чрез энный период.. в общем и целом, осциллограф тут не нужен.
     
  6. q2e74

    q2e74 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2018
    Сообщения:
    999
    UbIvItS,
    А потом изобрели аспирин. Популярное лекарство от того, от чего помогает аспирин.(с)
     
  7. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.243
    аспирином тут является сброс тактовой частоты железки, однако для датацентров такой аспирин тоже крайне плох :)
     
    q2e74 нравится это.
  8. q2e74

    q2e74 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2018
    Сообщения:
    999
    UbIvItS, не знаю, спорим мы или нет, но у меня сложилось впечатление, что вы отстаиваете тезис, что талантливый дерзкий школьник из неблагополучной семьи, гхм, или наоборот, сверхобеспеченной, может выйти на изобретение такой атаки. Откровенно, это маловероятнее чем встреча на улице марсиан.

    p.s. скажите, а на ваш взгляд, маерск когда снимет с паузы перевозки через красное море?
     
  9. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.243
    я говорю о том, что атака очень дешёвая в реализации. да, обычному школьнику положить облака не получится == нужно использовать много ойпи и много разных акков + замаскировать атаку в непохожих друг на друга бинарях, а ещё сильно сложней - ежли облака требуют сорцев на запускаемый код. однако, исследовательский проект в этом направление по силам и школьнику. самое, пожалуй, забавное, что и вполне себе легальные вещи могут вышибать новые железки с физ повреждениями :)
    --- Сообщение объединено, 20 дек 2023 ---
    хз - сейчас везде Ахтунг :)
     
    q2e74 нравится это.
  10. Marylin

    Marylin Active Member

    Публикаций:
    0
    Регистрация:
    17 фев 2023
    Сообщения:
    189
    Кстати момент загрузки/выгрузки любых DLL можно отследить чз LdrRegisterDllNotification() - она вызывается до динамического связывания, поэтому можно запретить аттач левых либ в свой процесс.
     
  11. q2e74

    q2e74 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2018
    Сообщения:
    999
    UbIvItS, когда вы говорите "хардварный хак" "хак на железо" первое что приходит в голову, это что-то типа этого, а никак не rawhammer rawpress
     
  12. Entropy

    Entropy Member

    Публикаций:
    0
    Регистрация:
    23 авг 2020
    Сообщения:
    185
    сейчас используется что-то более технически сложное ? особенно если речь идёт о Win10
    --- Сообщение объединено, 23 дек 2023 ---
    инжект dll , я так думаю для новичка это неплохое начало
     
  13. q2e74

    q2e74 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2018
    Сообщения:
    999
    Entropy, инжекты - это сверх актуально. Не верьте, что легко находиться по сетевому поведению.
     
  14. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.455
    Адрес:
    Россия, Нижний Новгород
    Смысл инжекта - в доставке стороннего кода в процесс с последующим исполнением. Этот код не обязательно доставляется в dll, это может быть даже сырая исполняемая память без пешных заголовков.
    И доставку, и исполнение можно осуществить множеством разных способов.

    Доставка:
    1. VirtualAllocEx + WriteProcessMemory.
    2. NtCreateSection + NtMapViewOfSection.
    3. VirtualProtectEx + WriteProcessMemory на уже выделенном в процессе регионе (например, на незанятом пространстве в конце модулей или между функциями).
    4. Вариации предыдущих пунктов в ядре, если пишешь драйвер.

    Выполнение:
    1. CreateRemoteThread.
    2. QueueUserAPC - доставка Normal User APC для Alertable-потоков (которые ждут на SleepEx/WaitFor***Ex с флажком Alertable == TRUE).
    3. QueueUserAPC2 - доставка Special User APC для любых потоков.
    4. Угон одного из уже существующих в процессе потоков через SetThreadContext.
    5. Угон одного из существующих в процессе потоков через патч-перехват одной из функций, которые он выполняет.
    6. Добавление каллбэка в таблицу оконных функций через WriteProcessMemory и вызов его из ядра через KeUserModeCallback.
    7. RtlRemoteCall из ntdll (то же самое, что угон потока через SetThreadContext, только в более дружелюбной обёртке).
    8. Доставка Special User APC из ядра.

    Доставка + выполнение:
    1. AppInit_DLLs - ключик в реестре, из которого при инициализации user32.dll читает список библиотек, которые нужно загрузить. Либы загружаются через LoadLibrary в контексте главного потока в функции LoadAppInitDlls в kernel32.
    2. Установка глобальных оконных хуков через SetWindowsHookEx. Будучи вызванной из дллки, она пошлёт всем оконным процессам в той же сессии оконное сообщение, заставив их подгрузить дллку через LoadLibrary в контексте их потоков, которые обрабатывают оконные сообщения.
    3. Модификация таблицы импорта процесса в бинарнике на диске, чтобы тот подгрузил твою либу при запуске.
    4. Подмена одной из существующих либ-зависимостей процесса на твою либу, которая форвардит все функции из оригинальной либы, но дополнительно вызывает твой код.

    В принципе, можно придумать что-то ещё - способы ограничиваются только твоей фантазией.

    Комбинируя способы доставки и исполнения, можно загрузить не только дллку, но и сырой ассемблерный шелл. Или вместо LoadLibrary вручную развернуть дллку в памяти, заполнив таблицу импортов и поправив релоки (это называется «мануалмаппинг»).
     
    mantissa и q2e74 нравится это.
  15. Win32Api

    Win32Api Member

    Публикаций:
    0
    Регистрация:
    16 окт 2022
    Сообщения:
    109
    Это рекомендация для виндовс xp наверно? Хотелось бы еще способы для Windows 3.1
     
    Последнее редактирование: 25 дек 2023
    UbIvItS нравится это.
  16. q2e74

    q2e74 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2018
    Сообщения:
    999
    HoShiMin, размещение (затихариться лоадеру, отлжаться) это после инжектов не менее важная вещь. что бы увеличить временнУю дистанцию между доставкой и выполнением.
    --- Сообщение объединено, 25 дек 2023 ---
    для хп вроде 13 способов
     
  17. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.455
    Адрес:
    Россия, Нижний Новгород
    Все, кроме QueueUserAPC2, актуальны для всей линейки от XP до 11, а Special User APC появился только в Windows 11.
    Также, начиная с Windows 8, AppInit_DLLs не будет работать при включенном SecureBoot.
    В остальном ничего не изменилось.

    А зачем? Инжекты довольно легко детектятся ещё на этапе доставки кода (в процессе появилась страничка, которую никто не выделял, или неожиданно поменялось содержимое ридонли-памяти, которую процесс сам не менял).
    Откладывать исполнение особого смысла нет: сторонний код ещё не выполнили, а процесс уже о нём знает.
    Кроме того, если есть задача скрыть свой инжект, чем быстрее выполнишься - тем быстрее поставишь перехваты, уменьшив временное окно, в которое процесс может тебя найти.
     
  18. q2e74

    q2e74 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2018
    Сообщения:
    999
    на загруженных серваках, где куча пляшет от приплывающих постоянно данных, это либо сама ось должна следить, либо антивирус слишком много накладных расходов даст. Гипотетически да, но на деле - не, не думаю. Процессов которые будут смотреть за своим стэйтом - это не 90% программ точно. Не надо далеко ходить, если бы было так, что log4j не была бы уж такой громкой атакой.

    опять же о чем мы говорим? если рип под контроллем, то это уже выполнение. правильно? в том смысле, что до этого шага, с хренали пид должен что-то увидеть? лежит обфусцированя хрень и ладно. Сырые байты ведь дело интерпретации. Сперва рип на интерпретатор надо перебросить, и вот ему будет важно что где лежит. Короче, пока не убедили, что "легко детектятся еще на этапе доставки кода".
     
    Последнее редактирование: 25 дек 2023
  19. Win32Api

    Win32Api Member

    Публикаций:
    0
    Регистрация:
    16 окт 2022
    Сообщения:
    109
    Нам врут постоянно везде и всегда.
    Врут даже те, от кого мы это менее всего этого ожидаем(спецы с васма).

    Хотелось бы в воочию увидеть работающую реализацию, например:
    Код (Text):
    1. Доставка:
    2. 1. VirtualAllocEx + WriteProcessMemory.
    Для загрузки именно дллки на линейке от xp до 11 для 32/64, с выводом MessageBox в DLL_PROCESS_ATTACH

    Чтобы не было разночтений, чтобы код собирался простым батником с помощью gcc.exe,
    например -o -static -static-libgcc -static-libstdc++(как старый добрый зеус)

    Это чтобы не было отмазок, что среда не такая, makefile не торт
     
    Последнее редактирование: 25 дек 2023
  20. q2e74

    q2e74 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2018
    Сообщения:
    999