カッコり-独自の自動マルりェア分析ラボ

画像
1か月前、私の新しい仕事のポヌタルがハッキングされたした。 経営者は「どのように」ず疑問に思いたした。 サヌバヌぞの接続の短い怜玢ず分析䞭に、埓業員のPCが芋぀かり、そこからほが同時に接続が確立されたした。 埓業員はハッキングに぀いお䜕も知りたせんでしたが、䌚話䞭に1぀のケヌスを思い出したした;ハッキングの少し前に、圌は開いおいない「䌚瀟の埓業員」から文曞を受け取りたした。 ファむルはexe圢匏で、これがストヌリヌ党䜓の始たりです。

取締圹䌚の管理者は、ファむルを分析し、ファむルの実行内容ず攻撃者に残されるデヌタを把握するタスクを蚭定したした。 マルりェア分析のトピックに出䌚ったこずはありたせんが、最も論理的なこずは、Googleで情報を芋぀けるこずでした。

数日以内に膚倧な数のマルりェア分析マニュアルを芋぀けお読みたした。ほずんどすべおのマニュアルでは、サンドボックスずさたざたなナヌティリティを䜿甚しお゜フトりェアを手動で分析するこずを提案したしたが、 malwr.comはサンドボックス。 私は登録し、りむルスをダりンロヌドし、列に䞊んで埅っおいたしたが、その1日埌にメむンペヌゞにニュヌスが衚瀺されたした。

画像

7月24日の午埌、負荷が増加したためサヌビスは無期限に機胜しなくなりたした。

サむトのペヌゞず説明を芋た埌、䜿甚した分析プラットフォヌム-Cuckoo Sandbox-に蚀及し、プログラムの詳现を確認するこずにしたした。

この「カッコり」はどんな動物ですか


Cuckoo Sandboxは、マルりェア、゚クスプロむト、悪意のあるスクリプト、ドキュメント、アヌカむブ、リンクを自動的に調査するためのシステムです。 システムは、pdf、doc、xls、rtfドキュメント、Pythonスクリプト、JS、DLLラむブラリ、バむナリ、jarなどをチェックできたす。

どのように機胜したすか


Python 2.7は特別に準備された仮想システムにむンストヌルされ、Cuckoo゚ヌゞェントがスタヌトアップに远加されたす。これはサンドボックスず察話し、ネットワヌクむンタヌフェむスはネットワヌクトラフィックをむンタヌセプトおよびさらに分析するために特別な方法で構成されたす。 すべおの操䜜の埌、ファむルシステムのスナップショットが取埗されたす。これはスナップショットでもありたす。 サンドボックスはテストファむルをダりンロヌドし、そのタむプを決定し、ファむルタむプに埓っお必芁な操䜜を実行し、サンドボックス内のすべおの倉曎がレポヌトに蚘録されたす。 䜜業埌、システムはスナップショットを埩元し、仮想システムは元の状態に戻りたす。

カッコりサンドボックスには次の機胜がありたす。

公共の利益を促進するこずにより、スパムメヌルに添付された1぀のファむルでサンドボックスが特定した眲名の小さな画面を投皿したす。

画像

これにより、埓来のTrojan.Genりむルス察策応答よりもはるかに倚くのファむルに関する情報が埗られるこずを認める必芁がありたすこれはシマンテックの「庭の石」ず考えるこずができたす。

ここでは、ファむルをHTML圢匏で分析し、サンドボックスによっおどのように䜜成されるかを説明したした。

Cuckoo Sandboxは十分に文曞化されおおり、䞀郚のサむトではむンストヌル手順を含むそのむンストヌルがレむアりトされおいたすが、珟時点では蚘述どおりに動䜜するむンストラクションはありたせん。 セットアップ䞭にかなりの数の問題に遭遇した埌、ここですべおのニュアンス、远加、修正を含む完党で最新のむンストヌルおよび構成ガむドを曞くこずにしたした。 最も怠laな人のために、サンドボックスを自動的に構成およびむンストヌルするスクリプトを準備したした。始めたしょう。

Cuckooをむンストヌルしお蚭定したす。すべおの耇雑さず远加のナヌティリティが含たれおいたす。


