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

Статья Динамический анализ файлов VirtualBox+Python

Апдейт 0.5:
* Все функции вынесены в отдельные файлы: vm_functions.py - управление ВМ и support_functions.py - всё остальное (на данный момент генерация рандомных имён, подсчёт контрольной суммы для файла и вывод линков на Google/VT).
* Основной скрипт перенесён в demo.py
* Добавлена функция для получения информации о доступных ВМ
* Добавлена проверка на наличие файла - если файл был удалён (АКА статический детект), то скрипт не будет дожидаться таймаута а просто перейдёт к следующей задаче
* Добавлен адрес BTC для желающих помочь :)

Берём, как обычно, с Гита
 
Версия 0.6:
* Теперь можно выбирать все доступные в виртуалбоксе ВМ ('--vms all') и снапшоты ('--snapshots all'). Юзать аккуратно, чтобы не задеть машины для этого не предназначенные :)
* Добавлена функция для получения списка доступных снапшотов у определенной ВМ - vm_functions.list_snapshots(vm)
* Скрипт теперь понимает, что его хотят остановить (Ctrl+C)
* Добавлена опция для выбора рандомного разрешения экрана из списка наиболее популярных ('--resolution random')
* Прочие фиксы и твики

В следующей версии думаю добавить простой веб интерфейс с минимальным функционалом (залитие файла и отображение скриншотов после завершения анализа).

Внимание, вопрос: скрипт кто-то юзает? Есть какой-то фидбэк?
 
Я кое что придумал, если получится то будет годно


:D:D:D (не удержался, сори за флуд)
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
Версия 0.6:
* Теперь можно выбирать все доступные в виртуалбоксе ВМ ('--vms all') и снапшоты ('--snapshots all'). Юзать аккуратно, чтобы не задеть машины для этого не предназначенные :)
* Добавлена функция для получения списка доступных снапшотов у определенной ВМ - vm_functions.list_snapshots(vm)
* Скрипт теперь понимает, что его хотят остановить (Ctrl+C)
* Добавлена опция для выбора рандомного разрешения экрана из списка наиболее популярных ('--resolution random')
* Прочие фиксы и твики

В следующей версии думаю добавить простой веб интерфейс с минимальным функционалом (залитие файла и отображение скриншотов после завершения анализа).

Внимание, вопрос: скрипт кто-то юзает? Есть какой-то фидбэк?
Error while stopping VM: VBoxManage: error: Invalid machine state: PoweredOff (must be Running, Paused or Stuck)
VBoxManage: error: Details: code VBOX_E_INVALID_VM_STATE (0x80bb0002), component ConsoleWrap, interface IConsole, callee nsISupports
VBoxManage: error: Context: "PowerDown(progress.asOutParam())" at line 619 of file VBoxManageControlVM.cpp

Вот тебе и баг репорт.


ps
ошибка была связана с тем, что я забыл указать лог и пасс.
Но все равно держи баг репорт.
Функция --info not work пробовал и 1 ставить и 0
 
Последнее редактирование:
Error while stopping VM: VBoxManage: error: Invalid machine state: PoweredOff (must be Running, Paused or Stuck)
VBoxManage: error: Details: code VBOX_E_INVALID_VM_STATE (0x80bb0002), component ConsoleWrap, interface IConsole, callee nsISupports
VBoxManage: error: Context: "PowerDown(progress.asOutParam())" at line 619 of file VBoxManageControlVM.cpp

Вот тебе и баг репорт.
Оно не смогло стопнуть уже остановленную ВМ. Такое случается, это норм :)

Но все равно держи баг репорт.
Функция --info not work пробовал и 1 ставить и 0
Спасибо. Должно быть пофикшено в 0.6.1:
* All functions now return exactly 3 values: [exit_code, stdout, stderr]
* New function to get IP addresses of guest - vm_functions.list_ips(vm)
* Fixes in arguments parser
 
Последнее редактирование:
Подниму тему :)

Небольшой фикс - Version 0.6.2:
  • Bug fixes in list_snapshots() function
 
все не покидает мысль сделать свой сканер но немного по другому,чтобы допустим антивири размещались не на одном компе(хуево кукуево виртуалок)имею ввиду,а допустим на 20 дешевых дедиках ,например:на 1-Avira на 2 - Каспер на 3- Узет и т.д,а на одном из дедов стояла бы вебморда которая рассылала бы на остальные семпл проверяемого файла и те в ответ уже присылали бы либо фотоотчет(типо рантайм) или же сделать просто скантайм,но мой мозг не знает как додумать эту схему.Может есть у кого какие идеи,делитесь ими!
 
