
Скрипт для создания шаблонов для использования с VirtualBox, чтобы усложнить обнаружение виртуальных машин.
Скрипт для создания шаблонов, которые можно использовать с VirtualBox для затруднения обнаружения ВМ.
Моя первая публикация на эту тему была в 2012 году, и с тех пор она время от времени обновлялась. Формат блога, возможно, не был лучшим способом публикации информации, и некоторые люди создали хорошие и «легко применимые» скрипты на основе этого содержания.
Чтобы упростить добавление нового контента, я решил сделать то же самое.
Цель этого скрипта — использовать доступные настройки без изменения основного VirtualBox. Есть люди, которые делают действительно интересные вещи, патча Virtualbox. Но это выходит за рамки данного скрипта. Я считаю, что этот подход имеет свои достоинства, так как он (надеюсь) не ломается с каждым новым релизом VirtualBox.
Со временем я также включил «вещи», не связанные напрямую с ВМ, а скорее то, что вредоносное ПО использует для снятия отпечатков установок. Надеюсь, вы не против..
Основной скрипт создаст следующие файлы:
sudo apt install python3-pip libcdio-utils acpica-tools mesa-utils smartmontoolssudo pip3 install -r requirements.txtwget https://download.sysinternals.com/files/VolumeId.zip https://www.nirsoft.net/utils/devmanview-x64.zip (версия x64).hostname > computer.lst, whoami > user.lst. Измените, если хотите использовать другие имена машин и пользователей для ВМ (рекомендуется заполнить файлы длинным списком пользователей и имен компьютеров)sudo python3 antivmdetect.pysudo chmod a+x xxxxx.sh/bin/bash xxxxx.sh my-virtual-machine-nameПереместите пакетный скрипт (xxxx.ps1) на только что установленную гостевую систему.
Запустите пакетный скрипт внутри гостевой системы. Помните, что большинство изменяемых настроек сбрасываются после каждой перезагрузки. Поэтому, если необходимо, настройте его выполнение при загрузке.
Начиная с версии 0.1.4, некоторые применённые настройки потребуют перезагрузки. Запустите пакетный скрипт один раз, гостевая система будет перезагружена. Затем запустите скрипт ещё раз для завершения настройки.
Перед применением пакетного скрипта внутри гостевой системы отключите UAC (требуется перезагрузка), иначе вы не сможете изменять реестр с помощью скрипта.
Для пользователей Windows 10: запустите PS-скрипт от имени администратора (щелкните правой кнопкой мыши по cmd.exe -> запуск от имени администратора, перейдите к PS-скрипту и выполните его)
Если всё применено правильно, запуск Pafish даст следующий результат (не нужно модифицировать Virtualbox).
Обратите внимание, что этот скрипт делает и другие вещи, не охваченные Pafish (например, артефакты W10)

