好久没更新博客了,今天登陆服务器发现ssh有被爆破的记录,ssh_爆破_记录,因此就想着不如记录下大黑客的密码,反向登陆下他的服务器试试。经过一番搜索,发现记录ssh登陆信息有两种方法,第一种是重新编译openssh并通过打补丁的方式记录ssh登陆密码,第二种方式是使用docker部署ssh蜜罐记录下ssh被爆破的密码。本文介绍第二种,使用docker记录ssh爆破记录。

本人环境centos7,ubuntu有所不同,自己根据环境可能需要更换某些环境相关参数。

主要步骤:

  1. 修改sshd服务端口
  • 修改sshd服务默认端口
  • 关闭selinux
  • 修改sshd配置文件,重启ssh服务
  1. 部署ssh蜜罐docker
  • 安装docker,启动docker服务
  • 编译ssh蜜罐docker,运行蜜罐

修改sshd服务端口

修改sshd服务默认端口

直接修改ssh配置文件/etc/ssh/sshd_config,找到#Port 22这一项并修改,这里改为2222

vim /etc/ssh/sshd_config

如图: ssh端口修改

关闭selinux

编辑/etc/selinux/config关闭selinux

vim /etc/selinux/config

修改为SELINUX=disabled

重启系统

shutdown -r now

sestatus可查看selinux状态 如果显示 SELinux status: disabled 则selinux已经关闭成功

重启ssh服务


systemctl restart sshd.service

如果出现这种错误请回到上面关闭linux

使用

netstat -nlp|grep 222

查看ssh服务启动情况 sshd_port_change_success则说明sshd服务修改成功

部署ssh蜜罐docker

安装docker并启动docker

yum update -y
yum install docker -y
systemctl start docker.service

更新yum并安装运行docker

建立第一个服务器并记录信息

使用github上的droberson/ssh-honeypot的ssh蜜罐部署docker

 git clone https://github.com/random-robbie/docker-ssh-honey
 cd docker-ssh-honey/
 docker build . -t local:ssh-honepot
 docker run -itd --name ssh-honeypot -p 22:22 local:ssh-honepot


这里首先使用docker建立一个ssh蜜罐的image,然后把docker蜜罐中的22端口映射到本地22端口,前面修改自身ssh端口就是为了防止与这里蜜罐开放的端口冲突 使用命令查看本地22端口开放情况

netstat -nlp|grep 22

接下来就是查看蜜罐获取到的用户名和密码了 第一种命令行查看

docker logs -f $(docker ps -f name=ssh-honeypot -q) | grep -v 'Error exchanging' | head -10

第二种把日志保存在日志文件中,下次再来查看有哪些有意思的东西。


docker logs -f $(docker ps -f name=ssh-honeypot -q) | grep -v 'Error exchanging' | awk '{print $6, $7, $8}' >> /root/ssh_name_pass.log

以后分析记录到的ssh爆破密码只需要处理日志文件ssh_name_pass.log了。

一天后查看ssh登陆记录 ssh_login_record

shell分析登陆ip及用到的密码

cat /root/ssh_name_pass.log|grep -v ssh- |grep -v Sess|awk '{print $1}'|sort |uniq -c  ##查看登陆ip及次数

cat /root/ssh_name_pass.log |grep -v ssh-|grep -v Sess|awk '{print $3}'|sort > /root/pass.txt  ###保存对方登陆ssh的密码

#cd ~ && tail pass.txt

知道了对方ip以及扫描用到的密码 ssh_login_ip

这是登陆密码查看

cd ~ && tail pass.txt

ssh_login_pass

总结

到这就全部结束了,本文从ssh被人爆破开始,然后使用docker部署ssh蜜罐获取登陆到本机ssh的用户名和密码。相对与使用patch打补丁的方式来说是比较简单的方式,而且可以避免本机用户信息被记录,是在是个好方法。当然真正来说保护ssh的方式是

  1. 设置ssh秘钥,禁止密码登陆
  2. 在安全组上限制只有本机ip可以访问远程端口

当然这么安全就没有办法水这篇文章了。。。