05.02.2016

Fast Malware Sandbox Create [Noriben+VMware+Windows+LOKI]

Мой опыт быстрого развертывания портативной среды анализа малвари, на основе vmware и noribien. (аналог Cuckoo)

Скачать все тулзы (что ниже) одним архивом + батники запуска анализа:
https://mega.nz/#F!cAc0XSAA!gyHheyBPOeQ_M44U77DXaw
Или собираем с самыми свежими версиями софта:

VMware
Для начала устанавливаем VMware Workstation. На момент теста у меня стояла 12.1.0 build-3272444. (Pro)
После чего устанавливаем VMware VIX 1.15.0 API for Windows 64-bit operating systems (для каждой вервии вари свой vix)
для 12.1.0 вари: http://www.tuinformaticafacil.com/descargas-gratis/virtualizacion/vmware/vmware-vix-api-para-windows-32-bit-y-64-bit


Windows Malware VM
Для быстроты развертывания можно взять готовый образ Windows XP с официального сайта мелкософта: https://dev.windows.com/en-us/microsoft-edge/tools/vms/windows/
Скачиваем образ по варю и деплоим виртуалку.
После деплоя, нужно довесить сетевуху и обновить vmware-tools, ребутимся.
Далее скачиваем необходимый софт:


Архиватор для упаковки результатов анализа:
http://www.7-zip.org/a/7z1514.exe (я установил в папку C:\7zip)

Устанавливаем Python27 на виртуалку в папку C:\Python27

Procmon (нужен для работы noriben, для удобства pe положим в папке с noriben)
И сам Noriben. Скачиваем архив, делаем анпак в папку C:\noriben, и в эту же папку кидаем Procmon.exe. (По желанию регаемся на Virustotal, получаем апи кей, и вставляем его в Noriben.py)

После установки всего софта, делаем снапшот виртуалки.


Запуск малвари для анализа
я немного изменил скрипт(поля которые нужно редактировать, выделены жирным):

:Noriben Sandbox Automation Script
:Responsible for:
:* Copying malware into a known VM
:* Running malware sample
:* Copying off results
:
:Ensure you set the environment variables below to match your system
@echo off
if "%1"=="" goto HELP
if not exist "%1" goto HELP

set DELAY=10
set CWD=%CD%
set VMRUN="C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe"
set VMX="D:\storagevmwarelocal\ie8winxp.vmx"
set VM_SNAPSHOT="Baseline"
SET VM_USER=IEUser
set VM_PASS=Passw0rd!
set FILENAME=%~nx1
set NORIBEN_PATH="c:\noriben\Noriben.py"
set LOG_PATH="c:\Noriben_Logs"
set ZIP_PATH="c:\7zip\7z.exe"

%VMRUN% -T ws revertToSnapshot %VMX% %VM_SNAPSHOT%
%VMRUN% -T ws start %VMX%
%VMRUN% -gu %VM_USER%  -gp %VM_PASS% copyFileFromHostToGuest %VMX% "%1" c:\Malware\malware.exe
%VMRUN% -T ws -gu %VM_USER% -gp %VM_PASS% runProgramInGuest %VMX% "c:\Python27\python.exe" "c:\noriben\Noriben.py" -t %DELAY% --cmd "c:\Malware\Malware.exe" --output %LOG_PATH%
if %ERRORLEVEL%==1 goto ERROR1
%VMRUN% -T ws -gu %VM_USER% -gp %VM_PASS% runProgramInGuest %VMX% %ZIP_PATH% a c:\NoribenReports.zip %LOG_PATH%
%VMRUN% -gu %VM_USER%  -gp %VM_PASS% copyFileFromGuestToHost %VMX% c:\NoribenReports.zip %CWD%\NoribenReports_%FILENAME%.zip
goto END

:ERROR1
echo [!] File did not execute in VM correctly.
goto END

:HELP
echo Please provide executable filename as an argument.
echo For example:
echo %~nx0 C:\Malware\ef8188aa1dfa2ab07af527bab6c8baf7
goto END

:END

Запуск примитивен:

# run-script-for-noriben.bat C:\Malware\virus.dat

После запуска, произойдет откат снепшота нашей виртуалки, копирование virus.dat в папку c:\Malware\malware.exe. Запуск Noriben с задержкой в 10 секунд и запуском вредоноса. После чего в папку c:\Noriben_Logs упадут логи, которые будут упакованы в архив c:\NoribenReports.zip и будет скопирован на хостовую машину в папку, с которого был произведен запуск батника.

YARA
Для работы правил (--yara sig_folder) нужно установить либы:

Последняя для 2.7, в папку с Python27:

Python lib - requests
Загружаем и анпачим архив. Папку requests из архива, кидаем в C:\Python27\Lib
https://github.com/kennethreitz/requests/archive/master.zip


LOKI scanner 
Добавил автоматический запуск скана папки с малварью, с помощью LOKI.(как замена встроенному в noriben yara ключу)
Загружаем локи, и ложем в C:\Loki

Подправленный скрипт для скана с локи:

:Noriben Sandbox Automation Script
:Responsible for:
:* Copying malware into a known VM
:* Running malware sample
:* Copying off results
:
:Ensure you set the environment variables below to match your system
@echo off
if "%1"=="" goto HELP
if not exist "%1" goto HELP

