DC-9靶机通关
这是这个系列的最后一个靶机了!!!经过前面的锻炼和学习,这次我的目标是尽量不借助任何教程或者提示来拿下这个靶机!!!下面我们看能不能成功!!!
1.实验环境
攻击机:kali2023.2
靶机:DC-9
2.信息收集
2.1主机扫描

2.2端口扫描

3.功能点收集
3.1查看网页

3.2寻找功能点,看看有什么可以下手的思路


大家这里思考一个问题,我们目前有什么,一个是80端口一个是22端口,22端口无非就是能进行爆破然后远程连接,这种概率肯定很小,需要运气,其次就是80端口的web服务,然后我们发现的功能点一个是搜索一个是登录,那对应的可能的漏洞是不是就是弱口令和sql注入,因为我们想要getshell的话无非就是弱口令,注入漏洞,文件上传,文件包含或者RCE,有人会说那不是还有可能存在其他的一些xss之类的漏洞吗?我们现在不是在挖洞,那些漏洞很鸡肋并不能getshell,所以这里是不去考虑那些的,弱口令需要时间和运气,所以这里优先尝试一下sql注入行不行!
4.SQL注入
4.1找注入点



4.2跑sqlmap





4.3尝试登录

5.文件包含
5.1通过admin寻找线索






这里其实就出现一个问题,目标的22端口被过滤了,那么我们如何判断他到底是开放着的还是关闭着的,只有先判断出开没开,然后才能考虑下一步操作,如果是关着的那还搞个毛,直接跑路。如果是开着的那我们再想办法绕过他,因为这种过滤多半是防火墙设置导致的!这里给一篇文章大家参考一下在这种情况下应该如何判断端口是否开放!nmap扫描之端口“filtered“被过滤的分析_nmap filtered-CSDN博客


再放一篇关于端口状态的文章,大家可以多了解了解!
NMAP 六种端口状态解读_nmap filtered-CSDN博客
5.2端口敲门技术
这个东西我也是第一次听到,咱们去网上搜搜是怎么回事!
DC-9靶机-简单谈一下端口敲门技术 (Port Knocking)-CSDN博客
如何在 Linux 上使用端口敲门(以及为什么不应该) (linux-console.net)
我大致理解了一下就是说对方为了安全起见,在防火墙上对端口进行了保护,只有符合规则的流量才可以通过防火墙访问被保护的端口,正常来说这个规则只有使用者知道,这样的话可以起到防护作用,像22号端口就属于比较危险的端口,被保护起来也是可以理解的!

其实nmap也是通过流量访问来进行检测的,然而我们直接扫描的流量肯定是不符合人家规定的自然打过去以后会被抛弃或者过滤,这种情况下nmap给我们的会先结果要么是filter不确定是否开放甚至说是closed关闭状态!
然后我们在上面的文章中也可以了解到,这鸟毛玩意儿的配置是通过在相关的配置文件中进行设置然后搞出来的,就像我们平常配置中间件什么的一样,所以原来文件包含是用来让我们查看这个端口敲门的配置文件的,到这里豁然开朗了!这个配置文件的路径是 /etc/knockd.conf

nc -z IP 7469 8475 9842 //这个是配置文件里的那三个数字


然后其实就该爆破了,因为做这个就像做数学题一样,每个条件都要用到,既然文件包含已经有它的用处了,那剩下还没用的条件就是22号端口连接ssh了,而且我们现在还有一些账号密码在手上!
5.3ssh爆破远程连接



6.寻找提权思路
6.1ssh登录寻找线索


这里登上来之后发现三个账户下面啥都没有,这里卡住了,找了半天没有找到有用的东西,三个账户都没有可以suid和sudo提权的命令!
find / -user root -perm -4000 -print 2>/dev/null


