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

Статья Anti VM/AV/SANDBOX

ioioio777

Конвертирую ваши доступы в деньги.
Забанен
Регистрация
23.07.2021
Сообщения
144
Реакции
319
Гарант сделки
2
Депозит
0.0001
Пожалуйста, обратите внимание, что пользователь заблокирован
Количество статей в интернете по поводу обнаружения Виртуальных машин - бесконечное множетсво. Прекрасный тому пример - https://evasions.checkpoint.com/

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

Я бы хотел осветить один эксперементальный метод, который вроде как мало где появлялся.

У Виндоус есть такой прекрасный класc, как Win32_PortConnector.
Он, согласно документации отвечает за "физические порты подключения, такие как штекер DB-25, Centronics или PS/2."
Просытми словами - это список всех занятых пользователем портов. Мышь, наушники, клавиатура.

Как мы можем использовать данную информацию ?


На самом деле, все просто. Методом тыка было определено, что VPS, VDS, Сендбоксы, и самое главное - многие виртуальные машины, не перенаправляют порты компьютера на гостевую ОС.

Проведем небольшой тест.


Для этого нам понадобится ввести команду в PowerShell.

Код:
 Get-WmiObject  Win32_PortConnector

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

1644323144100.png


И результат, полученный при идентичном запросе, однако со стороны реального ПК :

1644323404000.png


Остается потратить 30 секунд на создание метода и добавть эту проверку в программу для проверки в живых условиях.


C#:
 bool VM = (new System.Management.ManagementObjectSearcher("SELECT * FROM Win32_PortConnector")).Get().Count == 0;

            if (VM)
            {
                MessageBox.Show("VM Detected");
            }
            else
            {
                MessageBox.Show("Real PC Detected");
            }

Переписать код с Шарпа на другие ЯП - не сложная задача, ссылка на документацию

Наконец-таки, переходим к тестированию в живых условиях.

VM:
1644324313300.png


PC:

1644324382100.png


ANYRUN (SandBox):
1644324649300.png


Повторюсь, метод сугубо эксперементальный и не исключено, что может резать реальные компы, что приведет к потере отстука.
Проверяйте, модифицируйте и совмещайте с методами, на которые давал ссылку в начале статьи.
Отдельное спасибо за ресурс https://evasions.checkpoint.com/ пользователю Artem N
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
Метод конечно так себе помимо виртуалок еще и дедики не будут работать.
вместо вывода MessageBox можно сделать так -
Код:
bool IsVM = (new System.Management.ManagementObjectSearcher("SELECT * FROM Win32_PortConnector")).Get().Count == 0;
if(IsVM) Environment.Exit(0);
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Метод конечно так себе помимо виртуалок еще и дедики не будут работать.
вместо вывода MessageBox можно сделать так -
Код:
bool IsVM = (new System.Management.ManagementObjectSearcher("SELECT * FROM Win32_PortConnector")).Get().Count == 0;
if(IsVM) Environment.Exit(0);

1) так дедики и упомянуты в статье. Это один из видов "Нежелательных пользователей". Честно, зачем тебе инсталлы с хостингов)))

2) Само собой, никакого месседж бокса, я же взял это для визуализации)) Или думаешь я серьезно пользователю на весь экран повешу уведомление "Ты - Реальный комп"
 
Пожалуйста, обратите внимание, что пользователь заблокирован
1) так дедики и упомянуты в статье. Это один из видов "Нежелательных пользователей". Честно, зачем тебе инсталлы с хостингов)))

2) Само собой, никакого месседж бокса, я же взял это для визуализации)) Или думаешь я серьезно пользователю на весь экран повешу уведомление "Ты - Реальный комп"
Я без предъяв просто чисто мысли вслух свои выразил.

А так ты красавчик все норм расписал.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Я без предъяв просто чисто мысли вслух свои выразил.

А так ты красавчик все норм расписал.
окей) спасибо
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Как только техника становится массовой, владельцы песочниц в свои хукалки добавляют ваши пукалки.
АнтиВМ - не на столько незаменимый компонент, чтобы так волноваться за "слив" имхо.
Найдем новый))
 
Пожалуйста, обратите внимание, что пользователь заблокирован
да и смысл в АнтиВМ? так как на виртуалках тоже может быть что то интересное
 
Пожалуйста, обратите внимание, что пользователь заблокирован
да и смысл в АнтиВМ? так как на виртуалках тоже может быть что то интересное
АнтиВМ сделан не совсем для защиты от самих Виртуалок, как от АВ и прочей дрочи, за которыми не стоит реальных пользователей.