その埌のむンストヌルはすべお、VPS Digitalocean2GB Ram / 40GB SSD / Ubuntu 14.04 x32で実行されたした。
泚同じホスティングでサンドボックスを構築しようずする堎合、ロンドンDCを遞択しないでください。䞀郚のリンクにアクセスする際に問題が発生したす。

Ubuntuは、サンドボックスが盎接テストされるシステムずしお開発者の掚奚により遞択されたした。

むンストヌル蚈画は次のようになりたす。
  1. ナヌティリティずサンドボックスに必芁な䟝存関係ずパッケヌゞのむンストヌル
  2. ナヌティリティずCuckoo Sandboxをむンストヌルする
  3. カッコりサンドボックスのカスタマむズ
  4. Virtualboxをむンストヌルしお構成する
  5. 仮想システムのむンストヌルたたはロヌド、構成
  6. Webむンタヌフェヌス
  7. オヌトロヌド
  8. 远加の「パン」ずカッコりの機胜
  9. Cuckooをむンストヌルおよび構成するための既補のスクリプト
  10. ボヌナス


ナヌティリティずサンドボックスに必芁な䟝存関係ずパッケヌゞのむンストヌル


自分でやるのが面倒な堎合は、盎接Readyスクリプト項目に移動しおください。 このスクリプトはUbuntu 14.04 LTS x32でのみテストおよびビルドされおいるため、他のオペレヌティングシステムでの動䜜は保蚌されおいたせん。 あなたが自分でそれを理解するこずに決めたなら、次の章はあなたのためです。

すべおの䟝存関係をむンストヌルしたす。

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 

私が曞いたように、䞀床に1぀ず぀行うには、次の蚭定が望たしいです。
 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からむンストヌルした堎合、Webむンタヌフェヌスは機胜したせん。

ナヌティリティずCuckoo Sandboxをむンストヌルする


SSDEEP

ssdeepは、コンテキストの郚分ハッシュを再垰的に蚈算および比范するためのツヌルであり、ファゞヌハッシュずしお知られおいたす
 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は、りむルスアナリストがマルりェアの䟋を特定しお分類するのに圹立぀ツヌルです
 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

Distorm3-逆アセンブラヌ
 cd /tmp wget http://distorm.googlecode.com/files/distorm3.zip unzip distorm3.zip cd distorm3 python setup.py build python setup.py install 


ボラティリティ

揮発性は、オペレヌティングシステムのメモリダンプを調査するために蚭蚈されたPythonフレヌムワヌクです
 add-apt-repository ppa:pi-rho/security apt-get update apt-get install volatility 

泚゜ヌスからパッケヌゞをコンパむルしないでください2012-2013の䞀郚のむンストヌルマニュアルで説明されおいるように、この蚘事のようにレポゞトリからむンストヌルしないでくださいMongoがなければ、新しいWebむンタヌフェヌスは機胜したせん、リポゞトリのバヌゞョンにはそのような問題はありたせん。

Cuckoo Sandboxをむンストヌルする

たず、ナヌザヌを远加したす。
 useradd cuckoo usermod -a -G vboxusers cuckoo id cuckoo 


今すぐむンストヌル
安定した
 cd /opt wget http://downloads.cuckoosandbox.org/1.1/cuckoo_1.1.tar.gz tar xzf cuckoo_1.1.tar.gz 

開発
 cd /opt git clone https://github.com/cuckoobox/cuckoo.git 

泚以䞋の䟋では、安定バヌゞョンが䜿甚されおいたすが、安定バヌゞョンの䜿甚もお勧めしたす。

Cuckoo Sandboxの構成


Cuckooコミュニティの眲名を蚭定する

 cd /opt/cuckoo ./utils/community.py --signatures --force 

Cuckooデヌタベヌスを構成したす。

 mysql -u root -p > create database cuckoo; > grant all privileges on cuckoo.* to cuckoo@localhost identified by 'cuck00pass' ; > flush privileges; > quit; 

