SSH密钥泄露
先用nmap扫描目标端口信息
nmap -sV 192.168.1.57
我们发现80和31337端口都是http的,所以我们打开浏览器访问一下
利用dirb软件,对目标路径进行爆破
dirb http://192.168.1.57:31337
爆破出了robos.txt文件,我们访问,查看其内容
这里提一下:/.bashrc
和/.profile
两个是和Linux中ssh有关的
访问/taxes
爆出了第一个flag
我们发现了还有.ssh
文件夹,访问发现,可以发现其密钥名称
如果有以上情况,说明一点:ssh私钥是泄露的
下载ssh密钥:192.168.1.57:31337/.ssh/id_rsa
打开后发现有simon@covfefe 这说明目标计算机中存在一个simon的用户
ssh -i id_rsa simon@192.168.1.57
利用ssh连接目标,发现需要密码
需要密码,但是我们没有密码,就需要去破解对方密码
在/usr/share/john/
目录下,有一个ssh2john.py这个脚本,我们通过如下命令:python /usr/share/john/ssh2john.py id_rsa > rsacrack
此时会生成一个rsacrack的文件,我们打开发现是一堆乱码,这个不用管
然后利用命令zcat /usr/share/wordlists/rockyou.txt.gz | john —pipe —rules rsacrack
利用上述命令可以去爆破对方密码,然后我们爆破出starwars密码
成功连接到目标ssh
我们发现对方root
目录下存在一个flag文件,但是无法查看,这说明我们当前用户权限不够
find / -perm -4000 2>/dev/null
查看能够以root权限执行什么(注意是root权限执行的东西)
我们发现有一个read_message和我们用户目录下的read_message.c 是一个东西(read_message是read_message.c通过gcc编译之后的东西)
查看.c文件的内容,我们发现一个execve()
的函数。这个函数类似于命令执行。那么如果我们能够使buf溢出的话,就能够使用到这个函数
这里考究的是C语言的溢出漏洞。
先填写目标需要的Simon五个字符,然后补充15个字符(A),这时我们将buf这个规定了长度的字符串填满了,那么下面的指令将会溢出,而溢出的内容会在execve()
函数中执行。
让其系统执行/bin/sh
注:
id_rsa私钥文件未给权限:
chmod 700 id_rsa
本文来自博客园,作者:山归时有雾,转载请注明原文链接:https://www.cnblogs.com/zroCrow/p/16153598.html