Попробуй в стиллере для интереса отключить защиту от ВМ и пролить трафика на 1000 установок. В подарок получишь штук 500 инсталлов с Винды времен палеозоя, на которых не то, чтобы чего-то интересного нет, там в теории ничего и не может быть, так как ОС сгенерировалась 5 секунд назад. (те самый установки, в которых показывает 15 холодных криптокошельков 😂)

Поэтому , как по мне - самая главная функция АнтиВМ'а - именно в отсеивании очевидного мусора с панели.

А так, если в принципе смотреть - у антивм очень много применений. Это и антидебаггер в какойто степени, защита от сливов билда и так далее.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
АнтиВМ сделан не совсем для защиты от самих Виртуалок, как от АВ и прочей дрочи, за которыми не стоит реальных пользователей.

Попробуй в стиллере для интереса отключить защиту от ВМ и пролить трафика на 1000 установок. В подарок получишь штук 500 инсталлов с Винды времен палеозоя, на которых не то, чтобы чего-то интересного нет, там в теории ничего и не может быть, так как ОС сгенерировалась 5 секунд назад. (те самый установки, в которых показывает 15 холодных криптокошельков 😂)

Поэтому , как по мне - самая главная функция АнтиВМ'а - именно в отсеивании очевидного мусора с панели.

А так, если в принципе смотреть - у антивм очень много применений. Это и антидебаггер в какойто степени, защита от сливов билда и так далее.
ну я вообще не использую АнтиВМ в своем софте.
АнтиВМ - Вообще не Антидебагер это ошибочное мнение.
А вот насчет того что на виртуалках ничего не может быть тут я не соглашусь так как всеравно десяток юзеров найдется которые для работы юзают как раз виртуалки на которых у них все лежит. могу конечно ошибаться но чем черт не шутит а вдруг повезет и реально жирная виртуалка попадется кто знает...
АнтиВМ не защитит никак билды от слива))
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Есть параноидальные компании, которые на полном серьезе заставляют своих сотрудников в интернет ходить исключительно через виртуалки, которые каждый день откатывают до золотого образа все, кроме профиля пользователя. С одной стороны это типа секьюрненько, но с другой ничего не мешает малвари закрепиться в профиле пользователя или там собрать из него сохраненные пароли. Имхо нужно детектить именно сендбоксы и ханипоты, а не банить в своей малвари все возможные виртуалочки.
 
Единственный универс способ сломать вирту - выделить её вызов и передать невалид аргументы. Из за разницы в режимах вирта это не обработает, но это можно обработать в том же режиме в юзер. Я такой обьект назвал атомом. Семплов были сотни.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
а ещё через "SELECT * FROM Win32_Fan" можно))
а как же ноуты с пассивной системой охлада ?

но, на самом деле впервые слышу про этот вариант, прикольно, надо будет попробовать скомбинировать с другими
 
это может быть здорово в сочетании с какой-либо другой проверкой, например, наблюдением за положением мыши во времени. стабильная мышь и отсутствие движения = не настоящий пользователь. легко обойти, хотя с небольшой работой от Analyst
но, как говорит DildoFagins (хорошее имя), иногда облачные виртуальные машины являются большой частью сети компании, поэтому не всегда хорошая идея отклонять их.
 
Есть уже известные методы на основе мак адреса, VХ, цпу, процессов, версии ос, биоса и т.д. Вероятность ошибки при их использовании стремится к нулю
Метод конечно так себе помимо виртуалок еще и дедики не будут работать.
 
вот ещё варик для детекта снифферов

C#:
[DllImport("kernel32.dll")]
private static extern IntPtr GetModuleHandle(string lpModuleName);

GetModuleHandle("HTTPDebuggerBrowser.dll") != IntPtr.Zero
GetModuleHandle("FiddlerCore4.dll") != IntPtr.Zero    
GetModuleHandle("RestSharp.dll") != IntPtr.Zero         
GetModuleHandle("Titanium.Web.Proxy.dll") != IntPtr.Zero
 
а как же ноуты с пассивной системой охлада ?

но, на самом деле впервые слышу про этот вариант, прикольно, надо будет попробовать скомбинировать с другими
можно смотреть что за система пк или ноут, а потом уже рубить:)
 
можно смотреть что за система пк или ноут, а потом уже рубить:)
C#:
 if (SystemInformation.PowerStatus.BatteryChargeStatus == BatteryChargeStatus.NoSystemBattery)
 {
    // Desktop
 }
 else
 {
      // Laptop
 }

ещё можна чекать есть ли на компе блютуз
 


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