用Pxssh暴力破解SSH密码
参考于《python绝技 运用python成为顶级黑客》
1. SSH相关介绍:
SSH是主要用于为远程登陆会话提供安全保障的协议(即实现远程命令行操作)
SSH可提供两种级别的安全验证:
1.基于口令的安全验证:
通过帐号和密码登录到远程主机
攻击方式:暴力破解 / “中间人”攻击
这里需要说明一下:在暴力破解时,输错多次密码会断掉连接,这时重新连接即可,有的服务器错误次数太多了还会锁IP,那这方法就不行了。(之前有考虑过用python改IP再重新连接,但由于无法接收到服务器回弹的ssh连接,就放弃这种操作了。)
2.基于密匙的安全验证:
需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。
攻击方式:暴力破解(网络上可以下载所有的1024位/2048位密钥,但量太大,据一位大佬说:这个破解就不要去想了,难度极大,并且当前大部分都是使用基于密匙的安全验证)
2. 环境搭建:
我们可以再虚拟机上搭建ssh服务,用主机进行连接
1.安装ssh服务:
redhat,fedora,centos等系列linux发行版:sudo yum install sshd
debian,ubuntu,linux mint等系列的linux发行版:sudo apt-get install sshd
2.开启ssh服务:sudo service sshd start
3.查看ssh服务状态的命令:sudo service sshd status
4.ssh服务配置文件:/etc/ssh/sshd_config
注意配置文件的以下参数:
#LoginGraceTime 2m #限制用户必须在指定的时限(单位秒)内认证成功,0 表示无限制
PermitRootLogin yes #是否允许 root 登录,默认为no,请修改为yes,注意去掉前面的‘#’才能生效
#MaxAuthTries 6 #指定每个连接最大允许的认证次数
#MaxSessions 10 #最大保持连接数
#PubkeyAuthentication yes #是否支持公钥安全验证
如果ssh远程连接不上,请确认防火墙是否放行ssh端口,和配置文件中PermitRootLogin yes允许 root 登录是否生效
5.连接ssh:
主机cmd下执行:ssh user@IP
例如:ssh root @ 127.0.0.1