• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Обход проактивной защиты антивирусов

как на сишечке сделать унтверсальную функцию для вызова сисколла по номеру.
Ну они-же похожие, например для x64, на ассемблере будет так:
my_syscall proc
mov r10, rcx
mov eax, number_syscall
syscall
ret
my_syscall endp

Так вот, получаешь номер сискола в си, потом передаешь в ассемблерный модуль и все, ну примерно так:

my_syscall(syscall_number);

В ассемблере этот параметр бует в регистре rcx, или на стеке в x86.

Ну тогда будут разные ассемблерные модули для x86 и x64 просто и все.
 
Есть жи ассемблерные вставки, куда уж универсальнее.
Лучше делать ассемблерные модули и инкапсулировать ассемблерный код, майкрософт вообще запретили делать вставки для x64 сборок в вижуалке.)
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Есть жи ассемблерные вставки, куда уж универсальнее.
Ну я имею ввиду что-то типа:
C++:
LPVOID Syscall(DWORD number, ...) {
    // Вызов сисколла number
}
Ну у меня пару идей появилось, проверю и потестирую на выходных.
 
А что в вашем понимании "Отключить антивирус", все сервисы защитных решений хорошо защищены, их никак не выгрузить, по крайне-мере из юзермода.
Так хорошо с защищены, что совсем недавно вырубались локальными политиками винды по пути к файлу/папке с ав или по серту.
 
Ну у меня пару идей появилось, проверю и потестирую на выходных.
Я что-то вспомнил, что сегодня тяпница, сходил за пивом и решил что больше нехочу дорабатывать.

А-то у меня выходные, мало чем отличаются от работы что-то...)))

1602266703126.jpeg


Поэтому пока есть возможность решил залить в гит, что у меня получилось:https://github.com/XShar/Calling_Syscalls_Directly

Там есть описание...

Если кто будет смотреть проект, тот который в гите, сильно не ругайтесь за код, т.к. это просто моё решение, его можно дорабатывать будет в будущем.

Ну или, я надеюсь DildoFagins всё сделает круто...)))

Ещё запустил анализатор на ноде, что-то совсем мало там отслеживает:

