靶场实战(18):OSCP备考之VulnHub MY CMSMS

打靶思路

  1. 资产发现

    1. 主机发现

    2. 服务发现

  2. 漏洞发现(获取权限)

    1. 80端口/HTTP服务

      1. 组件漏洞

      2. URL漏洞

    2. 3306端口/MySQL服务

      1. 组件漏洞

      2. 口令漏洞

    3. 80端口/HTTP服务

      1. URL漏洞

      2. URL漏洞

  3. 提升权限

    1. www-data用户

      1. sudo

      2. suid

      3. cron

      4. 内核提权

      5. 信息收集

    2. armour用户

      1. sudo    

1、资产发现

1.1、主机发现

本次靶场MY CMSMS[1]指定IP,不涉及主机发现过程。

1.2、服务发现

使用命令sudo -u root nmap 172.16.33.103 -n -Pn -p- --reason -sV -sC -O,发现主机开放的端口、提供的服务、使用的组件、组件的版本。

cd32dc245fc0271869741018a484e277.png

开放的端口

提供的服务

使用的组件

组件的版本

22/tcp

ssh

OpenSSH

7.9p1

80/tcp

http

Apache httpd

2.4.38

3306/tcp

mysql

MySQL

8.0.19

33060/tcp        

mysqlx?

?

?

-

os

Debian Linux

?

2、漏洞发现(获取权限)

按照高频高危排序,优先排查HTTP服务,其次是MySQL服务,最后是SSH服务。

2.1、80端口/HTTP服务

2.1.1、组件漏洞

0x01、Web中间件

使用命令searchsploit Apache httpd 2.4.未发现Web中间件Apache httpd 2.4.38的Nday漏洞。

3d8ed307bef66dfa22dd84f82cc9c63f.png

0x02、Web框架

通过直接访问网页、Wappalyzer插件等方式,发现Web框架CMS Made Simple 2.2.13,但是使用命令searchsploit CMS Made Simple 2.2.未发现存在Nday漏洞。

137ad6cb0108f7f3400da7eaf59b0fcc.png

cdfcdc0f7fedc4b19503efb145a07d12.png

2.1.2、URL漏洞

0x01、直接访问

浏览器打开http://172.16.33.103,是CMSMS的介绍页面。

cd83df49d28ca2946cdd81b74ec0dcfc.png

0x02、目录扫描

使用命令dirsearch -u http://172.16.33.103/ -x 403发现大量页面,逐个查看,只有/admin/login.php/phpmyadmin有价值。

978b1c73d4f32b9f21ce65ffdff7bd1d.png

使用浏览器访问http://172.16.33.103/admin/login.php,是个登录页面。

在找回密码功能处,使用账号OneMoreThink得到响应User Not Found,说明不存在该用户;使用账号admin没有得到响应User Not Found,说明存在该用户。最终成功枚举出网站的真实用户。

在登录功能处,使用字典/usr/share/seclists/Passwords/Common-Credentials/best110.txt爆破admin账号的密码,失败了。

db53d2282445f618776c2ed8732d5894.png

4aec3597f57afff4b8adc6052cf92879.png

0fdee2648e7b184e267e9683f323faa6.png

484fe62b5f3ffecbac3d2f49720bb061.png

a14d4bd5b8914e1c215ad81e1f4371c3.png

a2738138ff51adc196da30e89bdfea03.png

使用浏览器访问http://172.16.33.103/phpmyadmin,发现需要HTTP Basic Authentication。使用字典/usr/share/seclists/Passwords/Default-Credentials/ssh-betterdefaultpasslist.txt爆破HTTP Basic Authentication,失败了。

BurpSuite也可以分别导入账号和密码爆破HTTP Basic Authentication,详见如何使用burpsuite爆破tomcat的账号和密码(有base64编码)[2]

0adc9522d493c4294c39f0fd504b5ebb.png

e3de97c5d2c6587a1d27eec3ede07c4c.png

513a014dbaf65100dd718b5e447026bb.png

8c667f3190f881402f1e85388a8bc925.png