6.2Linux常用提取方法
在Linux系统中,提权是指从低权限用户提升至超级用户(root)权限的过程。这通常是在渗透测试或系统管理中需要执行的操作,以便执行更多的系统级任务。以下是一些常见的Linux提权方法:
内核漏洞提权
Linux操作系统的内核是系统的核心,一旦存在安全漏洞,攻击者可以利用这些漏洞获取root权限。例如,著名的“脏牛”漏洞就是一种内核漏洞,可以被利用来提升权限。使用uname -a命令可以查看当前系统的内核版本,如果系统版本存在已知的漏洞,可以尝试利用相应的漏洞提权工具或脚本。
SUID提权
SUID(Set Owner User ID)是Linux中的一个特殊权限位,当设置了SUID权限的可执行文件被运行时,该程序将以文件所有者(通常是root)的权限运行。通过查找系统中具有root权限的SUID文件,可以尝试利用这些文件来提升权限。使用以下命令可以查找具有SUID权限的文件:
find / -perm -u=s -type f 2>/dev/null
计划任务提权
如果计划任务(Cron Jobs)以root权限运行,并且相关脚本对其他用户具有写权限,或者脚本所属组为其他用户,则可以通过修改这些脚本来提权。可以通过查看/etc/crontab文件来发现系统中的计划任务,并检查相关文件的权限。
sudo滥用提权
在某些情况下,系统中的某些用户可能被授予了可以以root权限运行特定命令的sudo权限。如果可以找到这样的命令,就可以尝试利用它们来提升权限。使用sudo -l命令可以查看当前用户能以root权限运行的命令。
配置错误之利用/etc/passwd提权
如果/etc/passwd文件对其他用户具有写权限,攻击者可以通过向该文件中添加一个UID为0的用户来获取root权限。这通常涉及到修改系统文件,需要谨慎操作。
以上是一些基本的Linux提权方法,每种方法都有其适用的场景和限制。在尝试提权时,应该首先收集尽可能多的系统信息,然后根据情况选择合适的提权方法。提权过程中可能需要使用到各种工具和脚本,如内核漏洞利用工具、密码破解工具等。在实际操作中,提权往往需要结合多种技术和方法,以及对系统的深入了解。
因为suid和sudo提权比较常用,所以我看到不能用之后就跑去看能不能脏牛提权或者定时任务去了,后面看了一下提示才发现跑偏了!这里就有一个坑,登上去之后一定要看一下有没有隐藏目录或者文件!!!!!!!!!!!
6.3隐藏文件






6.4sudo提权



openssl passwd -1 -salt 账号 密码 //这里账号密码尽量简单一些,不然可能会出问题在加密的时候

echo 'topsec:$1$topsec$0sD7IikM54/bEsFnRrIPv/:0:0:root:/root:/bin/bash' > /tmp/tiquan2sudo /opt/devstuff/dist/test/test /tmp/tiquan2 /etc/passwd


