SSH密钥泄露

先用nmap扫描目标端口信息
nmap -sV 192.168.1.57

image

我们发现80和31337端口都是http的,所以我们打开浏览器访问一下
利用dirb软件,对目标路径进行爆破
dirb http://192.168.1.57:31337
爆破出了robos.txt文件,我们访问,查看其内容

这里提一下:/.bashrc/.profile 两个是和Linux中ssh有关的
image

image

image

访问/taxes 爆出了第一个flag

我们发现了还有.ssh 文件夹,访问发现,可以发现其密钥名称
image

如果有以上情况,说明一点:ssh私钥是泄露的

下载ssh密钥:192.168.1.57:31337/.ssh/id_rsa

image

image

image

打开后发现有simon@covfefe 这说明目标计算机中存在一个simon的用户

ssh -i id_rsa simon@192.168.1.57 利用ssh连接目标,发现需要密码

image

需要密码,但是我们没有密码,就需要去破解对方密码

/usr/share/john/ 目录下,有一个ssh2john.py这个脚本,我们通过如下命令:python /usr/share/john/ssh2john.py id_rsa > rsacrack

此时会生成一个rsacrack的文件,我们打开发现是一堆乱码,这个不用管

image

image

然后利用命令zcat /usr/share/wordlists/rockyou.txt.gz | john —pipe —rules rsacrack

利用上述命令可以去爆破对方密码,然后我们爆破出starwars密码

image

成功连接到目标ssh

image
我们发现对方root目录下存在一个flag文件,但是无法查看,这说明我们当前用户权限不够
image

find / -perm -4000 2>/dev/null 查看能够以root权限执行什么(注意是root权限执行的东西)

image

我们发现有一个read_message和我们用户目录下的read_message.c 是一个东西(read_message是read_message.c通过gcc编译之后的东西)

image

查看.c文件的内容,我们发现一个execve()的函数。这个函数类似于命令执行。那么如果我们能够使buf溢出的话,就能够使用到这个函数

这里考究的是C语言的溢出漏洞。

先填写目标需要的Simon五个字符,然后补充15个字符(A),这时我们将buf这个规定了长度的字符串填满了,那么下面的指令将会溢出,而溢出的内容会在execve()函数中执行。

image

让其系统执行/bin/sh

image

注:

id_rsa私钥文件未给权限:
image
chmod 700 id_rsa

posted @ 2022-04-16 17:35  山归时有雾  阅读(511)  评论(2编辑  收藏  举报