Идентификация железа

D2

Администратор
Регистрация
19 Фев 2025
Сообщения
4,380
Реакции
0
Мало кого можно удивить сбором информации о железе тем или иным приложением. Но конкретно, какая информация может быть доступна мало кто знает. Найти все идентификаторы нашего железа можно различными способами, для любителей консолей есть варианты через poweshell. Я сторонник графического интерфейса, поэтому для этих целей необходимо воспользоваться сторонним софтом. Возьмём, например, CIM Explorer

1.png



Теперь рассмотрим некоторые идентификаторы железа с помощью этой программы. Информация хранится во вкладке CIMV2. Чтобы узнать идентификатор нужно по классу нажать ctrl+q и внизу в окошке Output будет результат. Итак, приступим
CIM_Display

2.png



CIM_OperatingSystem

3.png



Win32_BIOS

4.png



Win32_OperatingSystem

5.png



Win32_ComputerSystemProduct

6.png



Так как это виртуальная машина, то не все значения видны, на реальном железе не будет такого недостатка. Нужно понимать, каждое устройство начиная от материнской платы и заканчивая мышью имеет свой уникальный идентификатор и перечислять их все составит 10 страниц. Имея доступ к этой информации можно на 100% узнать всю историю серфинга любого пользователя. Впн, тор и прочие анонимайзеры будут просто бесполезны, если браузер захочет узнать, например, серийный номер биоса и будет привязан к нему. Такого быть не может? Зачем браузеру такая информация? Это очень хороший вопрос, ответа на него к сожалению, еще нету. Но запрос информации про биос есть. Нам понадобится некий софт, который отлавливает WMI запросы – wmimon. Качаем, например, с гитхаба. Запускаем через консоль wmimon.exe и ждем. Возьмем самый популярный браузер Google Chrome

7.png



При запуске браузер требует информацию Manufacturer и Model с раздела Win32_ComputerSystem. А что это? А это материнская плата, вендор и модель. Далее ему нужен серийный номер БИОСа (Serial Number from Win32_BIOS). Наверное, это очень важная информация, без которой браузер не сможет работать. А может эта информация используется несколько для иных целей – идентификации.
Всем известен Chrome своими сборами данных, и тут ничего удивительно. Возьмем браузер Firefox

8.png



Здесь разработчики не стали долго думать и запросили полностью всю информацию с Win32_BIOS и Win32_PhysicalMemoryArray. Вот это стало неожиданным.
А как насчет tor браузера? Ведь его называют анонимным и т.д.

9.png



Увы, но он основан на Firefox, поэтому тоже запрашивает информацию.
Посмотрим, что делает Opera

10.png



Тут целый букет. Материнская плата, процессор, ОС
Возьмем браузер Sphere

11.png



Ииии, тут пусто, даже в течении суток не было не одного запроса. Выходит, что браузерам Chrome и Firefox не обязательна та информация, которую они запрашивают.
Немного отвлеклись информацией о браузерах и вернемся к теме статьи. Так как эти идентификаторы находятся в «открытом доступе» ОС, поэтому любой софт спокойно сможет запросить информацию и сделать привязку к железу. Тогда пропадает понятие анонимности в целом, ведь совокупность идентификаторов дает точное представление о истории пользователя, не зависимо от браузера или мессенджера. И что нам дает виртуальная машина? Подмену идентификаторов, ведь виртуальное железо будет иметь отличие от реального. Также нужно понимать, что все идентификаторы виртуальной машины все равно будут неизменны. И при запуске приложение может жестко привязаться к виртуальному железу. Чтобы этого не происходило нужно прибегать к некой хитрости, которая сможет аннулировать почти все идентификаторы и заполнить их новыми значениями. Ничего скачивать не нужно, в Windows утилита эта уже есть. И находится она по адресу C:\Windows\System32\Sysprep\sysprep.exe. запуская ее ставим галочку generalize и ждем окончания. После перезагрузки появится окно установки Windows

12.png



В котором указываем имя компьютера, имя пользователя и ждем завершения настройки параметров. Теперь посмотрим, что изменилось
CIM_Display

13.png



CIM_OperatingSystem

14.png



Win32_BIOS

15.png



Win32_OperatingSystem

16.png



Win32_ComputerSystemProduct

17.png



В итоге мы не изменили серийные номера, в том числе БИОС. Да, все идентификаторы всех устройств были обновлены. Но как же выйти из ситуации, если sysprep’а не хватает? Изнутри системы изменить их не получится, поэтому будем менять снаружи с помощью powershell.
Откроем консоль от имени администратора и впишем некий скрипт на создание новой машины
New-VM -name "111some name" -Generation 2 -MemoryStartupBytes 1024MB -VHDPath "D:\test powershell\test w8.vhdx" -SwitchName "VNC Network"
Полагаю, что тут все ясно, и некие значения подставляем свои. Это лишь пример скрипта, а powershell очень гибкий инструмент и способен полностью автоматизировать создание новой и удаление старой машины. Список команд для гипервизора docs.microsoft.com/en-us/powershell/module/hyper-v/. Нужно заготовить виртуальный диск с примененным sysprep’ом (в самом окне выбрать выключение, а не перезагрузку). Диск оставляем и не изменяем, и каждый раз копируем, затем монтируем к новой виртуальной машине. И процесс копирования можно и нужно автоматизировать.
Создадим новую виртуальную машину и проверим данные идентификаторы.
Win32_BIOS

18.png



Win32_ComputerSystemProduct

19.png



Наконец-то, они будут отличатся от прежних. Поэтому каждый раз нужно создавать новую виртуальную машину, доустанавливать Windows, потом установить сам браузер (остальной софт можно установить и настроить до sysprep’a).
 
Сверху Снизу