前言
這兩年蜜罐技術
被關注的越來越多,也漸形成低交互、中交互、高交互等交互程度的各類蜜罐,從WEB
業務蜜罐、SSH應用蜜罐、網絡協議棧蜜罐到系統主機型蜜罐的各功能型蜜罐。小到一個Word文檔的蜜標,到一個系統級的服務蜜罐,再到多功能蜜罐組成的蜜網,大到包含流控制重定向分布式蜜網組成的蜜場。
這里將介紹一個開源多蜜罐平台,安裝一次系統,輕松使用里面多種蜜罐
。
T-Pot
蜜罐是德國電信下的一個社區蜜罐項目,是一個基於Docker
容器的集成了眾多針對不同應用蜜罐程序的系統,根據官方的介紹,每年都會發布一個新的版本。
蜜罐技術:本質上是一種對攻擊者進行欺騙技術,通過布置一些作為誘餌的主機、網絡服務或信息,誘使攻擊方對它們實施攻擊,從而可以對攻擊行為進行捕獲和分析
蜜罐一般是在隔離環境,攻擊者入侵后是在系統之上的系統中,攻擊者做的任何事情都記錄在系統中,以供分析
官方介紹:https://dtag-dev-sec.github.io/mediator/feature/2019/04/01/tpot-1903.html
官方github: https://github.com/dtag-dev-sec/tpotce
T-pot 19.03運行在debian(Sid)上,基於docker, docker-compose並且包括以下蜜罐的docker鏡像:
adbhoney,ciscoasa,conpot,cowrie,dionaea,elasticpot,glastopf,glutton、heralding,honeypy,honeytrap,mailoney,medpot,rdpy,snare,tanner
據介紹為了更接近滾對發布模型設計,此版本從ubuntu遷至debian
在19.03版本更新了一個共享T-pot數據功能,可通過SISSDEN門戶創建賬戶進行提交
上圖就是當前 T-Pot 最新版本的組成部分,T-Pot 可以理解成是這么多系統的一個整合。
下面將針對各個部分進行簡單的介紹
Elastic-Search
- 項目地址: https://www.elastic.co/products/elasticsearch
- 監聽端口:64298(本地,可以通過 64297 端口的 web 服務使用)
Elastic Search 一個性能十分強大的全文搜索引擎,他可以快速的進行海量數據的查詢
在 T-Pot 的實際應用中,各個蜜罐所產生的日志都會導入到 Elastic Search 中,因此可以使用 Elastic Search 來進行檢索,同時也可以使用他對數據進行各種復雜條件的查詢和導出等
Logstash
- 項目地址: https://www.elastic.co/products/logstash
- 監聽地址:N/A
Logstash 用於接收從蜜罐傳遞過來的日志,然后對數據進行過濾和格式化后交由 Elastic Search 進行存儲和建立索引
Kibana
- 項目地址: https://www.elastic.co/products/kibana
- 監聽端口:64296(本地,可以通過 64297 端口的 web 服務使用)
Kibana 用於對進行數據的可視化查詢,支持以柱狀圖、線狀圖、餅圖、旭日圖等等輸出各種圖形,也能通過時間序列對蜜罐日志某個特征的趨勢進行分析。
Head
- 項目地址: https://mobz.github.io/elasticsearch-head/
- 監聽端口:64302(本地,可以通過 64297 端口的 web 服務使用)
Head 是一個網頁前端,主要用於與 Elastic Search 集群進行交互。
和上面的 Kibana 不同的是,他的可視化程度相對較低,但是更便於直接對數據進行操作,類似與 phpMyAdmin 的存在
Conpot
- 項目地址: http://conpot.org/
- 監聽端口:1025 50100
Conpot 是一個低交互式的工業控制系統的蜜罐,內置了一系列常見的工業控制協議,並且易於修改和拓展,盡其所能的欺騙攻擊者,以獲得攻擊者的最終目的
Cowrie
- 項目地址: http://www.micheloosterhof.com/cowrie/
- 監聽端口:2222 2223
Cowrie 是一個中等交互式的 SSH / Telnet 蜜罐,設計上用來記錄暴力破解以及登錄后 Shell 執行的操作
主要功能有:
- 提供了虛假的文件系統(類似 Debian5.0),並且可以進行文件的增加和刪除
- 隨機增加某些文件的內容以便攻擊者使用
cat
功能,例如/etc/passwd
- 提供 UML 兼容格式的回話日志,可供用來重放會話
- 保存通過 wget 和 curl 下載的文件供后續的分析
Dionaea
- 項目地址: https://github.com/DinoTools/dionaea
- 監聽端口:21 42 69/udp 8081 135 443 445 1433 1723 1883 1900/udp 3306 5060/udp 5061/udp
Dionaea 是一系列基於 Python 語言開發、libemu 作為 Shellcode 分析的蜜罐系統,支持多種不同協議,見下表
- blackhole
- epmap
- ftp
- http
- memcache
- mirror
- mqtt
- mssql
- mysql
- pptp
- sip
- smb
- tftp
- upnp
ElasticPot
- 項目地址: https://github.com/schmalle/ElasticpotPY
- 監聽端口:9200
ElasticPot 是一個 Elasticsearch 的蜜罐
eMobility
- 項目地址: https://github.com/dtag-dev-sec/emobility
- 監聽端口:8080
eMobility 是一個高交互式的蜜罐,針對的是下一代的交通基礎設施(充電樁系統),用於收集攻擊者的動機和方法。
系統主要包括中央充電系統、充電點以及模擬的用戶交易。
Glastopf
- 項目地址: https://github.com/mushorg/glastopf
- 監聽端口:80
Glastopf 是一個 Python 語言開發的 Web 蜜罐,能提供各種基於漏洞類型的模擬
HoneyTrap
- 項目地址: https://github.com/armedpot/honeytrap
- 監聽端口:NFQUEUE
HoneyTrap 是一個低交互式的蜜罐,通過監聽 NFQUEUE 用戶態數據包,相當與就監聽了所有其他未監聽的端口
主要功能用於觀察攻擊者的行為,同時也可以解析攻擊的字符串,並且進行相應的下載保存
Mailoney
- 項目地址: https://github.com/awhitehatter/mailoney
- 監聽端口:25
Mailoney 是一個 SMTP 蜜罐
Rdpy
- 項目地址: https://github.com/citronneur/rdpy
- 監聽端口:3389
Rdpy 是一個用 Python 實現的 RDP 和 VNC 協議,可以用作服務端以及客戶端,同時也提供 RDP 的蜜罐,用於記錄 RDP 的過程
vnclowpot
- 項目地址: https://github.com/magisterquis/vnclowpot
- 監聽端口:5900
vnclowpot 是一個低交互式的 VNC 蜜罐,主要用於記錄 VNC 的認證過程
Suricata
Suricata 是一個網絡 IDS、IPS 和 NSM 引擎,主要分析並記錄下連接中一些有用的信息
p0f
p0f 利用一系列復雜的流量指紋識別,被動的來識別 TCP/IP 通信的對方信息,例如可以識別出對方的系統、在線時間等
T-Pot提供了許多並行運行的蜜罐守護進程,並將網絡接口上捕獲的流量重新路由到最合適的開源蜜罐。
處理數據並將其存儲在本地ELK堆棧中。
一、安裝
-
安裝要求
6-8GRAM
128G磁盤空間
-
安裝模式
標准安裝、傳感器安裝、 工業安裝、 收集器安裝 、 下一代安裝
詳細信息見官方說明 https://github.com/dtag-dev-sec/tpotce#postinstallauto
提供三種安裝方式:
-
裸設備安裝
1、獲取ISO的兩種方式:
- ISO方式:
- https://github.com/dtag-dev-sec/tpotce/releases/download/19.03/tpot.iso
- 自建ISO方式:
- 創建ISO鏡像要求:
- Debian 9.7或更新
- 4GB可用RAM
- 32G磁盤空間
- 互聯網連接
- 創建ISO鏡像:
- 從github獲取T-pot
- git clone https://github.com/dtag-dev-sec/tpotce
- cd tpotce
- 使用構建ISO腳本。該腳本將會下載並安裝所需依賴項
- ./makeiso.sh
- #成功構建后,在目錄會生成iso鏡像tpot.iso以及tpot.sha256
- 從github獲取T-pot
- 創建ISO鏡像要求:
2、 在硬件上運行
將鏡像燒錄至U盤,進行安裝
3、 在虛擬機上運行
將iso掛載進行安裝
4、安裝
- 選擇第一個選項進行安裝
選擇第一個選項進行安裝
- 選擇Tpot的安裝模式這里選擇標准
- 設置tsec默認用戶密碼
- 設置web用戶名
- web用戶密碼
- 系統裝好自動執行安裝腳本
安裝好之后,ssh端口不再是默認的22,變成了64295
web管理界面:https://[IP]:64297
服務器管理界面:https://[IP]:64294
-
基於現有系統安裝
1.更換apt源
cp /etc/apt/sources.list /etc/apt/sources.list_bak_$(date +%F) #T-pot使用的是Sid版本所以我添加的源也是Sid版的(注釋的是官方提供的其中一個國外源站): echo "deb http://mirrors.163.com/debian/ sid main non-free contrib deb-src http://mirrors.163.com/debian/ sid main non-free contrib deb https://mirrors.tuna.tsinghua.edu.cn/debian/ sid main non-free contrib deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ sid main non-free contrib deb http://mirrors.ustc.edu.cn/debian/ sid main non-free contrib deb-src http://mirrors.ustc.edu.cn/debian/ sid main non-free contrib #deb http://ftp.sg.debian.org/debian/ sid main non-free contrib #deb-src http://ftp.sg.debian.org/debian/ sid main non-free contrib deb http://ftp.hk.debian.org/debian/ sid main non-free contrib deb-src http://ftp.hk.debian.org/debian/ sid main non-free contrib " > /etc/apt/sources.list
#系統升級 apt-get update
#安裝curl git apt-get install curl git
2.安裝apt-fast
apt-fast 加速包下載速度,通過aria2的多線程在多個鏡像源中進行下載同一個文件,此步驟可忽略,install.sh會自動安裝
apt-get install aria2 -y git clone https://github.com/ilikenwf/apt-fast.git cd apt-fast/ cp apt-fast /usr/bin/ cp apt-fast /usr/local/sbin/ chmod +x /usr/bin/apt-fast chmod +x /usr/local/sbin/ cp apt-fast.conf /etc apt-fast update sed -i "/^ *MIRRORS/d" /etc/apt-fast.conf echo "MIRRORS=( 'http://mirrors.163.com/debian/,https://mirrors.tuna.tsinghua.edu.cn/debian/,http://mirrors.ustc.edu.cn/debian/' ) " >> /etc/apt-fast.conf #后面看了下T-pot install腳本發現腳本內有下載apt-fast(所以可以不用自己下載apt-fast)? #此框命令可選執行,建議執行一遍用不了多久
3.配置npm源
apt-fast install npm npm config set registry http://registry.npm.taobao.org #將npm源換成國內源
4.克隆Tpot
#github克隆速度慢的話可以嘗試更改hosts文件 echo "13.229.188.59 github.com www.github.com 185.199.111.153 assets-cdn.github.com www.assets-cdn.github.com 151.101.228.249 global.ssl.fastly.net www.global.ssl.fastly.net" >> /etc/hosts
#這里指定克隆庫到/opt/tpot,因為此版的install.sh中會到這個目錄下讀配置文件,不存在的話,會自動再從github clone一份 git clone https://github.com/dtag-dev-sec/tpotce /opt/tpot
5.更改腳本
#發現腳本會將鏡像源替換成官方源,需要將腳本中的替換命令刪除,以下是19.03版本的刪除命令: sed -i '/^ *tee \/etc/d' install.sh sed -i '/^ *deb/d' install.sh sed -i "$(cat -n install.sh | grep "EOF$" | awk '{print $1}' | sed -n "1p")d" install.sh #以上三條命令不建議在非19.03版本運行,可能install腳本內容更改。 sed -i "/^ *git clone https:\/\/github/d" install.sh #此條刪除install.sh中克隆庫到/opt/tpot前面已經克隆到這個目錄所以刪除 #默認拉docker鏡像的是國外的網站,總有幾個鏡像拉不動,配置加速會快很多 cd /opt/tpot/iso/installer AA=$(cat -n install.sh | grep "myTPOTCOMPOSE" | grep "for name in" | awk '{ print $1 }') sed -i "${AA}i curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io" install.sh sed -i "${AA}a systemctl restart docker" install.sh
6.安裝
cd /opt/tpot/iso/installer/ ./install.sh --type=user #如果中途退出執行install.sh,可能會報版本不支持錯誤,需要刪除檢測版本驗證 sed -i "s/if \[ \"\$myLSB\" \!=.*/if \[ 1 \!= 1\]\;/" install.sh
安裝完成
7.部署視頻
https://player.youku.com/embed/XNDE5NDAyMDEwMA==
-
雲部署
在cloud文件夾中有一個ansible例子 #此方法沒有驗證,可自行驗證
不建議裸設備安裝,在獲取足夠的系統包前無法使用apt-fast進行多線程下載將會特別慢
裸設備安裝需要先安裝成debian 再執行install,由於安裝系統部分包安裝緩慢不建議使用此方法
測試大約2-6小時不等的時間
建議直接安裝在現有Debian系統上,使用iso源的速度很慢通常安裝要幾個小時
在現有系統安裝使用多線程下載安裝20分鍾差不多就可以安裝完成
二丶檢查安裝
-
檢查Tpot服務
systemctl status tpot
-
檢查容器
cd /opt/tpot/bin ./dps.sh #如果沒有啟動參考下面使用中的啟動命令 #如果部分沒有成功下載,可以手動下載下面的下載缺失容器
UP為正常
· 下載缺失容器
cd /opt/tpot/etc/compose for i in `cat ./standard.yml | grep image | cut -d '"' -f2 | uniq` do docker pull $i done
· 啟動容器
cd /opt/tpot/etc/compose docker-compose -f ./standard.yml #如果安裝別的模式yml用相應版本的 #如果部分沒有成功下載,可以手動下載
三、使用
-
啟動Tpot服務
systemctl start tpot
-
停止Tpot服務
systemctl stop tpot
-
選擇關閉數據提交
默認情況,捕獲的數據將提交給社區后端,並在 Sicherheitstacho 網站進行展現,可根據個人喜好關閉
- 1. 停止T-Pot服務
systemctl stop tpot
- 2. 刪除Ewsposter服務
vi /opt/tpot/etc/tpot.yml
- 3. 刪除以下行,保存並退出
# Ewsposter service ewsposter: container_name: ewsposter restart: always networks: - ewsposter_local image: "dtagdevsec/ewsposter:1903" volumes: - /data:/data - /data/ews/conf/ews.ip:/opt/ewsposter/ews.ip
- 4. 啟動T-Pot服務
systemctl start tpot
-
選擇加入HPFEEDS分享數據
現在可以與第三方HPFEEDS共享T-Pot數據提供額外的選項來提交攻擊數據,例如SISSDEN。如果您想分享您的T-Pot數據,您只需在第三方經紀人處注冊一個帳戶,並為社區帶來好處。注冊后,您將收到您的憑證,以便與社區分
創建賬戶並申請憑證 https://portal.sissden.eu/profile
運行腳本
./hpfreeds_option.sh
-
系統使用
1、系統監控web https://yourip:64294
用系統用戶登陸
2、管理web https://yourip:64297
3.ssh登錄
ssh -l tsec -p 64295 yourip
4.開通root帳戶登錄
sudo passwd root
· 公網收集數據
可以使用內網穿透工具將需要收集信息的端口轉發出去,可以參考
四、更新
·備份重要文件
請自行選擇備份
· 執行更新命令
cd /opt/tpot ./update.sh