+ Reply to Thread
Results 1 to 12 of 12

Thread: Cuckoo – собственная автоматизированная лаборатория анализа вредоносных файлов

  1. #1
    yorowe's Avatar

    Default Cuckoo – собственная автоматизированная лаборатория анализа вредоносных файлов

    Источник: http://habrahabr.ru/post/234467/


    Месяц назад портал на моей новой работе был взломан. Руководство задалось вопросом «Как?». В ходе недолгих поисков и анализу подключений к серверам, был найден ПК сотрудника, с которого устанавливалось подключение примерно в то самое время. Сотрудник ничего о взломе не знал, но в ходе беседы вспомнил один случай, ему незадолго до взлома пришёл документ от «сотрудника фирмы», который не открылся. Файл был в формате exe, с этого и началась вся история.

    Начальство дирекции поставило задачу проанализировать файл и понять, что он делает и какие данные могли уйти злоумышленнику. С темой анализа вредоносных файлов я раньше не сталкивался, и самым логичным делом было найти немного информации в гугле.

    За несколько дней я нашёл и прочёл огромное количество мануалов по анализу вредоносного ПО, почти все мануалы предлагали проанализировать ПО вручную, с помощью песочниц и разных утилит, но самым простым и быстрым из всех способов проанализировать вирус оказался malwr.com – сервис автоматического анализа файла в песочнице. Зарегистрировался, загрузил вирус, встал «в очередь» и стал ждать, лишь спустя сутки на главной странице появилась новость:


    24-го июля днём, сервис прекратил свою работу на неопределённое время в связи с увеличивающейся нагрузкой.

    Посмотрев страницы сайта и описание, я наткнулся на упоминание об используемой платформе анализа – Cuckoo Sandbox — и решил узнать о программе побольше.


    Что же это за зверь такой «Кукушка»?

    Cuckoo Sandbox — система для автоматического исследования вредоносного ПО, эксплоитов, вредоносных скриптов, документов, архивов и ссылок. Система способна проверять документы pdf, doc, xls, rtf, скрипты Python, JS, DLL библиотеки, бинарники, jar и многое другое.


    Как оно работает?

    В специально подготовленной виртуальной системе устанавливается Python 2.7, добавляется на автозагрузку агент Cuckoo, который будет взаимодействовать с песочницей, специальным образом настраиваются интерфейсы сети, для перехвата и дальнейшего анализа сетевого трафика. После всех манипуляций делается снимок файловой системы, он же Snapshot. Песочница загружает тестируемый файл, определяет его тип и в соответствии с типом файла производит необходимые манипуляции, все изменения внутри песочницы фиксируются в отчёт. После работы система восстанавливает снапшот и виртуальная система возвращается к своему исходному состоянию.

    Cuckoo Sandbox способна на:
    • Мониторинг вызовов win32 API функций
    • Дамп сетевой активности
    • Дамп и анализ памяти
    • Создание скриншотов в ходе выполнения анализа
    • Сохранение копий всех созданных файлов и загруженных в процессе проверки
    • Трассировка инструкций, выполняемых вредоносным процессом
    • Создание удобного отчета в json, mmdef, maec, html-форматах
    • Абсолютная изолированность среды, в которой производится запуск вредоносных программ
    Подогревая интерес публики, выложу небольшой скрин тех сигнатур, что песочница определила у одного файла, приложенного к спам письму:


    Согласитесь, это даёт гораздо больше информации о любом файле, нежели классическое антивирусное срабатывание «Trojan.Gen» (можно считать это «камнем в огород» Symantec).

    Cuckoo Sandbox неплохо задокументирована и её установка в том числе, на некоторых сайтах выложены инструкции по её установке, но в данный момент ни одна инструкция не работает ровно так, как написано. В ходе настройки я столкнулся с немалым количеством проблем, после чего решил написать сюда полный и актуальный гайд по установке и настройке, со всеми нюансами, дополнениями и модификациями. Для самых ленивых я подготовил скрипт, который настроит и установит песочницу автоматически, приступим.

    Установка и настройка Cuckoo, со всеми тонкостями и дополнительными утилитами.

    Вся последующая установка проводилась на VPS Digitalocean (2GB Ram/40GB SSD/Ubuntu 14.04 x32).

    Примечание: если вы решили попробовать собрать песочницу на том же хостинге — не стоит выбирать лондонский ДЦ, у вас возникнут проблемы с доступом к некоторым ссылкам.

    Ubuntu выбран по рекомендации разработчиков, как система, на которой непосредственно и тестировалась песочница.

    План установки будет выглядеть следующим образом:
    1. Установка зависимостей и пакетов, необходимых утилитам и песочнице
    2. Установка утилит и Cuckoo Sandbox
    3. Настройка Cuckoo Sandbox
    4. Установка и настройка Virtualbox
    5. Установка или загрузка виртуальной системы, её настройка
    6. Веб интерфейс
    7. Автозагрузка
    8. Дополнительные «плюшки» и возможности Cuckoo
    9. Готовый скрипт установки и настройки Cuckoo
    10. Бонус

    Установка зависимостей и пакетов, необходимых утилитам и песочнице

    Если вам лень делать это самостоятельно или читать, переходите сразу к пункту Готовый скрипт. Прошу заметить, скрипт тестировался и собирался только под Ubuntu 14.04 LTS x32, работа на других ОС не гарантирована. Если решили разобраться сами, то следующая глава для вас.

    Установим все зависимости:
    Code:
    cd /tmp
    apt-get update
    apt-get install  git automake mongodb mingw32 dkms unzip wget python python-sqlalchemy python-bson python-pip python-dpkt python-jinja2 python-magic python-mysqldb python-gridfs python-libvirt python-bottle python-pefile python-chardet -y
    apt-get install python-dev libxml2-dev libxslt1-dev libevent-dev libpcre3 libpcre3-dev zlib1g-dev libtool libpcre++-dev –y
    apt-get install mariadb-server -y
    Следующие установки желательно делать по одному, как я и написал:
    Code:
    pip install lxml
    pip install cybox==2.0.1.4
    pip install maec==4.0.1.0
    pip install django
    pip install py3compat
    pip install pymongo
    Примечание: Pymongo ставить только через PIP, если установить его через APT – веб интерфейс работать не будет.


    Установка утилит и Cuckoo Sandbox

    SSDEEP — инструмент для рекурсивного вычисления и сравнения контекстных частичных хешей, больше известного как нечёткое хеширование.
    Code:
    apt-get install ssdeep python-pyrex subversion libfuzzy-dev -y
    svn checkout http://pyssdeep.googlecode.com/svn/trunk/ pyssdeep
    cd pyssdeep
    python setup.py build
    python setup.py install
    pip install pydeep
    YARA – инструмент, помогающий вирусным аналитикам опознавать и классифицировать примеры вредоносных программ
    Code:
    cd /tmp
    wget https://github.com/plusvic/yara/archive/v2.1.0.tar.gz
    tar xzf v2.1.0.tar.gz
    cd yara-2.1.0
    chmod +x build.sh
    ./build.sh
    make install
    cd yara-python
    python setup.py build
    python setup.py install
    Distorm3 – дизассемблер.
    Code:
    cd /tmp
    wget http://distorm.googlecode.com/files/distorm3.zip
    unzip distorm3.zip
    cd distorm3
    python setup.py build
    python setup.py install
    Volatility — фреймворк на Python, созданный для изучения дампов памяти операционной системы.
    Code:
    add-apt-repository ppa:pi-rho/security
    apt-get update
    apt-get install volatility
    Примечание: Не собирайте пакет из исходников (как описано в некоторых мануалах по установке 2012-2013 годов), ставьте из репо как в этой статье, иначе web ui не будет работать, собранный Volatility из любых источников и любой версии ломает выгрузку отчётов в MongoDB (без Mongo новый веб интерфейс не заработает), с версией из репозитория такой проблемы нет.


    Установим Cuckoo Sandbox

    Сначала добавим пользователя:
    Code:
    useradd cuckoo
    usermod -a -G vboxusers cuckoo 
    id cuckoo
    Теперь установим:

    Стабильная
    Code:
    cd /opt
    wget http://downloads.cuckoosandbox.org/1.1/cuckoo_1.1.tar.gz
    tar xzf cuckoo_1.1.tar.gz
    Dev
    Code:
    cd /opt
    git clone https://github.com/cuckoobox/cuckoo.git
    Примечание: В примере далее была использована стабильная версия, рекомендую так же использовать стабильную.


    Настройка Cuckoo Sandbox

    Настроим сигнатуры Cuckoo community
    Code:
    cd /opt/cuckoo
    ./utils/community.py --signatures --force
    Теперь настраиваем БД Cuckoo:
    Code:
    mysql -u root -p
    > create database cuckoo;
    > grant all privileges on cuckoo.* to cuckoo@localhost identified by 'cuck00pass' ;
    > flush privileges;
    > quit;
    Настраиваем cuckoo
    1. Файл /opt/cuckoo/conf/cuckoo.conf Включаем запись дампа памяти:
      Code:
      memory_dump = on
      Настраиваем подключение к бд:
      Code:
      connection = mysql://cuckoo:cuck00pass\@localhost/cuckoo
      Сервер слабый, поэтому увеличиваем временные лимиты:
      Code:
      default = 240
      critical = 1200
      vm_state = 600
    2. Файл /opt/cuckoo/conf/memory.conf

      На сервере всего 40 гб, поэтому отключаем сохранение дампов памяти:
      Code:
      delete_memdump = yes
    3. Файл /opt/cuckoo/conf/processing.conf

      Включаем анализ оперативной памяти:
      Code:
      memory = yes
      Примечание: в параметр key можете вписать собственный API ключ сервиса virustotal.com
    4. vim /opt/cuckoo/conf/virtualbox.conf

      Меняем режим работы Virtualbox:
      Code:
      mode = headless
      Меняем названия виртуальной машины с cuckoo1 на WindowsXP:
      Code:
      machines = WindowsXP
          [WindowsXP]
          label = WindowsXP
    5. Файл /opt/cuckoo/conf/reporting.conf Включим импорт отчётов в MongoDB для работы веб интерфейса
      Code:
      [mongodb]
          enabled = yes

    На этом настройка Cuckoo закончена, теперь приступим к Virtualbox и гостевой ОС.


    Установка и настройка Virtualbox

    Virtualbox и все необходимые компоненты
    Code:
    wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add –
    sh -c 'echo "deb http://download.virtualbox.org/virtualbox/debian trusty contrib" >> /etc/apt/sources.list.d/virtualbox.list'
    apt-get update
    apt-get install virtualbox-4.3
    cd /tmp
    VBOX_LATEST_VERSION=$(curl http://download.virtualbox.org/virtualbox/LATEST.TXT)
    wget http://download.virtualbox.org/virtualbox/${VBOX_LATEST_VERSION}/Oracle_VM_VirtualBox_Extension_Pack-{VBOX_LATEST_VERSION}.vbox-extpack
    vboxmanage extpack install /tmp/Oracle_VM_VirtualBox_Extension_Pack-${VBOX_LATEST_VERSION}.vbox-extpack
    cd /opt
    wget http://dlc.sun.com.edgesuite.net/virtualbox/${VBOX_LATEST_VERSION}/VBoxGuestAdditions_${VBOX_LATEST_VERSION}.iso

    Установка или загрузка виртуальной системы, её настройка

    У нас есть 2 варианта установки ОС:
    1. Загрузить её с сайта
    2. Установить вручную
    Первый вариант самый быстрый, но так же и не самый стабильный. Использование данной ОС в некоммерческих целях разрешено и не будет проблем с лицензией.

    Второй вариант более долгий и надёжный, я выбрал последний, но опишу оба по порядку.

    Загрузка виртуальной ОС с сайта
    Code:
    wget https://az412801.vo.msecnd.net/vhd/VMBuild_20131127/VirtualBox/IE6_WinXP/Linux/IE6.WinXP.For.LinuxVirtualBox.sfx
    chmod +x IE6.WinXP.For.LinuxVirtualBox.sfx
    ./IE6.WinXP.For.LinuxVirtualBox.sfx
    vboxmanage import IE6\ -\ WinXP.ova --vsys 0 --unit 10 --disk=/root/VirtualBox\ VMs/WindowsXP/WindowsXP.vmdk --memory 1024 --vmname WindowsXP
    Установка ОС вручную
    Code:
    vboxmanage createvm --name "WindowsXP" --ostype WindowsXP --register
    vboxmanage modifyvm "WindowsXP" --memory 1000 --acpi on --boot1 dvd
    vboxmanage createhd --filename "WindowsXP.vdi" --size 20000
    vboxmanage storagectl "WindowsXP" --name "IDE" --add ide --controller PIIX4
    vboxmanage storageattach "WindowsXP" --storagectl "IDE" --port 0 --device 0 --type hdd --medium "WindowsXP.vdi"
    Примечание: Следующие инструкции одинаково приемлемы к обеим методам.

    Настраиваем сеть
    Code:
    vboxmanage hostonlyif create
    vboxmanage modifyvm "WindowsXP" --nic1 hostonly --hostonlyadapter1 vboxnet0 --nicpromisc1 allow-all --hwvirtex off --vtxvpid off
    Настраиваем общие папки
    Code:
    mkdir -p /opt/cuckoo/shares/setup
    mkdir -p /opt/cuckoo/shares/WindowsXP
    vboxmanage sharedfolder add "WindowsXP" --name "WindowsXP" --hostpath /opt/cuckoo/shares/WindowsXP --automount
    vboxmanage sharedfolder add "WindowsXP" --name setup --hostpath /opt/cuckoo/shares/setup --automount --readonly
    vboxmanage modifyvm "WindowsXP" --nictrace1 on --nictracefile1 /opt/cuckoo/shares/WindowsXP/dump.pcap
    Включаем доступ по RDP
    Code:
    vboxmanage modifyvm "WindowsXP" --vrdeport 5000 --vrde on
    Порт можете указать любой

    На этом конфигурация виртуальных контейнеров полностью закончена, осталось настроить iptables, tcpdump и если вы выбрали установку с нуля — собственно и установить Windows.

    Правила iptables и изменение параметра ядра
    Code:
    iptables -A FORWARD -o eth0 -i vboxnet0 -s 192.168.56.0/24 -m conntrack --ctstate NEW -j ACCEPT  
    iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT  
    iptables -A POSTROUTING -t nat -j MASQUERADE  
    sysctl -w net.ipv4.ip_forward=1
    tcpdump
    Code:
    setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
    getcap /usr/sbin/tcpdump
    Поднимем интерфейс
    Code:
    ifconfig vboxnet0 192.168.56.1
    Теперь переходим непосредственно на саму гостевую ОС:

    Установка Windows

    Загрузите свой образ на сервер и подключим его к виртуальной машине:
    Code:
    vboxmanage storageattach "WindowsXP" --storagectl "IDE" --port 0 --device 1 --type dvddrive --medium /patch/to/licensed/windows
    Включаем
    Code:
    vboxmanage startvm "WindowsXP" --type headless
    После этой команды можно подключиться к виртуальной ОС по RDP на порт 5000 и установить её. После установки подключим и установим VBoxGuestAdditions
    Code:
    vboxmanage storageattach "WindowsXP" --storagectl "IDE" --port 0 --device 1 --type dvddrive --medium /opt/VBoxGuestAdditions_4.3.14.iso
    Примечание: версия ваших аддонов может быть другая.

    Если вы загрузили готовую виртуальную систему, то в любом случае обновить GuestAdditions необходимо.

    После установки перезагружаемся.

    Настаиваем гостевую ОС
    1. Следующим образом настрои подключение к сети (dns можете указать любой):

    2. Установим VboxTools с диска, который подключен к системе.
    3. Устанавливаем Pyton 2.7: http://python.org/download/
    4. Устанавливаем http://www.activestate.com/activepython
    5. Устанавливаем PIL Python модуль, для создания скриншотов: http://www.pythonware.com/products/pil/
    6. Отключаем автоматическое обновление Windows.
    7. Отключаем брандмауэер.
    8. Копируем агент из сетевой папки setup в папку C:\Python27, Ставим агент на автозагрузку, для этого добавляем в ветку реестра(пуск->выполнить->regedit) HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run строковый параметр
      Имя:'Agent'
      Тип:'REG_SZ'
      Содержание:«C:\Python27\agent.pyw»

    9. Включаем IE, в настройках ставим домашней страницей пустую вкладку, по желанию в свойствах обозревателя выключаем все защитные механизмы.
    10. Отключаем SSDP: пуск->выполнить->msconfig и в разделе службы отключаем «Служба обнаружения SSDP», чтобы в отчётах не фигурировали сетевые запросы этой службы.

    11. Перезагружаемся и в появившемся при загрузке окне выбираем «При перезагрузке не выводить это сообщение» и ОК.
    12. После перезагрузки гостевой ОС, пуск->выполнить->cmd и в консоли набираем netstat –na и смотрим есть ли агент на 8000-ом порту

    13. По желанию устанавливаем различное уязвимое ПО старых версий (браузеры, Flash player, Java, Acrobat Reader...): http://www.oldapps.com

      Примечание: если у вас имеется лицензия на офис, лучше его установить, да и лучше установить всего побольше, скайп, ICQ, почтовый клиент, так или иначе некоторое вредоносное ПО пытается собрать данные из этих приложений или же эксплуатировать их. Например хакер, взломавший наш сайт, после нескольких неудачных попыток снова попасть в сеть собрал вирус, эксплуатирующий уязвимость CVE2012-0158, без Microsoft Office вычислить бы это не удалось.
    На этом установка гостевой ОС закончена.

    Делаем снапшот (не выключая гостевую ОС)
    Code:
    vboxmanage snapshot "WindowsXP" take "WindowsXPSnap01" --pause
    И выключаем:
    Code:
    vboxmanage controlvm "WindowsXP" poweroff

    Веб интерфейс

    У Cuckoo Sandbox есть 2 веб интерфейса, новый и старый. Тот что постарее менее информативен, имеет меньше возможностей и гораздо менее удобен, чем новый:
    Старый интерфейс:


    Новый интерфейс:


    Старый интерфейс поднимается без БД, без Django, просто запуском скрипта web.py из папки utils, поэтому если вам этого достаточно — используйте его, но я рекомендую потратить 5 минут вашего драгоценного времени и поднять новый веб интерфейс.

    Устанавливаем Apache:
    Code:
    apt-get install apache2
    Apache выбрал т.к. лучше его знаю и дольше с ним работал, по желанию можете настроить Nginx или Unicorn.

    Файл /etc/apache2/sites-enabled/000-default.conf удаляем

    Создаём файл /etc/apache2/sites-enabled/cuckoo.conf следующего содержания:
    Code:
    <VirtualHost *:80>
        ServerName cuckoo.local
        ServerAdmin webmaster@localhost
        DocumentRoot /opt/cuckoo/web
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        WSGIScriptAlias / /opt/cuckoo/web/web/wsgi.py
        <Directory /opt/cuckoo/web/web>
            <Files wsgi.py>
                Require all granted
            </Files>
        </Directory>
        Alias /static /opt/cuckoo/web/static
        <Directory /opt/cuckoo/web/static/>
            Require all granted
        </Directory>
    </VirtualHost>
    В файле /opt/cuckoo/web/web/wsgi.py находим:
    Code:
    import os
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "web.settings")
    И меняем на:
    Code:
    import os, sys
    sys.path.append('/opt/cckoo')
    sys.path.append('/opt/cuckoo/web')
    os.chdir('/opt/cuckoo/web/')
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "web.settings")
    поправим права:
    Code:
    chown -R cuckoo:cuckoo /opt/cuckoo/
    Меняем пользователя, от которого будет запускаться apache в файле /etc/apache2/envvars
    Code:
    APACHE_RUN_USER=www-data
    APACHE_RUN_GROUP=www-data
    на
    Code:
    APACHE_RUN_USER=cuckoo
    APACHE_RUN_GROUP=cuckoo
    Устанавливаем модуль поддержки wsgi:
    Code:
    aptitude install libapache2-mod-wsgi -y
    Автозагрузка ПО

    Автозагрузка интерфейсов

    В файл /etc/rc.local до строчки exit 0 вписать:
    Code:
    VBoxManage list vms > /dev/null
    ifconfig vboxnet0 192.168.56.1
    Автозагрузка песочницы
    Code:
    apt-get install supervisor
    Создаём файл /etc/supervisor/conf.d/cuckoo.conf следующего содержания:
    Code:
    [program:cuckoo]
    command=python cuckoo.py
    directory=/opt/cuckoo
    
    [program:cuckoo-api]
    command=python api.py
    directory=/opt/cuckoo/utils
    Выполняем:
    Code:
    supervisord -c /etc/supervisor/supervisord.conf
    supervisorctl -c /etc/supervisor/supervisord.conf reload
    Автозагрузка правил iptables
    Code:
    apt-get install iptables-persistent
    Готово, теперь после перезагрузки все службы запустятся и всё будет работать.


    Дополнительные «плюшки» и возможности Cuckoo

    Сигнатуры PEID

    Установим новую базу сигнатур, в новой базе их в 2 раза больше:
    Code:
    cd /tmp
    wget http://research.pandasecurity.com/blogs/images/userdb.txt
    mv userdb.txt /opt/cuckoo/data/peutils/UserDB.TXT
    Правила ClamAV в Yara + сигнатуры угроз URL="http://habrahabr.ru/company/pt/blog/142024/"]APT[/URL] от AlienVault Labs

    Примечание: при попытке загрузки скрипта конвертации правил ClamAV-Yara с лондонского дц digitalocean возникает ошибка “Request not allowed from your country That’s all we know.”
    Code:
    apt-get install clamav -y
    wget http://db.local.clamav.net/main.cvd
    wget http://db.local.clamav.net/daily.cvd
    sigtool -u main.cvd
    sigtool -u daily.cvd
    wget http://malwarecookbook.googlecode.com/svn-history/r5/trunk/3/3/clamav_to_yara.py
    python clamav_to_yara.py -f main.ndb -o main.yar
    python clamav_to_yara.py -f daily.ndb -o daily.yar 
    mkdir /opt/cuckoo/data/yara/clamav
    mv *.yar /opt/cuckoo/data/yara/clamav/
    Сконвертированная база будет выдавать ошибку, ссылаясь на неверную сигнатуру EOL_0_94_2, удалим её:

    из файла /opt/cuckoo/data/yara/clamav/main.yar удалить строчки
    Code:
    «rule EOL_0_94_2
    {
    strings:
    $a0 = { This ClamAV version has reached End of Life! Please upgrade to version 0.95 or later. For more information see www.clamav.net/eol-clamav-094 and www.clamav.net/download }^M
    
    condition:
    $a0
    }»
    Или просто выполнить следующие команды:
    Code:
    RM_EOL=$(sed -n '/EOL_0_94_2/{=}' main.yar)
    for n in {1..8}; do sed -i "${RM_EOL}d" main.yar; done
    Далее установим правила угроз APT от AlienVaults:
    Code:
    git clone https://github.com/AlienVault-Labs/AlienVaultLabs.git 
    mv AlienVaultLabs/malware_analysis/ /opt/cuckoo/data/yara/
    И подключим эти правила к Cuckoo:

    Впишем в файл /opt/cuckoo/data/yara/index_binary.yar строчки:
    Code:
    include "clamav/main.yar"
    include "clamav/daily.yar"
    include "malware_analysis/CommentCrew/apt1.yara"
    include "malware_analysis/FPU/fpu.yar"
    include "malware_analysis/Georbot/GeorBotBinary.yara"
    include "malware_analysis/Georbot/GeorBotMemory.yara"
    include "malware_analysis/Hangover/hangover.yar"
    include "malware_analysis/KINS/kins.yar"
    include "malware_analysis/OSX_Leverage/leverage.yar"
    include "malware_analysis/TheMask_Careto/mask.yar"
    include "malware_analysis/Urausy/urausy_skypedat.yar"
    Zer0m0n или прячем нашу песочницу

    Любой вредоносный файл может попытаться перед выполнением проверить наличие отладчиков или виртуальной среды, результат будет неутешителен. Вот что показывает тест Paranoid Fish при загрузке его исполняемого файла на проверку:


    Это можно легко поправить с помощью Zer0m0n.

    Zer0m0n это драйвер для Cuckoo Sandbox, который будет выполнять анализ ядра во время исполнения вредоносного ПО. Он способен практически полностью скрыть «виртуальность» ОС и позволяет обойти обнаружение Cuckoo вредоносными файлами.

    Установим его:
    Code:
    cd /tmp
    git clone https://github.com/conix-security/zer0m0n.git
    cd zer0m0n/bin
    cp cuckoo.patch /opt/cuckoo
    cd /opt/cuckoo
    patch -p1 < ./cuckoo.patch
    cp /tmp/zer0m0n/bin/logs_dispatcher.exe /opt/cuckoo/analyzer/windows/dll/
    cp /tmp/zer0m0n/bin/zer0m0n.sys /opt/cuckoo/analyzer/windows/dll/
    cp -rf /tmp/zer0m0n/signatures/* /opt/cuckoo/modules/signatures/
    Поправим права:
    Code:
    chown -R cuckoo:cuckoo /opt/cuckoo/
    После этого в веб интерфейсе появится возможность выбора сканирования в дополнительных опциях, по дефолту — Userland или с zer0m0n Kernelland:


    Если вы запускаете скан через консоль — используйте опцию kernel_analysis=yes

    Запустим проверку ещё раз:



    Готовый скрипт установки и настройки Cuckoo

    Как и обещал, выкладываю готовый скрипт. Он автоматически настроит всё, кроме гостевой ОС. После того, как скрипт отработает, вам нужно будет вернуться на пункт по настройке гостевой ОС и сконфигурировать её.




    Бонус

    В качестве бонуса я выложу инструкцию по интеграции Cuckoo Sandbox с программой Maltego.

    Интегрировать систему мы будем с REST API сервисом песочницы, который запускается у нас на порту 8090.

    Я работаю на макинтоше и следующие действия проводил на mac os 10.9.4, но на любой Linux системе всё точно так же должно устанавливаться и работать без проблем:

    Для начала загрузим с сайта Maltego и распакуем её в папку приложения.

    После откроем программу:


    Она предложит войти или зарегистрироваться, регистрируемся, логинимся(с капчей не возитесь, введите что угодно, она не работает), после загружаем и устанавливаем файлы, необходимые для интеграции песочницы с Maltego с репозитория разработчика:
    Code:
    sudo -s
    git clone https://github.com/bostonlink/cuckooforcanari.git
    cd cuckooforcanari
    python setup.py install
    canari create-profile cuckooforcanari
    Теперь необходимо импортировать в Matlego конфиг cuckoo:

    Кликаем на значок программы в левом верхнем углу -> import -> Import Configuration и выбираем из папки, загруженной с github-а конфигурацию:


    Ипортируем всё:


    Готово, теперь открываем конфигурационный файл, вписываем хост, порт и папку, куда вы будете складывать вредоносное ПО:
    Code:
    vim ~/.canari/cuckooforcanari.conf
    Готово, теперь в программе создаём новый график, перетаскиваем на график иконку Cuckoo Malware Sample, переименовываем файл в название вашего вируса и загружаем его через Submit File For Analisys:


    После загрузки вы увидите номер задания:


    По завершении сканирования, вы сможете получать любые данные в виде графиков:


    Подробнее об этом можете посмотреть в офицальном видео, от разработчика:


    Ещё один бонус, книга, которую я нашёл в сети, хороший гайд по использованию Cuckoo Sandbox для анализа вредоносных файлов.

    И если вы используете на работе антивирус Symantec Endpoint Protection 12.1, то можете воспользоваться консольной утилитой под Windows SEPQuarantineTool.zip которая официально не поддерживается Symantec-ом, но ссылку на неё я нашёл в их саппорте. Этой утилитой можно вытаскивать и восстанавливать файлы с карантина, через curl для Windows выгружать файлы на сервер для сканирования, используя REST API и той же утилитой класть файлы обратно на карантин. Таким образом автоматизировав анализ угроз и составив чёрные списки сайтов и серверов, куда ломятся вирусы.

    В заключении хочу сказать, что этот инструмент помог выполнить все поставленные задачи, а логи и вредоносные файлы того хакера, который упоминался в самом начале статьи теперь анализируются буквально в считанные минуты и позволяют понять всю картину работы используемого хакером вредоносного ПО:


    Спасибо за внимание.


    Список использованных источников
    Attached Files
    Last edited by root; 25-08-2014 at 16:49. Reason: Вставил ссылки, картинки и отформатировал текст

  2. 6 пользователя(ей) сказали cпасибо:
    A.P.$lasH (07-02-2016) Dark Koder (28-08-2014) dukeBarman (26-08-2014) keyst0rke (30-08-2014) root (25-08-2014) ximera (25-08-2014)
  3. #2
    ximera's Avatar

    Default Re: Cuckoo – собственная автоматизированная лаборатория анализа вредоносных файлов

    Твоя или просто репост сделал?
    Чтобы избегать ошибок, надо набираться опыта; чтобы набираться опыта, надо делать ошибки. © Лоренс Питер

    Неизбежное прими достойно. © Сенека Луций Анней

    Господи... храни сумасшедших. © Сумасшедший Фрэнки

  4. #3
    500mhz's Avatar

    Default Re: Cuckoo – собственная автоматизированная лаборатория анализа вредоносных файлов

    Фигня
    Кукушка сервисы не ловит

  5. #4
    yorowe's Avatar

    Default Re: Cuckoo – собственная автоматизированная лаборатория анализа вредоносных файлов

    Quote Originally Posted by ximera View Post
    Твоя или просто репост сделал?
    Просто репост. Сам в вопросах анализа малвари не более, чем интересующийся.

    Спасибо root'у за то, что привёл всё в порядок.

  6. Пользователь сказал cпасибо:
    root (28-08-2014)
  7. #5
    ximera's Avatar

    Default Re: Cuckoo – собственная автоматизированная лаборатория анализа вредоносных файлов

    Quote Originally Posted by 500mhz View Post
    Фигня
    Кукушка сервисы не ловит
    От вечно тебе что-то не так
    Чтобы избегать ошибок, надо набираться опыта; чтобы набираться опыта, надо делать ошибки. © Лоренс Питер

    Неизбежное прими достойно. © Сенека Луций Анней

    Господи... храни сумасшедших. © Сумасшедший Фрэнки

  8. #6
    500mhz's Avatar

    Default Re: Cuckoo – собственная автоматизированная лаборатория анализа вредоносных файлов

    Ну правда, после StartService будет пустой лог

  9. #7
    ARCHANGEL's Avatar

    Default Re: Cuckoo – собственная автоматизированная лаборатория анализа вредоносных файлов

    Да, фигня. Вместо реверса малвари гигантская статья про установку и настройку какой-то хрени.
    Добрым быть просто - достаточно обратить свой гнев на негодяев...

  10. 2 пользователя(ей) сказали cпасибо:
    500mhz (28-08-2014) yorowe (29-08-2014)
  11. #8
    dukeBarman's Avatar

    Default Re: Cuckoo – собственная автоматизированная лаборатория анализа вредоносных файлов

    Cuckoo полезная херня =) от целевых нормальных атак не спасёт, но если файло качаемое манагерами прогонять через неё, то можно эпидемии предотвратить
    A hacker without a cat is not a hacker!

  12. 3 пользователя(ей) сказали cпасибо:
    Dark Koder (29-08-2014) root (28-08-2014) ximera (29-08-2014)
  13. #9
    500mhz's Avatar

    Default Re: Cuckoo – собственная автоматизированная лаборатория анализа вредоносных файлов

    Тогда уж sandboxie

  14. 2 пользователя(ей) сказали cпасибо:
    Dark Koder (29-08-2014) ximera (29-08-2014)
  15. #10
    dukeBarman's Avatar

    Default Re: Cuckoo – собственная автоматизированная лаборатория анализа вредоносных файлов

    Увы, Sandboxie проигрывает по функционалу. Плюс - у cuckoo есть обновляемый zer0mon, который неплохо (только неплохо, а не совсем!) скрывает, что приложение запущено в ВМ или Песочнице
    A hacker without a cat is not a hacker!

  16. #11
    500mhz's Avatar

    Default Re: Cuckoo – собственная автоматизированная лаборатория анализа вредоносных файлов

    в чем Sandboxie + BSAplugin проигрывает кукушке?

  17. Пользователь сказал cпасибо:
    ximera (02-09-2014)
  18. #12
    ximera's Avatar

    Default Re: Cuckoo – собственная автоматизированная лаборатория анализа вредоносных файлов

    Quote Originally Posted by 500mhz View Post
    в чем Sandboxie + BSAplugin проигрывает кукушке?
    Пиши статью чем лучше твой вариант. Или еще лучше и вторую от кого-то другого чем лучше кукушка.
    Чтобы избегать ошибок, надо набираться опыта; чтобы набираться опыта, надо делать ошибки. © Лоренс Питер

    Неизбежное прими достойно. © Сенека Луций Анней

    Господи... храни сумасшедших. © Сумасшедший Фрэнки

+ Reply to Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
All times are GMT. The time now is 01:28
vBulletin® Copyright ©2000 - 2018
www.reverse4you.org