kali linux SSH服务的版本识别与爆破

  1. SSH原理
    最早的时候,互联网通信都是明文通信,内容都是明文通信,当然在如今,任然存在明文通信,这种情况在学校的网络中比较常见。1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标准配置。ssh只是一种网络协议,有不同的安全需求,所以就有不同的实现,既有商业,也有开源,在这里,我要介绍的就是在linux下的开源实现。
    SSH之所以安全,是因为它用到了公钥加密。不过,这里有一个坑,那就是中间人攻击,关于中间人攻击的说明,我会在以后的博客中更新,在这里只简单的描述一下SSH登录的基本原理。

整个过程是这样的:


(1)远程主机监听到用户的登录请求后,把公钥发给用户;
(2)用户使用这个公钥,将登录密码加密后返回回来;
(3)远程主机用自己的私钥解密登录密码,如果密码正确,就同意用户登录。


这个过程本身是安全的,但是实施的时候存在一个风险:如果有人截获了登录请求,然后冒充远程主机,将伪造的公钥发给用户,那么用户很难辨别真伪。因为不像https协议,SSH协议的公钥是没有证书中心(CA)公证的,也就是说,都是自己签发的。
可以设想,如果攻击者插在用户与远程主机之间(比如在公共的wifi区域),用伪造的公钥,获取用户的登录密码。再用这个密码登录远程主机,那么SSH的安全机制就荡然无存了。这种风险就是著名的”中间人攻击”(Man-in-the-middle attack)。

  1. ssh服务的版本探测
    打开msfconsole控制台,
    这里写图片描述
search ssh //输入该命令,查找与ssh服务相关的命令

这里写图片描述
我们在查找到的模块列表中找到这样一个版本扫描模块

这里写图片描述
然后使用该模块,在这里要注意的一点是ssh在这里使用的是默认端口22,所以省略的端口的设置,仅仅设置了主机地址。当然,如果ssh的服务端口不是默认的22,就要借助nmap之类的工具,扫描得到ssh到底使用了那个端口。
这里写图片描述
3.使用工具hydra爆破ssh
输入以下命令开始爆破

hydra -l(用户名) root -P(爆破字典) /usr/share/wordlists/passwords.txt(绝对路径,passwords.txt为字典文件名,可以将自己的字典加入到该目录下) -V(显示爆破过程) -t(指定线程数) 4 ssh://127.0.0.1(如果是默认端口,可以不写,如果不是默认端口,要加端口xx,如ssh://127.0.0.1:xx)

这里写图片描述


过程时间比较长,这里花费的时间取决于密码强度和字典的大小,经过一段时间后,密码已经成功爆破出来!
这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值