美文网首页
渗透测试-SSH秘钥登录

渗透测试-SSH秘钥登录

作者: CSeroad | 来源:发表于2021-06-26 15:39 被阅读0次

    前言

    最近渗透遇到许多linux服务器,在多方信息收集无果后,想到了ssh的秘钥登录。但诸多知识点有点混乱,趁此时间再次复现一遍。

    ssh协议

    ssh中文名称叫安全外壳协议,是一种加密的网络传输协议。我们现在经常说的ssh指的是openssh,是对ssh协议的实现。

    ssh口令认证

    我们都知道ssh提供了两种安全级别的认证,一种口令认证,一种秘钥认证。
    基于口令的认证时需要输入正确的用户名和密码,且连接加密。

    ssh的连接过程为:

    1. 用户向ssh远程服务端发出请求,服务端就会将自己的公钥返回给用户;
    2. 用户用公钥加密自己的登录密码后再发送给远程服务端;
    3. 远程服务端接收到加密后的密码后, 用自己的私钥解密, 如果结果正确则建立起连接。
    image.png

    这里指的就是无法确定host的真实性,只知道它的公钥指纹。问你是否连接,
    yes后就需要远程服务端的用户密码。密码输入正确后才可以登录。
    当远程服务端的公钥被接受以后,就会保存在当前用户的/.ssh/known_hosts之中。下次再连接这台主机时,系统就会知道公钥已经保存在本地了,从而跳过警告部分,直接提示输入密码。

    image.png

    现在企业更流行使用秘钥登录。修改远程服务端的/etc/ssh/sshd_config配置文件,

    PasswordAuthentication no
    

    重启sshd服务,就可以禁用密码验证。

    image.png

    ssh秘钥登录

    ssh秘钥登录,其实就是"公钥登录",首先需要用户自己生成一对公钥和私钥。然后用户将自己的公钥放在远程服务端上。此时远程服务器持有公钥,用户持有私钥。满足"公钥加密,私钥解密"。

    过程如下:

    1. 用户生成秘钥对
    ssh-keygen
    

    该命令用于生成秘钥对。

    -b   指定密钥长度
    -t   指定要创建的密钥类型,包括rsa和dsa,默认rsa非对称加密的方式
    -f   指定用来保存密钥的文件名
    -C   添加注释
    -N   提供密语
    
    image.png

    需要注意的是:

    • 生成的私钥默认叫id_rsa,默认保存在当前用户的/.ssh/文件夹下,且生成的公钥名字通常是私钥后面加 .pub 的后缀。
    • 提示输入密码,保证私钥的安全。

    生成后可以在当前用户的.ssh文件夹下看到。

    image.png
    1. 将公钥放在远程服务端
    ssh-copy-id -i ~/.ssh/id_rsa.pub test@10.211.55.26
    

    ssh-copy-id 命令将公钥写到远程服务端kali的test用户下的/.ssh/authorized_key文件中。

    image.png

    如果是第一次登录,用户也会在/.ssh/文件夹下创建known_hosts,记录了远程服务端的ip和对应的公钥指纹。

    image.png
    1. 登录远程服务器
    ssh  test@10.211.55.26
    
    image.png

    连接时默认去查找当前用户/.ssh/文件下是否存在私钥,如果没有需要指定私钥进行连接。

    ssh  test@10.211.55.26 -i /home/cseroad/.ssh/id_rsa
    
    image.png

    如果设置了证书的密码,则在远程服务器时需要输入密码。

    image.png

    扩展

    /etc/hosts可以配置主机名和IP地址

    10.211.55.26 test1
    

    此时就可以直接ssh主机名。

    ssh test@test1
    
    image.png

    总结

    当渗透测试拿到一台linux服务器,查找/.ssh/文件夹下是否存在私钥文件,或*.pub文件,因为私钥和公钥一块生成。结合known_hosts文件,可以去连接未知的机器。
    反之,如果拿到的机器只存在known_hosts文件,则无法利用。该文件只能说明曾经接收过公钥。
    如果拿到的机器只有authorized_key文件,则证明存在用户连接过该机器。

    参考资料

    http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html
    https://www.jianshu.com/p/fab3252b3192
    https://www.cnblogs.com/ailx10/p/7664040.html

    相关文章

      网友评论

          本文标题:渗透测试-SSH秘钥登录

          本文链接:https://www.haomeiwen.com/subject/owzayltx.html