SSH密码暴力破解及其防御

一、SSH概述

ssh(secure shell  安全核)由IETF的网络工作小组所定制;SSH为建立在应用层和传输层基础上的安全协议。SSH是目前较为可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。SSH客户端使用与于多种平台。几乎所有UNIX平台——包括HP-UX、Linux、AIX、Solaris、DigitalUNIX、lrix以及其他平台,都可以运行SSH。
telnet也是一种用于用远程登录的协议,但是telnet是一种不安全的协议,传输的数据没有进行任何的加密,即明文方式传输。
SSH加密远程登录管理服务器,加密的数据传输。

二、SSH远程登录的身份验证

从客户端来看,SSH提供两种级别的安全验证。
第一种:基于口令的安全验证
这种方式只要知道自己的账号和口令就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证连接到的服务器就是自己想要连接的服务器。可能会有背的服务器冒充真正的服务器,也就是受到“中间人攻击”
第二种:基于密钥的安全验证
需要依靠 密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器用这种方式,你必须知道自己密匙的口令。
第二种验证方式不仅加密所有传送的数据,而且“中间人攻击”也是不可能,因为中间人没有你的密匙。
RSA——SSH默认的加密方式,非对称的公钥加密算法,安全数据传输慢。他能够抵抗目前为止已知的绝大多数密码攻击。

三、破解

Hydra是一款爆破工具,可以对多种服务的账号和密码进行爆破,包括web登录、数据库、SSH、FTP等服务。
常见用法及参数:
kali@kali:~$ sudo hydra -h

Syntax: 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]]

Options:
-R:继续从上一次进度接着破解
-S:大写,采用SSL链接
-s :小写,可通过这个参数指定非默认端口
-l :指定破解的用户,对特定用户破解
-L :指定用户名字典
-p :小写,指定密码破解,少用,一般是采用密码字典
-P :大写,指定密码字典
-e :可选选项,n:空密码试探,s:使用指定用户和密码试探
-C :使用冒号分割格式,例如“登录名:密码”来代替 -L/-P 参数
-M :指定目标机器列表文件(ip/named)
-o :指定结果输出文件
-f :在使用-M参数以后,找到第一对登录名或者密码的时候中止破解
-t :同时运行的线程数,默认为16
-w :设置最大超时的时间,单位秒,默认是30s
-v / -V:显示详细过程
server:目标ip
service:指定服务名,支持的服务和协议:telnet ftp pop3[-ntlm] imap[-ntlm] smb smbnt http[s]-{head|get} http-{get|post}-form http-proxy cisco cisco-enable vnc ldap2 ldap3 mssql mysql oracle-listener postgres nntp socks5 rexec rlogin pcnfs snmp rsh cvs svn icq sapr3 ssh2 smtp-auth[-ntlm] pcanywhere teamspeak sip vmauthd firebird ncp afp等等
OPT:可选项

破解案例
环境搭建:centos+kali
centos启动配置好ssh服务,此处不再进行ssh配置的叙述。
1、指定用户root,针对单台服务器
SSH密码暴力破解及其防御_第1张图片
2、指定用户字典,针对单服务器
SSH密码暴力破解及其防御_第2张图片
3、指定用户字典,针对多台服务器 -M host.txt 结果输出到 tmp/out.txt
SSH密码暴力破解及其防御_第3张图片

四、防御

使用基于密钥的身份验证
修改SSH服务的配置文件,实现免密登录

你可能感兴趣的:(网络安全,安全)