Cowrie SSH 蜜罐部署记录

Coast23

前言

听说暴露在公网上的 SSH 端口很容易被爆破, 好奇这个是不是真的, 更好奇被爆破后的机子会被执行什么样的恶意命令, 于是决定在树莓派上部署一个 SSH 蜜罐.

由于 fakessh 不能模拟假终端, 所以我最后看中了 Cowrie.

我的计划是, 修改原有的 sshd 端口 (即 22), 给 Cowrie 分配 62223 的端口, 然后把 22 的请求都转发到 62223.

迁移原 sshd 监听端口

编辑 /etc/ssh/sshd_config, 找到 Port 22 这一行, 改成其它你要用的端口.

如果使用了 ufw 或者 iptables 等防火墙, 记得要修改相应的放行规则.

在保证不会把自己锁在服务器外后, 执行 sudo systemctl restart sshd 重启 sshd 服务.

部署

没什么好说的, 直接上命令:

# 创建一个专门用于运行蜜罐的 cowrie 用户
sudo adduser --disabled-password cowrie

# 加入必要权限组
sudo usermod -aG adm cowrie

# 切换到 cowrie 用户
sudo su - cowrie

# clone cowrie, 如果拉不下来, 可以考虑镜像源, 比如 gh-proxy.com
git clone https://github.com/cowrie/cowrie.git
cd cowrie

# 创建并激活虚拟环境
python3 -m venv cowrie-env
source cowrie-env/bin/activate

# 安装依赖
pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

# 复制配置文件
cp etc/cowrie.cfg.dist etc/cowrie.cfg

然后编辑配置文件, 这个配置项还是挺庞大的, 我目前只改了 2 个地方, 其它的可以自行摸索一下.

nano etc/cowrie.cfg
[honeypot]
...
# timezone = UTC
timezone = UTC+8
...

[ssh]
...
# listen_endpoints = tcp:2222:interface=0.0.0.0
listen_endpoints = tcp6:62223:interface=\:\:
# 这个写法是为了监听 ipv4 和 ipv6 的 62223 端口
...

当然, 也可以不做端口转发, 直接改成监听 22 端口应该也是可以的.

如果要做端口转发的话, 我是借助了 iptablesiptables-persistent, 注意, 后者和 ufw 冲突, 如果执行下面的命令的话, 会导致 ufw 及其规则被移除!

以下操作在原来的 root 用户下执行!

# iptables 只负责 ipv4
sudo iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 62223
# ipv6 需要用 ip6tables 做转发
sudo ip6tables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 62223

# iptables 的规则在重启后会丢失, 因此需要用下面这个包做持久化
# 注意, 这一步会移除 ufw !
sudo apt-get install iptables-persistent

# 保存规则
sudo netfilter-persistent save

然后, 运行蜜罐看看吧!

sudo -u cowrie /home/cowrie/cowrie/bin/cowrie start

ss -tlnp | grep 62223
# 你应该得到这样的输出:
# LISTEN 0 50 *:62223 *:*

然后, 尝试 ssh 连接蜜罐的 22 端口, 看看蜜罐是否正常工作.

如果出现 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 这样的警告, 就编辑主机的 ~/.ssh/known_hosts, 删掉里面的对应条目.

蜜罐能正常运行后, 最好再写个 systemd 服务文件, 让它开机自启.

sudo nano /etc/systemd/system/cowrie.service

写入如下内容:

[Unit]
Description=Cowrie SSH Honeypot
After=network.target

[Service]
Type=forking
User=cowrie
Group=cowrie
WorkingDirectory=/home/cowrie/cowrie
PIDFile=/home/cowrie/cowrie/var/run/cowrie.pid
ExecStart=/home/cowrie/cowrie/bin/cowrie start
ExecStop=/home/cowrie/cowrie/bin/cowrie stop
Restart=on-failure

[Install]
WantedBy=multi-user.target

保存后, 依次执行下列命令:

# 如果刚刚开了蜜罐的话, 先关掉吧
sudo -u cowrie /home/cowrie/cowrie/bin/cowrie stop

sudo systemctl daemon-reload
sudo systemctl enable cowrie
sudo systemctl start cowrie

查看日志

日志文件位于 /home/cowrie/cowrie/var/log/cowrie/cowrie.log,

可通过 tail -f /home/cowrie/cowrie/var/log/cowrie/cowrie.log 命令查看最近的日志.

  • 标题: Cowrie SSH 蜜罐部署记录
  • 作者: Coast23
  • 创建于 : 2025-07-23 22:38:18
  • 更新于 : 2025-07-24 23:56:43
  • 链接: https://coast23.github.io/2025/07/23/Cowrie-SSH-蜜罐部署记录/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
目录
Cowrie SSH 蜜罐部署记录