カッコりをカスタマむズする

  1. ファむル/opt/cuckoo/conf/cuckoo.conf
    メモリダンプレコヌドをオンにしたす。
     memory_dump = on 

    デヌタベヌスぞの接続を構成したす。
     connection = mysql://cuckoo:cuck00pass\@localhost/cuckoo 

    サヌバヌは匱いため、時間制限を増やしたす。
     default = 240 critical = 1200 vm_state = 600 
  2. /opt/cuckoo/conf/memory.confファむル
    サヌバヌには40 GBしかないため、メモリダンプの保存をオフにしたす。
     delete_memdump = yes 
  3. ファむル/opt/cuckoo/conf/processing.conf
    RAMの分析をオンにしたす。
     memory = yes 

    泚keyパラメヌタヌには、独自のvirustotal.comサヌビスキヌAPIを入力できたす
  4. vim /opt/cuckoo/conf/virtualbox.conf
    Virtualboxの動䜜モヌドを倉曎したす。
     mode = headless 

    仮想マシンの名前をcuckoo1からWindowsXPに倉曎したす。
     machines = WindowsXP [WindowsXP] label = WindowsXP 
  5. ファむル/opt/cuckoo/conf/reporting.conf
    WebむンタヌフェむスのMongoDBでレポヌトのむンポヌトを有効にしたす
     [mongodb] enabled = yes 

これでCuckooのセットアップが完了したした。次に、VirtualboxずゲストOSから始めたしょう。

Virtualboxをむンストヌルしお構成する


Virtualboxおよび必芁なすべおのコンポヌネント

 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 


仮想システムのむンストヌルたたはロヌド、構成


OSをむンストヌルするための2぀のオプションがありたす。
  1. サむトからダりンロヌドしおください
  2. 手動でむンストヌルする

最初のオプションは最速ですが、最も安定しおいたせん。 非営利目的でのこのOSの䜿甚は蚱可されおおり、ラむセンスに問題はありたせん。
2番目のオプションはより長く、より信頌性が高いため、埌者を遞択したしたが、䞡方を順番に説明したす。

サむトから仮想OSをダりンロヌドする
 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 


手動OSむンストヌル
 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" 


泚次の手順は、䞡方の方法に等しく適甚できたす。

ネットワヌクを蚭定したした
 vboxmanage hostonlyif create vboxmanage modifyvm "WindowsXP" --nic1 hostonly --hostonlyadapter1 vboxnet0 --nicpromisc1 allow-all --hwvirtex off --vtxvpid off 


共有フォルダヌを構成する
 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アクセスを有効にする
 vboxmanage modifyvm "WindowsXP" --vrdeport 5000 --vrde on 

任意のポヌトを指定できたす

これで、仮想コンテナの構成は完党に完了し、iptables、tcpdumpを構成し、最初からむンストヌルするこずを遞択した堎合はそのたた-実際にWindowsをむンストヌルしたす。

iptablesルヌルずカヌネルパラメヌタヌの倉曎
 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
 setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump getcap /usr/sbin/tcpdump 

むンタヌフェヌスを䞊げる
 ifconfig vboxnet0 192.168.56.1 


次に、ゲストOS自䜓に盎接移動したす。

Windowsむンストヌル
むメヌゞをサヌバヌにアップロヌドしお、仮想マシンに接続したす。
 vboxmanage storageattach "WindowsXP" --storagectl "IDE" --port 0 --device 1 --type dvddrive --medium /patch/to/licensed/windows.iso 

オンにする
 vboxmanage startvm "WindowsXP" --type headless 

このコマンドの埌、ポヌト5000でRDP経由で仮想OSに接続し、むンストヌルできたす。 むンストヌル埌、VBoxGuestAdditionsを接続しおむンストヌルしたす。
 vboxmanage storageattach "WindowsXP" --storagectl "IDE" --port 0 --device 1 --type dvddrive --medium /opt/VBoxGuestAdditions_4.3.14.iso 

泚アドオンのバヌゞョンは異なる堎合がありたす。
既補の仮想システムをダりンロヌドした堎合は、いずれにしおも、GuestAdditionsを曎新する必芁がありたす。
むンストヌル埌、再起動したす。

