Dorothy2:一个开源的僵尸网络分析框架
awnh1473
8年前
<p style="text-align:center"><img src="https://simg.open-open.com/show/5267c478677dbb21b7b112fbe7d0ab6e.jpg"></p> <h2>框架介绍</h2> <p>Dorothy2是一款采用Ruby语言开发的恶意软件/僵尸网络分析框架,你可以使用Dorothy2框架来对可疑的二进制代码进行分析。该框架的最大优势就是其拥有非常灵活的模块化环境,并且配备有专门针对网络分析任务的可交互式调查框架。除此之外,它还可以通过对比此前生成的基线来识别新的进程。据了解,开发人员将在下一版本中添加两大功能,即静态代码分析以及改进的系统行为分析。Dorothy2在对二进制文件进行分析时,需要使用预设置的分析配置文件。</p> <h3>这份分析配置文件主要有以下元素构成:</h3> <p>沙箱系统类型</p> <p>沙箱系统版本</p> <p>沙箱系统语言</p> <p>固定的分析超时时间(恢复虚拟机前需等待多久)</p> <p>请求截图的数量(以及截图间隔时间)</p> <p>可支持的插件和扩展</p> <p>有了这份配置文件之后,研究人员就可以使用不同的环境来对二进制代码集合进行分析了。大家也知道,某些恶意软件只能在特定的环境下运行。一个计算机安全事件响应团队(CSIRT)也可以使用配置文件在某一特定环境中测试可疑的恶意软件。</p> <p>Dorothy2框架主要由五大模块组成,这些模块均可以单独运行。下面这张图片显示的是Dorothy2的框架结构图,其中的各个模块已相互连接:</p> <p style="text-align:center"><img src="https://simg.open-open.com/show/4b6de78547aa311dce1cfa83168b0f47.jpg"></p> <p>1. 代码读取模块(BFM)</p> <p>该模块负责从代码源读取出待测试的代码。“代码源”可以是系统文件夹、电子邮箱、或者是一台可以通过SSH访问的网络主机。当代码全部读入之后,BFM会将代码加入分析队列之中。</p> <p>2. Dorothy分析引擎</p> <p>该模块通过在沙箱环境中执行待测试的代码来分析队列中的源码,然后将测试生成的网络流量和截图保存分析文件夹中。</p> <p>3. 网络数据提取模块(DEM)</p> <p>该模块负责解析pcaps文件,并将相关信息(流数据和IP信息等)保存至Dorothive之中。除此之外,它会将沙箱下载的文件提取出来,并将这些文件保存至代码文件中的分析文件夹内。</p> <p>4. WebGUI(WGUI)</p> <p>该模块可以将所有获取到的数据以可交互的形式显示出来。警告:这个模块需要在受控环境下运行,作者强烈反对用户将其暴露在网络上。</p> <p>5. TheJava Dorothy Drone(未发布)</p> <p>6. 僵尸网络渗透模块( <a href="/misc/goto?guid=4959727728789413360" rel="nofollow,noindex">基本资料</a> )</p> <h2>运行环境</h2> <p>警告:当前版本的Dorothy使用了VMWareESX5来作为它的虚拟沙箱模块(VSM)。因此,Dorothy不支持免费版的ESXi,因为它使用的是vSphere 5 API。但是,整个框架是可以进行自定义设置的,配置之后就可以使用其他的虚拟化引擎了。Dorothy2是一个高度模块化的框架,用户可以对其进行自定义设置和修改。</p> <h3>Dorothy的执行需要依赖于下列软件:</h3> <p>-VMWare ESX >= 5.0</p> <p>-Ruby 1.9.3</p> <p>-Postgres >= 9.0</p> <p>-至少一台Windows虚拟机</p> <p>-一台类Unix设备,用于网络分析引擎(NAM)</p> <p>- <a href="/misc/goto?guid=4959727728897272774" rel="nofollow,noindex">pcapr-local</a> (用于doroParser)</p> <p>-MaxMind代码库(用于doroParser)</p> <h3>操作系统要求:</h3> <p>-Dorothy可以在任何*nix系统上运行。目前,它可以在OSX和Linux系统上完美运行。</p> <p>-被用作沙箱环境的虚拟机系统必须是Windows。(建议使用XP)</p> <h2>框架安装</h2> <h3>一、 设置ESX环境</h3> <p>1. 基本设置(ssh)</p> <p>-在vSphere中设置:</p> <pre> Configuration->SecurityProfile->Services->Proprieties->SSH->Options->Start and Stopwith host->Start->OK</pre> <p>2. 设置两个独立的虚拟网络</p> <p>3. 配置Windows虚拟机</p> <p>禁用Windows防火墙</p> <p>安装VMWare</p> <p>配置静态IP</p> <p>配置完成之后,使用vSphere控制台创建一个沙箱虚拟机的快照。</p> <p>4. 在vSphere中创建一个Unix虚拟机,用于NAM模块</p> <p>-安装tcpdump和sudo</p> <pre> #apt-get install tcpdump sudo</pre> <p>-为Dorothy创建一个专有用户(例如“dorothy”)</p> <pre> #useradd dorothy</pre> <p>-在dorothy用户主目录下创建一个文件夹,用于保存网络数据</p> <pre> #su dorothy $mkdir /home/dorothy/pcaps</pre> <p>-添加dorothy用户权限</p> <pre> #visudo add the following line: dorothy ALL = NOPASSWD:/usr/sbin/tcpdump, /bin/kill, /usr/bin/killall</pre> <p>-如果你打算在Linux系统上安装Dorothy,我建议你将pcapr和Dorothy gem安装在同一虚拟机中。</p> <pre> #apt-get install ruby1.9.3 rubygems tshark zip couchdb</pre> <p>-开启couchdb服务器</p> <pre> #/etc/init.d/couchdb start</pre> <p>-安装pcapr-local</p> <pre> #gem install pcapr-local</pre> <p>-配置并开启pcapr-local,并配置用于保存网络输出数据的文件夹路径</p> <pre> $startpcapr .... Which directory would you like to scan for indexable pcaps?[/root/pcapr.Local/pcaps] /home/dorothy/pcaps</pre> <p>除此之外,建议允许pcapr访问所有的接口</p> <pre> What IP address should pcapr.Local run on? Use 0.0.0.0 to listenon all interfaces [127.0.0.1] 0.0.0.0</pre> <p>-设置全部正确的话,你应该可以访问下列url了</p> <pre> http//{ip-used-by-NAM}:8000</pre> <h3>安装示例</h3> <p>1. 基本安装-强烈建议用户采用下图所示的架构来安装Dorothy框架。</p> <p style="text-align:center"><img src="https://simg.open-open.com/show/21281d4901899a47df450d73baba92d2.jpg"></p> <p>2. 高级安装-建议企业环境下的用户采用下图所示的架构进行安装。</p> <p style="text-align:center"><img src="https://simg.open-open.com/show/b2e25630eff79264db048b9d02e8141a.jpg"></p> <h3>二、 安装依赖软件</h3> <p>1. 安装postgres</p> <pre> $sudo apt-get install postgresql-9.1</pre> <p>或</p> <pre> http://www.postgresql.org/download/</pre> <p>2. 安装下列数据包</p> <pre> $sudo apt-get install ruby1.9.3 rubygemspostgresql-server-dev-9.1 libxml2-dev libxslt1-dev libmagic-dev</pre> <p>3. 如果你想要安装pcapr的话,运行下列命令</p> <pre> $sudo apt-get install tshark zip couchdb</pre> <h3>三、 安装Dorothygem</h3> <pre> $ sudo gem install dorothy2</pre> <h3>四、 配置并开启Dorothy</h3> <p>1. 安装Maxmind库</p> <p>-GeoLiteCity</p> <p>-GeoLite ASN</p> <p>-将GeoLiteCity.dat和GeoIPASNum.dat拷贝到Dorothy的etc/geo文件夹中</p> <p>2.开启Dorothy</p> <pre> $ dorothy_start –v</pre> <p>3.按照下列顺序进行配置</p> <p>-环境变量(db和esx服务器等)</p> <p>-Dorothy源(获取新代码)</p> <p>-用于分析的ESX虚拟机</p> <h3>五、使用Dorothy</h3> <p>1.将.exe或.bat文件拷贝到$yourdorothyhome/opt/bins/manual/</p> <p>2.执行dorothy</p> <pre> $ dorothy_start -v -s malwarefolder</pre> <p>Dorothy的使用:</p> <pre> Usage: dorothy2 [options] where [options] are: --Version,-V: Print the current version. --verbose,-v: Enable verbose mode --infoflow,-i: Print the analysis flow --baseline, -b <s> : Create a new processbaseline --source, -s <s> : Choose a source (from theones defined in etc/sources.yml) --CreateSource,-C: Create new source file --daemon, -d <s> : (start|stop) Execute/killthe selected module (-W, -B, -A) in backround. If no modules are specified, itwill exec/kill all of them. --debug,-e: Add extensive log trails --manual,-m: Start everything, copy the file,and wait for me. --SandboxUpdate,-S: Update Dorothive with the newSandbox file --DorothiveInit, -D <s> : (RE)Install the DorothyDatabase (Dorothive) --queue, -q: Show the analysis queue --Analyser, -A: Execute only the Analyser Module (willanalalyse only the current queue) --BFM, -B: Execute only the Binary Fetcher Module (BFM) --DEM, -E: Execute only the network Data ExtationModule (DEM) aka doroParser --WebGUI, -W: Execute the WebGUI Module (WGUI) --help, -h: Show this message </s> </s> </s> </s></pre> <p>执行样例:</p> <pre> $dorothy2 -v -d start</pre> <p>Dorothy2首次执行时,它会指引用户对分析环境进行配置,相关配置步骤如下:</p> <p>配置环境变量($home/.dorothy.yml)</p> <p>配置BFM源($dorothyhome/etc/sources.yml)</p> <p>配置沙箱环境($dorothyhome/etc/sandboxes.yml)</p> <p>配置分析设置文件($dorothyhome/etc/profiles.yml)</p> <p>配置步骤完成之后,用户可以随时修改和编辑配置文件。</p> <p>许可证信息</p> <pre> GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 </pre> <p> </p> <p>来自:http://www.freebuf.com/sectool/120560.html</p> <p> </p>