2025年跟上AI新时代:带AI人工智能的蜜罐系统T-Pot

news2025/2/28 12:19:00

T-Pot是一个集成式、可选分布式的、支持多架构(amd64、arm64)的蜜罐平台,它支持20多种蜜罐,并提供了使用Elastic Stack的无数可视化选项、动态实时攻击地图以及众多安全工具,以进一步提升蜜罐系统体验。源码地址:GitHub - telekom-security/tpotce: 🍯 T-Pot - The All In One Multi Honeypot Platform 🐝

随着人工智能技术的普及,从T-Pot 24.04.1版本开始,引入了两个基于LLM的蜜罐:Beelzebub和Galah。这些蜜罐需要安装Ollama,并需在T-Pot配置文件中进行相应配置。

在deepseek横空出世后,Ollama终于可以在大多数普通机器上较快的使用大模型了。基于此,再次实践蜜罐系统T-Pot 。以前的实践见:T-Pot多功能蜜罐实践@debian12@FreeBSD-CSDN博客

安装带AI人工智能的蜜罐系统T-Pot

这次是在Ubuntu24.04虚拟机中进行操作。

T-Pot的安装非常简单方便

下载源码:

git clone https://github.com/telekom-security/tpotce

然后进入tpotce目录,执行./install.sh安装即可。

安装完成,重启系统,T-Pot就算安装好了。

下载源代码 

git clone https://github.com/telekom-security/tpotce
  1. $ cd tpotce
  2. Run the installer as non-root: $ ./install.sh

安装之前,先手工安装docker并设置镜像

如果能科学上网,这步可以省略,直接install.sh一键安装即可

sudo apt install docker.io

设置docker镜像

如果能科学上网,就不用设置镜像这么繁琐,docker也不用手工安装,直接install.sh一键安装即可。

在/etc/docker/daemon.json文件中写入:

{
  "registry-mirrors": ["https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"]
}

启动docker服务

service  docker start

如果前面已经启动服务了,这里就重启服务

service  docker restart

安装其它依赖库

为了防止安装失败,需要安装这个库

sudo apt-get install util-linux

安装T-Pot

进入源代码目录cd tpotce

执行安装命令 ./install.sh

注意这里并不需要sudo,但是安装过程中,会提示输入sudo口令。

稍后会出现安装选择界面,让选择哪种模式:标准模式,Hive模式,llm AI大模型模式等

选了l,也就是llm大模型模式

设了web账号sky,密码123

 后面就是漫长的安装过程:
 

 ✔ nginx Pulled                                                                                                      323.8s
 ✔ logstash Pulled                                                                                                   526.1s ✔ beelzebub Pulled                                                                                                  432.2s
 ⠴ suricata [⣿⣿⣷] 37.81MB / 41.96MB Pulling                                                                          718.7s
 ✔ map_redis Pulled                                                                                                   29.5s
 ✔ p0f Pulled                                                                                                        489.2s ✔ tpotinit Pulled                                                                                                   559.0s
 ✔ ewsposter Pulled                                                                                                  370.4s ⠼ kibana [⣿⣿⣿⣿⣿⣿] 359.6MB / 360.2MB Pulling                                                                         718.6s
 ⠴ elasticsearch [⣿⣿] 644.8MB / 644.9MB Pulling                                                                      718.7s
 ✔ nginx Pulled                                                                                                      323.8s
 ✔ beelzebub Pulled                                                                                                  432.2s
 ✔ map_web Pulled                                                                                                    637.8s
 ⠴ spiderfoot [⣿⣿] 141.9MB / 142.1MB Pulling                                                                         718.7s
 ✔ tpotinit Pulled                                                                                                   559.0s
 ⠴ kibana [⣿⣿⣿⣿⣿⣿] 359.6MB / 360.2MB Pulling

看到里面安装了elasticsearch,这个明显是向量检索用的。 

安装完成:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode      PID/Program name
tcp        0      0 0.0.0.0:64295           0.0.0.0:*               LISTEN      0          83700      17424/sshd: /usr/sb
tcp6       0      0 :::64295                :::*                    LISTEN      0          83702      17424/sshd: /usr/sb
udp        0      0 192.168.56.101:68       0.0.0.0:*                           998        87661      9049/systemd-networ
udp        0      0 10.0.2.15:68            0.0.0.0:*                           998        47527      9049/systemd-networ