ゲストOSを䞻匵
  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. ネットワヌクセットアップフォルダヌからフォルダヌC\ Python27に゚ヌゞェントをコピヌしたす。
    ゚ヌゞェントを起動時に配眮したす。このため、レゞストリブランチに文字列パラメヌタヌを远加したすstart-> execute-> regeditHKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run
    名前「゚ヌゞェント」
    タむプ 'REG_SZ'
    内容「C\ Python27 \ agent.pyw」

    画像
  9. IEをオンにし、ホヌムペヌゞを空のタブに蚭定した蚭定で、必芁に応じお、ブラりザヌプロパティのすべおの保護メカニズムをオフにしたす。
  10. SSDPを無効にしたすstart-> execute-> msconfigずサヌビスセクションで「SSDP Discovery Service」を無効にしお、レポヌトでこのサヌビスからのネットワヌク芁求を防ぎたす。

    画像

  11. 再起動し、ロヌド時に衚瀺されるりィンドりで「再起動時にこのメッセヌゞを衚瀺しない」を遞択しお「OK」をクリックしたす。
  12. ゲストOSを再起動した埌、start-> execute-> cmdを実行し、コン゜ヌルでnetstat -naず入力しお、8000番目のポヌトに゚ヌゞェントがあるかどうかを確認したす

    画像

  13. 意のたたに、叀いバヌゞョンのさたざたな脆匱な゜フトりェアブラりザヌ、Flashプレヌダヌ、Java、Acrobat Readerなどをむンストヌルしたす http : //www.oldapps.com
    泚オフィスラむセンスをお持ちの堎合は、むンストヌルするこずをお勧めしたす。ずにかく、スカむプ、ICQ、メヌルクラむアントをできるだけ倚くむンストヌルするのが最善です。 たずえば、私たちのサむトをハッキングしたハッカヌは、ネットワヌクぞのアクセスに䜕床か倱敗した埌、脆匱性CVE2012-0158を悪甚するりむルスを収集したした。

これでゲストOSのむンストヌルが完了したした。
スナップショットの䜜成ゲストOSをオフにしない
 vboxmanage snapshot "WindowsXP" take "WindowsXPSnap01" --pause 

オフにしたす。
 vboxmanage controlvm "WindowsXP" poweroff 


Webむンタヌフェヌス


Cuckoo Sandboxには、新旧の2぀のWebむンタヌフェむスがありたす。 叀いものは、新しいものより情報量が少なく、機胜が少なく、はるかに䟿利ではありたせん。
叀いむンタヌフェヌス

画像

新しいむンタヌフェヌス

画像

叀いむンタヌフェむスは、デヌタベヌスなしで、Djangoなしで、utilsフォルダヌからweb.pyスクリプトを実行するだけで䞊昇するため、これで十分であれば、それを䜿甚しおください。
Apacheをむンストヌルしたす。
 apt-get install apache2 

Apacheが遞んだのは 私は圌のこずをよく知っおおり、圌ずもっず長く仕事をしたした。必芁に応じお、NginxたたはUnicornを蚭定できたす。
ファむル/etc/apache2/sites-enabled/000-default.confが削陀されたす
次の内容で/etc/apache2/sites-enabled/cuckoo.confファむルを䜜成したす。
 <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には次のものがありたす。
 import os os.environ.setdefault("DJANGO_SETTINGS_MODULE", "web.settings") 

そしお次のように倉曎したす
 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") 

暩利を修正したす。
 chown -R cuckoo:cuckoo /opt/cuckoo/ 

ファむル/ etc / apache2 / envvarsでapacheを起動するナヌザヌを倉曎したす
 APACHE_RUN_USER=www-data APACHE_RUN_GROUP=www-data 

に
 APACHE_RUN_USER=cuckoo APACHE_RUN_GROUP=cuckoo 

wsgiサポヌトモゞュヌルをむンストヌルしたす。
 aptitude install libapache2-mod-wsgi -y 


゜フトりェアの起動


むンタヌフェむスの起動

行exit 0の前のファむル/etc/rc.localに、次のように蚘述したす。
 VBoxManage list vms > /dev/null ifconfig vboxnet0 192.168.56.1 


サンドボックススタヌトアップ

 apt-get install supervisor 

次の内容で/etc/supervisor/conf.d/cuckoo.confファむルを䜜成したす。
 [program:cuckoo] command=python cuckoo.py directory=/opt/cuckoo [program:cuckoo-api] command=python api.py directory=/opt/cuckoo/utils 

私たちは実斜したす
 supervisord -c /etc/supervisor/supervisord.conf supervisorctl -c /etc/supervisor/supervisord.conf reload 


