攻防靶场(58):从400到RCE,渗透就像喝水一样简单 Amaterasu

欢迎提出宝贵建议、欢迎分享文章、欢迎关注公众号 OneMoreThink 。

目录

1. 侦查

    1.1 收集目标网络信息:IP地址

    1.2 主动扫描:扫描IP地址段

    1.3 主动扫描:字典扫描

2. 初始访问

    2.1 利用面向公众的应用

3. 权限提升

    3.1 计划任务/作业:Cron

靶场地址:https://portal.offsec.com/labs/play

1. 侦查

1.1 收集目标网络信息:IP地址

靶机启动后,直接获得IP地址,192.168.56.249。

1.2 主动扫描:扫描IP地址段

对靶机进行全端口扫描、服务扫描、版本扫描,发现21/FTP、25022/SSH、33414/TCP、40080/HTTP。

1.3 主动扫描:字典扫描

靶机故障,重启后IP地址变为,192.168.51.249。

访问33414/TCP服务,根据响应内容判断是HTTP服务,但需要正确的目录或页面才能访问。

扫描33414/HTTP的目录和页面,发现/help目录和/info目录。

访问/help目录,发现文件上传接口/upload-file、目录浏览接口/file-list。

2. 初始访问

2.1 利用面向公众的应用

根据接口说明,使用POST请求文件上传接口/upload-file,响应400报错,BAD REQUEST,缺少file部分,需要自行构造。

靶机故障,重启后IP地址变为,192.168.55.249。

准备webshell文件,并使用curl命令上传,仍然响应400报错,但这次是缺少filename部分。

增加filename部分,仍然响应400报错,这次是没通过文件类型白名单的安全检查。

将file部分的文件名称后缀改为白名单中的txt,就可以上传成功,而最终保存到服务器中的文件名称却是filename部分的shell-2.php,看来安全检查漏掉了这里,可以绕过上传webshell。

只可惜webshell被上传到了服务器的/tmp/目录。上传时在filename部分添加到web根目录的文件路径,看是否存在路径穿越漏洞。

结果响应500报错,INTERNAL SERVER ERROR,看来存在路径穿越漏洞,只是web根目录没有写入权限。

想必上传恶意的passwd文件到/etc/目录,也是没有写入权限。疯狂翻垃圾,发现存在/home/alfredo/.ssh/目录,既然都能读取了,试试有没权限写入authorized_keys文件,竟然成功。

使用私钥文件连接25022/SSH服务,获得alfredo用户权限。

3. 权限提升

3.1 计划任务/作业:Cron

root用户存在计划任务,每分钟会执行一次/usr/local/bin/backup-flask.sh脚本。

当前alfredo用户具有/usr/local/bin/backup-flask.sh脚本的查看权限。查看脚本内容,发现是将/home/alfredo/restapi/目录设为环境变量后,使用tar命令打包压缩/home/alfredo/restapi/目录。

在/home/alfredo/restapi/目录中创建tar命令,以利用环境变量劫持tar命令。由于网络原因无法反弹shell,那就往tar命令中写入“将alfredo用户的authorized_keys文件拷贝给root用户“的命令来提权。

使用私钥文件连接25022/SSH服务,获得root用户权限。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值