使用Docker部署Hfish诱导攻击

2,035 阅读3分钟

HFish 是一款基于 Golang 开发的跨平台多功能主动诱导型蜜罐框架系统,为了企业安全防护测试做出了精心的打造

起因

由于使用的VPS有对外网开放SSH服务,但是又不想直接使用22端口,毕竟扫描攻击太多。后面通过掘金chrome插件看到HFish这个项目,想着能不能应用到自己的VPS上。

部署

由于HFish是由Golang编写的,天生自带跨平台属性,可以按自己操作系统平台下载不同的版本,下载地址。 直接使用二进制文件运行的教程在Github上有中文文档,这里我说下我使用时使用Docker部署的相关脚本。
由于VPS上本来就搭建了Docker环境就直接使用Docker-compose写了一个简单的配置文件来部署。

修改SSH默认端口

服务器上默认SSH端口为22,我们部署HFish出来的SSH蜜罐使用的默认端口也是22,如果不修改宿主机端口会出现端口冲突的情况.

修改shhd_config

/etc/ssh/sshd_config中取消Port 22的注释并新增Port 34567

...
# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
Port 22
Port 34567
...

保存退出后重启sshd

# systemctl restart sshd

增加SElinux端口

在CentOS7系统更改shhd_config的过程中会发现在Port上方有一段注释。所以,下一步就是告诉SElinux这步操作,我们需要用到semanage

  • 安装semanage
# yum provides semanage
# yum -y install policycoreutils-python
  • 检测ssh端口
# semanage port -l | grep ssh
ssh_port_t                     tcp      22
  • 添加新端口34567
# semanage port -a -t ssh_port_t -p tcp 34567
  • 重新检测端口,如果出现34567与22则成功
# semanage port -l | grep ssh
ssh_port_t                     tcp      34567, 22

开放防火墙端口

CentOS7中需要在firewalld中开放对应端口,为了使规则永久生效加上permanent参数

# firewall-cmd --zone=public --permanent --add-port=34567/tcp
# firewall-cmd --reload

禁用22端口

在经过上述操作后,打开新终端能够使用新的端口访问VPS后,禁用SSH默认的22端口。
同样,在/etc/ssh/sshd_config中只需要再次注释掉Port 22即可

...
# Port 22
Port 34567
...

保存退出后再次重启sshd

# systemctl restart sshd

部署HFish

编写compose.yml

使用vim编辑docker-compose.yml写入如下内容,保存退出后使用docker-compose up -d启动即可。

version: "3"
networks:
  honeypot:
    driver: bridge
services:
  hfish:
    image: imdevops/hfish:latest
    container_name: hfish
    restart: always
    environment:
      - USERNAME=akiya           # 后台管理系统登录账号
      - PASSWORD=thepassw0rd     # 后台管理系统登录密码
    ports:
      - "21:21"         # FTP
      - "22:22"         # SSH
      - "23:23"         # Telnet
      - "3306:3306"     # Mysql
      - "6379:6379"     # Redis
      - "8080:8080"     # 暗网
      - "8989:8989"     # 插件
      - "9000:9000"     # Web
      - "9001:9001"     # 系统管理后台
      - "11211:11211"   # Memcache
    volumes:
      - $PWD/data:/opt
    networks:
      - honeypot

开放对应防火墙端口

firewall-cmd --zone=public --permanent --add-port=21/tcp
firewall-cmd --zone=public --permanent --add-port=22/tcp
firewall-cmd --zone=public --permanent --add-port=23/tcp
firewall-cmd --zone=public --permanent --add-port=3306/tcp
firewall-cmd --zone=public --permanent --add-port=6379/tcp
firewall-cmd --zone=public --permanent --add-port=8080/tcp
firewall-cmd --zone=public --permanent --add-port=8989/tcp
firewall-cmd --zone=public --permanent --add-port=9000/tcp
firewall-cmd --zone=public --permanent --add-port=9001/tcp
firewall-cmd --zone=public --permanent --add-port=11211/tcp
firewall-cmd --reload

访问后台管理

启动Docker并放行防火墙后,我们使用浏览器访问IP:9001,并登陆compose文件中设置的用户名密码,即可看到相应的一个大盘界面,具体功能请参考官方文档。