7总结
这个靶机我感觉非常美妙,涉及到的东西还是非常全面的,建议大家多打一打!
我认为涉及到的一些经典的姿势有:端口扫描,sql注入,文件包含,爆破,端口敲门,sudo提权,以及大家对python脚本的理解,还有对Linux的很多命令的理解,就包括那个坑人的隐藏文件!
相关文章:
DC-9靶机通关
这是这个系列的最后一个靶机了!!!经过前面的锻炼和学习,这次我的目标是尽量不借助任何教程或者提示来拿下这个靶机!!!下面我们看能不能成功!!! 1.实验环境 攻…...
前端注释都应该怎么写?
以下是一些前端注释的例子,展示了如何应用前面提到的建议: 1. 使用清晰、简洁的语言 // 计算两个数的平均值 function calculateAverage(a, b) {return (a b) / 2; }2. 描述代码的目的和功能 // 将日期格式化为 "YYYY-MM-DD" 的字符串 fun…...
深入解析缓存模式下的数据一致性问题
今天,我们来聊聊常见的缓存模式和数据一致性问题。 常见的缓存模式有:Cache Aside、Read Through、Write Through、Write Back、Refresh Ahead、Singleflight。 缓存模式 Cache Aside 在 Cache Aside 模式中,是把缓存当做一个独立的数据源…...
嵌入式常用功能之通讯协议1--IIC
嵌入式常用功能之通讯协议1--串口 嵌入式常用功能之通讯协议1--IIC(本文) 嵌入式常用功能之通讯协议1--SPI 一、IIC总线协议介绍 Inter-Integrated Circuit(集成电路总线),是由 Philips 半导体公司(现在的 NXP 半导体…...
【Wi-Fi】Wi-Fi 7(802.11be) Vs Wi-Fi 8 (802.11bn)
介绍 WiFi 7 (802.11be) 是 WiFi-6 (802.11ax) 的继任者,旨在提高数据速率并减少拥挤环境中的延迟。 WiFi 8 (8021.1bn)是后续标准,专注于提高 WLAN 连接的可靠性, 提高…...
Ubuntu软件包管理机制
文章目录 🍊自我介绍🍊Ubuntu软件包管理机制🍊软件安装命令详解: 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以:点赞关注评论收藏(一键四连)哦~ 🍊自我介绍 Hello,大家好…...
SpringBoot详解:概念、优点、运行方式、配置文件、异步请求及异常处理
一、什么是SpringBoot? SpringBoot是一个基于Spring框架的开源项目,它简化了Spring应用的初始搭建以及开发过程。它提供了自动配置、起步依赖、Actuator、命令行界面等特性,使得开发者可以快速构建出一个独立、生产级别的Spring应用。 二、…...
npm install -g @vue/cil 非常卡慢
安装 vue/cli 时遇到卡慢的情况通常和网络问题有关,特别是国内的网络环境下访问 npm 的服务器可能较慢。你可以尝试以下几种方法来加速: 使用淘宝镜像源 淘宝 NPM 镜像源对国内用户更加友好。你可以临时使用淘宝镜像源安装 vue/cli: npm inst…...
Windows 基础 (二):系统目录与环境变量
内容预览 ≧∀≦ゞ Windows 基础 2:系统目录与环境变量声明系统目录系统核心目录其他重要日志目录应用程序数据目录用户数据目录隐藏目录 环境变量1. 查看环境变量2. 设置永久环境变量3. 查看特定环境变量的值4. 环境变量的存储位置5. 自定义环境变量的应用 结语 Wi…...
World of Warcraft [CLASSIC][80][the Ulduar] BOSS 05 06 07
BOSS-05-钢铁议会 BOSS-06-科隆加恩(无困难模式) BOSS-07-欧尔莉亚(无困难模式)...
World of Warcraft [CLASSIC][80][the Ulduar] BOSS 12 13
BOSS-12-维扎克斯将军 BOSS-13-尤格萨隆...
第一篇 硬件篇1[学习-来自 正点原子]
在电路设计中,TVS(瞬态电压抑制器)是一种有效的保护元件,可以用来防止瞬时过电压对芯片和其他敏感器件造成损坏。 STM32F103RCT6作为MCU 一键下载电路的具体实现过程: 首先, mcuisp控制 DTR输出低电平&…...
【TextIn:开源免费的AI智能文字识别产品(通用文档智能解析识别、OCR识别、文档格式转换、篡改检测、证件识别等)】
TextIn:开源免费的AI智能文字识别产品(通用文档智能解析识别、OCR识别、文档格式转换、篡改检测、证件识别等) 产品的官网:TextIn官网 希望感兴趣以及有需求的小伙伴们多多了解,因为这篇文章也是源于管网介绍才产出的…...
C++语言有哪些常用语句?
1. 变量定义语句 在 C 中,首先要定义变量才能使用。例如 int a;定义了一个整型变量a。这是很基础的语句,它告诉编译器为变量a分配内存空间,用于存储整数值。 如果要定义多个相同类型的变量,可以写成 int a, b, c;除了基本数据类…...
linux alsa-lib snd_pcm_open函数源码分析(二)
访问原版内容,可直接到博客 linux alsa-lib snd_pcm_open函数源码分析(二) https://blog.whatsroot.xyz/2020/08/12/alsa_snd_open-analysis-2/ 系列文章其他部分: linux alsa-lib snd_pcm_open函数源码分析(一) linux alsa-lib snd_pc…...
机翼的抖振与颤振
机翼的抖振与颤振 1. 机翼颤振:飞机设计的隐形杀手2. 机翼抖振:由气流不稳定性引起的振动3. 两种振动的区分和管理3.1 检测与预防 机翼的颤振和抖振是飞机设计和航空工程师面临的两个重要技术问题。这两种现象虽然都与机翼的振动相关,但它们的…...
React04 State变量 组件渲染
State变量 & 渲染和提交 State 变量state 变量的使用State 是隔离且私有的 组件渲染 State 变量 state 变量的使用 导入 useState import { useState } from react;定义一个 state 变量 const [index, setIndex] useState(0);useState 的唯一参数是 state 变量的初始值…...
【数据库系统概论】第3章 关系数据库标准语言SQL(一)数据查询(超详细)
目录 一、单表查询 1. 简单的数据查询 (1)选择表中若干列 (2)选择表中若干行(元祖) 2. 聚合函数与分组查询 聚集函数 GROUP BY分组查询 二、联接查询 1、连接概述 2. 内联接(INNER JO…...
mysql-恢复数据(日志管理)
前言 在mysql中我们有时候会出现误删除,或者其他的问题,我们可以通过mysql的日志进行恢复 操作 我们可以在mysql里面定义一个错误日志,方便我们可以排查是因为什么原因来解决mysql无法启动问题 ----------------------------------------…...
探索Unity:从游戏引擎到元宇宙体验,聚焦内容创作
unity是实时3D互动内容创作和运营平台,包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助Unity将创意变成现实。提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...
C++实现分布式网络通信框架RPC(2)——rpc发布端
有了上篇文章的项目的基本知识的了解,现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...