все не покидает мысль сделать свой сканер но немного по другому,чтобы допустим антивири размещались не на одном компе(хуево кукуево виртуалок)имею ввиду,а допустим на 20 дешевых дедиках ,например:на 1-Avira на 2 - Каспер на 3- Узет и т.д,а на одном из дедов стояла бы вебморда которая рассылала бы на остальные семпл проверяемого файла и те в ответ уже присылали бы либо фотоотчет(типо рантайм) или же сделать просто скантайм,но мой мозг не знает как додумать эту схему.Может есть у кого какие идеи,делитесь ими!

Те же яйца только в профиль.

Все отчеты можешь удаленно брать с помощью WMI
Либо что-то вроде этого - https://github.com/0xthirteen/SharpRDP

...
Только ты охуеть как с этими яйцами ебаться будешь
Клинап всех ключей реестра, клинап всех заскедулиных тасков, если процесс ставил хуки - релиз хуков и т.д......ю
ну или рестор поинты
 
+1. Будет геморно откатывать изменения, а без этого сервера очень быстра засруться и смысла в таком тестировании не будет.
Как вариант, разливать образ диска с ОС по сети после каждого теста, но для этого нужен толковый сисадмин и нормальные сервера/сеть :)
 
Обновление 0.7. Довольно много изменений, в том числе и фиксов. Крайне рекомендую обновиться тем, кто использует предыдущие версии скрипта.

* Добавлена опция для управления количеством одновременно запускаемых задач ('--threads 2'). Можно установить в '0' ('--threads 0'), тогда количество потоков будет равно количеству ВМ.
* Добавлена опция для управления уровнем критичности сообщений, которые будут выводиться в консоль ('--verbosity debug|info|error').
* В функцию vm_stop() добавлен параметр ignore_status_error. Можно использовать, если мы пытаемся остановить ВМ, которая уже может быть остановлена. По умолчанию выключено.
* Добавлены алиасы для функций vm_copyto() и vm_copyfrom() - vm_upload() и vm_download().
* Исправлены ошибки с парсингом некоторых аргументов командной строки.
* Добавлены юниттесты для некоторых функций ('tests/test.py').
* Ещё небольшие апдейты в некоторых функцях.
 
Пара мелких обновлений:

Версия 0.7.1:
* Добавлена опция для записи лога в файл ('--log vm_automation.log'). По умолчанию: выводить лог в консоль ('--log console').

Версия 0.7.2:
* Добавлена функция для получения информации о гостевой ОС - vm_enumerate()
* Добавлены функции для управления снапшотами - vm_snapshot_take() и vm_snapshot_remove(). В данный момент не используются.

В данный момент работаю над:
* Распределением задач между несколькими физическими хостами.
* Простым веб интерфейсом.
* Возможностью использовать предварительно запущенные ВМ для ускорения процесса анализа.
 
Красава канеш, хуяришь на голом энтузиазме
Спасибо.
Вообще я за эту статью 300$ когда-то получил :)
Ну и потом не исключена возможность продажи, когда доведу до ума. Будет Pro версия, или типа того :)
 
И так , всем добрый вечер.
Для желающих воспользоваться трудами пернатого , возможно будет полезен мой опыт. И наше с ним общение .

1. Камнем преткновения был путь к фаилу vboxmanage . Описание в ветке я не нашел. Вот что на это говорит автор :

По-умолчанию скрипт просто пытается запустить "vboxmanage". Путь к нему должен быть либо в переменной $PATH (гугл "Windows Environment variables"), либо указать полный путь к самому файлу в скрипте (--vboxm anage "C:\Program Files\Oracle\VirtualBox\VirtualBox.exe").
Первый вариант удобнее.

Точнее так:
--vboxmanage "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"

2 Камень.

Заметил , что некоторые команды , такие как таймаут не изменяют значения .
Нужно изменить их в доп. скрипте vm_functions.py тогда будет работать корректно. Может это только у меня так.

3 Камень

Если кто-то будет читать прежде , чем делать . Советую сразу на первом , чистом снапшоте . Отключить UAC и поставить пасс. Как оказалось , без логина и пароля могут возникнуть трудности с копирование фаила на ВМ.

4 Камень
Включение фаила , после помещения его на ВМ .
Автор говорит, что это баг самого Vbox(a)
есть метод обхода
Автор :
Я нашел, как его обойти, если запускать файл через другое приложение, например:
vboxmanage guestcontrol w10_1 --username user --password 12345678 start "C:\\Windows\\Explorer.exe" "C:\\Users\\user\\Desktop\\rufus-3.9.exe"
вместо просто запуска файла:
vboxmanage guestcontrol w10_1 --username user --password 12345678 start "C:\\Users\\user\\Desktop\\rufus-3.9.exe"

C последним я еще не справился , дополню как получится .

Оффтоп Обязательно отблагодарю при первой возможности .
 


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