set DELAY=10
set CWD=%CD%
set VMRUN="C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe"
set VMX="D:\storagevmwarelocal\ie8winxp.vmx"
set VM_SNAPSHOT="Baseline4"
SET VM_USER=IEUser
set VM_PASS=Passw0rd!
set FILENAME=%~nx1
set NORIBEN_PATH="c:\noriben\Noriben.py"
set LOG_PATH=c:\Noriben_Logs
set ZIP_PATH="c:\7zip\7z.exe"
set LOKI_PATH="C:\Loki\loki.exe"

%VMRUN% -T ws revertToSnapshot %VMX% %VM_SNAPSHOT%
%VMRUN% -T ws start %VMX%
%VMRUN% -gu %VM_USER%  -gp %VM_PASS% copyFileFromHostToGuest %VMX% "%1" c:\Malware\malware.exe
%VMRUN% -T ws -gu %VM_USER% -gp %VM_PASS% runProgramInGuest %VMX% "c:\Python27\python.exe" "c:\noriben\Noriben.py" -t %DELAY% --cmd "c:\Malware\Malware.exe" --output "%LOG_PATH%"
if %ERRORLEVEL%==1 goto ERROR1
:LOKI_SCAN_FOLDER
%VMRUN% -T ws -gu %VM_USER% -gp %VM_PASS% runProgramInGuest %VMX% %LOKI_PATH% --noprocscan -l "%LOG_PATH%\LokiLog.txt" --dontwait --noindicator --onlyrelevant -p "c:\Malware"
%VMRUN% -T ws -gu %VM_USER% -gp %VM_PASS% runProgramInGuest %VMX% %ZIP_PATH% a c:\Reports.zip "%LOG_PATH%"
%VMRUN% -gu %VM_USER%  -gp %VM_PASS% copyFileFromGuestToHost %VMX% c:\Reports.zip %CWD%\Reports_%FILENAME%.zip
goto END

:ERROR1
echo [!] File did not execute in VM correctly.
goto END

:HELP
echo Please provide executable filename as an argument.
echo For example:
echo %~nx0 C:\Malware\ef8188aa1dfa2ab07af527bab6c8baf7
goto END

:END


Virustotal file check
Для проверки файла, нужно загрузить sigcheck и распаковать в папку C:\Sigcheck\
и добавить в скрипт строки в нужные места:

:Noriben Sandbox Automation Script
:Responsible for:
:* Copying malware into a known VM
:* Running malware sample
:* Copying off results
:
:Ensure you set the environment variables below to match your system
@echo off
if "%1"=="" goto HELP
if not exist "%1" goto HELP

set DELAY=10
set CWD=%CD%
set VMRUN="C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe"
set VMX="D:\storagevmwarelocal\ie8winxp.vmx"
set VM_SNAPSHOT="Baseline4"
SET VM_USER=IEUser
set VM_PASS=Passw0rd!
set FILENAME=%~nx1
set NORIBEN_PATH="c:\noriben\Noriben.py"
set LOG_PATH=c:\Noriben_Logs
set ZIP_PATH="c:\7zip\7z.exe"
set LOKI_PATH="C:\Loki\loki.exe"
set VIRTOTAL_PATH="C:\Sigcheck\sigcheck.exe"

%VMRUN% -T ws revertToSnapshot %VMX% %VM_SNAPSHOT%
%VMRUN% -T ws start %VMX%
%VMRUN% -gu %VM_USER%  -gp %VM_PASS% copyFileFromHostToGuest %VMX% "%1" c:\Malware\malware.exe
%VMRUN% -T ws -gu %VM_USER% -gp %VM_PASS% runProgramInGuest %VMX% "c:\Python27\python.exe" "c:\noriben\Noriben.py" -t %DELAY% --cmd "c:\Malware\Malware.exe" --output "%LOG_PATH%"
if %ERRORLEVEL%==1 goto ERROR1
:VirusTotal
%VMRUN% -T ws -gu %VM_USER% -gp %VM_PASS% runProgramInGuest %VMX% %VIRTOTAL_PATH% -q -h -a -vrs -vt > "%LOG_PATH%\VirusTotal_log.txt"
:LOKI_SCAN_FOLDER
%VMRUN% -T ws -gu %VM_USER% -gp %VM_PASS% runProgramInGuest %VMX% %LOKI_PATH% --noprocscan -l "%LOG_PATH%\LokiLog.txt" --dontwait --noindicator --onlyrelevant -p "c:\Malware"
%VMRUN% -T ws -gu %VM_USER% -gp %VM_PASS% runProgramInGuest %VMX% %ZIP_PATH% a c:\Reports.zip "%LOG_PATH%"
%VMRUN% -gu %VM_USER%  -gp %VM_PASS% copyFileFromGuestToHost %VMX% c:\Reports.zip %CWD%\Reports_%FILENAME%.zip
goto END

:ERROR1
echo [!] File did not execute in VM correctly.
goto END

:HELP
echo Please provide executable filename as an argument.
echo For example:
echo %~nx0 C:\Malware\ef8188aa1dfa2ab07af527bab6c8baf7
goto END

:END