利用公钥实现SSH免密登录

一、背景

看了B站视频,了解到新姿势。SSH免密登录可以在遇到文件上传漏洞时使用,需要的条件比较多。目标开始了ssh服务,且存在上传漏洞。我们就可以通过上传漏洞实现ssh免密登录。

二、原理

ssh远程连接我知道的有两种方式。一是通过账号密码,二是通过公私钥。我们产生一对密钥对,分为公钥和私钥。将公钥上传到要登录的服务器,然后通过私钥远程连接服务器就可以实现免密登录了。

三、实现

1、账号密码登录

首先我们看看常规的账户密码形式的远程登录。

利用公钥实现SSH免密登录_第1张图片

我们就可以登录到服务器了,可是在渗透过程显然无法获取到密码,即是获取到的也是加密了的不易破解。

这也是为啥要介绍免密登录的原因。

利用公钥实现SSH免密登录_第2张图片

2、免密登录

免密登录需要将公钥通过上传漏洞上传到目标机器,然后利用本机的私钥进行匹配后即可登录。因为需要一对公私钥,我们可以利用kali产生一对公私钥。

ssh -keygen -t rsa

下图可见分别生成了名为key(私钥)、key.pub(公钥),它们存放于/root/.ssh/id_rsa目录下。

注意:生成密钥过程会要求输入密钥名称和密码,此处密码在后面登录要用。这个密码是我们自己输入的,所以免密登录还是成立的。

利用公钥实现SSH免密登录_第3张图片

密钥对有了,就要将公钥上传到服务器了。注意这里要将公钥改名为authorized_keys上传至目标服务器的/.ssh文件夹下。并且./ssh 下的文件必须chmod -R 700 .ssh/  否则权限不够,(这里我也不理解,我们只有上传漏洞,权限怎么改变,可能要搭配远程命令使用吧...)。上传到目标服务器./ssh目录下,服务器就完成了部署。下面开始客户端的操作。

这里我们主机是windows系统所以使用SecureCRT去连接服务器,当然如果你是linux系统可以用下面命令连接

ssh [email protected]

windows启动SecureCRT然后创建连接,填写好服务器IP,root等信息。注意要取消password因为我们要用密钥实现免密登录。

取消password后点击properties。

利用公钥实现SSH免密登录_第4张图片

选中use identity or certificate file,在这里添加上我们产生的私钥。然后点击OK。

利用公钥实现SSH免密登录_第5张图片

点击连接,显示输入密码。免密登录怎么还要密码???哈哈哈,这个密码是我们产生密钥对时我们自己输入的密码,并不是服务器ssh登录的密码,这也是前面要记住密码的原因。我记得好像前面让输入密码时候也可以直接回车这样密码就为空了。

输入密码后,成功连接到了远程服务器。

利用公钥实现SSH免密登录_第6张图片

 

利用公钥实现SSH免密登录_第7张图片

 

总结

感觉不是很实用,可也算个知识点,所以写个博客记录下。

 

 

你可能感兴趣的:(渗透精华)