Код:
C:\Новая папка>cmd.exe
Microsoft Windows [Version 6.1.7601]
(c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.
Clink v0.4.9 [git:2fd2c2] Copyright (c) 2012-2016 Martin Ridgers
http://mridgers.github.io/clink


C:\Новая папка>analyze32.exe

Original NlsAnsiCodePage:
028d6630 0000            add     byte ptr [eax],al
028d6632 0000            add     byte ptr [eax],al

Changed NlsAnsiCodePage:
771e0010 e304            jecxz   ntdll!NlsAnsiCodePage+0x6 (771e0016)
771e0012 3f              aas


Original K32EnumProcessModulesEx:
028b90e4 6a0c            push    0Ch
028b90e6 682891e17d      push    7DE19128h

Changed K32EnumProcessModulesEx:
762990c4 e987b752f9      jmp     nvd3d9wrap!GetNVDisplayW+0x21f0 (6f7c4850)
762990c9 cc              int     3
762990ca cc              int     3


Original K32GetMappedFileNameW:
028b94bf 8bff            mov     edi,edi
028b94c1 55              push    ebp
028b94c2 8bec            mov     ebp,esp

Changed K32GetMappedFileNameW:
7629949f e9bcb352f9      jmp     nvd3d9wrap!GetNVDisplayW+0x2200 (6f7c4860)


Original K32GetModuleInformation:
028b9169 6890000000      push    90h

Changed K32GetModuleInformation:
76299149 e9e2b852f9      jmp     nvd3d9wrap!GetNVDisplayW+0x23d0 (6f7c4a30)


Original RegDeleteValueW:
0282ea7d 6a20            push    20h
0282ea7f 6800ebd87d      push    7DD8EB00h

Changed RegDeleteValueW:
7620ea5d e97e695bf9      jmp     nvd3d9wrap!GetNVDisplayW+0x2d80 (6f7c53e0)
7620ea62 cc              int     3
7620ea63 cc              int     3


Original RegQueryValueExW:
02811f0e 6a2c            push    2Ch
02811f10 680020d77d      push    7DD72000h

Changed RegQueryValueExW:
761f1eee e9fd345df9      jmp     nvd3d9wrap!GetNVDisplayW+0x2d90 (6f7c53f0)
761f1ef3 cc              int     3
761f1ef4 cc              int     3


Original RegSetValueExA:
02821429 6a3c            push    3Ch
0282142b 683015d87d      push    7DD81530h

Changed RegSetValueExA:
76201409 e932425cf9      jmp     nvd3d9wrap!GetNVDisplayW+0x2fe0 (6f7c5640)
7620140e cc              int     3
7620140f cc              int     3


Original RegSetValueExW:
02815ba5 6a28            push    28h
02815ba7 68985cd77d      push    7DD75C98h

Changed RegSetValueExW:
761f5b85 e9a6fe5cf9      jmp     nvd3d9wrap!GetNVDisplayW+0x33d0 (6f7c5a30)
761f5b8a cc              int     3
761f5b8b cc              int     3



C:\Новая папка>analyze64.exe

Original NlsAnsiCodePage:
00000000`0246a8da 0000            add     byte ptr [rax],al

Changed NlsAnsiCodePage:
00000000`7702d29a e304            jrcxz   ntdll!NlsAnsiCodePage+0x6 (00000000`77
02d2a0)

C:\Новая папка>
 
Так хорошо с защищены, что совсем недавно вырубались локальными политиками винды по пути к файлу/папке с ав или по серту.
Прикольно, а есть статья где-то ?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Ещё запустил анализатор на ноде, что-то совсем мало там отслеживает
А это не нод походу, nvd3d9wrap - это какая то нвидивская длл, не?
 
Прикольно, а есть статья где-то ?
На экспе была, точнее там был сначала тред, потом уже отдельная статья. Там ещё мердок с каким то челом говорили что все х#йня и мол с под юзер мода такое не сделать, а чел, утверждающий это - пруфанул и саф ещё пророфлил, что мердок с тем челом обосрались. Вот тебе сигнатуры для поиска, ищи))
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Кстати-да, значит нод вообще неотслеживает ?
Да, я на каком то Эсете пробовал, тоже не было результатов. Так это, мы будем что-то с динчеком делать?
 
Да, я на каком то Эсете пробовал, тоже не было результатов. Так это, мы будем что-то с динчеком делать?
Если нужно могу проверить, или акк. дать.
Напиши тогда в личку, как будешь готов.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Если нужно могу проверить, или акк. дать.
Напиши тогда в личку, как будешь готов.
Я завтра соберу теже экзешники, но с выводом в OutputDebugString.
 
А это не нод походу, nvd3d9wrap - это какая то нвидивская длл, не?
Это либа Anvir Task Manager, я как-то ставил для мониторинга автозагрузки, я на реальной системе запустил.

А как нод мониторит ? У меня максимальная версия стоит Eset Smart Security, там файервол в режиме обучения, как минимум должен мониторить выход в сеть, да много чего мониторит по факту он...
 
Пожалуйста, обратите внимание, что пользователь заблокирован
А как нод мониторит ? У меня максимальная версия стоит Eset Smart Security, там файервол в режиме обучения, как минимум должен мониторить выход в сеть, да много чего мониторит по факту он...
Ну в ядре может мониторить сеть. Я не особо шарю в этом, но раньше были драйверы фильтры, но в современных версиях венды их вроде как заменили на WFP callout драйверы. Создание процессов можно мониторить через PsSetCreateProcessNotifyRoutine и тд. Да и хуки может ставить, если он закорефанился с патчгардом).
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Пожалуйста, обратите внимание, что пользователь заблокирован
Выше обсуждали о том, что можно авер как-то вырубить. Так это возможно сейчас? Помнится Бета Бот толе 13-14 году удалял из реестра ключи авера и тому подобное. А если такое есть, то есть где почитать?

А что если создать новый рабочий стол (скрытный), а от туда уже запускать нужный авер и при помощи простого винапи дергать мышкой и вырубать (кликать)? Под типу HVNC (только автоматический). ХЗ на счет этого, не проверял, прост в голову идея пришла.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
А что если создать новый рабочий стол (скрытный), а от туда уже запускать нужный авер и при помощи простого винапи дергать мышкой и вырубать (кликать)? Под типу HVNC (только автоматический). ХЗ на счет этого, не проверял, прост в голову идея пришла.
Ну это сложно. Нужно знать точные расположения или имена конкретных оконных элементов, чтобы их прокликать. Для одного конкретного авера это можно сделать, но даже для одного придется следить за обновлениями интерфейса и своевременно обновлять код. Да и держать в коде несколько вариантов для нескольких версий интерфейса. Ну и в корпоративном сегменте, если админы все настроили хорошо, то у пользователя не должны быть права на изменения настроек антивируса, тем более на его отключение. А так то - ищите COM-хайджекинг и DLL-хайджекинг уязвимости в антивирусе. Контекст собственного процесса для антивируса должен быть сверх-доверенной средой.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Ну это сложно. Нужно знать точные расположения или имена конкретных оконных элементов, чтобы их прокликать. Для одного конкретного авера это можно сделать, но даже для одного придется следить за обновлениями интерфейса и своевременно обновлять код. Да и держать в коде несколько вариантов для нескольких версий интерфейса. Ну и в корпоративном сегменте, если админы все настроили хорошо, то у пользователя не должны быть права на изменения настроек антивируса, тем более на его отключение. А так то - ищите COM-хайджекинг и DLL-хайджекинг уязвимости в антивирусе. Контекст собственного процесса для антивируса должен быть сверх-доверенной средой.
ну вот скажем делаем на петоне, который распознает картинку, после вычисляетя по скриншоту от холдера где находится данная кнопка и передает координаты кнопки где можно вырубить авер. Или даже дальше пойти и занести свою прогу в процесс доверенных. Ну да, понимаю, сложно, но не будет ебли с инжектами, удалением и т.д. Или даже вручную можно. Ничего сложного нет. Простой hvnc. (норм идея кста, можно и реализовать)

А кста, а таким образом обойти uac вполне же возможно, ток когда uac выходит такая хрень, что невозможно подвигать в той области мышкой програмнно. Какой выход есть из этого? Где-то про такое читал, но хз где...
 
Пожалуйста, обратите внимание, что пользователь заблокирован
ну вот скажем делаем на петоне, который распознает картинку, после вычисляетя по скриншоту от холдера где находится данная кнопка и передает координаты кнопки где можно вырубить авер.
Можно обойтись без распознавания картинки, если знать имена окон, и если канеш интерфейс именно на окнах, а не сам себя отрисовывает на канвасе. Это надо в любом случае авера изучать и от версии к версии интерфейс может существенно измениться.

А кста, а таким образом обойти uac вполне же возможно, ток когда uac выходит такая хрень, что невозможно подвигать в той области мышкой програмнно. Какой выход есть из этого? Где-то про такое читал, но хз где...
https://github.com/hfiref0x/UACME в помощь, если я ничего не путаю, то прокликать это никак нельзя.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх