CTF-Web-SSH私钥泄露-实例

关键

        如何从外部最终进入root主机并获得flag

比赛工具

        同一局域网中的攻击机和靶场机器,以web方式访问攻击机(kali linux),通过攻击机来渗透靶场机

实验环境

        (假设为)

        记住,目标是获得靶场机上的flag

实验步骤

信息探测

        对靶机的IP进行扫描,探测开放的服务;渗透是针对服务的漏洞探测,然后进行对应的数据包发送,获取机器的最高权限        

namp -sV 192.168.253.10

分析探测结果 

已知,每个服务对应计算机的一个端口,用来进行通信,常用0~1023端口,要在扫描结果中查找特殊端口

要针对特殊端口进行探测,尤其对开放大端口的http服务进行排查

针对隐藏页面的分析

探测大端口的信息

对于开放http服务的大端口(31337),可以采取http://ip:port/的形式访问

查看源代码,若无隐藏信息则使用工具探测隐藏文件:

dirb http://ip:port/

其中,robots.txt中存储着浏览器被允许/不允许探测的文件名

浏览/taxes,找到第一个flag 

再打开/ssh,ssh的作用是使远程计算机通过ssh客户端登录到本地服务器的ssh服务商,实现远程计算机对服务器的远程操作

 

 继续探测公私钥文件

下载私钥文件和验证密钥文件(公钥存储在服务器端,无需下载)

将私钥文件存储到攻击机的桌面上,在桌面打开终端

 id_rsa具有可读写权限

ssh -i id_rsa

 没有对应的用户名

对应的用户名可以从authorized_keys中找到

 如图,用户名为simon

//ssh -i 密钥  用户名@服务器ip
ssh -i id_rsa simon@192.168.253.10

直接输入会出现permission denied(权限未赋予),下载的文件先需要赋权限,可读可写 

赋予权限之后重新登录结果如图所示,需要密码 

 解密ssh密钥信息

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

chmod 600 id _isa
ssh2john id_rsa > rsacrack

利用字典解密rsacrack的信息,使用zcat工具,通过管道传递

zcat /usr/share/wordlists/rockyou.txt.gz | john --pipe --rules rsacrack

解出密码为starwars 

 到这里登录到主机,但是并不是root权限?该如何获取呢?

深入探测根目录

cd/root进入根目录进行查看发现flag.txt,cat它发现没有权限,说明Simon知识一个普通用户不能执行root权限

提升权限/代码审计

 查找当前具有read权限的文件

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

查看read_message.c 

 在其中找到了flag2

接下来进行代码审计

        输入赋值给buf数组;判断认证数组和输入数组的前五个字符如果相等,就执行/sbin/message文件(当前没有read权限) 

        漏洞:使用不安全的gets(buf)读取用户输入,没有限制输入的长度

攻击步骤:

尝试输入"simon"成功,因为前五个字符匹配,程序执行了execve(program, NULL, NULL)

构造特殊输入"SimonAAAAAAAAAAAAAAAA/bin/sh",前五个字符simon通过验证,而超过长度的输入覆盖program原本的内容/usr/local/sbin/message,通过溢出将program覆盖为/bin/sh

当程序执行execve(program,...)时就启动了shell

该程序可能以root权限运行,故攻击者获得了root shell,可以执行任意命令,通过pwd确认当前目录是/root,通过whoami确认是root用户

读取了flag.txt,获取了最终flag

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值