T-Pot 是一款一體化、可選分散式、多架構(amd64、arm64)蜜罐平台,支援20 多個蜜罐和無數視覺化選項,使用Elastic Stack、動畫即時攻擊地圖和大量安全工具來進一步改善欺騙體驗。
滿足系統要求。 T-Pot 安裝至少需要 8-16 GB RAM、128 GB 可用磁碟空間以及有效的(傳出未經過濾的)網路連線。
下載或使用正在運行的受支援的發行版。
使用盡可能少的軟體包/服務安裝 ISO(需要ssh
)
安裝curl
: $ sudo [apt, dnf, zypper] install curl
從$HOME
以非 root 身分執行安裝程式:
env bash -c "$(curl -sL https://github.com/telekom-security/tpotce/raw/master/install.sh)"
按照說明進行操作,閱讀訊息,檢查可能的連接埠衝突並重新啟動
T-Pot - 多合一蜜罐平台
長話短說
免責聲明
技術理念
技術架構
服務
使用者類型
系統需求
在虛擬機器中運行
在硬體上運行
在雲端運行
所需連接埠
系統佈局
安裝
標準/蜂巢
分散式
選擇您的發行版
樹莓派 4 (8GB) 支持
取得並安裝 T-Pot
macOS 和 Windows
安裝類型
卸載T-Pot
第一次開始
規劃和證書
部署感測器
獨立首次啟動
分散式部署
社群資料提交
選擇加入 HPFEEDS 資料提交
遠端存取和工具
SSH
T-Pot 登陸頁面
Kibana 儀表板
攻擊圖
網路廚師
彈性vue
蜘蛛腳
配置
T-Pot 設定檔
客製化 T-Pot 蜜罐和服務
維護
出口
進口
Docker映像下載失敗
T-Pot 網路失敗
一般更新
更新腳本
每日重啟
已知問題
啟動 T 鍋
停止 T 型鍋
T-Pot 資料夾
日誌持久化
恢復出廠設定
顯示容器
黑洞
將使用者新增至 Nginx (T-Pot WebUI)
導入和匯出 Kibana 對象
故障排除
紀錄
記憶體和儲存
接觸
問題
討論
許可證
製作人員
的開發者和開發社區
感言
您在自己的責任範圍內安裝和執行 T-Pot。明智地選擇您的部署,因為永遠無法排除系統妥協的可能性。
為了快速幫助研究問題和討論。
該軟體的設計和提供都考慮到了最大的努力。作為一個社群和開源項目,它使用許多其他開源軟體,並且可能包含錯誤和問題。負責任地報告。
根據設計,蜜罐不應託管任何敏感資料。確保您沒有添加任何內容。
預設情況下,您的資料將提交至 Sicherheitstacho。您可以透過刪除ewsposter
部分在配置 ( ~/tpotce/docker-compose.yml
) 中停用此功能。但在這種情況下,分享確實是關愛!
T-Pot 的主要元件已移至tpotinit
Docker 映像中,允許 T-Pot 現在支援多個 Linux 發行版,甚至 macOS 和 Windows(儘管兩者都僅限於 Docker Desktop 的功能集)。 T-Pot 使用 docker 和 docker compose 來實現同時運行盡可能多的蜜罐和工具的目標,從而最大限度地利用主機的硬體。
T-Pot 為以下蜜罐提供 docker 映像...
阿德蜂蜜,
思科阿薩,
思傑蜜罐,
conpot,
貝,
ddospot,
雙果,
捕蠅草,
彈力罐,
無盡,
饞嘴,
地獄之火,
預示著,
蜜罐,
蜜糖陷阱,
電話,
log4pot,
梅洛尼,
藥罐,
紅蜜罐,
哨兵,
圈套,
皮匠,
字罐
....以及以下工具...
Autoheal 是一個自動重新啟動運作狀況檢查失敗的容器的工具。
Cyberchef 是一個用於加密、編碼、壓縮和資料分析的網路應用程式。
Elastic Stack 可完美地視覺化 T-Pot 擷取的所有事件。
Elasticvue 是一個用於瀏覽 Elasticsearch 叢集並與之互動的 Web 前端。
Fatt 是一個基於 pyshark 的腳本,用於從 pcap 檔案和即時網路流量中提取網路元資料和指紋。
T-Pot-Attack-Map 精美的 T-Pot 動畫攻擊地圖。
P0f 是純粹被動流量指紋辨識的工具。
Spiderfoot 一個開源智慧自動化工具。
Suricata 網路安全監控引擎。
....為您提供最佳的開箱即用體驗和易於使用的多蜜罐系統。
原始碼和設定檔完全儲存在 T-Pot GitHub 儲存庫中。 docker 映像像是為 T-Pot 環境建置和預先配置的。
各個 Dockerfile 和配置位於 docker 資料夾中。
T-Pot 提供多種服務,基本上分為五組:
作業系統提供的系統服務
用於安全遠端存取的 SSH。
彈性堆疊
Elasticsearch 用於儲存事件。
Logstash 用於攝取、接收事件並將其傳送至 Elasticsearch。
Kibana 用於在精美渲染的儀表板上顯示事件。
工具
NGINX 提供對 Kibana、CyberChef、Elasticvue、GeoIP AttackMap、Spiderfoot 的安全遠端存取(反向代理),並允許 T-Pot 感測器將事件資料安全地傳輸到 T-Pot hive。
CyberChef 是用於加密、編碼、壓縮和資料分析的網路應用程式。
Elasticvue 是一個用於瀏覽 Elasticsearch 叢集並與之互動的 Web 前端。
T-Pot 攻擊地圖 精美的 T-Pot 動畫攻擊地圖。
Spiderfoot 一個開源智慧自動化工具。
蜜罐
根據所選的docker-compose.yml
選擇 23 個可用蜜罐。
網路安全監控(NSM)
Fatt 是一個基於 pyshark 的腳本,用於從 pcap 檔案和即時網路流量中提取網路元資料和指紋。
P0f 是純粹被動流量指紋辨識的工具。
Suricata 網路安全監控引擎。
在安裝和使用 T-Pot 期間,您將使用兩種不同類型的帳戶。確保您了解不同帳戶類型的差異,因為這是迄今為止身份驗證錯誤的最常見原因。
服務 | 帳戶類型 | 使用者名稱/群組 | 描述 |
---|---|---|---|
SSH | 作業系統 | <OS_USERNAME> | 您在安裝作業系統時選擇的使用者。 |
nginx | 基本認證 | <WEB_USER> | <web_user> 您在安裝 T-Pot 期間所選擇的。 |
網路廚師 | 基本認證 | <WEB_USER> | <web_user> 您在安裝 T-Pot 期間所選擇的。 |
彈性vue | 基本認證 | <WEB_USER> | <web_user> 您在安裝 T-Pot 期間所選擇的。 |
Geoip 攻擊圖 | 基本認證 | <WEB_USER> | <web_user> 您在安裝 T-Pot 期間所選擇的。 |
蜘蛛腳 | 基本認證 | <WEB_USER> | <web_user> 您在安裝 T-Pot 期間所選擇的。 |
T 型鍋 | 作業系統 | tpot | tpot 此使用者/群組始終由 T-Pot 服務保留。 |
T 型鍋原木 | 基本認證 | <LS_WEB_USER> | LS_WEB_USER 是自動管理的。 |
根據支援的 Linux 發行版映像、配置單元/感測器、安裝在真實硬體、虛擬機器或其他環境中,成功安裝 T-Pot 需要滿足有關作業系統、RAM、儲存和網路的不同要求(您可以隨時根據需要調整~/tpotce/docker-compose.yml
和~/tpotce/.env
來克服這些要求)。
T 型鍋型 | 記憶體 | 貯存 | 描述 |
---|---|---|---|
蜂巢 | 16 GB | 256GB 固態硬碟 | 根據經驗,感測器和資料越多,需要的 RAM 和儲存就越多。 |
感應器 | 8GB | 128GB 固態硬碟 | 由於蜜罐日誌會保留(~/tpotce/data)30天,因此儲存取決於攻擊量。 |
T-Pot 確實需要...
透過 DHCP 或靜態分配的 IPv4 位址
有效的、非代理的網路連線...以確保成功安裝和操作。
如果您需要代理支援或其他非標準功能,您應該檢查受支援的 Linux 發行版映像的文件和/或 Docker 文件。
所有支援的 Linux 發行版映像都將在虛擬機器中運行,這意味著 T-Pot 可以正常運作。以下內容經過測試/報告有效:
UTM(英特爾和蘋果晶片)
虛擬盒子
VMWare Fusion 和 VMWare 工作站
據報道 KVM 也可以工作。
一些配置/設定提示:
雖然 Intel 版本運作穩定,但 Apple Silicon (arm64) 支援存在已知問題,在 UTM 中可能需要在作業系統初始安裝期間將Display
切換到Console Only
,然後再切換回Full Graphics
。
在設定過程中,您可能需要為網路介面啟用混雜模式,以便 fatt、suricata 和 p0f 正常運作。
如果您想使用 wifi 卡作為 T-Pot 的主要 NIC,請注意並非所有網路介面驅動程式都支援所有無線卡。例如,在 VirtualBox 中,您必須選擇 NIC 的“MT SERVER”模型。
T-Pot 僅受支援的 Linux 發行版映像的硬體支援的限制。建議在投資專用硬體之前檢查 HCL(硬體相容性清單)並使用 T-Pot 測試支援的發行版。
T-Pot 經過測試並已知可在...上運行
Telekom OTC 使用安裝後方法...其他方法可能有效,但尚未經過測試。
一些用戶報告在其他雲端和託管服務(即 Azure 和 GCP)上的安裝工作正常。硬體需求可能不同。如果您不確定,您應該研究問題和討論並執行一些功能測試。在 T-Pot 24.04.0 及更高版本中,我們確保刪除已知會幹擾基於雲端的安裝的設定。
除了作業系統通常需要的連接埠(即取得 DHCP 租約、DNS 等)之外,T-Pot 還需要以下連接埠用於傳入/傳出連線。查看 T-Pot 架構的視覺表示。此外,某些連接埠會顯示為重複項,這很好,因為在不同版本中使用。
港口 | 協定 | 方向 | 描述 |
---|---|---|---|
80, 443 | TCP協定 | 外向的 | T-Pot 管理:安裝、更新、日誌(即作業系統、GitHub、DockerHub、Sicherheitstacho 等) |
64294 | TCP協定 | 傳入 | T-Pot管理:感測器資料傳輸到hive(透過NGINX反向代理)到127.0.0.1:64305 |
64295 | TCP協定 | 傳入 | T-Pot 管理:存取 SSH |
64297 | TCP協定 | 傳入 | T-Pot 管理 NGINX 反向代理訪問 |
5555 | TCP協定 | 傳入 | 蜜罐:ADBHoney |
5000 | UDP協定 | 傳入 | 蜜罐:CiscoASA |
8443 | TCP協定 | 傳入 | 蜜罐:CiscoASA |
第443章 | TCP協定 | 傳入 | 蜜罐:Citrix蜜罐 |
80、102、502、1025、2404、10001、44818、47808、50100 | TCP協定 | 傳入 | 蜜罐:Conpot |
161, 623 | UDP協定 | 傳入 | 蜜罐:Conpot |
22, 23 | TCP協定 | 傳入 | 蜜罐:Cowrie |
19, 53, 123, 1900 | UDP協定 | 傳入 | 蜜罐:Ddospot |
11112 | TCP協定 | 傳入 | 蜜罐:Dicompot |
21、42、135、443、445、1433、1723、1883、3306、8081 | TCP協定 | 傳入 | 蜜罐:捕蠅草 |
69 | UDP協定 | 傳入 | 蜜罐:捕蠅草 |
9200 | TCP協定 | 傳入 | 蜜罐:彈性罐 |
22 | TCP協定 | 傳入 | 蜜罐:無盡 |
21、22、23、25、80、110、143、443、993、995、1080、5432、5900 | TCP協定 | 傳入 | 蜜罐:預示 |
21, 22, 23, 25, 80, 110, 143, 389, 443, 445, 631, 1080, 1433, 1521, 3306, 3389, 5060, 5432, 637, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 637, 639, 639, 639, 639, 639, 639, 639, 639, 639 9200、11211 | TCP協定 | 傳入 | 蜜罐:qHoneypots |
53、123、161、5060 | UDP協定 | 傳入 | 蜜罐:qHoneypots |
第631章 | TCP協定 | 傳入 | 蜜罐:IPPHoney |
80、443、8080、9200、25565 | TCP協定 | 傳入 | 蜜罐:Log4Pot |
25 | TCP協定 | 傳入 | 蜜罐:梅洛尼 |
2575 | TCP協定 | 傳入 | 蜜罐:Medpot |
6379 | TCP協定 | 傳入 | 蜜罐:Redishneypot |
5060 | TCP/UDP | 傳入 | 蜜罐:SentryPeer |
80 | TCP協定 | 傳入 | 蜜罐:圈套(坦納) |
8090 | TCP協定 | 傳入 | 蜜罐:Wordpot |
SaaS 服務的連接埠和可用性可能會根據您的地理位置而有所不同。
對於某些蜜罐來說,要實現全部功能(即 Cowrie 或 Log4Pot),也需要傳出連接,以便它們下載攻擊者的惡意軟體。請透過其儲存庫的連結查看各個蜜罐的文檔以了解更多資訊。
建議您在開始接觸互聯網之前先熟悉 T-Pot 和蜜罐的工作原理。為了快速入門,請在虛擬機器中執行 T-Pot 安裝。
一旦您熟悉了事情的運作方式,您應該選擇一個您懷疑有入侵者的網路(即網路)。否則,T-Pot 很可能不會捕獲任何攻擊(除非您想證明一點)!對於初學者,建議將 T-Pot 放在未過濾的區域中,其中所有 TCP 和 UDP 流量都會轉送到 T-Pot 的網路介面。為了避免探測T-Pot 的管理端口,您應該將T-Pot 放在防火牆後面,並將端口範圍1-64000 中的所有TCP / UDP 流量轉發到T-Pot,同時僅允許從受信任的IP 和/ 存取> 64000 的連接埠或僅公開與您的用例相關的連接埠。如果您希望捕獲未知端口上的惡意軟體流量,則不應限制您轉發的端口,因為glutton 和honeytrap 會動態綁定任何未被其他蜜罐守護程序佔用的TCP 端口,從而更好地表示您的設置所面臨的風險。
下載支援的 Linux 發行版映像之一,依照 TL;DR 說明或git clone
T-Pot 儲存庫並執行安裝程式~/tpotce/install.sh
。可以在正在運行且受支援的 Linux 系統上運行 T-Pot,但建議進行全新安裝以避免與正在運行的服務發生連接埠衝突。 T-Pot 安裝程式需要直接存取互聯網,如此處所述。
遵循的步驟:
從下面的清單中下載支援的 Linux 發行版。
在安裝過程中,選擇僅安裝必要軟體套件的最低版本、網路安裝版本或伺服器版本。
切勿安裝 Gnome 或 KDE 等圖形桌面環境。由於連接埠衝突,T-Pot 將無法使用它。
確保安裝 SSH,以便您可以遠端連接到電腦。
發行版名稱 | x64 | ARM64 |
---|---|---|
Alma Linux OS 9.4啟動ISO | 下載 | 下載 |
Debian 12 網路安裝 | 下載 | 下載 |
Fedora Server 40 網路安裝 | 下載 | 下載 |
OpenSuse Tumbleweed 網路映像 | 下載 | 下載 |
Rocky Linux OS 9.4 啟動 ISO | 下載 | 下載 |
Ubuntu 24.04 即時伺服器 | 下載 | 下載 |
發行版名稱 | ARM64 |
---|---|
Raspberry Pi 作業系統( 64 位,精簡版) | 下載 |
複製 GitHub 儲存庫: $ git clone https://github.com/telekom-security/tpotce
或依照 TL;DR 並跳過本節。
切換到tpotce/資料夾: $ cd tpotce
以非 root 身分執行安裝程式: $ ./install.sh
:
將 SSH 連接埠變更為tcp/64295
停用 DNS 存根偵聽器以避免與蜜罐發生連接埠衝突
將 SELinux 設定為監控模式
將公共區域的防火牆目標設定為 ACCEPT
新增 Docker 的儲存庫並安裝 Docker
安裝推薦的軟體包
刪除已知會導致問題的軟體包
將目前使用者新增至 docker 群組(允許 docker 互動而無需sudo
)
新增dps
和dpsw
別名( grc docker ps -a
、 watch -c "grc --colour=on docker ps -a
)
新增la
、 ll
和ls
別名(對於exa
,是改進的ls
指令)
添加mi
(對於micro
,是vi
和/或nano
的絕佳替代品)
顯示主機上開放的連接埠(與T-Pot所需連接埠進行比較)
新增並啟用tpot.service
到/etc/systemd/system
以便 T-Pot 可以自動啟動和停止
根據您選擇的 Linux 發行版,安裝程式將:
按照安裝程序說明進行操作,您必須至少輸入一次使用者( sudo
或root
)密碼
檢查安裝程式訊息是否有錯誤並打開可能導致連接埠衝突的端口
重新啟動: $ sudo reboot
有時,如果您可以在 macOS 或 Windows 上啟動 T-Pot 實例,即用於開發、測試或只是為了享受樂趣,那就太好了。由於 Docker Desktop 相當有限,並非所有蜜罐類型或 T-Pot 功能都支援。另請記住,預設情況下,macOS 和 Windows 防火牆會阻止遠端訪問,因此測試僅限於主機。對於生產,建議在 Linux 上運行 T-Pot。
要啟動並運行,只需按照以下步驟操作:
安裝適用於 macOS 或 Windows 的 Docker Desktop。
複製 GitHub 儲存庫: git clone https://github.com/telekom-security/tpotce
(在 Windows 中,確保使用LF
而不是CRLF
簽出程式碼!)
轉到: cd ~/tpotce
複製cp compose/mac_win.yml ./docker-compose.yml
透過執行~/tpotce/genuser.sh
(macOS) 或~/tpotce/genuserwin.ps1
(Windows) 建立WEB_USER
透過將TPOT_OSTYPE=linux
更改為mac
或win
來調整.env
檔:
# OSType (linux, mac, win) # Most docker features are available on linux TPOT_OSTYPE=mac
您必須自行確保不存在導致 T-Pot 無法啟動的連接埠衝突。
啟動 T-Pot: docker compose up
或docker compose up -d
如果您希望 T-Pot 在背景執行。
停止 T-Pot: CTRL-C
(如果在前台運行)和/或docker compose down -v
以完全停止 T-Pot。
使用 T-Pot Standard / HIVE,所有服務、工具、蜜罐等都將安裝到單一主機上,該主機也充當 HIVE 端點。確保滿足系統要求。您可以根據您的個人用例調整~/tpotce/docker-compose.yml
或使用~/tpotce/compose/customizer.py
建立您自己的配置,以獲得根據您的需求自訂的 T-Pot 體驗。安裝完成後,您可以繼續首次啟動。
T-Pot的分散式版本需要至少兩台主機
T-Pot HIVE ,T-Pot 的標準安裝(先安裝這個!),
和一個 T-Pot SENSOR ,它僅託管蜜罐、一些工具並將日誌資料傳輸到HIVE 。
在依照分散式部署中所述完成SENSOR安裝之前, SENSOR將不會啟動。
T-Pot 的卸載僅適用於受支援的 Linux 發行版。
要卸載 T-Pot,請執行~/tpotce/uninstall.sh
並按照卸載程式說明進行操作,您必須至少輸入一次密碼。
卸載完成後重新啟動機器sudo reboot
T-Pot 安裝程式成功完成後,需要重新啟動系統 ( sudo reboot
)。重新啟動後,您可以使用在系統安裝過程中設定的使用者登入系統。登入根據使用者類型:
使用者: [ <OS_USERNAME>
]
通過: [密碼]
您可以透過 SSH 登入存取命令列: ssh -l <OS_USERNAME> -p 64295 <your.ip>
:
使用者: [ <OS_USERNAME>
]
pass: [密碼,推薦ssh密鑰]
您也可以從瀏覽器登入並存取 T-Pot WebUI 和工具: https://<your.ip>:64297
使用者: [ <WEB_USER>
]
通過: [密碼]
除了登入並透過dps.sh
檢查所有服務和蜜罐是否正常啟動以及登入 Kibana 和/或 Geoip Attack Map 以監控攻擊之外,無需做太多事情。
分散式部署涉及規劃,因為T-Pot Init只會為HIVE主機的 IP 建立自簽名證書,這通常適合簡單的設定。由於logstash將在連接時檢查有效證書,因此涉及HIVE的分散式設定可以在多個IP(即RFC 1918和公共NAT IP)上進行訪問,甚至可能是網域名稱將導致連接錯誤,其中無法驗證證書:此類別設定需要具有通用名稱和SAN(主題備用名稱)的憑證。
在部署任何感測器之前,請確保您已正確規劃網域名稱和 IP,以避免憑證出現問題。有關更多詳細信息,請參閱問題 #1543。
將範例調整為您的 IP/網域設定並依照指令變更HIVE的憑證:
sudo systemctl stop tpot sudo openssl req -nodes -x509 -sha512 -newkey rsa:8192 -keyout "$HOME/tpotce/data/nginx/cert/nginx.key" -out "$HOME/tpotce/data/nginx/cert/nginx.crt" -days 3650 -subj '/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd' -addext "subjectAltName = IP:192.168.1.200, IP:1.2.3.4, DNS:my.primary.domain, DNS:my.secondary.domain" sudo chmod 774 $HOME/tpotce/data/nginx/cert/* sudo chown tpot:tpot $HOME/tpotce/data/nginx/cert/* sudo systemctl start tpot
T-Pot 設定檔 ( .env
) 允許透過設定LS_SSL_VERIFICATION=none
停用從SENSOR到HIVE的 Logstash 連線的 SSL 驗證。出於安全原因,僅建議在實驗室或測試環境中這樣做。
如果您選擇使用由 CA 簽署的有效HIVE憑證(即 Let's Encrypt),logstash 以及SENSOR應該不會出現連線並將其日誌傳送到HIVE 的問題。
按照安裝程式的指示重新啟動SENSOR後,您可以登入HIVE並前往cd ~/tpotce
資料夾來繼續分散式部署。在繼續實際部署之前,請確保您了解規劃和憑證。
如果您尚未產生 SSH 金鑰以安全登入感測器並允許Ansible
在感測器上執行 playbook:
運行ssh-keygen
,按照說明操作並將密碼保留為空:
Generating public/private rsa key pair. Enter file in which to save the key (/home/<your_user>/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/<your_user>/.ssh/id_rsa Your public key has been saved in /home/<your_user>/.ssh/id_rsa.pub
透過執行ssh-copy-id -p 64295 <SENSOR_SSH_USER>@<SENSOR_IP>)
將金鑰部署到 SENSOR:
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/<your_user>/.ssh/id_rsa.pub" The authenticity of host '[<SENSOR_IP>]:64295 ([<SENSOR_IP>]:64295)' can't be stablished. ED25519 key fingerprint is SHA256:naIDxFiw/skPJadTcgmWZQtgt+CdfRbUCoZn5RmkOnQ. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys <your_user>@172.20.254.124's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh -p '64295' '<your_user>@<SENSOR_IP>'" and check to make sure that only the key(s) you wanted were added.
依照建議,請依照指示測試連接ssh -p '64295' '<your_user>@<SENSOR_IP>'
。
成功部署金鑰後,執行./deploy.sh
並按照說明進行操作。
在$HOME/tpotce/.env
配置中識別感測器上的TPOT_HIVE_USER
ENV(它是一個 base64 編碼的字串)。現在,在$HOME/tpotce/.env
配置中的 HIVE 上的LS_WEB_USER
ENV 中識別相同的字串。取下繩子並重新啟動 T-Pot。
現在您可以安全地刪除 SENSOR 機器。
提供 T-Pot 是為了讓所有對蜜罐感興趣的人都可以使用它。預設情況下,捕獲的資料會提交到社區後端。該社區後端使用數據來提供 Sicherheitstacho。您可以按照以下步驟從~/tpotce/docker-compose.yml
中刪除# Ewsposter service
來選擇退出提交:
停止 T-Pot 服務: systemctl stop tpot
打開~/tpotce/docker-compose.yml
: micro ~/tpotce/docker-compose.yml
刪除以下行,儲存並退出 micro ( CTRL+Q
):
# Ewsposter service ewsposter: container_name: ewsposter restart: always depends_on: tpotinit: condition: service_healthy networks: - ewsposter_local environment: - EWS_HPFEEDS_ENABLE=false - EWS_HPFEEDS_HOST=host - EWS_HPFEEDS_PORT=port - EWS_HPFEEDS_CHANNELS=channels - EWS_HPFEEDS_IDENT=user - EWS_HPFEEDS_SECRET=secret - EWS_HPFEEDS_TLSCERT=false - EWS_HPFEEDS_FORMAT=json image: ${TPOT_REPO}/ewsposter:${TPOT_VERSION} pull_policy: ${TPOT_PULL_POLICY} volumes: - ${TPOT_DATA_PATH}:/data - ${TPOT_DATA_PATH}/ews/conf/ews.ip:/opt/ewsposter/ews.ip
啟動T-Pot服務: systemctl start tpot
鼓勵不要停用資料提交,因為這是社區方法的主要目的 - 正如你們都知道共享就是關懷?
作為選擇加入,可以與第 3 方 HPFEEDS 經紀商共享 T-Pot 資料。
請按照此處的說明停止 T-Pot 服務並開啟~/tpotce/docker-compose.yml
。
向下捲動到ewsposter
部分並根據您的需求調整 HPFEEDS 設定。
如果您需要新增 CA 證書,請將其新增至~/tpotce/data/ews/conf
並設定EWS_HPFEEDS_TLSCERT=/data/ews/conf/<your_ca.crt>
。
啟動 T-Pot 服務: systemctl start tpot
。
可以透過 SSH(在tcp/64295
上)遠端存取您的主機/T-Pot,並且 T-Pot 附帶一些服務和工具,讓您的一些研究任務變得更加容易。
根據使用者類型,您可以透過 SSH 登入存取命令列: ssh -l <OS_USERNAME> -p 64295 <your.ip>
:
使用者: [ <OS_USERNAME>
]
通過: [密碼]
根據使用者類型,您可以透過瀏覽器透過https://<your.ip>:64297
開啟 T-Pot 登陸頁面:
使用者: [ <WEB_USER>
]
通過: [密碼]
在 T-Pot 登陸頁面上,只需點擊Kibana
,您就會前往 Kibana。您可以從各種專為 T-Pot 支援的蜜罐定制的儀表板和視覺化中進行選擇。
在 T-Pot 登陸頁面上,只需點擊Attack Map
,您就會轉到攻擊地圖。由於攻擊圖利用 Web 套接字,您可能需要重新輸入<WEB_USER>
憑證。
在 T-Pot 登陸頁面上,只需點擊Cyberchef
,您就會前往 Cyberchef。
在 T-Pot 登陸頁面上,只需點擊Elasticvue
,您就會轉到 Elasticvue。
在 T-Pot 登陸頁面上,只需點擊Spiderfoot
,您就會被轉到 Spiderfoot。
T-Pot 提供了一個配置文件,不僅為 docker 服務(即蜜罐和工具)提供變量,還為 docker compose 環境提供變量。設定檔隱藏在~/tpoce/.env
中。還有一個範例檔案 ( env.example
),其中包含預設配置。
首次啟動前,請執行~/tpotce/genuser.sh
或按照此處所述手動設定WEB_USER
。
在~/tpotce/compose
中,您將找到調整 T-Pot Standard / HIVE 安裝所需的一切:
customizer.py mac_win.yml mini.yml mobile.yml raspberry_showcase.yml sensor.yml standard.yml tpot_services.yml
.yml
檔案是 docker compose 文件,每個檔案代表一組不同的蜜罐和工具, tpot_services.yml
是customizer.py
的模板,用於建立自訂的 docker compose 檔案。
若要啟動撰寫文件,請依照下列步驟操作:
使用systemctl stop tpot
停止 T-Pot。
複製 docker compose 檔案cp ~/tpotce/compose/<dockercompose.yml> ~/tpotce/docker-compose.yml
。
使用systemctl start tpot
啟動 T-Pot。
要建立自訂的 docker compose 檔案:
轉到cd ~/tpotce/compose
。
運行python3 customizer.py
。
這個腳本將指導您完成建立自己的docker-compose.yml
的過程。由於某些蜜罐和服務佔用相同的端口,因此它將檢查是否存在任何端口衝突並通知衝突的服務。然後,您可以透過調整docker-compose-custom.yml
或重新執行腳本來手動解決它們。
使用systemctl stop tpot
停止 T-Pot。
複製自訂 docker compose 檔案: cp docker-compose-custom.yml ~/tpotce
和cd ~/tpotce
。
透過執行docker-compose -f docker-compose-custom.yml up
檢查一切是否正常。如果發生錯誤,請遵循 Docker Compose 規範進行緩解。很可能這只是連接埠衝突,您可以透過編輯 docker compose 檔案來調整。
如果一切正常,請按CTRL-C
停止容器並執行docker-compose -f docker-compose-custom.yml down -v
。
將 docker compose 檔案替換為新的且已成功測試的自訂 docker compose 檔案mv ~/tpotce/docker-compose-custom.yml ~/tpotce/docker-compose.yml
。
使用systemctl start tpot
啟動 T-Pot。
T-Pot 的設計維護成本低。由於幾乎所有內容都是透過 docker 映像提供的,因此基本上您無需執行任何操作,只需讓它運行即可。我們會定期升級docker映像,以降低被攻破的風險;但是您應該仔細閱讀本節。
如果更新失敗,提出問題或討論將有助於將來改進事情,但提供的解決方案始終是執行全新安裝,因為我們根本無法為丟失的資料提供任何支援!
T-Pot 安全性取決於支援的 Linux 發行版映像檔提供的更新。請務必查看作業系統文件並確保作業系統定期安裝更新。預設情況下( ~/tpotce/.env
) TPOT_PULL_POLICY=always
將確保每次 T-Pot 啟動時 docker 都會檢查新的 docker 映像並在建立容器之前下載它們。
T-Pot 版本透過 GitHub 提供,可以使用~/tpotce/update.sh
拉取。
如果您對 T-Pot 設定檔進行了任何相關更改,請確保先建立備份!
更新可能會產生不可預見的後果。創建對您的工作最有價值的機器或文件的備份!
更新腳本將...
無情地覆蓋本地更改以與 T-Pot 主分支同步
建立~/tpotce
資料夾的完整備份
更新~/tpotce
中的所有檔案以與 T-Pot 主分支同步
從~/tpotce/data/ews/conf
和 T-Pot 配置 ( ~/tpotce/.env
) 恢復自訂ews.cfg
。
預設情況下,T-Pot 將添加每日重新啟動,包括一些清理工作。您可以使用sudo crontab -e
調整此行
#Ansible: T-Pot Daily Reboot 42 2 * * * bash -c 'systemctl stop tpot.service && docker container prune -f; docker image prune -f; docker volume prune -f; /usr/sbin/shutdown -r +1 "T-Pot Daily Reboot"'
以下問題是已知的,只需按照描述的步驟即可解決。
前段時間 Docker 引入了下載速率限制。如果您經常透過單一或共用 IP 下載 Docker 映像,則該 IP 位址可能已耗盡 Docker 下載速率限制。登入您的 Docker 帳戶以延長速率限制。
sudo su - docker login
T-Pot 設計為僅在具有單一 NIC 的電腦上運作。 T-Pot 會嘗試使用預設路由抓取接口,但不保證一定會成功。最好在只有一個 NIC 的機器上使用 T-Pot。
T-Pot 服務在每次重新啟動時自動啟動和停止(安裝過程中sudo crontab -l
中的設定每天都會發生一次)。
如果您想手動啟動 T-Pot 服務,您可以透過systemctl start tpot
執行此操作,並透過dpsw
觀察容器的啟動情況。
T-Pot 服務在每次重新啟動時自動啟動和停止(安裝過程中sudo crontab -l
中的設定每天都會發生一次)。
如果您想要手動停止 T-Pot 服務,可以透過systemctl stop tpot
進行操作,並透過dpsw
觀察容器的關閉情況。
來自蜜罐、工具和 T-Pot 相關服務的所有持久性日誌檔案都儲存在~/tpotce/data
中。這包括未傳輸到 Elastic Stack 的已收集工件。
預設情況下,T-Pot 資料資料夾中儲存的所有日誌資料將保留 30 天。
Elasticsearch 索引由tpot
索引生命週期策略處理,可以直接在 Kibana 中調整(確保「包括託管系統策略」)。
預設情況下, tpot
索引生命週期策略將索引保留 30 天。這在存儲和速度之間提供了良好的平衡。不過,您可以根據自己的需求調整保單。
儲存在 T-Pot 資料資料夾中的所有日誌資料(當然 Elasticsearch 索引除外)都可以透過執行clean.sh
來刪除。有時事情可能會無法修復,將 T-Pot 重置為出廠預設值從未如此簡單(確保輸入cd ~/tpotce
)。
使用systemctl stop tpot
停止 T-Pot。
將~/tpotce/data
資料夾移動/備份到安全位置(這是可選的,以防萬一)。
使用sudo rm -rf ~/tpotce/data
~/tpotce/data
資料夾。
將 T-Pot 重置為上次取得的提交:
cd ~/tpotce/ git reset --hard
現在您可以運行~/tpotce/install.sh
。
您可以透過執行dps
或dpsw [interval]
顯示所有 T-Pot 相關容器。 interval (s)
將定期重新執行dps.sh
Blackhole 將以隱身模式運行 T-Pot,無需公開已知掃描儀的永久訪問,從而降低暴露的可能性。雖然這當然始終是一場貓捉老鼠的遊戲,但黑洞功能是空路由來自已知大規模掃描儀的所有請求,同時仍透過 Suricata 捕捉事件。
透過在~/tpotce/.env
中設定TPOT_BLACKHOLE=DISABLED
來啟動該功能,然後執行systemctl stop tpot
和systemctl start tpot
或sudo reboot
。
啟用此功能將大大降低攻擊者的可見性,從而導致活動減少。然而,正如已經提到的,它既不能保證完全隱形,也不能阻止某些蜜罐服務的指紋識別。
Nginx (T-Pot WebUI) 可讓您新增任意數量的<WEB_USER>
帳戶(根據使用者類型)。
若要新增用戶,請執行~/tpotce/genuser.sh
。
若要刪除用戶,請開啟~/tpotce/.env
,找到WEB_USER
並刪除對應的 base64 字串(解碼: echo <base64_string> | base64 -d
,或開啟 CyberChef 並載入「From Base64」配方)。
為了使變更生效,您需要使用systemctl stop tpot
和systemctl start tpot
或sudo reboot
重新啟動 T-Pot。
某些 T-Pot 更新將要求您更新 Kibana 物件。要么支持新的蜜罐,要么改進現有的儀表板或視覺化。確保先匯出,這樣您就不會丟失任何調整。
前往基巴納
點擊“堆疊管理”
按一下“已儲存的物件”
按一下“匯出 <no.> 物件”
點擊“全部導出”這將導出包含所有物件的 NDJSON 檔案。始終運行完整導出以確保包含所有引用。
下載 NDJSON 檔案並解壓縮。
前往基巴納
點擊“堆疊管理”
按一下“已儲存的物件”
如果您沒有對 Kibana 物件進行個人更改,請按一下「匯入」並保留預設值(檢查現有物件並自動覆寫衝突)。
瀏覽 NDJSON 檔案 當詢問:“如果任何物件已存在,是否要自動覆蓋它們?”你回答「是的,覆蓋全部」。
一般來說,T-Pot按原樣提供,沒有任何支持承諾。可以公開問題和討論,但要準備好包含基本的必要信息,以便社區能夠提供幫助。
檢查您的容器是否正常運作: dps
檢查你的系統資源是否沒有耗盡: htop
、 docker stats
檢查是否有連接埠衝突:
systemctl stop tpot grc netstat -tulpen mi ~/tpotce/docker-compose.yml docker-compose -f ~/tpotce/docker-compose.yml up CTRL+C docker-compose -f ~/tpotce/docker-compose.yml down -v
檢查單一容器日誌: docker logs -f <container_name>
檢查tpotinit
日誌: cat ~/tpotce/data/tpotinit.log
Elastic Stack 非常需要 RAM,特別是logstash
和elasticsearch
。如果 Elastic Stack 不可用、未收到任何日誌或只是不斷崩潰,則很可能是 RAM 或儲存問題。
當 T-Pot 不斷嘗試重新啟動服務/容器時,執行docker logs -f <container_name>
( logstash
或elasticsearch
)並檢查是否有任何涉及 RAM 的警告或故障。
透過htop
可以更輕鬆地識別儲存故障。
T-Pot以開源方式提供,沒有任何支援承諾(請參閱免責聲明)。
如果您是安全研究人員並希望負責任地報告問題,請聯絡我們的 CERT。
請在我們的 GitHub 問題上回報問題(錯誤),但首先進行故障排除。未提供解決錯誤訊息的問題將關閉或轉化為討論。
首先使用搜尋功能,可能已經解決或討論了類似的問題,只需搜尋即可找到解決方案。
一般問題、想法、展示和講述等可以在我們的 GitHub 討論中解決。
使用搜尋功能,可能已經有類似的討論,只需搜尋即可找到答案。
T-Pot 所基於的軟體使用以下授權。
GPLv2:conpot、dionaea、honeytrap、suricata
GPLv3:adbhoney、elasticpot、ewsposter、log4pot、fatt、heralding、ipphoney、redishoneypot、sentrypeer、snare、tanner
Apache 2 授權:cyberchef、dicompot、elasticsearch、logstash、kibana、docker
麻省理工學院許可證:autoheal、ciscoasa、ddospot、elasticvue、glutton、hellpot、maltrail
無執照:無休無止
其他:citrixhoneypot、cowrie、mailoney、Elastic License、Wordpot
AGPL-3.0:蜜罐
公共領域 (CC):Harvard Dataverse
如果沒有開源和我們引以為傲的開發社區,T-Pot 就不可能實現!我們感謝但不限於以下個人和組織:
阿布蜜
思科阿薩
思傑蜜罐
康波特
貝
ddospot
迪康波特
捕蠅草屬
泊塢窗
彈性罐
彈性搜尋
彈性vue
無盡的
電子海報
胖子
饞嘴
地獄火
預示
蜜罐
蜜罐
電話
基巴納
日誌儲存
log4pot
邁洛尼
馬爾特雷爾
藥罐
p0f
紅糖罐
哨兵
蜘蛛腳
圈套
皮匠
蘇利卡塔
字罐
以下公司和組織
泊塢窗
彈性.io
蜜網項目
……當然還有您加入社區!
謝謝你玩?
迄今為止,我們收到的最重要的回饋之一來自 Conpot 開發人員之一:
「[...]我強烈推薦T-Pot,它...它不完全是一把瑞士軍刀..它更像是一個瑞士陸軍士兵,配備了一把瑞士軍刀。在坦克裡面。一輛瑞士坦克。
來自@robcowart(ElastiFlow 的創建者):
“#TPot 是最完整的交鑰匙蜜罐解決方案之一。對於任何想要分析和了解惡意行為者的行為及其對組織構成的威脅的人來說,它都是必備的。”