「安全笔记」 CTF-SSH 私钥泄露靶场

前言

CTF-SSH 私钥泄露,如何从外部进入最终获得root主机。

靶场链接:文章底部可下载

话不多说直接开始

首先攻击机kali linux。

开启两台机器,两台设置同样的网络模式,靶机无登陆密码,需要通过ssh远程登陆

kali登陆,ifconfig查看ip,然后使用netdiscover -r ip/mask,我这里的ip是192.168.71.129,探测同网段ip地址,找到靶机的地址,然后ping测试连通性

「安全笔记」 CTF-SSH 私钥泄露靶场 学习笔记 第2张

用nmap嗅探端口,探测开放服务。

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

「安全笔记」 CTF-SSH 私钥泄露靶场 学习笔记 第3张

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

「安全笔记」 CTF-SSH 私钥泄露靶场 学习笔记 第4张

发现没有东西,查看源码后也没有收获,那么我们扫描目录,探测隐藏文件

dirb来探测,输入

dirb http://ip:port/

「安全笔记」 CTF-SSH 私钥泄露靶场 学习笔记 第5张

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

「安全笔记」 CTF-SSH 私钥泄露靶场 学习笔记 第6张

发现下面有三个目录,访问taxes,得到第一个flag,经过排查其他两个没有其他的价值了。

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

「安全笔记」 CTF-SSH 私钥泄露靶场 学习笔记 第7张

尝试目录下是否存在私钥和认证关键字文件,访问后发现存在,下载后尝试ssh登陆,登陆前需要查看是否可读写

ls  -alh

发现可读写,然后

ssh -i id_rsa用户名@主机名

那么我们怎么得到用户名呢,想到我们下载的认证关键字文件, 打开发现了我们登陆的用户名

「安全笔记」 CTF-SSH 私钥泄露靶场 学习笔记 第8张

然后尝试ssh登陆,提示错误,因为其他权限过高,我们需要修改权限,使用chmod 600 id_rsa修改权限,再尝试登陆,发现需要登陆密码

「安全笔记」 CTF-SSH 私钥泄露靶场 学习笔记 第9张

这里我们对私钥信息进行破解,首先使用ssh2john将id_isa密钥信息转换成john可识别的信息 ssh2john id_isa > isacrack  然后利用字典进行逐步解密,这时候用zcat 来将字典读取通过管道符 传入john 来解密

输入

zcat /usr/share/wordlists/rockyou.txt.gz | john --pipe --rules isacrack

「安全笔记」 CTF-SSH 私钥泄露靶场 学习笔记 第10张

发现得到一条密码记录,然后取输入密码登陆,登陆成功后,进入root目录。

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

我们通过 find / -perm -4000 2>/dev/null 查看我们能执行的文件

这里 find / -pern -4000是查找能够执行的文件 2>/dev/null是将错误信息重定向到null文件中

执行后发现可执行的文件中有一个文件存在root目录下

「安全笔记」 CTF-SSH 私钥泄露靶场 学习笔记 第11张

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

「安全笔记」 CTF-SSH 私钥泄露靶场 学习笔记 第12张

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

「安全笔记」 CTF-SSH 私钥泄露靶场 学习笔记 第13张

就得到了root权限啦,然后cat flag.txt就能得到第三个flag了。

相关下载

点击下载

参与评论