CTF-SSH私钥泄露

CTF-SSH私钥泄露

实验环境

  • 运行在Oracle VM VirtulBox上的靶场:192.168.88.142
  • Kali攻击机:192.168.88.143
  • 靶场下载链接:https://pan.baidu.com/s/1_Vc1kshk3OIgujcTcUBtVw
    提取码:8dmh

实验内容

  1. 对于只是给定一个对应IP地址的靶场机器,我们首先需要对其进行扫描,探测开放的服务,使用命令nmap -sV IP对靶机进行扫描,探测开放的服务:
    在这里插入图片描述

  2. 对于开放http服务的大端口,可以采取http://ip:port/的形式访问:
    在这里插入图片描述

  3. 查看源代码获取对应信息;如果没有flag信息,使用工具探测隐藏页面:
    在这里插入图片描述
    4.dirb http://ip:port/ 对这个服务的隐藏文件进行探测,成功探测到五个隐藏文件(隐藏起来的肯定有问题):
    在这里插入图片描述
    5.针对隐藏的页面进行分析,这里有一个robots.txt文件,访问这个url:
    在这里插入图片描述
    在这里插入图片描述
    6.分别查看robots.txt页面上显示的不允许访问的页面,当访问到http://192.168.88.142:31337/taxes这个页面时就得到了第一个flag值:
    在这里插入图片描述
    7.继续对隐藏的页面进行分析,下面我们看敏感目录.ssh(ssh服务的作用是让远程计算机登录到本地ssh服务上,进行远程操作)
    在这里插入图片描述
    在这里插入图片描述
    8.上面这个这目录中有私钥和公钥,SS服务公钥认证原理,将私钥(‘id_rsa’)和公钥(‘id_rsa_pub’)进行对比,对比成功则运行服务,下面尝试是否存在这样一个id_rsa私钥文件,我们发现访问id_rsa(私钥)和authorized_keys(认证关键字)文件可以进行下载(公钥不用下载),这里就存在私钥泄露:
    在这里插入图片描述
    在这里插入图片描述
    9.上面将ssh的私钥和认证关键字下载了下来,下面就可以利用这些信息来尝试ssh登陆,ssh登陆需要私钥和用户名,这里的ssh私钥就是上面名为id_rsa的文件,但是不知道用户名,所以想到这里我们上面下载的另一个文件authorized_keys,点击查看这个文件里的内容:
    在这里插入图片描述
    10.可以看到上面选中的蓝色部分,发现了用户名simon,下面使用下载下来的私钥和用户名simon进行登陆,首先对赋予id_rsa文件可读可写的权限,使用命令:chmod 600 id_rsa,赋予id_rsa可读可写权限,然后使用命令:ssh -i id_isa 用户名@ssh 靶场机器IP地址:
    在这里插入图片描述
    11.发现需要密码,所以还需要将私钥信息id_rsa转化为john(工具)可以识别的信息,使用命令:ssh2john 需要转化的文件 > 生成的文件。
    在这里插入图片描述
    12.下面使用字典解密生成的rsacrack文件:
    zcat /usr/share/wordlists/rockyou.txt.gz | john --pipe --rules rsacrack
    在这里插入图片描述
    13.使用上面的命令得到了解密的文件starwars,使用这个密码文件和simon用户名进行登陆:
    在这里插入图片描述
    14.看到已经登陆成功了,尝试进入root目录下查看文件:
    在这里插入图片描述
    15.发现这里的flag.txt,没有访问的权限,所以需要提升权限,首先查找具有root权限的文件:find / -perm -4000 2>/dev/null
    在这里插入图片描述
    16.发现上面bin目录下有一个read_message的文件跟root目录下的read_message.c文件类似,而bin目录主要放置应用程序工具的必备执行文件,所以再去查看一下read_message.c的文件内容:
    在这里插入图片描述
    17.这里对上面的代码进行分析简单的分析,首先定义了一个数组,char program[] = “/usr/local/sbin/message”;这个目录具有root权限。再定义了一个空数组buf,这个buf数组在后面利用gets(buf)函数获取用户的输入,最后定义了一个authorized数组内容为Simon”,定义数组完成之后,接下来使用条件语句进行判断,我们输入的字符和定义的authorized数组中的内容(Simon)进行对比前5个字符,所以这里的name应该就是’Simon’。下面对这个read_message程序进行执行,并使用Simon进行验证:
    在这里插入图片描述
    18.尝试通过溢出进入系统的bin目录:
    在这里插入图片描述
    上面我们通过溢拿到管理员权限,所以就能够查看到flag.txt文档中的内容啦,这一次针对SSH服务私密泄露 的CTF训练就到此结束啦。。。。。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值