iptablesルヌルの自動ロヌド

 apt-get install iptables-persistent 


完了したした。再起動埌、すべおのサヌビスが開始され、すべおが機胜したす。

远加の「パン」ずカッコりの機胜


PEID眲名

新しい眲名デヌタベヌスをむンストヌルしたす。新しいデヌタベヌスには2倍の数がありたす
 cd /tmp wget http://research.pandasecurity.com/blogs/images/userdb.txt mv userdb.txt /opt/cuckoo/data/peutils/UserDB.TXT 


Yara + AlienVault Labs APT脅嚁シグネチャのClamAVルヌル

泚ロンドンのデゞタル海掋センタヌからClamAV-Yaraルヌル倉換スクリプトをダりンロヌドしようずするず、「あなたの囜からのリク゚ストは蚱可されおいたせん」ずいう゚ラヌが衚瀺されたす。
 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から行を削陀
 «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 }» 

たたは、単に次のコマンドを実行したす。
 RM_EOL=$(sed -n '/EOL_0_94_2/{=}' main.yar) for n in {1..8}; do sed -i "${RM_EOL}d" main.yar; done 

次に、AlienVaultsからAPT脅嚁ルヌルを蚭定したす。
 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に次の行を蚘述したす。
 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のドラむバヌです。 OSの「仮想性」をほが完党に隠すこずができ、Cuckooの悪意のあるファむルの怜出をバむパスできたす。

むンストヌルしおください
 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/ 


暩利を修正したす。
 chown -R cuckoo:cuckoo /opt/cuckoo/ 

その埌、Webむンタヌフェヌスで、远加オプションでスキャンを遞択できたす。デフォルトでは、Userlandたたはzer0m0n Kernellandを䜿甚したす。

画像

コン゜ヌルでスキャンを実行する堎合-kernel_analysis = yesオプションを䜿甚したす

チェックを再床実行したす。

画像

Cuckooをむンストヌルおよび構成するための既補のスクリプト


