Loading...

使用 cowrie 蜜罐调戏爆破 SSH 的黑客

只要你的服务器暴露在公网,就随时有可能被别人爆破。

我也是天天登上 SSH 就看到几万次暴力登录记录,然后就想着搞个蜜罐来玩玩,调戏下爆破的黑客。

首先,我们把服务器的 SSH 端口改成其他的。

vim /etc/ssh/sshd_config

Port 22 改为其他的,比如 521

输入 :wq 保存,然后退出,接下来你想重新连接就需要更改一下你的设置,连接到新的端口了。

接下来我们开始安装 Cowrie 这个蜜罐软件,首先新建一个用户组用于运行蜜罐:

groupadd cowrie
useradd cowrie -g cowrie
passwd cowrie

然后输入 cowrie 的密码,设置一个复杂一点的,记不住也没关系,脸滚键盘都可以。

接着我们安装一些必要的软件包。

yum install wget git gcc-c++ openssl-devel python-devel python-setuptools -y

稍等片刻执行完毕,然后安装虚拟环境变量 virtualenv

easy_install virtualenv

然后安装 Python Pip

easy_install pip

然后我们就可以登录到 Cowrie 用户了,登录后进入用户主目录

su cowrie
cd ~

把 Github 上的项目拉取下来,储存到本地的 cowrie 文件夹中。

git clone https://github.com/micheloosterhof/cowrie.git

进入到项目目录,并创建虚拟环境变量

cd cowrie/
virtualenv cowrie-env

然后应用环境变量设置

source cowrie-env/bin/activate

接下来安装 Python 必要的环境依赖,同时升级一下 Pip

pip install --upgrade pip
pip install --upgrade -r requirements.txt

过一会就好了,至此安装步骤已经完成,接下来开始配置。

首先我们把默认配置文件复制一份到当前目录下

cp etc/cowrie.cfg.dist cowrie.cfg

编辑配置文件

vi cowrie.cfg

简单解释一下各个部分的作用,具体看下面:

[honeypot]
# 蜜罐里显示的主机名
hostname = ZeroDream-Server
# 日志储存的位置
log_path = var/log/cowrie
# 攻击者下载的文件储存位置
download_path = ${honeypot:state_path}/downloads
# 虚拟的文件共享目录
share_path = share/cowrie
# 静态文件,变量目录
state_path = var/lib/cowrie
# 虚拟系统目录
etc_path = etc
# 虚拟系统内容储存目录
contents_path = honeyfs
# 文本命令储存目录
txtcmds_path = txtcmds
# 是否记录 tty
ttylog = true
# tty 日志储存位置
ttylog_path = ${honeypot:state_path}/tty
# 无操作断开超时时间,默认 180
interactive_timeout = 300
# 登录超时时间,默认 120
authentication_timeout = 120
# 后端类型,默认 shell
backend = shell
# 用户登录类型,默认 UserDB
auth_class = UserDB

[shell]
# 包含虚拟系统配置的 Python 配置文件(喵喵喵?)
filesystem = ${honeypot:share_path}/fs.pickle
# 命令行输出内容(当攻击者执行 ps 命令)
processes = share/cowrie/cmdoutput.json
# 虚拟系统的架构,具体请看默认配置文件
arch = linux-x64-lsb
# 当攻击者执行 uname 命令时输出的内容
kernel_version = 3.2.0-4-amd64
kernel_build_string = #1 SMP Debian 3.2.68-1+deb7u1
hardware_platform = x86_64
operating_system = GNU/Linux

[ssh]
# 是否启用 SSH
enabled = true
# 公钥和私钥
rsa_public_key = ${honeypot:state_path}/ssh_host_rsa_key.pub
rsa_private_key = ${honeypot:state_path}/ssh_host_rsa_key
dsa_public_key = ${honeypot:state_path}/ssh_host_dsa_key.pub
dsa_private_key = ${honeypot:state_path}/ssh_host_dsa_key
# SSH 版本,修改此处可以迷惑攻击者
version = SSH-2.0-OpenSSH_6.0p1 Debian-4+deb7u2
# 监听地址,默认 0.0.0.0
listen_addr = 0.0.0.0
# 监听端口,请不要使用低于 1024 的端口,否则无法运行
listen_port = 2222
# 这里的 2222 和上面的端口保持一致即可
listen_endpoints = tcp:2222:interface=0.0.0.0
# 是否启用 SFTP,我默认关闭了
sftp_enabled = false
# 是否允许 SSH 转发
forwarding = true
# 是否允许 SSH 转发到其他地址
forward_redirect = false
# 是否允许 SSH 转发隧道
forward_tunnel = false

[telnet]
# 是否启用 Telnet
enabled = false
# Telnet 监听地址
#listen_addr = 0.0.0.0
# Telnet 监听端口
#listen_port = 2223
# 这里的 2223 和上面的端口保持一致即可
listen_endpoints = tcp:2223:interface=0.0.0.0

[output_jsonlog]
# 输出 Json 格式日志
enabled = true
# 日志储存位置
logfile = ${honeypot:log_path}/cowrie.json
# 记录时间戳
epoch_timestamp = false

然后我们就可以开始运行 Cowrie 了

bin/cowrie start

接下来,Cowrie 就会运行在 2222 端口了,但是攻击者一般都是爆破 22 端口的,所以我们需要做一个 iptables 转发。

iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 2222

现在,你就可以通过查看 /home/cowrie/cowrie/var/log/cowrie/cowrie.log 得到爆破服务器的黑客 IP 等等了。

然后我写了一个简单的 PHP 脚本挂着,就可以随时看到攻击者信息了。

<?php
$storage = "";
while(true) {
$data = @file_get_contents("/home/cowrie/cowrie/var/log/cowrie/cowrie.log");
if($storage !== $data) {
echo str_replace($storage, "", $data);
$storage = $data;
}
sleep(1);
}

2 条评论

  • R

    2018年10月16日

    迎娶斯汀

    Reply
  • 西行寺幽幽子

    2018年11月24日

    nice 支持一下

    Reply

发表评论

》表情