0x03、模糊测试

基于目前已知情况,没有对网站的目录和文件进行FUZZ的必要。

0x04、切换协议

浏览器访问https://172.16.33.103:80/失败,说明网站没有使用SSL协议。

6ea1f8c087994efed927c05222b88e19.png

2.2、3306端口/MySQL服务

2.2.1、组件漏洞

使用命令searchsploit MySQL 8.未发现组件MySQL 8.0.19的Nday漏洞。

9eaad82b2022378383730fadaf3b9453.png

2.2.2、口令漏洞

使用命令hydra -C /usr/share/seclists/Passwords/Default-Credentials/ssh-betterdefaultpasslist.txt 172.16.33.103 mysql发现弱口令root/root

c495bb71a98a5792496d1e739cd7242a.png

使用命令mysql -h 172.16.33.103 -P 3306 -u root -proot登录MySQL服务后,使用命令show databases;查看有哪些数据库,发现cmsms_db。

使用命令use cmsms_db;选择数据库后使用命令show tables;查看有哪些数据表,发现cmsms_users。

使用命令select * from cms_users;查看所有字段和记录,发现账号密码admin/fb67c6d24e756229aab021cea7605fb3

c899d9e1c8e53ad4378ce6e976e4ad54.png

4f3647f33c2f661ef114f6a4fd6e1524.png

使用工具hash-identifier查询fb67c6d24e756229aab021cea7605fb3的加密类型,大概率是MD5。但是使用CMD5[3]和SOMD5[4]均无法破解。

bfeb8e7dbc25b5324781b6e444e1d65f.png

4d7975f371a462520b5e00226fb138df.png

801305028adf43c468480ccf02045d54.png

本来想搜下加密算法,然后做个彩虹表爆破的。但是官网CMS Made Simple™ Download Section[5]下载的源码,只有一个8M的php文件,实在是太大了,找了一会都没找到加密算法。

后来复盘时发现是下错源码了,我下载了部署包,实际上应该去SVN那儿下载源码包。

f868cff3423ae5743f1b548dcdd012d7.png

最后阴差阳错在网上找到后台修改密码的方法CMS Made Simple Admin password recovery[6],不得不说教程写得真好,还录了视频,得点个赞。

使用命令use cmsms_db;选择数据库后,使用命令update cms_users set password = (select md5(CONCAT(IFNULL((SELECT sitepref_value FROM cms_siteprefs WHERE sitepref_name = 'sitemask'),''),'password'))) where username = 'admin';admin用户的CMSMS后台密码改为password,最终成功登录CMSMS后台。

e6213d4d9f8623d21abe287c32fec9bb.png

2379cf7fb634ef560038ada2521cfa21.png

2.3、80端口/HTTP服务

2.3.1、URL漏洞

后台getshell首选文件上传或文件编辑功能,通过写入webshell获取权限,一番浏览发现Content – File Manager有文件上传功能。

1aaadc7acdb8c36dbbd954f13a4b6c61.png

准备好反弹webshell但上传失败,报错是acceptFileName,文件名有问题。好家伙,还有报错,这是指导我们怎么绕过呢。既然是文件名有问题,那应该是做了文件名后缀限制,希望只是限制了后缀黑名单吧。

db720daff5d05a75a3b341e1d2ed0572.png

尝试用黑名单外且仍能被当作脚本文件执行的文件后缀来绕过上传限制,最终使用.phtml成功上传。响应中还有上传后的文件URL,这是怕我们找不到呢。

9f1fde8c03e475928208deb551f415f7.png

本地使用命令nc -nvlp 33103监听,然后访问URL就能触发反弹shell,最终获得的是www-data用户的权限。

8458b826443bf69bae421679928136ca.png

2.3.2、URL漏洞

网上查到还可以用User Defined Tags功能获得反弹shell,这里做个记录。

9d8e3730ab4e5601c86f761e76964fe9.png

4da3e22e67adec72950087f8cce1fb42.png

185454a6827767bac2763e0e39745b74.png

