导语:本文记录一下搭建开源蜜罐环境的过程,文章内容为翻译并且对其中的技术细节以及坑点进行复现。
0x00 前言
本文记录一下搭建开源蜜罐环境的过程,文章内容为翻译并且对其中的技术细节以及坑点进行复现。
0x01 MHN简介
MHN是用于蜜罐管理和数据收集的集中式服务器。MHN允许您快速部署传感器并立即收集数据,并通过Web端实现可视化。蜜罐部署脚本包括几种常见的蜜罐技术,包括[Snort]、[Cowrie]、[Dionaea]和[glastopf]等。
有关排除安装故障的问题,请查看[MHN故障排除指南],在[modern-honey-network Google Group]上搜索过去的问题,或发送邮件至[[email protected]]。
0x02 功能介绍
MHN是一个Flask应用程序,它公开了一个HTTP API,蜜罐可以用来:
· 下载部署脚本
· 链接并且注册
· 下载snort规则
· 发送入侵检测日志
它还允许系统管理员执行如下操作:
· 查看新攻击列表
· 管理snort规则:启用、禁用、下载
0x03 安装方法
· MHN支持在Ubuntu 14.04、Ubuntu 16.04和Centos 6.9上安装和部署。
· 其他版本的Linux可能有效,但是通常没有经过测试或者后续的支持。
注意:如果您在安装过程中遇到问题,请查看Wiki上的[故障排除指南]。如果您只想在某些虚拟机上试用MHN,请查看wiki上的“[Getting up and Running with Vagrant]”指南。
step 1:安装Git
# on Debian or Ubuntu $ sudo apt-get install git -y # on Centos or RHEL $ sudo yum install -y git
step 2:安装MHN
$ cd /opt/ $ sudo git clone https://github.com/threatstream/mhn.git $ cd mhn/ $ ls -alth
![](/uploads/upload_bd1e866365a0377f937032b02a4b8a27.png) ![](/uploads/upload_fb98b31d730588d4f695737e2cf657f8.png)
step 3:运行安装脚本
$ sudo ./install.sh
运行“`install.sh“`以完成安装。运行此脚本时,系统将提示输入一些配置选项。请参阅下文了解配置内容。
=========================================================== MHN Configuration =========================================================== Do you wish to run in Debug mode?: y/n n Superuser email: [email protected] Superuser password: Server base url ["http://1.2.3.4"]: Honeymap url ["http://1.2.3.4:3000"]: Mail server address ["localhost"]: Mail server port [25]: Use TLS for email?: y/n n Use SSL for email?: y/n n Mail server username [""]: Mail server password [""]: Mail default sender [""]: Path for log file ["mhn.log"]:
step 4:检查运行状态
事实上当执行完step 3时MHN就已经安装成功了,step 4主要是用于检查MHN依赖的服务是否均正常运行。
[email protected]:/opt/mhn/scripts$ sudo /etc/init.d/nginx status * nginx is running [email protected]:/opt/mhn/scripts$ sudo /etc/init.d/supervisor status is running [email protected]:/opt/mhn/scripts$ sudo supervisorctl status geoloc RUNNING pid 31443, uptime 0:00:12 honeymap RUNNING pid 30826, uptime 0:08:54 hpfeeds-broker RUNNING pid 10089, uptime 0:36:42 mhn-celery-beat RUNNING pid 29909, uptime 0:18:41 mhn-celery-worker RUNNING pid 29910, uptime 0:18:41 mhn-collector RUNNING pid 7872, uptime 0:18:41 mhn-uwsgi RUNNING pid 29911, uptime 0:18:41 mnemosyne RUNNING pid 28173, uptime 0:30:08
others 1:在代理服务器后面运行MHN
有关在Web代理后面运行MHN的说明,请按照[Wiki]中的说明进行操作。
others 2:通过HTTPS运行MHN
默认情况下,MHN将在没有HTTPS的情况下运行,配置SSL证书方面的问题可以通过[Wiki]查看。
在docker中安装MHN
docker run -p 10000:10000 -p 80:80 -p 3000:3000 -p 8089:8089 --name mhn -t -i ubuntu:14.04.2 /bin/bash
进入容器后,编辑并执行运行如下shell脚本
vi install.sh bash install.sh
#!/bin/bash set -x apt-get update apt-get upgrade -y apt-get install git wget gcc supervisor -y cd /opt/ git clone https://github.com/threatstream/mhn.git cd mhn cat > /etc/supervisor/conf.d/mhntodocker.conf <<EOF [program:mongod] command=/usr/bin/mongod stdout_logfile=/var/log/supervisor/%(program_name)s.log stderr_logfile=/var/log/supervisor/%(program_name)s.log autorestart=true autostart=true [program:nginx] command=/usr/sbin/nginx stdout_events_enabled=true stderr_events_enabled=true autostart=true autorestart=true EOF mkdir -p /data/db /var/log/mhn /var/log/supervisor supervisord & #Starts the mongod service after installation echo supervisorctl start mongod >> /opt/mhn/scripts/install_mongo.sh ./install.sh supervisorctl restart all
0x04 部署蜜罐
MHN诞生的宗旨就是简化蜜罐的可扩展部署。以下是使用MHN部署蜜罐的步骤:
1. 登录MHN服务器Web管理端
2. 单击左上角的“Deploy(部署)”按钮
3. 从下拉菜单中选择一种蜜罐类型(例如“Ubuntu Dionaea”)
4. 复制部署命令
5. 登录蜜罐服务器并以root身份运行此命令
如果脚本部署成功完成,我们可以在部署的传感器(Sensor)列表下看到新的传感器。关于支持的传感器完整列表,可以在此处查看:[支持的传感器列表]。
0x05 支持的传感器(Sensor)列表
Amun Sensor
简介
· 支持的操作系统:Ubuntu 14.04/16.04
· 项目仓库:https://github.com/zeroq/amun
Amun是一个“基于python的低交互蜜罐,遵循猪笼草的概念,更复杂的仿真以及更容易维护”。
部署方法
可以使用MHN的Deploy页面中的Ubuntu – Amun部署脚本部署此传感器。提供的脚本支持在Ubuntu 14.04和16.04系统上安装。为避免安装错误,强烈建议在运行部署脚本之前确保主机系统完全是最新的。
更多信息
[http://amunhoney.sourceforge.net/]
Cowrie Sensor
简介
· 支持的操作系统:Ubuntu 16.04
· 项目仓库:http://www.micheloosterhof.com/cowrie/
[Cowrie]是一个“中等交互式SSH和Telnet蜜罐,用于记录暴力攻击和攻击者执行的交互式shell。”
部署方法
可以使用MHN的Deploy页面中的Ubuntu-Cowrie部署脚本部署此传感器。提供的脚本支持在Ubuntu 16.04系统上安装。
Ubuntu 14.04目前无法使用提供的脚本进行安装。 为避免安装错误,强烈建议您在运行部署脚本之前确保主机系统完全是最新的。
更多信息
[https://github.com/micheloosterhof/cowrie]
Conpot Sensor
简介
· 支持的操作系统:Ubuntu 14.04/16.04
· 项目仓库:http://conpot.org/
[Conpot]是一款“低交互式服务器端工业控制系统蜜罐,设计易于部署,修改和扩展。”
部署方法
可以使用MHN的Deploy页面中的Ubuntu-Conpot部署脚本部署此传感器。 提供的脚本支持在Ubuntu 14.04和16.04系统上安装。 为避免安装错误,强烈建议您在运行部署脚本之前确保主机系统完全是最新的。
更多信息
[https://github.com/mushorg/conpot]
Dionaea Sensor
简介
· 支持的操作系统:Ubuntu 14.04, Centos 7, Raspberry Pi
· 项目仓库:https://dionaea.readthedocs.io/en/latest/
Dionaea“下一代猪笼草概念,将python作为脚本语言嵌入,使用libemu检测shellcode,支持ipv6和tls。”
部署方法
可以使用Ubuntu 14.04 / Centos 7 – Dionaea部署脚本或MHN部署页面中的Raspberry Pi – Dionaea部署此传感器。
提供的脚本仅支持在Ubuntu 14.04,Centos 7或Raspberry Pi系统上安装。 这些脚本无法在Ubuntu 16.04和Centos 6.9上安装。 为避免安装错误,强烈建议您在运行部署脚本之前确保主机系统完全是最新的。
更多信息
[https://github.com/DinoTools/dionaea]
ElasticHoney Sensor
简介
· 支持的操作系统:Ubuntu 14.04/16.04
· 项目仓库:https://github.com/jordan-wright/elastichoney
ElasticHoney是一个“简单的elasticsearch 蜜罐,旨在捕获攻击者利用elasticsearch 中的RCE漏洞。”
部署方法
可以使用MHN的Deploy页面中的Ubuntu – ElasticHoney部署脚本部署此传感器。 提供的脚本支持在Ubuntu 14.04和16.04系统上安装。 为避免安装错误,强烈建议您在运行部署脚本之前确保主机系统完全是最新的。
更多信息
[Introducing elastichoney – an Elasticsearch Honeypot]
Glastopf Sensor
简介
· 支持的操作系统:Ubuntu 14.04/16.04
· 项目仓库:http://mushmush.org/
Glastopf是一个Python Web应用程序蜜罐。 根据开发人员的说法,它不再是积极开发的,而是“维护”的。 此后,SNARE / TANNER项目取得了成功,目前MHN尚未开箱即用。
0x06 如何与Splunk和ArcSight集成
hpfeeds-logger可用于将MHN与Splunk和ArcSight集成。
Splunk
cd /opt/mhn/scripts/ sudo ./install_hpfeeds-logger-splunk.sh
通过运行次命令,可以将事件已键值对的形式记录到“`/var/log/mhn-splunk.log“`中,SplunkUniveralForwarder监控此日志即可达到与MHN与Splunk集成的目的。
Arcsight
cd /opt/mhn/scripts/ sudo ./install_hpfeeds-logger-arcsight.sh
通过运行如上命令,可以将事件记录为CEF并输出到“`/var/log/mhn-arcsight.log“`文件中。
0x07 数据采集
注意:MHN服务器会将匿名攻击数据报告给Anomali, Inc.(原名为ThreatStream)。如果我们想查看这部分数据,可以在[Wiki]中获取详细信息。
如果我们不想通过匿名的形式上报攻击数据,可以通过在MHN服务器中运行“`/opt/mhn/scripts/disable_collector.sh“`来禁用此功能。
0x08 支持与联系
MHN是一个由Anomali, Inc.发起的开源项目。遇到问题,可以查看查看Wiki上的故障排除指南。如果有其他问题也可以通过如下邮件联系:[[email protected]]
0x00 参考链接
https://github.com/threatstream/mhn