### Done. Please reboot and re-connect via SSH on tcp/64295.
Make sure to adjust the T-Pot config file (.env) for Ollama / ChatGPT settings.

 注意这句:Please reboot and re-connect via SSH on tcp/64295.

也就是需要重启,并登录到64295端口。为什么不登陆80端口呢?因为安装好T-Pot后,80端口就是个蜜罐系统啦! 

登录和管理

好的,安装完成,让我们ssh来登录64295这个端口吧!

使用命令:ssh username@192.168.56.101  -p 64295

登到服务器上,也没啥,刚开始用也不太懂,这时候感觉登上来也没啥事干。

这时候,也可以直接用浏览器登录,web登录端口是64297,比如浏览器打开:

https://192.168.56.101:64297/

就可以看到web监控页面了。这个web页面,主要是监控显示页面。

WEB监控界面的几款工具介绍

web监控界面有如下几个链接:Attack Map Cyberchef Elasticvue Kibana Spiderfoot,可以感觉需要选择合适的监控和分析视图。

1. Attack Map

Attack Map通常指的是一种网络安全可视化工具,它能够以地图的形式实时展示网络攻击的来源和目标

2. Cyberchef

Cyberchef是一个开源的、基于Web的工具,用于进行各种数据转换、编码、加密和解密操作。它提供了一个直观的界面,用户可以通过拖拽和连接不同的操作模块来处理数据。它可以帮助安全分析师快速解码和分析恶意软件样本、网络流量数据等。

3. Elasticvue

Elasticvue是一个专为Elasticsearch设计的可视化工具。它提供了丰富的图表和仪表盘功能,使用户能够直观地分析和展示Elasticsearch中的数据。与Kibana类似,Elasticvue也支持多种可视化类型,如图表、表格和地图等。然而,Elasticvue可能不如Kibana那样广泛被使用或知名,但它仍然是一个强大的Elasticsearch可视化选项‌。

4. Kibana

Kibana是Elasticsearch的官方可视化工具,它提供了强大的数据可视化和分析功能。用户可以利用Kibana的图表功能展示实时数据,从而迅速发现问题并采取措施。Kibana的仪表盘功能允许用户组合多个图表,创建一个全景视图,从多个角度对数据进行分析。此外,Kibana还支持多种数据源的集成,不仅限于Elasticsearch,用户可以通过插件和API将其他数据源的数据引入Kibana进行统一分析‌。

5. SpiderFoot

SpiderFoot是一个开源的情报收集自动化工具,它能够帮助安全研究人员和测试人员自动收集目标系统的信息。SpiderFoot通过发送各种查询和探测到目标系统,然后收集和分析返回的响应,以提取有用的信息。这些信息可能包括IP地址、域名、电子邮件地址、社交媒体账号等。。

既然deepseek那么火,我们就选一款支持AI的工具尝试一下。

AI赋能Beelzehub

两款支持AI的蜜罐工具,一款beelzebub star 836, 一款Galah star 491,我们选多的,也就是beelzebub,官网:GitHub - mariocandela/beelzebub: A secure low code honeypot framework, leveraging AI for System Virtualization.

https://github.com/mariocandela/beelzebub

但是不知道下一步该干什么。

总结 

以上就是我们装好T-Pot后的第一观感。手册专门提供了First Start,让我们跟着手册开始吧!

First Start 开始第一步

一旦安装好T-Pot,系统就需要重启一下,这个我们前面已经重启过了。

可以使用系统账户通过ssh登录系统,命令为:

ssh -l <OS_USERNAME> -p 64295 <your.ip>

不过我一般习惯用命令:ssh username@ip -p 64295

还可以通过浏览器来登录T-Pot WebUI 即Web界面,地址为:

https://<your.ip>:64297

注意,这里的登录用户名和密码是安装T-Pot最后部分时我们设定的,一般不与系统账户一样。

这两步我们前面也做了。

Standalone First Start 第一次独立启动

启动后没有啥可以做的,可以用dps看看蜜罐们是否启动了,命令:

dps

输出: 