bffc484c762f6c35d21f4c26609accbc.png

150245d7d62472b6a5224114a9f1b3e5.png

4dd9f7b11678ee901a8ba94235b15ee2.png

3、提升权限

使用命令which pythonwhich python3查看系统中有哪个版本的python,发现两个都有。使用命令python3 -c 'import pty; pty.spawn("/bin/bash")'获得交互式shell。

aa97e498cceca8886bf27ed0f47514aa.png

3.1、www-data用户

3.1.1、sudo

使用命令sudo -l查看当前用户能以谁的权限执行什么命令,结果需要输入当前用户的密码。因为我们没有,所以只能放弃。

73317814ed853278bb07e5d40e532a93.png

3.1.2、suid

使用命令find / -perm -u=s -type f -ls 2>/dev/null查看哪些命令或脚本在执行时会以属主的权限来执行,发现了/home/armour/binary.sh脚本。

3c4bbc4de73ebe3a8b6bfb39328563c6.png

满心欢喜以为能以脚本属主root用户的权限来执行命令,结果使用命令/home/armour/binary.sh id发现用的还是当前用户的权限。可能root权限的作用只是执行echo吧,执行$1用的还是当前用户的权限?

45d42a924395b3b26dcdbc1bdc6d90dc.png

3.1.3、cron

使用命令find /var/spool/cron/ -type f -ls 2>/dev/null没有发现计划任务,应该是没有查看权限。

