最新看一个学生做毕业设计(蜜罐),感觉这东西没有使用起来,

于是就花了点时间研究了下。(可供同学们做一些小项目,需要at我。)

  1. 一、安装部署

HFish是一款社区型免费蜜罐,国内开源。这里使用了说下简单的使用

docker部署:

预处理环境,首先在ubunt24.04配置好docker

root@peggy-win10:/# lsb_release -a

No LSB modules are available.

Distributor ID: Ubuntu

Description:    Ubuntu 24.04.4 LTS

Release:        24.04

Codename:       noble

然后查看启动docker

若没有启动systemctl status docker  (startstoprestart

然后拉群hfish镜像(要解决、国外拉取不下来的情况)

cd /etc/docker/

 ls

 gedit daemon.json

sudo systemctl daemon-reload

 sudo systemctl restart docker

sudo systemctl status docker

 docker run hello-world

屏幕剪辑的捕获时间: 5/15/2026 10:24 AM

docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/threatbook/hfish-server:latest


//这个是成功的。

//然后运行这个蜜罐hfish-server

root@peggy-win10:/opt# docker ps -a

CONTAINER ID   IMAGE         COMMAND    CREATED          STATUS                      PORTS     NAMES

9e4886b6518d   hello-world   "/hello"   26 minutes ago   Exited (0) 26 minutes ago             boring_allen

d358f8254460   hello-world   "/hello"   3 weeks ago      Exited (0) 3 weeks ago                crazy_colden

a2f96c6e9c81   hello-world   "/hello"   3 weeks ago      Exited (0) 3 weeks ago                xenodochial_galois

root@peggy-win10:/opt# docker run -itd --name hfish -v /usr/share/hfish:/usr/share/hfish --network host --privileged=true threatbook/hfish-server:latest

e30228f7b29d74607570a5090d8f58ac039d63e2c46d289d863609e04d3d981b

root@peggy-win10:/opt#

 

旁注:

容器的操作:

通过docker,并非通过docker-compose的yaml文件执行

1、查看容器ip

一、进入容器

docker exec -it hfish /bin/sh  (也有可能是bash)

Hostname -i  (或者ifconfig -a 或者ip addr)

输出eth0或者ens18开头的行即是容器IP

二、不进入容器

docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' hfish

2、执行一些命令

3、停止运行容器

开始运行容器

root@peggy-win10:/# docker stop hfish   //container_name

hfish

root@peggy-win10:/# docker start hfish

hfish

root@peggy-win10:/#

屏幕剪辑的捕获时间: 5/15/2026 10:51 AM

这时候网页端就有正常访问了。如下图两图。(不同时间的截图)

登陆链接:https://[ip]:4433/web/
账号:admin
密码:xxxx

屏幕剪辑的捕获时间: 5/21/2026 2:57 PM

注意:每次启动,终止删除了 容器,它的密码就会重置。!

或者重置密码:{

ps,wsl的网络:本机网络为172.17..62.39,宿主机网络为172.17.48.1

  • docker exec -it hfish /bin/sh
  • cd 3.0.1(版本号)
  • 执行./tools -mode resetpwd
  • exit 退出容器
  • docker restart hfish
  • 使用默认账号密码:admin/HFish2021进行登录 }

接下来就是如何使用HFish的事了,这里列举几种:

1、扫描

nmap -T4 -A -v 172.17.62.39

对目标 IP 172.17.62.39进行一次“比较全面、速度较快、输出详细”

的端口扫描和服务/系统探测。

结果如下:此目标系统开放了很多端口。

屏幕剪辑的捕获时间: 5/15/2026 10:55 AM

屏幕剪辑的捕获时间: 5/15/2026 10:59 AM

2、捕获查看

点击切换回浏览器窗口,可以查看“威胁感知:攻击列表”记录:

屏幕剪辑的捕获时间: 5/15/2026 11:00 AM

  1. 二、后续扩展

2.1 分析:蜜罐部署方式:

2.2 可以考虑以下设计:

方案 1:小型网站 / 毕业设计(最简单、零成本)

环境:1 台 Linux 服务器(Ubuntu 20.04)

  • 日志:蜜罐自动记录所有攻击(SQL 注入、XSS、爬虫)
  • 隔离:蜜罐 Docker 禁止访问内网 / 真实数据库
  • 异常请求(扫描器、恶意 UA、高频请求)→ 转发到127.0.0.1:8080(蜜罐)
  • 正常请求 → 真实网站
  • 真实网站:Nginx 部署,80/443,正常域名
  • 蜜罐:Docker 部署 Shark/Dionaea,监听8080/8081
  • 分流:Nginx 配置规则

2.3 进阶可扩展的项目:

一、部署nginx+tomcat代理一个真实网站和hfish的分流实现

是否基于域名

二、部署loadbalance组件(keepalive或者haproxy)实现vip分流,正常访问的行为知识后端真实web服务,异常入侵检测行为被hfish捕获记录(检测行为是否需要基于nginx的规则实现)

基于域名访问

三、在二的基础上部署一套防火墙系统,同时对hfish部署的规则做应对反馈给防火墙实现自我保护的功能。

欢迎实现探讨

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