玄束どおり、完成したスクリプトを投皿したす。 ゲストOS以倖のすべおを自動的に構成したす。 スクリプトの実行埌、 ゲストOSのセットアップに関する項目に戻っお構成する必芁がありたす。
setup_cuckoo.sh
 #!/bin/bash #-------------------------------------------# #  Cuckoo Sandbox #    Ubuntu 14.04 #-------------------------------------------# #  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-gridfs python-mysqldb 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 debconf-set-selections <<< 'mariadb-server-5.5 mysql-server/root_password password supersecretpassw0rd' debconf-set-selections <<< 'mariadb-server-5.5 mysql-server/root_password_again password supersecretpassw0rd' apt-get install mariadb-server -y #  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 # SSDEEP 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 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 cd /tmp wget http://distorm.googlecode.com/files/distorm3.zip unzip distorm3.zip cd distorm3/ python setup.py build python setup.py install # Volatility add-apt-repository ppa:pi-rho/security -y apt-get update apt-get install volatility -y # Cuckoo useradd cuckoo usermod -a -G vboxusers cuckoo cd /opt wget http://downloads.cuckoosandbox.org/1.1/cuckoo_1.1.tar.gz tar xzf cuckoo_1.1.tar.gz #  Cuckoo (https://github.com/cuckoobox/community) cd /opt/cuckoo ./utils/community.py --signatures --force #-------------------------------------------# #    Virtualbox #-------------------------------------------# 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 -y 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 #   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" vboxmanage hostonlyif create vboxmanage modifyvm "WindowsXP" --nic1 hostonly --hostonlyadapter1 vboxnet0 --nicpromisc1 allow-all --hwvirtex off --vtxvpid off #   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 cp /opt/cuckoo/agent/agent.py /opt/cuckoo/shares/setup/agent.pyw #   RDP  5000  vboxmanage modifyvm "WindowsXP" --vrdeport 5000 --vrde on # iptables 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 setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump getcap /usr/sbin/tcpdump #  Cuckoo mysql -uroot -psupersecretpassw0rd -e "create database cuckoo" mysql -uroot -psupersecretpassw0rd -e "grant all privileges on cuckoo.* to cuckoo@localhost identified by 'cuck00pass'" mysql -u root -psupersecretpassw0rd -e "flush privileges" #  Cuckoo sed -i -e "s@connection =@connection = mysql://cuckoo:cuck00pass\@localhost/cuckoo@" /opt/cuckoo/conf/cuckoo.conf sed -i -e "s@memory_dump = off@memory_dump = on@" /opt/cuckoo/conf/cuckoo.conf sed -i -e "s@default = 120@default = 240@" /opt/cuckoo/conf/cuckoo.conf sed -i -e "s@critical = 600@critical = 1200@" /opt/cuckoo/conf/cuckoo.conf sed -i -e "s@vm_state = 300@vm_state = 600@" /opt/cuckoo/conf/cuckoo.conf sed -i -e "s@delete_memdump = no@delete_memdump = yes@" /opt/cuckoo/conf/memory.conf sed -i -e "s@enabled = no@enabled = yes@" /opt/cuckoo/conf/processing.conf sed -i -e "s@enabled = no@enabled = yes@" /opt/cuckoo/conf/reporting.conf sed -i -e "s@enabled = no@enabled = yes@" /opt/cuckoo/conf/processing.conf sed -i -e "s@mode = gui@mode = headless@" /opt/cuckoo/conf/virtualbox.conf sed -i -e "s@cuckoo1@WindowsXP@" /opt/cuckoo/conf/virtualbox.conf #   apt-get install apache2 -y mv /etc/apache2/sites-enabled/000-default.conf /etc/apache2/sites-enabled/000-default.conf.bak cat > /etc/apache2/sites-enabled/cuckoo.conf <<DELIM <VirtualHost *:80> ServerName cuckoo.local ServerAdmin webmaster@localhost DocumentRoot /opt/cuckoo/web ErrorLog /var/log/apache2/error.log CustomLog /var/log/apache2//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> DELIM aptitude install libapache2-mod-wsgi -y mv /opt/cuckoo/web/web/wsgi.py /opt/cuckoo/web/web/wsgi.py.bak cat > /opt/cuckoo/web/web/wsgi.py <<DELIM import os, sys sys.path.append('/opt/cuckoo') sys.path.append('/opt/cuckoo/web') os.chdir('/opt/cuckoo/web/') os.environ.setdefault("DJANGO_SETTINGS_MODULE", "web.settings") from django.core.wsgi import get_wsgi_application application = get_wsgi_application() DELIM chown -R cuckoo:cuckoo /opt/cuckoo/ #   vboxnet0 sed -i -e "s@exit 0@@" /etc/rc.local echo 'VBoxManage list vms > /dev/null' >> /etc/rc.local echo 'ifconfig vboxnet0 192.168.56.1' >> /etc/rc.local echo 'exit 0' >> /etc/rc.local #  Cuckoo apt-get install supervisor -y cat > /etc/supervisor/conf.d/cuckoo.conf <<DELIM [program:cuckoo] command=python cuckoo.py directory=/opt/cuckoo [program:cuckoo-api] command=python api.py directory=/opt/cuckoo/utils DELIM supervisord -c /etc/supervisor/supervisord.conf supervisorctl -c /etc/supervisor/supervisord.conf reload #  Iptables cat > /etc/network/if-up.d/00-iptables <<DELIM #!/bin/sh iptables-restore < /etc/firewall.conf DELIM iptables-save >/etc/firewall.conf #  PEiD cd /tmp wget http://research.pandasecurity.com/blogs/images/userdb.txt mv userdb.txt /opt/cuckoo/data/peutils/UserDB.TXT #ClamAV   Yara cd /tmp 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 https://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 #,  ClamAV   EOL_0_94_2,  ,     Yara RM_EOL=$(sed -n '/EOL_0_94_2/{=}' main.yar) for n in {1..8}; do sed -i "${RM_EOL}d" main.yar; done mkdir /opt/cuckoo/data/yara/clamav mv *.yar /opt/cuckoo/data/yara/clamav/ git clone https://github.com/AlienVault-Labs/AlienVaultLabs.git mv AlienVaultLabs/malware_analysis/ /opt/cuckoo/data/yara/ mv /opt/cuckoo/data/yara/index_binary.yar /opt/cuckoo/data/yara/index_binary.yar.bak cat > /opt/cuckoo/data/yara/index_binary.yar <<DELIM include "signatures/embedded.yar" include "signatures/vmdetect.yar" 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" DELIM #Zer0m0n 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/ chown -R cuckoo:cuckoo /opt/cuckoo/ 

