[翻译]蜜罐搭建以及样本处理
1 说明
本次实践的目标是向大家展示不同的方法来收集、分类、存储样本。本次练习将会从垃圾邮件中提取恶意样本附件,然后存储到我们配置好的存储器中。
在第一阶段,我们需要先配置用来收集垃圾邮件的Shiva 蜜罐,然后通过提供的脚本来测试垃圾邮件中的陷阱,如果测试没问题,我们会基于Viper项目创建一个测试样本仓库。
然后学习如何根据我们的需求来定制化Viper和Shiva的功能。
到了第二阶段,我们会启动一个脚本来创建垃圾邮件,然后对垃圾邮件进行分析。
通过本次实践,我们将学会:
- a) 如何使用Shiva配置一个垃圾邮件的蜜罐
- b) 如何使用Viper创建一个样本收集仓库
- c) 如何扩展Shiva和Viper的功能
- d) 如何分析Shiva收集到的样本
本次我们将要完成的蜜罐系统架构图如下:

2 介绍
首先我们先来了解一下常规的样本收集方法都有哪些?
下面我将会介绍各种获取样本的方法,包括蜜罐系统、收集垃圾邮件、爬取被感染的网站、还有公共的恶意样本共享仓库,以及样本分享网站。
2.1 恶意样本资源
其实有很多可以获取样本的资源,下面介绍几种最常用的方式。
2.1.1 蜜罐系统
蜜罐通常专门用来检测和报告本地基础设施和更广泛的网络发生的新攻击事件。蜜罐系统通常安装了许多容易被攻击的服务,并且会自动收集正在遭受攻击行为信息。有些蜜罐甚至可以根据攻击信息来检索与其相关的恶意样本,如Dionea6,在参考资料中我列出了一些关于蜜罐有用的网站
2.1.2 垃圾邮件
尽管人们已经意识到了打开一封未知来源的邮件有风险,垃圾邮件仍然是传播恶意软件最常见有效的方法之一,黑客通常使用各种社会工程学技术诱导人们打开包含恶意附件的邮件或者包含已经被挂马的网站链接。
2.1.3 爬取挂马网站
近些年来挂马网站逐渐成为最常用传播木马的方式之一,如果你使用过时的浏览器打开一个挂马网站,通常会在你的电脑上后台偷偷自动下载并执行恶意代码。使用爬虫技术以及客户端蜜罐可以追踪受感染情况的网站,然后尝试提取恶意样本。
2.1.4 公共样本库
恶意样本同样也可以从各种恶意样本分享网站以及公共样本库获取。这类网站通常由计算机安全爱好者或专业人士维护。有些网络安全公司也会免费提供一些样本下载,有的则需要收费才能下载。
2.1.5社区共享
CERT社区在获取恶意样本的工作中扮演着重要的角色,由于每天可以获取到大量样本,但大多数情况下分类和分析的资源有限,导致很难找到与最新攻击相关的恶意样本。以至于论坛社区变成了分享恶意样本的地方。例如一些分享恶意软件的博客,从读者哪里获取一些有意思的样本,再通过博客分享给其他需要样本的人。
2.2 垃圾邮件收集方法
下文中描述了三种经典方法来收集垃圾邮件。
2.2.1 邮件中转服务器陷阱
通过这种方法,邮件陷阱充当公开的中转(中继转发)服务器。当某人(通常是垃圾邮件机器人)尝试通过部署了邮件陷阱的中转服务器发送一封邮件后,会收到信息提示它发送的邮件已经成功被发送了。但其实邮件并没有被发送,而是被邮件陷阱系统处理收集并保存起来了,后面内容将详细了解如何实践这种方法。
2.2.2 邮件陷阱作为目标服务器
另外一种方法是将邮件陷阱服务器IP解析成一些指定域名的DNS和邮件交换器MX,然后这些伪造的邮件地址可以被各种网站使用,当垃圾邮件发送者收集虚假的邮件时并向这些邮件地址发送垃圾邮件。
2.2.3 监控垃圾邮件僵尸网络
现如今大部分的垃圾邮件都是由僵尸网络或者被感染的电脑发送的。我们可以通过一台机器来专门养一个发垃圾邮件的病毒,然后监控这台机器上所有来往的STMP流量。另一种方式是逆向病毒样本和C2服务器的通信协议和命令,然后直接伪造请求并发送到C2服务器,来获取最新的垃圾邮件内容
2.3 垃圾邮件收集问题
下面了解一下垃圾邮件收集经常遇到的问题
2.3.1 反垃圾邮件陷阱技术
垃圾邮件制作者们知道有很安全研究者对捕获他们的垃圾邮件非常感兴趣(通常用来构建基于IP的黑名单,拦截病毒木马)。为了防止这种情况发生,黑客可以利用公开的中继服务器先发送一封测试邮件给自己指定的邮箱,然后查看是否可以正常接收邮件。如果收到邮件,就说明这个中继服务器可以用来发送垃圾邮件。可以利用算法来识别这种测试邮件,并正常转发这些测试邮件。
2.3.2 垃圾邮件收集性能问题
由于网上垃圾邮件的泛滥,垃圾邮件收集通常会涉及处理大量数据,可能会非常耗费资源。
可以考虑使用分布式垃圾邮件传感器和分析机器来解决这个问题,但分布式网络并不在本文介绍范围内。不过Shiva蜜罐只需要简单配置一下就可以使用分布式环境。另一种解决方法是限制垃圾邮件的存储数量,通过汇总类似的邮件发送垃圾邮件,这是Shiva蜜罐的主要特性之一。
3 Task 1 – 邮件陷阱配置和使用
在本部分可以学习到如何安装和配置Shiva这个高效互动的SMTP专为垃圾邮件收集和分析而设计的蜜罐。Shiva由两个主要的模块组成:shivaReceiver 和 shivaAnalyzer。
前者作为典型的SMTP服务器可以用来接收和存储垃圾邮件。
后者用来对垃圾邮件初步分析,检测类似的内容(基于Fuzz Hash)以及提取邮件中的任何附件或URL。
3.1 安装Shiva依赖
Shiva蜜罐是一个python项目,使用Lamson Python 邮件服务器作为后端。而且依赖Exim4邮件服务器来中转邮件(在本次实践没有使用),还有Mysql数据库用来存储结果。
第一步,停止INetSim服务:
sudo service inetsim stop
注意:上传附件及图片大小不得大于30M。
⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。