使用命令find /etc/*cron* -type f -ls 2>/dev/null -exec cat {} \; > /tmp/cron.txt ; grep '\*' /tmp/cron.txt发现一些计划任务,但都没有引用当前用户具有read和write权限的命令或脚本,所以没法用于提权。

使用命令find / -perm -o=rw ! -path "/proc/*" -type f -ls 2>/dev/null发现一些other用户具有read和write权限的命令或脚本,但都不像是会被计划任务引用的。

f8382602cafac5067cd1d43de1874fdd.png

3.1.4、内核提权

使用命令uname -r发现系统内核版本是4.19.0-8-amd64,使用命令cat /etc/*release发现系统发行版本是Debian Linux 10

8aa078470c8fa4912cafff83145664a2.png

使用命令searchsploit 4. Debian Linux 10未发现当前内核版本和发行版本存在内核提权漏洞。

e4f4a53cbaadb56a7d4a548478a119c9.png

3.1.5、信息收集

使用命令find /root/ -type f -ls 2>/dev/null未发现特权用户目录下的敏感文件,使用命令find /home/ -type f -ls 2>/dev/null未发现普通用户目录下存在敏感文件,使用命令find /tmp/ -type f -ls 2>/dev/null未发现临时目录下存在敏感文件,使用命令ls -la /var/www/html/发现admin目录有点意思,使用命令ls -la /var/www/html/admin/发现.htaccess.htpasswd文件有点意思。

53f0dc0ad1de507b482c93f5e13331f6.png

使用cat命令查看两个文件,发现/var/www/html/admin/.htpasswd中存在一串神秘代码TUZaRzIzM1ZPSTVGRzJESk1WV0dJUUJSR0laUT09PT0=。    

848cb1a4c20c69bc46d1e76374d4d197.png

使用CyberChef[7]的魔法棒自动解码,最终获得明文armour:Shield@123

a1e2ae969a6dfc9c2fa0951c67d60232.png

c2409fd11e31f90980fb284869f5166c.png

8bdefcb16c60408972419517b3486155.png

使用命令ssh armour@172.16.33.103登录失败,SSH服务限制了只允许密钥登录。那就使用命令su armour切换到armour用户吧。

504c1990fd014e4c272c01051ea86799.png

4c52b78a5c549d48fa90b69b77ca9b79.png

3.2、armour用户

3.2.1、sudo

使用命令sudo -l查看当前用户能以谁的权限执行什么命令,发现当前用户能以root用户的权限执行/usr/bin/python命令。

f7dd07776a945e8fd04b6d433f5a65d6.png

那就使用命令sudo -u root /usr/bin/python -c 'import pty; pty.spawn("/bin/bash")'以root用户的权限执行返回shell环境的命令吧,最终返回了root用户权限的shell,成功实现提权。

81bd831115ef2bd2bd4118520bc1372c.png

参考资料

[1]

MY CMSMS: https://www.vulnhub.com/entry/my-cmsms-1,498/

[2]

如何使用burpsuite爆破tomcat的账号和密码(有base64编码): https://blog.csdn.net/weixin_50464560/article/details/119273112

[3]

CMD5: https://cmd5.com/

[4]

SOMD5: https://www.somd5.com/

[5]

CMS Made Simple™ Download Section: http://www.cmsmadesimple.org/downloads/cmsms

[6]

CMS Made Simple Admin password recovery: https://cmscanbesimple.org/blog/cms-made-simple-admin-password-recovery

[7]

CyberChef: https://gchq.github.io/CyberChef/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/637903.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

考研C语言刷编程题篇之分支循环结构基础篇(一)

目录 第一题 第二题 方法一:要循环两次,一次求阶乘,一次求和。 注意:在求和时,如果不将sum每次求和的初始值置为1,那么求和就会重复。 方法二: 第三题 方法一:用数组遍历的思想…

【大数据处理技术实践】期末考查题目:集群搭建、合并文件与数据统计可视化

集群搭建、合并文件与数据统计可视化 实验目的任务一:任务二: 实验平台实验内容及步骤任务一:搭建具有3个DataNode节点的HDFS集群集群环境配置克隆的方式创建 Slave 节点修改主机名编辑 hosts 文件生成密钥免认证登录修改 hadoop 的配置文件编…

Java并发编程: 并发编程中的ExecutionException异常

一、什么是ExecutionException 在并发编程中在执行java.util.concurrent.Future实现类的get方法时,需要捕获java.util.concurrent.ExecutionException这个异常。Future.get()方法通常是要获取任务的执行结果,当执行任务的过程中抛出了异常,就…

ThinkPad T14/T15/P14s/P15s gen2电脑原厂Win10系统镜像 恢复笔记本出厂时预装自带OEM系统

lenovo联想原装出厂Windows10系统,适用型号: ThinkPad T14 Gen 2,ThinPad T15 Gen 2,ThinkPad P14s Gen 2,ThinkPad P15s Gen 2 (20W1,20W5,20VY,20W7,20W0,20W4,20VX,20W6) 链接&#xff1…

Redis在Windows10中安装和配置

1.首先去下载Redis 这里不给出下载地址,自己可以用去搜索一下地址 下载 下载完成后解压到D盘redis下,本人用的是3.2.100 D:\Redis\Redis-x64-3.2.100 2.解压完成后需要设置环境变量,这里新建一个系统环境变量中path 中添加一个文件所…

WCP知识分享平台的容器化部署

1. 什么是WCP? WCP是一个知识管理、分享平台,支持针对文档(包括pdf,word,excel等)进行实时解析、索引、查询。 通过WCP知识分享平台进行知识信息的收集、维护、分享。 通过知识创建、知识更新、知识检索、知识分享、知识评价、知识统计等功能进行知识生命周期管理。 wcp官…

第04章_IDEA的安装与使用(上)(认识,卸载与安装,JDK相关设置,详细设置,工程与模块管理,代码模板的使用)

文章目录 第04章_IDEA的安装与使用(上)本章专题与脉络1. 认识IntelliJ IDEA1.1 JetBrains 公司介绍1.2 IntelliJ IDEA 介绍1.3 IDEA的主要优势:(vs Eclipse)1.4 IDEA 的下载 2. 卸载与安装2.1 卸载过程2.2 安装前的准备2.3 安装过程2.4 注册2…

【小笔记】算法训练基础超参数调优思路

【学而不思则罔,思维不学则怠】 本文总结一下常见的一些算法训练超参数调优思路(陆续总结更新),包括: batchsize学习率epochsdropout(待添加) Batch_size 2023.9.29 简单来说,较…

学习笔记之——3D Gaussian SLAM,SplaTAM配置(Linux)与源码解读

SplaTAM全称是《SplaTAM: Splat, Track & Map 3D Gaussians for Dense RGB-D SLAM》,是第一个(也是目前唯一一个)开源的用3D Gaussian Splatting(3DGS)来做SLAM的工作。 在下面博客中,已经对3DGS进行了…

基于springboot+vue的宠物领养系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 背景及意…

C++参悟:正则表达式库regex

正则表达式库regex 一、概述二、快速上手Demo1. 查找字符串2. 匹配字符串3. 替换字符串 三、类关系梳理1. 主类1. basic_regex 2. 算法1. regex_match2. regex_search3. regex_replace 3. 迭代器4. 异常5. 特征6. 常量1. syntax_option_type2. match_flag_type3. error_type 一…

Unity animator动画倒放的方法

在Unity中, 我们有时候不仅需要animator正放的效果,也需要倒放的效果。但我们在实际制作动画的时候可以只制作一个正放的动画,然后通过代码控制倒放。 实现方法其实很简单,只需要把animator动画的speed设置为-1即为倒放&#xff…

科技护航 智慧军休打通医养结合最后一公里

“小度小度,请帮我打电话给医生。” “好的,马上呼叫植物路军休所医生。” 2023年9月25日,常年独居、家住广西南宁市植物路军休所的军休干部程老,半夜突发疾病,让他想不到的是,这个常年伴他左右的“小度”…

Centos 8 安装 Elasticsearch

简介:CentOS 8是一个基于Red Hat Enterprise Linux(RHEL)源代码构建的开源操作系统。它是一款稳定、可靠、安全的服务器操作系统,适合用于企业级应用和服务的部署。CentOS 8采用了最新的Linux内核和软件包管理系统,提供…

Vue3新特性defineModel()便捷的双向绑定数据

官网介绍 传送门 配置 要求: 版本: vue > 3.4(必须!!!)配置:vite.config.js 使用场景和案例 使用场景:父子组件的数据双向绑定,不用emit和props的繁重代码 具体案例 代码实…

考试查分场景重保背后,我们如何进行可用性测试

作者:暮角 随着通过互联网音视频与知识建立连接的新学习方式在全国范围内迅速普及,在线教育/认证考试的用户规模呈井喷式增长。但教育容不得半点马虎与妥协,伴随用户规模不断增长,保证系统稳定性、有效避免千万考生考试时遭遇故障…

Ubuntu 在更新内核后 Virtual Box 不能为虚拟电脑打开一个新任务

前言 我也不知道啥时候自动给我更新了内核,重启电脑之后我的内核升级成6.5.0-14-generic,导致Virtual Box无法找到内核文件。 解决方法 方法1 sudo apt update sudo apt install linux-headers-generic build-essential dkms sudo apt remove virtua…

Elasticsearch:将数据从 Snowflake 摄取到 Elasticsearch

作者:来自 Elastic Ashish Tiwari 为了利用 Elasticsearch 提供的强大搜索功能,许多企业在 Elasticsearch 中保留可搜索数据的副本。 Elasticsearch 是一种经过验证的技术,适用于传统文本搜索以及用于语义搜索用例的向量搜索。 Elasticsearch…

0121-1-计算机网络安全

计算机网络安全 1.Get 和 Post 的区别 结构:get 有请求体,post没有请求体 应用场景:get 用于获取数据,post用于提交数据; 缓存:get 的缓存保存在浏览器和web服务器日志中; 传输方式&#x…

Centos使用Docker搭建自己的Gitlab(社区版和设置汉化、修改密码、设置SSH秘钥、添加拉取命令端口号)

根据我的经验 部署Gitlab(社区版) 至少需要2核4g的服务器 带宽3~4M 1. 在自己电脑上安装终端:宝塔ssl终端 或者 FinalShell,根据喜好安装即可 http://www.hostbuf.com/t/988.html http://www.hostbuf.com/downloads/finalshell_w…