CTF-SSH私钥泄露

目录

一、环境准备

二、靶场IP探测

三、信息探测

四、普通用户私钥**

五、普通用户提权


一、环境准备

开启两台机器,一台靶机一台kali攻击机。

vitualbox

VMware workstation

两台设置同样同样网段

靶机地址:
链接:https://pan.baidu.com/s/1aUpy0ayJEhcdboFsrIi0OQ
提取码:0loe

 

二、靶场IP探测

在kali里运行以下命令 netdiscover -r ip/mask

CTF-SSH私钥泄露

然后ping测试连通性

CTF-SSH私钥泄露

三、信息探测

扫描服务器开放端口信息
nmap -sV 172.19.75.42,发现开着三个服务,ssh是我们要攻击的服务,31337是特殊端口,常用端口为0~1023,针对特殊端口进行探测,尤其对开发大端口的http服务进行排查。

CTF-SSH私钥泄露

对于开放http服务的大端口,可以采取http://IP:port/的形式访问;

网页右键—查看网页源代码—获取对应信息,如果没有信息,使用工具探测隐藏页面

 

打开浏览器,输入ip+端口,我这里是172.19.75.42:31337

CTF-SSH私钥泄露
发现没有东西,查看源码后也没有收获,那么我们扫描目录,探测隐藏文件
用dirb来探测,输入 dirb http://172.19.75.42:31337/

CTF-SSH私钥泄露

这里检查后发现两个对我们有用的敏感文件,我们先看robots.txt这个是为了防止爬虫爬取设置的禁止访问的文件,打开它

发现下面有三个目录,访问taxes,得到第一个flag,经过排查其他两个没有其他的价值了
CTF-SSH私钥泄露

CTF-SSH私钥泄露

四、普通用户私钥**

然后我们打开第二个敏感文件.ssh

CTF-SSH私钥泄露

尝试目录下是否存在私钥和认证关键字文件,访问后发现存在,下载

CTF-SSH私钥泄露

CTF-SSH私钥泄露

接下来我们先切换到桌面,对私钥进行赋读写权限,ls -alh查看权限,chmod 600 文件名

CTF-SSH私钥泄露

有了私钥,我们就可以尝试使用ssh命令对靶机进行远程登录(ssh -i 私匙 用户名/id 用户名在认证关键字中泄露)

CTF-SSH私钥泄露

登录,发现需要登录密码
CTF-SSH私钥泄露

这里我们对私钥信息进行**,
首先使用ssh2john将id_isa**信息转换成john可识别的信息

CTF-SSH私钥泄露

然后利用john进行逐步解密

CTF-SSH私钥泄露

发现得到一条密码记录,然后取输入密码登录,登录成功

CTF-SSH私钥泄露

五、普通用户提权

登录成功后,进入root目录。
ls后发现目录下有flag.txt,但是没有权限打开。说明我们现在不是root权限,需要获取。

CTF-SSH私钥泄露

我们通过 find / -perm -4000 2>/dev/null 查看我们能执行的文件
这里 find / -pern -4000是查找能够执行的文件, 2>/dev/null是将错误信息重定向到null文件中
执行后发现可执行的文件中有一个文件存在root目录下。

CTF-SSH私钥泄露

cat read_message.c查看源码,得到第二个flag。

CTF-SSH私钥泄露

这是一个pwn的题,原理就是因为gets(buf)没有限制读取的长度,但是buf[]这个数组只能储存20个字符,那么超过20个字符的就会存入缓冲区,将后面的内容覆盖。
然后当执行到execve的时候原来要执行program[]内的字符,被覆盖后就可以利用了。
所以只要输入SimonAAAAAAAAAAAAAAA/bin/sh,即可进入root的shell

CTF-SSH私钥泄露

就得到了root权限啦,然后cat flag.txt就能得到第三个flag了。
CTF-SSH私钥泄露

实验结束。