本文将介绍常用的暴力破解ssh远程登录账户和密码的工具Hydra
和Medusa
,并使用这些工具对靶机进行简单的破解测试,从而得到有效的防范方法。
工具都是Kali系统附带有的,当然,其他linux系统也可下载测试。先来认识下这些工具。
Hydra (海德拉)是世界顶级密码暴力密码破解工具,支持几乎所有协议的在线密码破解,功能强大,其密码能否被破解关键取决于破解字典是否足够强大,在网络安全渗透过程中是一款必备的测试工具。
参数介绍:
hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-W TIME] [-f] [-s PORT] [-x MIN:MAX:CHARSET] [-c TIME] [-ISOuvVd46] [service://server[:PORT][/OPT]]
-R 恢复上一次的会话
-I 忽略存在的恢复文件
-S SSL连接
-s 端口号
-l 尝试登陆名
-L 从文件中导入登录名
-p 尝试密码
-P 从文件中导入密码
-e nsr n尝试空密码 s尝试与用户名相同的密码 r反向登陆循环
-c TIME 设置尝试登陆等待时间
-4 / -6 使用IPV4地址或IPV6地址
-v / -V 详细信息模式/显示每次尝试的用户名+密码/调试模式
-O 使用旧版本SSL v2和v3
-q 不显示连接错误信息
-h 帮助
-M 从文件中导入服务类型
-f / -F 在找到第一个账号/密码后,停止破解
server 目标IP
service 支持的服务类型
支持的服务类型:adam6500 asterisk cisco cisco-enable cvs firebird ftp ftps http[s]-{
head|get|post} http[s]-{
get|post}-form http-proxy http-proxy-urlenum icq imap[s] irc ldap2[s] ldap3[-{
cram|digest}md5][s] mssql mysql nntp oracle-listener oracle-sid pcanywhere pcnfs pop3[s] postgres radmin2 rdp redis rexec rlogin rpcap rsh rtsp s7-300 sip smb smtp[s] smtp-enum snmp socks5 ssh sshkey svn teamspeak telnet[s] vmauthd vnc xmpp
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
Medusa(美杜莎)是一个速度快,支持大规模并行,模块化,爆破登录。可以同时对多个主机,用户或密码执行强力测试。
基于线程的并行测试:可以对多个执行暴力测试 主机,用户或密码同时进行。
灵活的用户输:目标信息(主机/用户/密码)可以在 多种方式。 例如,每个项目可以是单个条目或文件 包含多个条目, 此外,组合文件格式允许用户 完善目标列表。
模块化设计: 每个服务模块都作为独立的.mod文件存在。 这表示 无需对核心应用程序进行任何修改即可扩展受支持的列表 暴力破解服务。
参数介绍:
Medusa [-h host|-H file] [-u username|-U file] [-p password|-P file] [-C file] -M module [OPT]
-h [TEXT] 目标IP
-H [FILE] 目标主机文件
-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] 使用非默认端口
-s 启用SSL
-r [NUM] 重试间隔时间,默认为3秒
-t [NUM] 设定线程数量
-L 并行化,每个用户使用一个线程
-f 在找到第一个账号/密码后,停止破解
-q 显示模块的使用信息
-v [NUM] 详细级别(0-6详细)
-w [NUM] 错误调试级别(0-10)
-V 显示版本
-Z [TEXT] 继续扫描上一次
Example:
medusa -M ssh -u root -P passwd.txt -h 192.168.126.130 -f -v 6
Medusa比Hydra稳定,但是破解速度比较慢。
SSH尝试速度比FTP尝试速度慢。
Medusa支持参数和服务类型比Hydra少,可能是很久不更新的原因。
Kali机配置:
版本:Linux kali 4.15.0-kali2-amd64
地址:10.8.161.163
靶机配置:
靶机1
地址:10.8.161.9
账号1:root
密码:a123.com
普通用户账号:user
普通用户密码:6688aabbcc
靶机2
地址:10.8.161.18
账号:root
密码:666QWE888
主机群地址文件
host.txt
cat host.txt
10.8.161.9
10.8.161.18
用户字典文件
user.txt
cat user.txt
admin
admin123
root
root123
user
Administrotor
adminroot
gly
gly123
密码字典文件
passwd.txt
cat passwd.txt
6688aabbcc
asdfghq%^
adminqaz888
abc.123
666QWE888
100120354
a123.com # 为了节省时间,把已知靶机密码写进密码本
Hydra
hydra -L user.txt -P passwd.txt -M host.txt -t 20 ssh
-L 指定用户文件
-P 指定密码文件
-M 指定主机群文件
-t 指定使用的线程数,根据自己的设备性能设置
Medusa
medusa -U user.txt -P passwd.txt -H host.txt -M ssh -t 10
-U 指定用户文件
-P 指定密码文件
-H 指定主机群文件
-t 指定使用的线程数,根据自己的设备性能设置
①定时更换密码
②设置更为复杂的密码
③设置密码登录次数
修改如下文件:
/etc/pam.d/sshd (远程ssh)
/etc/pam.d/login (终端)
在第一行下即#%PAM-1.0的下面添加:
auth required pam_tally2.so deny=3 unlock_time=600 even_deny_rootroot_unlock_time
各参数解释:
even_deny_root 也限制root用户;
deny 设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户
unlock_time 设定普通用户锁定后,多少时间后解锁,单位是秒;
root_unlock_time 设定root用户锁定后,多少时间后解锁,单位是秒;
手动解除锁定:
查看错误登录次数:pam_tally2 –u tom
查看某一用户错误登陆次数:pam_tally –-user
例如,查看work用户的错误登陆次数:pam_tally –-user work
清空某一用户错误登陆次数:pam_tally –-user –-reset
例如,清空 work 用户的错误登陆次数,pam_tally –-user work –-reset
④修改端口号
vim /etc/ssh/sshd_config
Port 1-65535 #开启端口限定,并指定端口1-65535之间
⑤禁用root用户登陆,平时使用普通用户sudo提权。
usermod root -s /sbin/nologin
⑥只允许指定ip登陆
vim /etc/hosts.allow
例如sshd:8.8.8.8:allow #禁止8.8.8.8 登陆
⑦禁止密码登录,采用秘钥登陆
一.生成密钥的公钥和私钥
1.ssh-keygen -t rsa
二.将生成的私钥(id_rsa)下载到本地的windows机,并把公钥导入到.ssh/authorized_keys 文件中去
1.#cd /root/.ssh/
2.#cat id_rsa.pub > authorized_keys
三.sshd配置
1.sshd配置文件路径 /etc/ssh/sshd_config
四.设置sshd 服务器服务,打开以下设置:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile /root/.ssh/authorized_keys
ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no
五.重启ssh服务
1. #service ssh restart (注意:如果是centos7以下版本)
2.如果是centos7以上
查看ssh服务状态:systemctl status sshd.service
开启ssh服务:systemctl start sshd.service
重启ssh服务:systemctl restart sshd.service
服务器自动开启:systemctl enable sshd.service
六.xshell登录
登陆时候选择ssh登陆 ,添加id_rsa私钥文件,输入建立私钥时候的密码,就成功了。
包含内容:
0-9a-zAZ~!@#$%^&**()_|:">?等所有密码,需要配合阳寿
跑的密码字典!!!∑(゚Д゚ノ)ノ
点击这里查看密码字典
ᕦ(・ㅂ・)ᕤ点击这里查看字典文档ᕦ(・ㅂ・)ᕤ
======================================================================================================================================================================================================================================================================================================
辛苦浏览观看,如果对你有帮助,请顺手点个赞吧 (σ゚∀゚)σ…:*☆