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, 5900, 6379, 6667, 8080, 9100、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,Henalding,Ipphoney,Redishoneypot,Sentrypeer,Senrypeer,Snare,Tanner
Apache 2许可证:Cyberchef,Dicompot,Elasticsearch,Logstash,Kibana,Docker
麻省理工学院许可证:自动货币,思科,Ddospot,Elasticvue,Glutton,Hellpot,Maltrail
不执行:无尽
其他:citrixhoneypot,cowrie,mailoney,弹性许可证,wordpot
AGPL-3.0:蜜罐
公共领域(CC):哈佛大学数据
如果没有开源和开发社区,我们为能成为其中的一部分而感到自豪,T-Pot将是不可能的!我们的感谢是扩展的,但不限于以下人员和组织:
adbhoney
思科阿萨
citrixhoneypot
conpot
贝
DDOSPOT
Dicompot
捕蝇草属
泊坞窗
Elasticpot
弹性搜索
弹性vue
无尽的
ewpstoster
胖子
馋嘴
地狱
预示
蜜罐
蜜罐
ipphoney
基巴纳
日志存储
log4pot
Mailoney
马尔特雷尔
Medpot
p0f
redishoneypot
Sentrypeer
Spiderfoot
圈套
皮匠
苏里卡塔
wordpot
以下公司和组织
泊坞窗
弹性.io
蜜网项目
...当然,您加入社区!
谢谢你玩?
到目前为止,我们得到的最大反馈之一是竞争开发人员之一:
“ [...]我强烈建议T-Pot是……它不完全是瑞士军刀。它更像是一名瑞士军士兵,配备了瑞士军刀。在坦克内。 ...]”
来自@RobCowart(Elastiflow的创建者):
“ #TPOT是最合理的交钥匙蜜罐解决方案之一。对于任何想分析和了解恶意演员的行为以及对您组织构成的威胁的人来说,这是必不可少的。”