环境要求

攻击机:kali Linux
靶机L:开启SSH服务并且存在私钥泄露的主机

攻击过程

首先准备一个靶机环境:

然后我们不知道密码,只知道这台主机上开启了 SSH ,也不知道IP地址,这里我们可以使用kali里面的nmap进行存活主机扫描,来找到这台主机的IP,因为我这里是两台虚拟机,IP地址都是NAT、模式,首先看一下kali的IP地址:

这里可以看到,我们kali的IP地址是192.168.129.133,所以我们使用nmap扫描192.168.129.0/24段的所有存活主机
用到的命令:nmap -sP 192.168.129.0/21

这里扫描了很多个,因为我这里虚拟机比较多,但是靶机是新装的,所以我选择一个最大的IP地址来试一下,再进行开放服务探测
用到的命令:nmap -sV 192.168.129.147

可以看到,的确是开了ssh服务的,那么可以确定靶机的IP地址就是:192.168.129.147
而且通过上面的探测,还能发现有一个大端口的http服务,也就是web服务,服务是开放在31337端口上的,所以我们先访问一下试一下:

并没有什么东西,接下来继续使用kali的工具 dirb 来探测一下网站的隐藏文件命令很简单:dirb http://192.168.129.147:31337

这里就可以看到他测到了几个文件,我们来分析一下:
robots.txt:是针对搜索引擎时约定允许爬取的目录和禁止爬取的目录
这里我们就打开看一下robots文件:

上面两个我们都用工具探测到了,然后有一个taxe目录很明显没看到,我们单独打开看一下;

发现一个flag,毕竟这是CTF嘛,然后这个robots就没有什么用了,我们继续查看dirb的扫描结果有一个.ssh, 对于这种关键字路径,骨断点进去看看:

发现了几个文件名,很明显是SSH生成的密钥文件,都是用于认证的文件
认证的流程大概是,生成一个公钥与私钥,公钥放于要登陆的服务器上,登录的时候对比公钥和私钥来进行登录认证
然后我们接着看,他这里把文件名列出来,是否就是目录里存在这些文件呢?我们试一下:

的确有这个文件,并且可下载下来,这里把前两个文件都下载下来,第三个是公钥,就不用下了,然后我们用这个私钥登录一下,用户名可以查看authorized_keys来找到用户名:

继而得到用户名simon,然后开始登录
ssh -i id_rsa simon@192.168.129.147
接受指纹识别
然后发现要输入密码:

我们肯定不知道密码呀,但是可以破解出来,使用kali的工具ssh2john得到一个中间文件
python /usr/share/john/ssh2john.py id_rsa > rescrack

继续使用zcat破解出密码:
zcat /usr/share/wordlists/rockyou.txt.gz | john --pipe --rules rescrack

找到了密码:starwars

登陆试一下:

成功远程登录到靶机接下来就只是找flag了,就不写了

写在最后

仅供学习交流,请勿用于任何违法目的

最后修改:2020 年 07 月 30 日
如果觉得我的文章对你有用,请随意赞赏