CTF-SSH私钥泄露

实验环境:

攻击者:Kali Linux(192.168.0.136)
靶机:Oracle VM VirtualBox 6.1.10——Debian(32-bit)(192.168.0.219)

实验流程:

  1. 实验环境导入方法参考链接:
    https://blog.csdn.net/su__xiaoyan/article/details/111143714

  2. 启动靶机,信息探测
    检测与靶机的网络连通性
    在这里插入图片描述
    端口探测,服务扫描
    命令:nmap -sV 192.168.0.219
    在这里插入图片描述
    通过端口扫描结果,80端口和31337端口对应的都是Web服务,尝试进行访问。
    在这里插入图片描述
    80端口为NGINX服务器的网站主页
    在这里插入图片描述
    31337端口对应的Web服务网站主页报404状态码。也可以通过查看网站源代码获取相关信息。
    目录扫描
    命令:dirb http://192.168.0.219:31337
    在这里插入图片描述
    通过目录扫描,网站主目录下面存在robots.txt中,尝试访问。
    在这里插入图片描述
    尝试访问网站主目录下面的taxes目录
    在这里插入图片描述
    拿到第一个flag

  3. 继续攻击,尝试访问网站目录下面的.ssh目录
    在这里插入图片描述
    当前目录下面存在三个文件,疑似ssh的私钥、公钥以及其他相关文件
    尝试下载秘钥以及authorized_keys
    在这里插入图片描述在这里插入图片描述
    将这两个文件移动到kali的桌面上面
    在这里插入图片描述

  4. 利用私钥进行远程连接
    远程连接时需要用到用户名,该用户名可以从authorized_keys中进行获取。
    在这里插入图片描述
    远程连接时需要输入用户密码,空密码无法进行登录。

  5. 对ssh私钥进行解密
    利用john对私钥文件进行破解
    首先利用ssh2john将私钥文件转换成john可以识别的内容(注意:私钥文件必须先赋权;权限:600)
    在这里插入图片描述
    破解密码时可以直接利用默认字典进行破解,也可以利用其他字典进行破解。
    在这里插入图片描述
    通过获得的密码重新进行远程连接
    在这里插入图片描述

  6. 确认当前用户权限
    查看root用户的家目录(CTF比赛中,flag一般属于root用户)
    在这里插入图片描述
    当前用户为普通用户,并且root用户的下面有一个flag.txt,但是没有权限查看,需要提权。

  7. 提权
    查看系统中具有root权限的文件
    命令:find / -prem -4000 2>/dev/null
    在这里插入图片描述
    其中“/usr/local/bin/read_message”和当前目录下的read_message.c非常相似,尝试查看该文件内容。
    在这里插入图片描述
    在该文件中发现了第二个flag,尝试对该文件进行代码审计。
    该文件的大致功能如下:程序执行后由用户输入用户名并将用户输入的用户名的前五位和Simon进行对比,如果相同即输出该用户名,如果不同即提示用户输入有误。
    在这里插入图片描述在这里插入图片描述
    关键点:由用户输入的用户名有长度限制——20个字符

  8. 内存溢出漏洞
    运行read_message命令,输入用户名Simonxxxxxxxxxxxxxxx/bin/sh
    在这里插入图片描述
    验证身份,尝试查看flag.txt文件
    在这里插入图片描述
    实验完成,拿下最终的flag。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值