导语:本文记录一下搭建开源蜜罐环境的过程,文章内容为翻译并且对其中的技术细节以及坑点进行复现。

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

源链接

Hacking more

...