Avanguard: The Win32 Anti-Intrusion Library

Тема в разделе "CHEATS", создана пользователем HoShiMin, 17 мар 2019.

Метки:
  1. X-Shar

    X-Shar Active Member

    Публикаций:
    0
    Регистрация:
    24 фев 2017
    Сообщения:
    354
    https://xakep.ru/2019/05/24/certificate-abuse/

    Только на ЦП полагаться не стоит, очень частые случаи кражи ЦП, ну и-да купить можно, доступно сейчас.)

    Let's encrypt - Это для сайтов-же, к тому-же там раз в 90 дней нужно обновлять серт, неочень удобно.:dntknw:

    По теме нужно, или нет, я считаю любой инструмент нужен, к тому-же код открыт, можно где-то заюзать что-то. Автору спасибо.)))
     
  2. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.422
    Адрес:
    Россия, Нижний Новгород
    Для важного документооборота на диске лежит исошник с полноценным офисом, а активировать - правильно - через KMSAuto :derisive:
     
  3. X-Shar

    X-Shar Active Member

    Публикаций:
    0
    Регистрация:
    24 фев 2017
    Сообщения:
    354
    Извиняюсь за отход от темы, но мне кажется, что касается вареза, то ситуация уже давно поменялась (Говорю про РФ).

    Если говорить про коммерческие организации, то почти все покупают, система почти везде лицуха, офис тоже.

    Если говорить про домашние компы, также, многие компы продают с уже предустановленной системой, про офис сейчас можно купить подписки, в целом доступно и не нужно заморачиваться кряками и прочее, игры также смысла нет пиратить, т.к. непоиграешь по сетки например...)

    А-так инструментов для "черных дел" много, например зачем что-то писать, когда можно использовать тот-же PowerShell, или вот например для атаки скрываем окошки в TeamViewer, далее используем локальный кейлоггер или простенький стиллер (100% обход всех на сегодняшний день решений безопасности).

    Как-бы всё сложно и с сертификатами этими.)
     
    im. нравится это.
  4. im.

    im. Active Member

    Публикаций:
    0
    Регистрация:
    16 сен 2017
    Сообщения:
    310
    На цифровые подписи конечно полагаться не стоит, это лишь одна из ступеней защиты, при этом сильная.

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

    Для автора же цифровые подписи помогут валидировать модули, которые были заинжектированы в систему, т.к. легитимные продукты можно будет отличить от нонейма без танцев с бубном, так же позволит создавать белые списки по идентификации производителя. Сейчас можно определить вендора, но эта информация подделывается за 1 минуту. В принципе в 2019-2020 пора уже вводить криптографическую маркировку исполняемого кода, и быть к этому готовым.
     
  5. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.422
    Адрес:
    Россия, Нижний Новгород
    Проверка на подписи, кстати, уже есть в некоем зачаточном состоянии - пока только на уровне подписана либа или нет
     
  6. X-Shar

    X-Shar Active Member

    Публикаций:
    0
    Регистрация:
    24 фев 2017
    Сообщения:
    354
    Так их и сейчас мало.

    Основные заражения в основном из-за головотяпства админов, вот зачем открывать RDP-порты всем ?

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

    Вот классическая схема атаки.

    Ну или вот ещё классика, сидит "Тетя бухгалтер", ей приходит письми, типо "Вам пришел счёт...", даже этой тети понятно, что письмо какое-то левое, но она его открывает и запускает файл, отключает UAC, некоторые упертые даже антивирус отключают...)))

    Да, может ЦП и спасло-бы, хотя далеко нефакт.

    О-чем тут говорить вообще, сами пользователи такие, и бесполезно тут что-то делать, кроме как проектировать систему, с учетом этого всего.

    По крайне мере, закрытие критичных портов, защищенные беккапы, ограничение прав пользователей.
     
  7. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    HoShiMin,

    Не рабочее, не корректный импорт. У вас импортятся две Rtl-api из kernel, их там нет и загрузчик кидает фаулт.
     
  8. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.422
    Адрес:
    Россия, Нижний Новгород
    На каких импортах падает? Под рукой нет 32х-битной системы, но 32х-битный билд в 64х-битной Win10 работает...
     
  9. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    RtlPcToFileHeader и RtlCaptureStack.. они должны импортиться из ntdll.

    Это всё основано на патчах ntdll ?
    Ну а если их убрать, работать не будет ?
     
  10. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.422
    Адрес:
    Россия, Нижний Новгород
    https://docs.microsoft.com/en-us/windows/desktop/api/winnt/nf-winnt-rtlpctofileheader
    https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/bb204633(v=vs.85)
    Или в доках ошибка, или одно из двух. Обе должны импортиться из k32... Кто прав?

    Да, всё на хуках в nt/k32 - они служат фильтрами, чтобы процесс знал, где его память\потоки\модули, а где - чужие.
    Если хуки снять, проверка по таймеру это заметит. Явной проверки на то, что все хуки стоят, ещё нет, но, например, проверка может посчитать валидную память за недоверенную (в случае, например, JIT'а). В любом случае, если снять хуки со стороны, скорей всего апп просто крашнется, не проверял.
     
  11. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    HoShiMin,

    > Обе должны импортиться из k32...

    На 7-ке нет, это же нэйтивные ртл.

    > всё на хуках в nt/k32

    Не проблема ведь убрать эти хуки, анмапить образ и туда оригинальный замапить, сохранив секцию данных. При этом ничего не требуется релоцировать, так как у нтдлл база фиксирована.
     
  12. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.422
    Адрес:
    Россия, Нижний Новгород
    Придётся дополнительно снимать, например, таймер, который может проверять, что хуки не сняты, что в адресном пространстве процесса нет неизвестных регионов, а отключение таймера уже не такая тривиальная задача.

    Импорты поправлю
     
  13. im.

    im. Active Member

    Публикаций:
    0
    Регистрация:
    16 сен 2017
    Сообщения:
    310
    В доках ошибка, с появлением kernebase и прочего прокси стафа в доках стали появляться изменения, а так же MS начала забивать на ХР, и 2000 по минимально поддерживаемым версиям ОС для API, там где написано например минимум Vista, в большинстве случаев работает с 2000-й винды без изменений.
    --- Сообщение объединено, 29 май 2019 ---
    Можно вообще ничего не мапить, а напрямую обратится в гейт по номеру сервиса.
    Та же картина с песочницами браузеров если что.
     
    Последнее редактирование: 29 май 2019
  14. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    im.,

    > Можно вообще ничего не мапить

    Необходимо ремапить, так как в областях нтдлл находятся кернел вектора, они вызываются к примеру при создании потока. Тоесть если там фильтр, то он инжект запалит.

    В принципе можно и из юм память заблокировать от изменений, старая техника. Гуй часто блокирует память на время обработки через MmSecureVM(). Если поток тормознуть до разлочки области, то её освободить уже никак не получится(только если ресумить или прикончить поток). Это очень просто сделать через рк атаку на такие сервисы.
     
  15. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.422
    Адрес:
    Россия, Нижний Новгород
    А кому прямо НАДО заинжектить, загрузит драйвер и в PTE даст залоченной памяти RWX-права...
     
  16. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.422
    Адрес:
    Россия, Нижний Новгород
  17. galenkane

    galenkane Active Member

    Публикаций:
    0
    Регистрация:
    13 янв 2017
    Сообщения:
    269
  18. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.422
    Адрес:
    Россия, Нижний Новгород
    Да, это тестовое приложение, там крутится while (true), чтобы не закрылась консолька: https://github.com/HoShiMin/Avanguard/blob/master/AvnSample/AvnSample.cpp#L432

    Заменить на while (GetMessage(...)) и грузить не будет.
     
    Последнее редактирование: 30 май 2019
  19. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    HoShiMin,

    Запускается, но через раз самопроизвольно падает(Eip = 0xCCCCCCCC).

    Если восстановить кодовую секцию и инжектиться, то так же падает. Детектит выделенную область, соотвественно нужно выделять память локально в процессе, что бы область добавилась в списки. Получается очень просто, формируем ROP цепочку через GET/SET-context:

    Код (Text):
    1.  -> ZwAllocateVirtualMemory():
    2.     @memcpy()
    3.     NtCurrentProcess
    4.     @Dst
    5.     0
    6.     @S
    7.     MEM_COMMIT
    8.     PAGE_EXECUTE_READWRITE
    9. -> memcpy():
    10.     @ZwYieldExecution
    11. Dst:    0
    12.     @Src
    13. N:    X
    14. S:    X
    15. Src:
    16.     [Code]
    17.     [TaskState]
    Тоесть сохраняем в стеке контекст, формируем параметры и передаём управление на ZwAlloc. Она выделит память и передаст управление на memcpy, Она скопирует со стека в выделенный буфер код и перейдёт на ZwYield(ret), от туда в буфер. Там откатывается стек и контекст:

    Код (Text):
    1.     add esp,[esp][4]
    2.     add esp,12
    3.    
    4.     Payload()
    5.    
    6.     popad
    7.     iretd
    Оттуда я для примера выводил дебагпринтом TID. Такой инжект работает :preved:
     
    q2e74 нравится это.
  20. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.422
    Адрес:
    Россия, Нижний Новгород
    Неудивительно. Что выделяет сам процесс, автоматом считается доверенным.