打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
跟着大佬学渗透之进阶篇03
userphoto

2023.07.12 广东

关注

前言:

定了一个小目标,今年把OSCP拿下。于是,时隔一年多,重启了渗透测试的学习之路,之前打的VulnHub系列靶机还是比较基础的,基本只利用了一个中间件漏洞就能拿到shell,然后靶机系统都非常老,一个脏牛基本都能提权成功。为了更靠近OSCP考试的难度,这次直接上上强度,选择的靶机是HTB(Hack The Box) 的靶机--Pilgrimage。

开干:

1、环境准备

  • HTB的靶机

选择HTB的Pilgrimage靶机,下载HTB的VPN。

  • Kali

    将HTB的vpn文件put到kali中,使用命令 openvpn + ovpn文件路径 命令开启vpn连接。连接成功会在HTB网页右上角显示CONNECTIONS

2、扫描开放端口

使用htb的vpn连接成功后,靶机ip就会出现在页面中,省去了之前定位目标靶机的步骤。

使用nmap命令扫描开放端口

可以看到,开放了2个端口,一个22 SSH,一个80 HTTP。

3、寻找漏洞尝试利用

先访问下80端口的http服务:

可以看到Home界面有个图像缩放(shrink)功能,另外还有一个登陆页面,一个注册页面。

看到一个图像上传功能,我第一时间就想到任意文件读取漏洞,种个PHP大马进去。结果遇见两个问题,第一个就是将一句话大马放到请求体传输过去,返回错误。第二个就是 将一句话大马 塞进图片中间传输过去,返回了一个文件URL,访问那个URL又是404。

按照以往靶机的经验,如果任意文件读取漏洞存在的话,就能轻松反弹shell,所以在这边做了很长时间的尝试,都是以失败告终。

看到还有个登陆页面和注册页面,试了试admin弱口令,不存在弱口令问题。对登陆、注册接口做了sql注入的扫描,未发现sql注入漏洞。接下来使用dirb 对这个网址进行目录爆破也没发现什么新的目录。

这个靶机按照以往的方法进行渗透,有点黔驴技穷的意思了。

接下来小伙伴推荐了一个web漏洞扫描工具:Nikto

Nikto是一款开源的(GPL)网页服务器扫描器,它可以对网页服务器进行全面的多种扫描,包含超过3300种有潜在危险的文件/CGIs;超过625种服务器版本;超过230种特定服务器问题。扫描项和插件可以自动更新(如果需要)。基于Whisker/libwhisker完成其底层功能。

使用nikto对靶机网站进行漏洞扫描

可以看到,这边扫出了/.git 目录,可能之前dirb爆破的字典还不够多,没扫出这个目录。

其实在我对这个靶场进行回顾时候,我发现nmap已经扫出这个目录了,只不过当初漏过了这个重要信息。

Git是一个分布式版本控制系统,可以跟踪任何一组计算机文件的更改。当我们克隆一个github项目时,就会创建.git文件夹。

下面介绍一个工具 git-dump,地址如下:https://github.com/arthaud/git-dumper  ,个工具可以直接转对方机器上的.git目录下的文件。

可以看到除了资源文件夹,网页php文件外,还有个magick文件。尝试运行下:

可以看到这个工具叫ImageMagick,是一个图片压缩工具,工具版本为7.10-49 beta。

在exploit-db.com  上搜下这个工具有没有漏洞:

可以看到符合版本的有2个,一个dos,一个任意文件读取。能帮助我们拿更多的信息可能需要利用这个 任意文件读取的漏洞。点进去,看见PoC地址为:https://github.com/voidz0r/CVE-2022-44268

先按照目录 clone下这个工程

看到工程内容,加上上面的How to use ,大概猜想出用法如下:

1、先利用cargo run + 文件路径  命令将要读取文件的路径植入到image.png中。

2、把image.png通过ImageMagick服务压缩为图片output.png。

3、利用identify -verbose  output.png解析压缩过后的图片,这时候之前给的路径对应的文件内容应该已经包含在图片中了。

4、最后解析HEX,还原文件内容。

