ssh私钥泄露攻击

covfefe靶机测试
本篇博客记录的是covfefe靶机测试过程。
环境:kali linux,vm station, 靶机

下面开始寻找flag之路

  1. 首先在攻击机中查看一下本机的ip地址,为寻找局域网中的主机做好准备
ifconfig

在这里插入图片描述
可以看到攻击机的ip地址网络号为192.168.56 主机号为150

  1. 然后用nmap去寻找目标ip地址(扫描主机号为1~255的ip地址)
nmap -v -sn 192.168.56.1/24


在这里插入图片描述
从返回的结果可以看到 192.168.56.151地址是开放的。

  1. 寻找开放的服务
nmap -sV 192.168.56.151

在这里插入图片描述
可以发现目标主机开放了http和ssh服务

  1. 访问http服务
    通过浏览器去看一下页面信息
    在这里插入图片描述
    发现没有正常的回显,于是接着去扫描一下隐藏页面
dirb http://192.168.56.151:31337

在这里插入图片描述
可以看到有一些经典的文件(比如robots.txt)
去浏览器中访问一下robots.txt
在这里插入图片描述
得到了一些网站不希望浏览器访问的页面地址,首先访问一下/taxes
在这里插入图片描述
得到第一个flag。

  1. 访问ssh服务

我们首先通过浏览器去看一下ssh的服务信息(上面扫描出了一个/.ssh网页)
在这里插入图片描述
发现可以下载id_rsa(私钥)和authorized_keys(认证信息),将下载到的文件保存到桌面。
在这里插入图片描述
可以看一下authorized_keys,发现登录的用户是simon
在这里插入图片描述
首先尝试着登录一下ssh(先赋予文件写权限)

ssh -i 秘钥文件 用户名@ip地址

在这里插入图片描述
oh!要密码。我们得破解这个私钥

  1. 破解ssh的密码
    这里用到的工具是john,首先,我们可以查看一下id_rsa,发现它是AES加密的,在用john破解之前,得先将其转化为john能处理的SHA加密的文件,这里用到ssh2john命令
ssh2john id_rsa > crack

注意:若提示ssh2john命令无法找到,是因为没有将它加到环境变量中,可以先看一下ssh2john的位置(kali中默认是安装了的)。
在这里插入图片描述
然后将它添加到环境变量中:(这里是临时添加变量,重启后就无效,一直有效需要修改/etc/profile)

export PATH=$PATH:/usr/share/john

接着用john命令破解,这个命令会默认从利用kali中自带的字典去破解,如果破解口令有某种特征,建议自己生成字典去跑,这样速度快多了
在这里插入图片描述
可以看到密码是starwars

接着我们去登录ssh
在这里插入图片描述
发现成功的以simon用户登录了。

  1. 关注root

接下来取root目录下看看,发现了有一个flag.txt在这里插入图片描述
尝试看看文件的内容,发现没有权限查看。看来需要提升到root权限才行。
root目录下有一个.c的文件,看一下它里面的内容
在这里插入图片描述
这里藏了第二个flag。读一下源码:执行这个程序后,会让你输入一个字符串,存放在大小为20的缓冲区中,然后取其前5个字符和Simon字符串进行比较,成功的话会执行execve(cmd)命令,cmd的路径为/usr/local/sbin/message

  1. 溢出提权
    可以发现这个.c文件是没有办法编译的,先找一下可以执行的位二进制文件
fiind /-perm -4000 2>/etc/null

在这里插入图片描述
可以发现一个read_message的可执行文件,应该就是read_message.c编译后的文件。根据上面的源码分析我们执行这个程序,然后输入Simon000000000000000/bin/sh (前5个字符为Simon和authorized数组匹配,然后紧跟着15个0将缓冲区填满,然后加上/bin/sh溢出提权)
在这里插入图片描述

whoami //参看以下,已经提升为root了

在这里插入图片描述
最后切换到/root目录

cat flag.txt

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章