CTF夺旗-SSH密钥泄露
准备的环境
centos靶机,kali攻击机
首先根据提示 访问靶机:
打开kali扫描靶机开放的端口以及服务:
注意到开启了ssh服务;
下面扫描目录:
发现文件.ssh、robots.txt ; (robots.txt是当客户端访问链接时 会先到网站的根目录下找robots这个文件 ,这个文件里面写了一些规则,不允许用户访问的文件,因此也就泄露的文件名);
访问robots.txt:
发现可以文件taxes,访问它:
干得漂亮,拿到flag1;
下面访问隐藏文件 .ssh :
文件id_rsa 和 id_rsa.pub 是 客户端访问服务器的 密钥和公钥,前面是私钥,后面是公钥;分别点看看
发现用户名jackbanbo
把id_rsa文件内容复制下来,到kali机下面新建 id_rsa文件,并把内容粘贴进去,主要是破解这个私钥的密码,从而连接上服务器;
因为下面要使用工具 ssh2john 转换为可以识别的信息,这是个python文件, 先用locate看他的文件位置(这里我没有配置环境变量,所以需要使用绝对路径运行它)
文件位置为: /usr/share/john/ssh2john.py
通过ssh2john把id_rsa转换输出到reacrack文件中:
下面使用 john +文件名 获取到密码 auscoo:
使用ssh远程登录靶机:
可以看到输入正确密码后成功登录靶机;
使用ll查看当前目录的文件:
发现俩个flag,flag3.txt是具有root权限才能看的;
这里发现可疑文件,读取read_message.c
可以使用 gcc -o a read_message.c 把文件编译 输出到 a中;
因为可以从这里通过 gets输入超过20个字符,获取root权限,如我这里的 JackbanboAAAAAAAAAAAAAAA/bin/sh,环境没有搭建好就不做了。
下面说说,这个靶场的搭建环境吧;
1.1 首先 使用 ssh_keygen -t rsa 创建一个SSH密钥 ,它会在 当前用户的家目录下 自动创建 文件夹 .ssh ;文件夹下面有 id_rsa和id_rsa.pub
需要把文件夹 .ssh 复制一份到 /var/www/html/ 目录下即可 (网站根目录);
1.2 在网站根目录创建文件robots.txt 以及 文件 taxes
在 文件 taxes 下写入flag1,robots.txt下写入如下三个文件:
另外在jackbanbo家目录写入 flag2.txt 、flag3.txt 注意所属用户,另外写入文件 read_message.c
1.3 下面详细的说说 创建密钥的过程;
- 切换普通用户jackbanbo
最后有点可惜就就是没有把做最后的C文件提权复现出来,哪位大佬看到了,麻烦带带我。