ctf训练 ssh私钥泄露

1-2 环境搭建
ssh私钥泄露是要在VM虚拟机中进行的。首先安装好VM虚拟机(我的另一个博客详细介绍VM的安装)

(1)打开虚拟机和打开ssh私钥泄露靶场

ctf训练 ssh私钥泄露
并且本虚拟机和靶场的网络连接都要相同

ctf训练 ssh私钥泄露
ctf训练 ssh私钥泄露

(2)接下来打开本虚拟机的终端,并找到自己虚拟机的IP(是虚拟机的IP地址)在终端上输入“ifconfig”这个是找虚拟机的ip地址代码,然后找到自己虚拟机的IP地址,如图:

ctf训练 ssh私钥泄露ctf训练 ssh私钥泄露

(3)接下来我们使用netdiscover命令 netdiscover -r ip/子网掩码

ctf训练 ssh私钥泄露

![在这里插入图片描述](https://img-blog.****img.cn/20190602205214148.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01JR0VOR0tJTkc=,size_16,color_FFFFFF,t_70

然后扫描出192.168.157这个网段的存活主机。

第二章 SSH服务
2-1 SSH私匙泄露

首先对靶场机器进行探测,我们使用nmap命令 nmap -sV ip

ctf训练 ssh私钥泄露

这里我们可以看到靶场机器开放的端口和对应的服务,此靶场机器上开启了ssh服务和两个http服务。

接下来我们分析特殊端口,尤其对开放http服务的大端口(本靶机上31337端口开放了http服务)

怎么探测http端口信息?我们可以使用虚拟机内的浏览器来浏览http服务的信息

ctf训练 ssh私钥泄露

这里并没有信息,那这里有没有隐藏文件?我们使用dirb命令来探测隐藏文件

ctf训练 ssh私钥泄露

成功探测到五个隐藏文件(隐藏起来的肯定有问题)

ctf训练 ssh私钥泄露

这里有两个敏感目录robots.txt和.ssh,我们打开robots.txt看看它把什么藏住了。
ctf训练 ssh私钥泄露
这里有三个目录,taxes是英文单词?打开获得第一个flag

ctf训练 ssh私钥泄露

我们打开ssh时:
ctf训练 ssh私钥泄露
这目录中有私钥和公钥,运行服务时私钥公钥进行对比,对比成功则运行服务。

我们发现访问id_rsa(私钥)和authorized_keys(认证关键字)文件可以进行下载(公钥不用下载)下载好后把文件移到桌面,
这里就存在私钥泄露。

ctf训练 ssh私钥泄露

ctf训练 ssh私钥泄露

ctf训练 ssh私钥泄露

接下来我们先切换到桌面

ctf训练 ssh私钥泄露ctf训练 ssh私钥泄露

ctf训练 ssh私钥泄露

对私钥进行赋读写权限,ls -alh查看权限,chmod 600 文件名

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

我们登录时提示我们要输入密码,
ctf训练 ssh私钥泄露

我们有了私钥文件就可以从私钥文件中把密码解出来,使用ssh2john和zcat进行解密。

ctf训练 ssh私钥泄露上一条命令对私钥信息进行转换,转换成john可以识别的信息;

后一条命令用zcat命令,使用字典。。。管道。。规则。。什么什么的进行解密,得到一个密码 starwars

成功远程登录!pwd查看下当前目录,ls查看下当前目录文件。

ctf训练 ssh私钥泄露

发现并没有我们想要的,这时候我们应该想到去访问root目录,在ctf比赛中根目录root都是有重要信息的

ctf训练 ssh私钥泄露

这条命令是从根目录开始查找,看有哪些命令是具有执行权限的。其中2>/dev/null用于防止错误信息。

发现有一条命令是read_message,而我们目录下刚好有个c代码叫做read_message.c,查看一下,发现第二个flag和一段c代码。

c的大概意思是输入一段文字和已知字符串simon进行匹配,匹配成功输出一段文字和message目录下的一个文件。

从c代码中我们可以看出,我们输入的为一个长度20的数组,如果溢出会不会执行?(应该和c中的execve函数有关系)

我们在前面输入simon匹配c,再加入十五个字符,之后再接/bin/sh提升下权限?

ctf训练 ssh私钥泄露
成功提权,然后我们用提权后的用户去访问之前的flag.txt,拿到第三个flag。