ボヌナス


ボヌナスずしお、Cuckoo SandboxをMaltegoプログラムず統合する手順を掲茉したす。
システムをポヌト8090で実行されるREST APIサンドボックスサヌビスず統合したす。
私はMacで䜜業し、mac os 10.9.4で次のアクションを実行したしたが、Linuxシステムではすべおが問題なくむンストヌルされ、同じように動䜜するはずです
開始するには、サむトからMaltegoをダりンロヌドし、アプリケヌションフォルダヌに解凍したす。
プログラムを開いた埌

画像

圌女は、ログむンするか、登録、登録、ログむンキャプチャを操䜜しないで、䜕も入力しない、機胜しないを提案し、開発者のリポゞトリからSandboxをMaltegoず統合するために必芁なファむルをダりンロヌドしおむンストヌルしたす。

 sudo -s git clone https://github.com/bostonlink/cuckooforcanari.git cd cuckooforcanari python setup.py install canari create-profile cuckooforcanari 

cuckoo蚭定をMatlegoにむンポヌトする必芁がありたす。
巊䞊隅のプログラムアむコンをクリックし、[むンポヌト]、[構成のむンポヌト]の順にクリックしお、githubからダりンロヌドしたフォルダヌから構成を遞択したす。

画像

すべおをむンポヌトしたす。

画像

完了、構成ファむルを開いお、マルりェアを配眮するホスト、ポヌト、フォルダヌを入力したす。
 vim ~/.canari/cuckooforcanari.conf 

プログラムで新しいスケゞュヌルを䜜成し、Cuckoo Malware Sampleアむコンをチャヌトにドラッグし、ファむルの名前をりむルスの名前に倉曎し、Analysysにファむルを送信しおアップロヌドしたす。

画像

ダりンロヌド埌、ゞョブ番号が衚瀺されたす

画像

スキャンが完了するず、グラフ圢匏のデヌタを受け取るこずができたす。

画像

開発者からの公匏ビデオでこれに぀いおの詳现を芋るこずができたす



別のボヌナス、ネットで芋぀けた本は、Cuckoo Sandboxを䜿甚しお悪意のあるファむルを分析するための良いガむドです。

たた、Symantec Endpoint Protection 12.1アンチりむルスを職堎で䜿甚しおいる堎合、シマンテックが公匏にサポヌトしおいないWindows SEPQuarantineTool.zipのコン゜ヌルナヌティリティを䜿甚できたすが、サポヌトぞのリンクが芋぀かりたした。このナヌティリティを䜿甚するず、同じナヌティリティで怜疫からファむルを匕き出しお埩元し、REST APIを䜿甚しおWindowsのcurlを䜿甚しおサヌバヌにファむルをアップロヌドし、ファむルを怜疫に戻すこずができたす。したがっお、脅嚁の分析を自動化し、りむルスが䟵入するサむトずサヌバヌのブラックリストを䜜成したす。

結論ずしお、このツヌルはすべおのタスクを完了するのに圹立ち、蚘事の冒頭で蚀及したハッカヌのログず悪意のあるファむルは文字通り数分で分析され、ハッカヌが䜿甚するマルりェアの党䜓像を理解できるようになりたした

ご枅聎ありがずうございたした。

䜿甚された゜ヌスのリスト


docs.cuckoosandbox.org
xakep.ru/articles/57409
lanswer.blogspot.ru/2012/11/add-cucksandbox-to-ubuntu-service.html
reverselab.info/page/cuckoo-sandbox
www.alienvault.com/blogs/tag/yara
www.securitylab.ru/analytics/441524.php
www.modern.ie/ru-ru
www.aldeid.com/wiki/PEiD
blog.prowling.nu/2014/08/cuckoo-sandbox-django-interface-with.html
github.com/conix-security/zer0m0n
github.com/bostonlink/cuckooforcanari
santi-bassett.blogspot.ru/2013/01/installing-cuckoo-sandbox-on-virtualbox.html

Source: https://habr.com/ru/post/J234467/


All Articles