在渗透中,经常会发现某管理员主机上保存了大量机器的公私钥用于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 2048]----+
|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.txtroot@kali:~# john crack.txt --show

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

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

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

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

转载于:https://www.cnblogs.com/zlgxzswjy/p/10081873.html

通过ssh证书远程登录相关推荐

  1. Linux创建新用户并使用证书远程登录

    因业务需要,需要在服务器上创建多用户,方便多人维护,那么可以利用证书登录创建多用户登录,然后用户如果需要root权限再手动切换即可,下面简单介绍下在Linux上如何进行多用户创建以及使用证书登录. 添 ...

  2. 捷讯技术分享SSH 无法远程登录问题的处理办法汇总

    前面小编给大家分享过云服务器和虚拟主机的区别,那么我们就会发现虚拟主机是不支持远程登录的.所以购买云服务器 ECS(后续简称 ECS)Linux 服务器后,就会面临如何登录和使用的问题.而由于服务器在 ...

  3. linux ssh连接交换机_访问SMB交换机CLI使用SSH或远程登录

    访问SMB交换机CLI使用SSH或远程登录 客观 Cisco小型企业被管理的交换机可以通过命令行界面(CLI)远程访问和被配置.访问CLI在一个基于终端的窗口允许命令被输入.如果喜欢配置使用在您的交换 ...

  4. SSH 无法远程登录问题的处理思路

    购买云服务器 ECS(后续简称 ECS)Linux 服务器后,首先面临的就是如何登录和使用的问题.而由于服务器在云端,所以日常运维中通常都会基于 SSH 客户端登录服务器进行相关操作.今天,我们就从登 ...

  5. 京东云 linux无法远程,问题解读 | Linux系统SSH无法远程登录时该怎么办?这里有篇小攻...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 对于Linux云主机,SSH是标配.在实际操作过程中有时会出现无法远程登录的情况,这里简单介绍了SSH无法登录的可能原因及排查方法,帮助大家用以自测. - ...

  6. 【YM】ssh命令 远程登录Linux

    [YM]ssh命令 远程登录Linux spfanlost 2017.10.08 14:51:24 字数 646 阅读 1,008 菜鸟学Linux命令:ssh命令 远程登录 如何通过ssh远程登录l ...

  7. linux的SSH(远程登录)服务

    目录 一.SSH服务 1.什么是SSH 2.SSH(Secure Shell)协议 3.OpenSSH服务器配置文件 二.ssh远程登录方式 2.使用域名进程登录 3.故障解决 4.sshd服务支持的 ...

  8. 使用SSH客户端远程登录Linux主机(可替代samba、ftp服务)

    使用SSH客户端远程登录Linux主机(可替代samba.ftp服务) Linux系统起初就是为多用户而产生的,可以允许多个用户同时登录linux主机各自进行操作,如图1所示:   图1 SSH(Se ...

  9. 使用Telnet与ssh协议远程登录linux系统

    一.计算机的登录 计算机终端设备通过输入用户账户标识和与之对应的口令的方式被计算机验证的过程. 终端的分类: 1)物理终端:计算机本身的控制台设备:通常将其标识为"pty",在现代 ...

  10. linux配置ssh密码远程登录,配置ssh 无需密码即可登录远程服务器

    在平时工作或者开发自己的项目时,经常需要登录部署了项目代码的服务器来做一些调试,配置等相关的操作,像sftp.rsync之类的工具也是基于ssh通道来工作的.但是经常输密码登录服务器又会让人觉得很烦, ...

最新文章

  1. 教你辨别36k纯数据科学家
  2. Spring应用注解配置实现IOC
  3. 模组使用之天线阻抗匹配、匹配过程、天线选型注意、RF走线Layout建议
  4. spring 04-Spring框架依赖注入基本使用
  5. 文巾解题 70. 爬楼梯
  6. Linux第六周学习总结——进程额管理和进程的创建
  7. 素描java字母_进行Java基本GUI设计需要用到的包是
  8. ORA-28002 the password will expire
  9. 信息安全体系建设(一)
  10. 软考高项3门45分总结及分享
  11. 【分享实录-猫眼电影】业务纵横捭阖背后的技术拆分与融合
  12. 【手撕算法】PatchMatch图像修复算法C++实现
  13. 外卖行业现状分析_O2O模式下的外卖行业的发展现状和前景分析
  14. GDOI2017小结
  15. 三维管型ybc预览以及动态成型仿真控件
  16. 例题5-3 安迪的第一个字典 UVa10815
  17. uwe5622 uwe5621ds 紫光展锐 wifi 移植的几个关键点:
  18. 汽车行业数据防泄露解决方案
  19. CDateTimeCtrl 用法总结
  20. 不小心删除文件夹怎么恢复,怎么恢复误删文件?

热门文章

  1. 系统学习机器学习之总结(一)--常见分类算法优缺点
  2. 电池pack结构_锂电池pack性能测试标准,电池测试模组就选弹片微针模组
  3. 用python提取图片主要颜色_用Python提取图片主要颜色
  4. static 结构体_C++基础-static
  5. 蓝牙学习笔记(八)——BLE 4.0 的128Bits/32Bist/16Bits的UUID
  6. Win10下VB6.0开发之串口通信基础(二)代码功能篇
  7. C语言:判断三角形是否为直角三角形
  8. Hive 数据质量检测
  9. Flume 知识点总结
  10. flume流程之SpoolDir-memory-hdfs