dps
NAMES           STATUS                       PORTS
beelzebub       Up About an hour             0.0.0.0:22->22/tcp, :::22->22/tcp
elasticsearch   Up About an hour (healthy)   127.0.0.1:64298->9200/tcp
fatt            Up About an hour
galah           Up About an hour             0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp, 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:8443->8443/tcp, :::8443->8443/tcp
kibana          Up About an hour (healthy)   127.0.0.1:64296->5601/tcp
logstash        Up About an hour (healthy)   127.0.0.1:64305->64305/tcp
map_data        Up About an hour
map_redis       Up About an hour
map_web         Up About an hour             127.0.0.1:64299->64299/tcp
nginx           Up About an hour             0.0.0.0:64294->64294/tcp, :::64294->64294/tcp, 0.0.0.0:64297->64297/tcp, :::64297->64297/tcp
p0f             Up About an hour
spiderfoot      Up About an hour (healthy)   127.0.0.1:64303->8080/tcp
suricata        Up About an hour
tpotinit        Up About an hour (healthy)

可以看到beelzehub这个蜜罐启动了。

如果没啥事可以做,可以去 Kibana 或者 Geoip Attack Map 看看监控。

好吧,手册写的也这么简单,看来真的是没事做。

测试登录beelzehub蜜罐

官网:GitHub - mariocandela/beelzebub: A secure low code honeypot framework, leveraging AI for System Virtualization.

通过上面的服务列表,可以知道22端口是beelzebub的蜜罐,80端口是galah的蜜罐

登录22端口看看:

ssh root@192.168.56.101
root@192.168.56.101's password:
root@ubuntu:~$ ls
command not found
root@ubuntu:~$ pwd
command not found

看看,啥也没有啊,连ls和pwd也没有,果然是个蜜罐。

当然另一个原因是这个蜜罐没配置好ollama AI部分。

尝试配置ollama

这个以后再专门花时间去弄吧,就先到这里。

好了,到这里,T-Pot的实践之旅就结束啦!

调试

install.sh安装失败,怀疑docker有问题

Error in the pull function. [IP: 3.170.229.96 443]", "Err:10 https://download.docker.com/linux/ubuntu noble/stable amd64 docker-compose-plugin amd64 2.32.4-1~ubuntu.24.04~noble", "  Could not handshake: Error in the pull function. [IP: 3.170.229.96 443]", "Fetched 205 kB in 27s (7519 B/s)"]}

手工安装docker

sudo apt install docker-compose

加上docker加速镜像,

在/etc/docker/daemon.json文件中写入:

{
  "registry-mirrors": ["https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"]
}

再启动./install.sh


还是失败。

docker这块怎么办? 

仔细查看这篇文档,发现docker并没有安装和启动,

一步步来,再次安装和启动docker服务:

安装docker

sudo apt install docker.io

安装完成后/etc/docker/daemon.json文件中写入镜像。

重启服务:

systemctl daemon-reload
systemctl restart docker

如果这两条命令不能执行,就用service命令: 

service  docker start

重启服务:

service  docker restart

配置完成后,可以用以下命令查看是否生效:

sudo docker info | grep -A1 "Registry Mirrors"

显示下面内容,证明镜像生效:

sudo docker info | grep -A1 "Registry Mirrors"
 Registry Mirrors:
  https://docker.registry.cyou/

docker安装后启动失败

● docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)
     Active: activating (auto-restart) (Result: exit-code) since Wed 2025-02-19 23:41:02 UTC; 19ms ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
    Process: 6097 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE)
   Main PID: 6097 (code=exited, status=1/FAILURE)
        CPU: 309ms

手工启动,启动成功:

service  docker start

安装失败报错Something went wrong

TASK [Gathering Facts] *****************************************************************************************************
ok: [127.0.0.1]

TASK [Syncing clocks (All)] ************************************************************************************************
fatal: [127.0.0.1]: FAILED! => {"changed": true, "cmd": "hwclock --hctosys", "delta": "0:00:00.010539", "end": "2025-02-19 23:44:53.832705", "msg": "non-zero return code", "rc": 127, "start": "2025-02-19 23:44:53.822166", "stderr": "/bin/sh: 1: hwclock: not found", "stderr_lines": ["/bin/sh: 1: hwclock: not found"], "stdout": "", "stdout_lines": []}
...ignoring

TASK [Install recommended packages (Debian, Raspbian, Ubuntu)] *************************************************************
fatal: [127.0.0.1]: FAILED! => {"changed": false, "msg": "Failed to update apt cache: unknown reason"}