这时候我们已经知道了ImageMagick这个组件存在一个任意文件读取漏洞,而且知道了大概这个漏洞是怎么利用的。那么问题来了,我们读取什么文件呢···

这时候又想到这个http服务,还有个登陆注册页面,那一定有个数据库存放登陆注册的用户信息。接下来就去登陆注册的php页面中查找下,是否包含数据库文件的路径。

找到数据库文件路径为: /var/db/pilgrimage

按照之前猜想的PoC使用方法

然后将image.png上传首页的图片压缩服务,下载压缩过后的图片,使用identify -verbose  output.png命令解析压缩过后的图片:

可以看到这个 /var/db/pilgrimage 数据库文件的HEX已经在这了,使用python3 -c 'print(bytes.fromhex('hex内容')) 命令解析下上面这段hex:

由于是数据库文件,可能解析还有点乱码,不过可以大概猜到有个emily的用户,接下来将这段hex保存为文件,然后写个解析sqlite文件的小程序

import sqlite3conn = sqlite3.connect('htb.db')cursor = conn.cursor()cursor.execute('SELECT * FROM users')results = cursor.fetchall()for row in results: print(row)conn.close()

得到结果为emily ,abigchonkyboi123,用户为emily,密码为abigchonkyboi123。

接下来用ssh尝试连接:

可以看到已经拿到shell。接下来读取第一个FLAG:

4、提权

按照传统思路,查看下内核版本:

searchsploit  并未搜到什么结果:

下面介绍一个查找权限提升的工具PEASS-ng,github地址如下:https://github.com/carlospolop/PEASS-ng

kali下载对应版本,本地开启一个端口:

靶机wget下这个查找提权信息的工具

靶机中赋予这个工具777权限,运行:

可以着重关注下Executing Linux Exploit Suggester:

这里包含了可能存在提权可能的cve。尝试了dirty pipe、suid提权等方式都以失败告终。到了这里又没有什么思路了···

因为这个靶机是公共靶机(没舍得充钱),别人上传的文件我也能看到,我看见别的大佬上传了一个binwalk相关的PoC(忘记截图了),然后我试着运行了binwalk:

发现靶机上真的安装了binwalk组件,版本为2.3.2。

Exploit Database搜下:

发现这个版本的binwalk真的存在一个RCE漏洞。别的大佬应该是靠这个方式提权成功的。但是我还是很好奇大佬是怎么定位到这个靶机上有这个binwalk组件的。后来看见CSDN有位大佬的分享,大佬是先用pspy工具查看了靶机中运行了哪些进程,然后定位到的。

接下来按照大佬的思路尝试下,先下载pspy工具,地址如下:https://github.com/DominicBreuker/pspy,然后运行下,查看有哪些正在运行的进程:

可以看到这边运行了一个sh脚本,我们cat下,看看脚本内容:

这边执行了一些binwalk的操作,然后检查shrunk目录的每一个新创建的文件。

学习了下大佬信息收集的思路,接下来就是利用binwalk RCE漏洞来提权啦。这个漏洞的CVE-ID:CVE-2022-4510

接下来看看这个漏洞如何利用:

三个参数,第一个是png文件,第二个是kali的ip,第三个是kali的端口。

执行完这个命令,本地多了一个binwalk_exploit.png。

kali开启9999端口的监听:

靶机shrunk目录下载binwalk_exploit.png文件,完成提权:

5、总结

这次的Pilgrimage靶机,多数人给的难度评分为 EASY,但是我体验下来,感觉还是比我以往打的靶机要难不少的,走了很多弯路,比如这个靶机,看见图片上传功能,就一头扎进了任意文件上传的尝试。linpeas跑出可能有脏管道,dirtypipe也是一头扎进去了。不过通过这个靶机也是学到了很多信息收集的新姿势,收获满满~~~

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【HTB系列】靶机Bitlab的渗透测试
Redis未授权访问漏洞复现与GETSHELL利用方法汇总(含靶场搭建)
【HTB系列】靶机Frolic的渗透测试详解
【HTB系列】靶机Querier的渗透测试
局域网搭建git服务端并使用Github Desktop作为客户端
模块化、组件化与插件化(2)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服