Offensive Escape 靶机渗透

Offensive Escape 靶机渗透,第1张

靶机难度Very Hard


一、信息收集

nmap 扫描

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


二、web渗透

8080端口发现/dev目录进入

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

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

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

找到local.txt

 


三、提权

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

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

通过linpeas发现我们在docker中

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

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

修改snmp配置文件为

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

这也就意味着我们可以通过snmpwalk在远程机上执行shell,在目标机snmp配置文件中我们知道snmp守护进程在/tmp/shtest中,tmpfs用于在主机和容器之间轻松传输文件,而无需每次登录。


当使用tmpfs挂载创建容器时,容器可以在容器的可写层之外写入文件。


与卷和绑定装载不同,tmpfs装载是临时的,只在主机内存中存在。


并且tmpfs安装在docker的/tmp中,所以我们尝试使用snmp进行docker逃逸。


成功逃逸出docker

尝试suid提权

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

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


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

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

再次使用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

为了利用这个潜在的漏洞,我们必须运行/opt/cert/openssl。


该程序可用于托管本地web服务器。


但是,在运行它之前,我们需要生成一个证书,如下所示,将所有选项留空:

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

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

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

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/567733.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-09
下一篇 2022-04-09

发表评论

登录后才能评论

评论列表(0条)

保存