PLAY RECAP *****************************************************************************************************************
127.0.0.1                  : ok=8    changed=3    unreachable=0    failed=1    skipped=1    rescued=0    ignored=1

### Something went wrong with the Playbook, please review the output and / or install_tpot.log for clues.
### Aborting.

安装这个试试

sudo apt-get install util-linux

解决一部分报错,有新的报错

报错TASK [Enable Docker Engine upon boot (All)]

TASK [Enable Docker Engine upon boot (All)] ********************************************************************************
fatal: [127.0.0.1]: FAILED! => {"changed": false, "msg": "Unable to start service docker: Job for docker.service failed because the control process exited with error code.\nSee \"systemctl status docker.service\" and \"journalctl -xeu docker.service\" for details.\n"}

PLAY RECAP *****************************************************************************************************************
127.0.0.1                  : ok=29   changed=14   unreachable=0    failed=1    skipped=1    rescued=0    ignored=1

### Something went wrong with the Playbook, please review the output and / or install_tpot.log for clues.
### Aborting.

重新把docker服务安装,设置镜像,重启,好像整完问题就解决了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2307378.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【新手入门】SQL注入之盲注

一、引言 在我们的注入语句被带入数据库查询但却什么都没有返回的情况我们该怎么办? 例如应用程序返回到一个"通用的"的页面&#xff0c;或者重定向一个通用页面(可能为网站首页)。这时&#xff0c;我们之前学习的SQL注入的办法就无法使用了。这种情况我们称之为无…

python-leetcode-分割等和子集

416. 分割等和子集 - 力扣&#xff08;LeetCode&#xff09; class Solution:def canPartition(self, nums: List[int]) -> bool:total sum(nums)if total % 2 ! 0:return Falsetarget total // 2dp [False] * (target 1)dp[0] Truefor num in nums:for j in range(tar…

趣讲TCP三次握手

一、TCP三次握手简介 TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;是一种面向连接的、可靠的、基于字节流的传输层通信协议。在TCP连接中&#xff0c;只有两方进行通信&#xff0c;它使用校验和、确认和重传机制来保证数据的可靠传输。…

基于coze+微信小程序实现图片上传并利用大模型解析

项目截图&#xff1a; 实现代码&#xff08;直接搬去可用&#xff09; 前提&#xff1a;需要填写你的oss配置coze的api授权配置&#xff01;&#xff01;&#xff01; <template><view class"container"><!-- 高斯模糊背景 --><view class&qu…

VMware Fusion 虚拟机Mac版 安装CentOS 7 系统

介绍 CentOS是Community Enterprise Operating System的缩写&#xff0c;也叫做社区企业操作系统。是企业Linux发行版领头羊Red Hat Enterprise Linux的再编译版本&#xff08;是一个再发行版本&#xff09;&#xff0c;而且在RHEL的基础上修正了不少已知的 Bug &#xff0c;相…

java练习(44)

ps:题目来自力扣 两两交换链表中的节点 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 // 定义链表节点类&#xff0c;每个节…

Deepseek 开源周第一天:FlashMLA

Deepseek 隆重开启开源周!第一天我们迎来了FlashMLA。我很高兴带大家了解这项创新,揭秘 FlashMLA 为何能成为 AI 和 GPU 优化领域的变革者。 Deepseek 开源周的热门话题有哪些?

DeepSeek-OpenSourceWeek-第三天-Release of DeepGEMM

DeepGEMM:这是一款专为高效的 FP8(8 位浮点)通用矩阵乘法(GEMMs)而开发的尖端库。GEMMs 是许多 AI 工作负载(尤其是深度学习)中的基本操作。 特点: 支持稠密和 MoE GEMMs:它可以处理标准的稠密矩阵乘法以及混合专家(MoE)模型中使用的矩阵乘法。MoE 是一种神经网络架…

Bitlocker取证之PXE降级取密钥

支持到微软Surface pro系列。

.Net Core Visual Studio NuGet.Config 配置参考

Visual Studio 2022 NUGET NU1301 无法加载源 基础连接已关闭&#xff1a;无法建立SSL / TLS安全通道的信任关系&#xff1b;根据验证过程&#xff0c;远程证书无效&#xff0c;参考文章&#xff1a;https://blog.csdn.net/hefeng_aspnet/article/details/145780081 NuGet 行为…

