ssh私钥泄漏
首先将kali和靶机的网络模式都修改为NAT模式,目的是可以确定靶机在那个网段,以便于查找靶机IP地址
一.信息收集
1.主机发现
使用命令: arp-scan -l 去查找IP
我们找到了靶机IP:192.168.8.141
2.主机扫描
使用nmap工具扫描靶机所有开放端口
nmap -p- 192.168.226.141 -n -T4
发现目标主机开放了ssh和http服务
网页信息收集:
通过浏览器进行访问没有找到任何有用的信息
3.目录扫描
使用dirb探测隐藏页面
通过依次查看发现前三个并没有什么有价值的信息,但最后两个中的信息比较重要
发现第五个文件robots.txt中规定禁止爬虫访问三个文件,其中两个文件已查看过,还剩一个taxes文件,我们查看该文件(访问http://192.168.226.141:31337/taxes/),获取第一个flag
二.私钥泄漏
发现私钥泄漏文件
我们再去查看上面我们信息收集到的.ssh目录
['id_rsa,authorized_keys,id_rsa.pub'],分别对应的是私钥,数字签名,公钥
将私钥、数字签名和公钥添加在网址后面并将文件下载
192.168.226.141:31337/.ssh/id_rsa
192.168.226.141:31337/.ssh/authorized_keys192.168.226.141:31337/.ssh/id_rsa.pub
发现其私钥能下载,因此确认存在ssh私钥泄露
将ssh密钥文件下载下来后并其移动到kali中
查看文件寻找用户信息
在authorized_keys文件中,发现一个用户simon
将id_rsa文件授权,命令:
Chmod 600 id_rsa
破解ssh密钥
使用ssh2john工具进行破解,如果找不到此工具路径可以使用该命令
locate ssh2john 查找ssh2john文件
将文件破解并保存到haohao中
还需要使用john工具在进行一次破解
得到密码:starwars
我们尝试进行连接,用户名:simon,私钥密码:starwars
前提是将id_rsa授予600的权限 , 命令如下:
chmod 600 id_rsa
ssh -i id_rsa simon@192.168.226.141
四.提权以及获取flag
我们进入系统之后,首先去root目录下查看有无重要信息,发现有flag.txt尝试去打开,但访问被拒绝,需要将其提权以便于查看
我们使用cat查看另外一个文件read_message.c
发现第二个flag
仔细阅读文件中的代码,里面有一个char buf[20],可以理解为只需要大于20个字符就可以提权了,但是前面5个字符必须是Simon,从代码审计的角度看,这是一个缓冲区问题
然后直接运行这个C文件
发现第三个flag
如下图,即是最后一个flag