0.1.9:
Совместимость с Python3
Первая попытка извлечь правильный диск, что было источником головной боли для многих. (Issue #35 (и несколько других старых issues), спасибо @oaustin)
Улучшена обработка строк в shell-скрипте (Issue #35 и #36 и PR #44, спасибо @oaustin, @dashjuvi и @corownik)
Добавлена ссылка на онлайн-ресурс DSDT (Issue #37, спасибо @MasterCATZ)
Обновлён README для улучшения ясности инструкций по установке, спасибо @jorants (issue #38)
Проверка, действительно ли создаётся дамп DSDT, спасибо @nov3mb3r (Issue: #42)
Добавлено уведомление о лицензии, спасибо @obilodeau (issue #43)
Очистка кода: удалена поддержка RAID-дисков из-за отсутствия доступа к серверному оборудованию.. и множество других мелких улучшений
0.1.8:
Улучшена поддержка Windows 10
Объединено исправление разметки от @bryant1410 (PR #14)
Решена проблема для людей, использующих macOS + VBox/VMWare Fusion для создания шаблонов.
Создание шаблона из виртуальной машины в любом случае не лучший способ.. (issue #12 и, возможно, #15)
0.1.7:
Теперь поддерживается Windows 10 (отзывы приветствуются)
Несколько новых артефактов «исправлены» для установок W10
Новая зависимость: mesa-utils
Объединено исправление ошибки от @Fullmetal5 (#10)
Разные исправления кода
Обновлён readme
0.1.6:
Добавлено всплывающее окно после второго запуска, чтобы было яснее, что всё готово
Добавлена функция, порождающая несколько экземпляров блокнота; эта возможность будет расширена в будущих версиях
Переработана функция RandomDate, спасибо @Antelox за то, что обратил моё внимание на проблему со старой версией (#8)
Acpidump, поставляемый со старыми версиями Ubuntu, не поддерживает ключ "-s". Теперь это обрабатывается с сообщением об ошибке. Спасибо @Antelox за этот issue (#7)
Devmanview.exe не удалялся после второго запуска, исправлено
0.1.5:
Добавлена поддержка ассоциации и деассоциации (по умолчанию отключено) расширений файлов. Ссылка: https://www.proofpoint.com/us/threat-insight/post/massive-adgholas-malvertising-campaigns-use-steganography-and-file-whitelisting-to-hide-in-plain-sight
Добавлена поддержка предоставленного пользователем буфера обмена. Если он отсутствует, будет сгенерирована случайная строка. Заполните файл вашими Honeytokens по выбору
Удалена поддержка XP
Преобразованы разделы пакетного скрипта в PowerShell. Больше логики перенесено в гостевой скрипт; короче говоря, теперь меньше причин часто создавать/пересоздавать шаблон, так как больше элементов рандомизируется на гостевой системе.
Добавлена функция, рандомизирующая фоновое изображение рабочего стола
Добавлена функция, создающая документы «всех» видов на гостевой системе
Добавлена функция, создающая документы «всех» видов на гостевой системе и перемещающая их в корзину
Рандомизация DigitalProductId в двух дополнительных местах:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Registration\DigitalProductId.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DefaultProductKey\DigitalProductId.
Используйте паравиртуализационный интерфейс: None (проверено с VBox 5.1.4) — проверка обновлена, чтобы отразить это изменение. Предполагаю, что это изменение в VBox появилось благодаря: TiTi87, спасибо!
/Микаэль
Обратная связь всегда приветствуется! =)
0.1.4:
Исправлена ошибка для пользователей python-dmidecode 3.10.13-3, это была моя вина..
Добавлена функция, рандомизирующая VolumeID (новое требование: VolumeID.exe), эта информация, например, собирается Rovnix
Добавлена функция, рандомизирующая имя пользователя и имя компьютера/хоста (новые требования: список имён пользователей и имён компьютеров)
Первая попытка добавить информацию в буфер обмена; идея (команда) появилась из твита @shanselman. Будет улучшено в следующем релизе
Обновлён readme: новые зависимости и новые функции, требующие перезагрузки
0.1.3:
Копирование и установка строки бренда ЦП.
Проверка, подключено ли аудиоустройство к гостевой системе. Ссылка: http://www.joesecurity.org/reports/report-61f847bcb69d0fe86ad7a4ba3f057be5.html
Проверка архитектуры ОС по сравнению с бинарным файлом DevManView.
Рандомизация ProductId в двух дополнительных местах:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Registration\ProductId.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DefaultProductKey\ProductId.
Очистка ключа продукта Windows из реестра (чтобы предотвратить его кражу...).
Редактирование DigitalProductId (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId) для соответствия новому ProductId.
0.1.2:
Проверка, используется ли устаревший паравиртуализационный интерфейс (использование устаревшего интерфейса смягчает обнаружение «cpuid feature»).
0.1.1:
Проверка количества ЦП (менее 2 == предупреждение).
Проверка объёма памяти (менее 2 ГБ == предупреждение).
Проверка, используется ли IP/IP-диапазон по умолчанию для vboxnet0 (вы можете игнорировать уведомление, если не используете его).
Рандомизация ProductId.
Объединён PR #3 от r-sierra (Спасибо за помощь!)
Исправлена ошибка в AcpiCreatorId (Спасибо @Nadacsc за сообщение!)
Исправлена ошибка в разборе DmiBIOSReleaseDate.
Исправлена ошибка в DmiBIOSReleaseDate для обработки как «стандартного» варианта с опечаткой, так и правильно написанного (Спасибо @WanpengQian за сообщение!).
Включение DevManView не сработало как ожидалось; в этом релизе должно быть исправлено.
Поддерживается также SATA-контроллер (ранее изменялись только настройки IDE)
Обновлён readme
0.1.0:
Решено обнаружение WMI, ставшее известным благодаря HT. Добавлен
DevManView.exe (архитектура на ваш выбор) в список требований.
< 0.1.0 История версий до этого не велась, нужно с чего-то начать, полагаю.