Immich自托管服务的本地化部署与随时随地安全便捷在线访问数据

文章目录 前言1.关于Immich2.安装Docker3.本地部署Immich4.Immich体验5.安装cpolar内网穿透6.创建远程链接公网地址7.使用固定公网地址远程访问 前言 小伙伴们&#xff0c;你们好呀&#xff01;今天要给大家揭秘一个超炫的技能——如何把自家电脑变成私人云相册&#xff0c;并…

Apache-iotdb 基本概念

问题背景 定义&#xff08;写得太好了&#xff01;&#xff09; root 是整个树状结构的父节点&#xff0c; CirroData-TimeS 有存储组、设备、测点等概念&#xff0c;数据在存储的时候&#xff0c;不同的存储组的数据是存储在不同的文件夹中的。上图中有 root.sgcc、root.ln两…

CryptoJS库中WordArray对象支持哪些输出格式?除了toString() 方法还有什么方法可以输出吗?WordArray对象的作用是什么?

前言&#xff1a;这里只说js用的CryptoJS库里的相关内容&#xff0c;只用js来进行代码操作和讲解。 这里网上相关的帖子很少&#xff0c;不得已问了很长时间AI 想引用CryptoJS库情况分两种&#xff0c;一种是html引用&#xff0c;另一种是在Nodejs里引用。 一、引用CryptoJS库…

springboot浅析

springboot浅析 什么是springboot&#xff1f; 实际上springboot就是一个给我们提供了快速搭建使用spring的一种方式&#xff0c;让我们省去了繁琐的xml配置。 为什么无需进行大量的xml配置&#xff0c;就是因为springboot是基于约定优于配置的思想&#xff0c;简单来说就是遵循…

【文件基础操作】小笔记

Step1: 现在项目文件夹&#xff08;我的项目叫做RunPony&#xff09;下创建一个a.txt文本文件&#xff0c;手动写入一些数字&#xff0c;保存 Step2: 现在在main.c内写一个基本的文件处理的程序 Step3: 现在已经知道如何打开关闭文件&#xff0c;下一步要搞懂如何读取txt内的…

SSL 证书是 SSL 协议实现安全通信的必要组成部分

SSL证书和SSL/TLS协议有着密切的关系&#xff0c;但它们本质上是不同的概念。下面是两者的区别和它们之间的关系的表格&#xff1a; 属性SSL/TLS 协议SSL证书英文全称SSL&#xff08;Secure Sockets Layer&#xff09;&#xff0c;TLS&#xff08;Transport Layer Security&am…

AI问答-供应链管理:排队模型M/D/5/100/m/FCFS代表的含义是什么

在供应链管理中&#xff0c;排队模型M/D/5/100/m/FCFS代表的含义如下&#xff1a; M&#xff1a; 表示顾客到达时间间隔服从负指数分布&#xff08;Markov&#xff0c;负指数分布具有无记忆性&#xff09;&#xff0c;即顾客到达是随机的&#xff0c;且到达时间间隔服从指数分…

Linux驱动学习(四)--字符设备注册

上一节讲到的字符设备注册与销毁是通过cdev_init、cdev_add、cdev_del等函数分步执行的&#xff0c;本小节用一种更简单的方式&#xff0c;来注册字符设备 register_chrdev 如果major为0&#xff0c;该函数将动态的分配一个主设备号并且返回对应的值如果major > 0&#xff…

30天开发操作系统 第24天 -- 窗口操作

一、窗口切换 1.0 前天开始我们的应用程序可以显示自己的窗口了&#xff0c;现在画面上到处都是窗口&#xff0c;我们急需能够 切换窗口顺序的功能&#xff0c;使得在需要的时候可以查 看最下面的窗口的内容。这个功能看起来不难&#xff0c;我们马上来实现它。 不过&#xf…

Visual Studio 中 C/C++ 函数不安全警告(C4996)终极解决方案:分场景实战指南

问题描述 在 Visual Studio 中编写 C/C 代码时&#xff0c;使用 scanf、strcpy、fopen 等传统函数会触发以下警告&#xff1a; C4996: xxx: This function or variable may be unsafe. Consider using xxx_s instead. 根本原因&#xff1a; 这些函数缺乏缓冲区溢出检查&#…