CTF渗透测试——ssh私钥泄露

1.探测ip地址
netdiscover    
netdiscover  -r ip/mask         //探测指定网段 如:netdiscover  -r  192.168.31.1/24

CTF渗透测试——ssh私钥泄露_第1张图片


2.测试连通性
ping 172.19.27.167

CTF渗透测试——ssh私钥泄露_第2张图片
能够ping通,接下来使用nmap扫描一下开放的端口


3. 使用nmap扫描主机开放端口,版本信息
nmap -sV 172.19.27.167               // nmap各参数详解:[这里](https://blog.csdn.net/qq_26090065/article/details/80285088)

端口信息如下
CTF渗透测试——ssh私钥泄露_第3张图片


4.探查大端口信息

ip:port
使用浏览器访问,特别是大端口
CTF渗透测试——ssh私钥泄露_第4张图片
CTF渗透测试——ssh私钥泄露_第5张图片


5.探查隐藏页面

查看网页源码也未发现有用信息,这时需要使用工具来探查隐藏页面

dirb  http://172.19.27.167:31337           

CTF渗透测试——ssh私钥泄露_第6张图片
发现了几个页面,可以访问看一下具体内容,其中在robots协议文件中发现一个特殊文件

172.19.27.167:31337/robots.txt

CTF渗透测试——ssh私钥泄露_第7张图片
访问发现第一个flag

172.19.27.167:31337/taxes/

CTF渗透测试——ssh私钥泄露_第8张图片
查看.ssh,

172.19.27.167:31337/.ssh

CTF渗透测试——ssh私钥泄露_第9张图片
这可能是ssh密钥与公钥,于是尝试在地址后加上看能否发现相关文件

172.19.27.167:31337/.ssh/id_rsa
172.19.27.167:31337/.ssh/authorized_keys

CTF渗透测试——ssh私钥泄露_第10张图片
果然,能够下载密钥文件,同样的方法,访问下载 (关键字)authorized_keys,至于公钥id_rsa.pub就不需要了
而接下来的文件中也没什么有用的信息了,进行下一步。


6.查看文件寻找用户信息

在关键字authorized_keys文件中发现了用户名,接下来就可以通过ssh使用用户名 simon 来远程登录在这里插入图片描述


7. 尝试使用私钥进行远程连接

先查看一下文件的权限
CTF渗透测试——ssh私钥泄露_第11张图片
然后尝试使用密钥进行远程访问
CTF渗透测试——ssh私钥泄露_第12张图片
提示 没有权限,给id_rsa授权

chmod  600 id_rsa    

授权后再次连接,提示要输入密码
在这里插入图片描述
走到这一步,就需要再找到密码才能进行远程登录了,接下来,可以尝试从ssh密钥中解密出密码来


8.解密ssh密钥

使用ssh2john将id_rsa的密钥信息转换为john可识别的信息

python /usr/share/john/ssh2john.py id_rsa  > john

在这里插入图片描述
然后使用字典解密john中的信息

zcat /usr/share/wordlists/rockyou.txt.gz  |  john --pipe --rules john   // --pipe管道前一个输出作为后一个的输入, --rules 使用john文件中的规则进行解密

解出密码为:starwars
CTF渗透测试——ssh私钥泄露_第13张图片

9.再次尝试连接

成功登录到目标主机
CTF渗透测试——ssh私钥泄露_第14张图片


10.寻找第二个flag

到root目录中,发现flag.txt 却由于没有root权限而无法打开,此时需要将用户权限提升到root权限
CTF渗透测试——ssh私钥泄露_第15张图片
但是在read_message.c中发现了flag2
CTF渗透测试——ssh私钥泄露_第16张图片

11.提权

查找具有root权限的文件

find / -perm -4000 2>/dev/null

CTF渗透测试——ssh私钥泄露_第17张图片
发现有一个命令与root/目录下的read_message.c文件同名,很有可能有关系,接下来仔细看一下read_message.c的代码
CTF渗透测试——ssh私钥泄露_第18张图片
可以发现,如果输入的字符串前5个字符与“Simon”一样,就会提示相关信息,并且调用执行程序函数execve来执行程序。用来存放输入字符的数组buf[20] 长度只有20,那么如果我们使数组溢出,是否会执行溢出后的命令呢?
CTF渗透测试——ssh私钥泄露_第19张图片

果然,进入了root用户权限下,接下来可以获取flag3了
CTF渗透测试——ssh私钥泄露_第20张图片
成功获取3个flag。

你可能感兴趣的:(笔记,安全,linux,ssh,渗透测试)