如何搭建一個開源的蜜罐環境
0x00 前言
本文記錄一下搭建開源蜜罐環境的過程,文章內容為翻譯並且對其中的技術細節以及坑點進行復現。
0x01 MHN簡介
MHN是用於蜜罐管理和資料收集的集中式伺服器。MHN允許您快速部署感測器並立即收集資料,並通過Web端實現視覺化。蜜罐部署指令碼包括幾種常見的蜜罐技術,包括ofollow,noindex">[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
 
step 3:執行安裝指令碼
$ sudo ./install.sh
執行“`install.sh“`以完成安裝。執行此指令碼時,系統將提示輸入一些配置選項。請參閱下文了解配置內容。
=========================================================== MHN Configuration =========================================================== Do you wish to run in Debug mode?: y/n n Superuser email: YOUR_EMAIL@YOURSITE.COM 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依賴的服務是否均正常執行。
user@precise64:/opt/mhn/scripts$ sudo /etc/init.d/nginx status * nginx is running user@precise64:/opt/mhn/scripts$ sudo /etc/init.d/supervisor status is running user@precise64:/opt/mhn/scripts$ sudo supervisorctl status geolocRUNNINGpid 31443, uptime 0:00:12 honeymapRUNNINGpid 30826, uptime 0:08:54 hpfeeds-brokerRUNNINGpid 10089, uptime 0:36:42 mhn-celery-beatRUNNINGpid 29909, uptime 0:18:41 mhn-celery-workerRUNNINGpid 29910, uptime 0:18:41 mhn-collectorRUNNINGpid 7872,uptime 0:18:41 mhn-uwsgiRUNNINGpid 29911, uptime 0:18:41 mnemosyneRUNNINGpid 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