当前位置: 代码迷 >> 综合 >> Offensive Escape 靶机渗透
  详细解决方案

Offensive Escape 靶机渗透

热度:88   发布时间:2023-10-22 01:35:45.0

靶机难度Very Hard

一、信息收集

nmap 扫描

Offensive Escape 靶机渗透

发现80、8080端口都开启http,分别进行目录爆破

Offensive Escape 靶机渗透

二、web渗透

8080端口发现/dev目录进入

Offensive Escape 靶机渗透

页面提示仅可以上传gif图片,尝试绕过

Offensive Escape 靶机渗透

修改content-type为image/gif,成功上传

Offensive Escape 靶机渗透

本地开启监听,web访问木马成功反弹shell

Offensive Escape 靶机渗透

找到local.txt

 Offensive Escape 靶机渗透

三、提权

 上传linpeas到靶机,发现没有wget,但是有curl

用curl下载linpeas到靶机并执行linpeas

Offensive Escape 靶机渗透

通过linpeas发现我们在docker中

Offensive Escape 靶机渗透

在/var/backups中发现snmp配置文件,猜测主机运行snmp,配置文件中发现 

Offensive Escape 靶机渗透Offensive Escape 靶机渗透

SNMP服务可以以多种方式扩展。例如,它可以通过NET-SNMP-EXTEND-MIB MIB提供的功能进行扩展。Net SNMP代理提供了一个MIB扩展(Net-SNMP-EXTEND-MIB),可用于执行任意shell脚本。因此,通过在SNMP上调用NET-SNMP-EXTEND-MIB,我们可以调用服务器上的任意脚本或可执行文件。因为我们知道交互字符串为53cur3M0NiT0riNg,所以让我们尝试使用snmpwalk。

我们下载snmp与snmp-mibs-downloader

apt-get install snmp

apt-get install snmp-mibs-downloader

然后我们通过snmp-mibs-downloader下载mib

Offensive Escape 靶机渗透

修改snmp配置文件为

Offensive Escape 靶机渗透

通过nsExtendOutput1Table的示例,我们可以在目标上查询SNMP守护程序,如下所示:

Offensive Escape 靶机渗透

这也就意味着我们可以通过snmpwalk在远程机上执行shell,在目标机snmp配置文件中我们知道snmp守护进程在/tmp/shtest中,tmpfs用于在主机和容器之间轻松传输文件,而无需每次登录。当使用tmpfs挂载创建容器时,容器可以在容器的可写层之外写入文件。与卷和绑定装载不同,tmpfs装载是临时的,只在主机内存中存在。并且tmpfs安装在docker的/tmp中,所以我们尝试使用snmp进行docker逃逸。

Offensive Escape 靶机渗透

Offensive Escape 靶机渗透

Offensive Escape 靶机渗透

Offensive Escape 靶机渗透

成功逃逸出docker

尝试suid提权

Offensive Escape 靶机渗透

 发现/usr/bin/logconsole属主为tom

Offensive Escape 靶机渗透

Offensive Escape 靶机渗透

使用ltrace来跟踪logconsole,发现查看cpu时候并没有写绝对路径而是通过环境变量方式调用。

Offensive Escape 靶机渗透

使用环境变量获得tom用户shell

Offensive Escape 靶机渗透

Offensive Escape 靶机渗透

下一步,我们尝试使用ssh登陆tom用户,老方法

Offensive Escape 靶机渗透

Offensive Escape 靶机渗透

再次使用linpeas,我们发现/opt/cert/openssl的功能为空。Linux功能允许非root用户执行的二进制文件执行有限的特权(root)操作。

https://int0x33.medium.com/day-44-linux-capabilities-privilege-escalation-via-openssl-with-selinux-enabled-and-enforced-74d2bec02099

Offensive Escape 靶机渗透

为了利用这个潜在的漏洞,我们必须运行/opt/cert/openssl。该程序可用于托管本地web服务器。但是,在运行它之前,我们需要生成一个证书,如下所示,将所有选项留空:

Offensive Escape 靶机渗透

Offensive Escape 靶机渗透

再开启一个ssh连接到tom,因为刚才的ssh用于托管web server

Offensive Escape 靶机渗透

使用curl通过漏洞获取root的私钥

Offensive Escape 靶机渗透

使用私钥登陆root,并且得到proof.txt

Offensive Escape 靶机渗透

  相关解决方案