DC-1靶机

news2024/9/25 3:20:02

文章目录

        • 信息收集
        • 漏洞发现
        • 漏洞利用

DC-1靶机地址下载

DC-1靶机说明

在这里插入图片描述

先把kali和靶机都设置成NAT模式

查看两台MAC地址

设置—网络适配器—高级—MAC地址
在这里插入图片描述

在这里插入图片描述

kali   00:0C:29:E1:A9:D2
dc-1   00:0C:29:C1:D6:77

信息收集

1、找出DC-1 的IP地址

nmap -sP 192.168.80.1/24 -oN   nmap.sP
nmap -sS -O 192.168.80.0/24   #-O是操作系统扫描
arp-scan -l

半开放扫描(TCP SYN):只发送一个SYN报文然后等待回应。相对于TCP Connect扫描更加安全,因为不建立一个完整的TCP连接,目标主机一般不会将此类型行为记入安全日志,但需要root权限。nmap -sS 域名/IP地址 扫描的时间可能比使用-sT的时间长

SYN扫描,使用最频繁,安全,快

在这里插入图片描述

得出 DC-1的IP地址为192.168.80.133

kali 地址 192.168.80.132

2、对DC-1进行信息收集,扫描开放端口和运行的服务

nmap -A 192.168.80.133 -p 1-65535  -oN nmap.A
nmap -A -T4 -p-  192.168.80.133

#nmap -A 域名/IP地址      //强力扫描,耗时长
#nmap -T1~6 域名/IP地址	  //设置扫描速度,一般T4

在这里插入图片描述

80   drupal    CMS
	 三大PHP  CMS之一
	 	drupal
	 	wordpress
	 	joomla

使用http://192.168.80.133/访问靶机的http站点

在这里插入图片描述

漏洞发现

3、使用msfconsole运行MSF工具

在MSF中使用search drupal搜索相关的漏洞利用模块

在这里插入图片描述

找到了与 http 相关的模块,根据 Rank(等级)优先选择带颜色的模块,使用 use 2 装载模块。

使用 show options 查看需要进行的设置,发现只需要设置 RHOSTS(目标)

在这里插入图片描述

所以使用 set RHOSTS 192.168.80.133 进行设置。设置完后如下:

在这里插入图片描述

在这里插入图片描述

使用run或者exploit运行模块

在这里插入图片描述

运行模块后,成功建立会话,使用 shell 即可获得靶机的 WebShell
在这里插入图片描述

Meterpreter是Metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的一个Meterpreter shell的链接。Meterpreter shell作为渗透模块有很多有用的功能,比如添加一个用户、隐藏一些东西、打开shell、得到用户密码、上传下载远程主机的文件、运行cmd.exe、捕捉屏幕、得到远程控制权、捕获按键信息、清除应用程序、显示远程主机的系统信息、显示远程机器的网络接口和IP地址等信息。另外Meterpreter能够躲避入侵检测系统。

漏洞利用

1、使用whoami查看当前用户权限

在这里插入图片描述

2、使用 python脚本实现交互式shell

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

交互式 Shell:可以执行一些需要上下文的命令,并且会显示操作的结果。

在这里插入图片描述

3、使用ls -la查看当前目录所有文件及权限

在这里插入图片描述

4、查看flag1.txt

在这里插入图片描述

5、百度 drupal站点的默认配置文件,得知为settings.php

6、在网站目录下搜索 settings.php

在这里插入图片描述

在这里插入图片描述

7、查看配置文件

在这里插入图片描述

8、发现第二个flag,,并且还有靶机的数据库账号和密码

9、使用数据库的账户和密码进入数据库

在这里插入图片描述

10、先查看都有哪些数据库 show databases;

在这里插入图片描述

11、根据库名判断,drupaldb是靶机的Drupal站点使用的数据库

12、使用use drupaldb进入drupaldb数据库,查看所有表show tables;

发现一个user表,猜测可能有网站用户相关信息

在这里插入图片描述

13、select * from users\G; 显示user表中的所有数据

找到管理员账号和密码,根据密码形式可以得知密码经过了加密,

密码无法正常MD5解密

在这里插入图片描述

14、先输入quit退出数据库

在这里插入图片描述

15、Drupal 提供了可以直接修改管理员密码的方法。在 /var/www/ 下使用 php scripts/password-hash.sh tkm 即可生成 tkm 这个字符串对应的 hash 值。

在这里插入图片描述

16、再次进入到数据库中,使用 update drupaldb.users set pass="<hash值>" where name='admin' 即可修改 admin 的密码为之前生成 hash 时使用的字符串,此处为 tkm

在这里插入图片描述

17、再次查看users表里的密码值

select * from drupaldb.users\G;,这个时候密码就改成了tkm

在这里插入图片描述

18、尝试用 账户名admin 密码tkm 登录

在这里插入图片描述

成功登录,

19、尝试点击Dashboard,发现flag3.txt,进行查看

在这里插入图片描述

在这里插入图片描述

20、查看后发现文本内容中有两个特别的大写字母 permsfind ,根据此前 flag 的形式,使用 find / -name "flag*" 搜索所有开头为 flag 的文件。

在这里插入图片描述

21、成功找到 flag4.txt ,使用 cat /home/flag4/flag4.txt 进行查看。

在这里插入图片描述

22、根据 flag4.txt 中的内容,推测下一步需要进行提权,从而获得 root 权限,并访问 /root 目录,获得 flag5。

23、根据 flag3 中另外一个大写字母 perms ,猜测可能需要使用 SUID 提权,使用 find / -user root -perm -4000 -print 2>/dev/null 查找所有具有 SUID 权限且属主为 root 的文件。

在这里插入图片描述

SUID 权限:在执行过程中,调用者会暂时获得该文件的所有者权限,且该权限只在程序执行的过程中有效

在这里插入图片描述

24、发现了 find 命令,并且根据 flag3 中提到的 -exec,可以确定需要使用 find 提权。

25、使用 touch tkm 创建提权需要的文件,然后使用 find tkm -exec '/bin/sh' \; 进行提权。

在这里插入图片描述

26、成功获得 root 权限,根据提示使用 cd /root 访问 /root 目录,找到了 thefinalflag.txt ,使用 cat thefinalflag.txt 进行查看。

在这里插入图片描述

总结

    使用 nmap 找寻并扫描靶机。
    使用 MSF 的对应模块,进行漏洞利用。
    利用 Python 实现交互式 Shell。
    在数据库层面,修改 Drupal 站点的用户密码。
    SUID 提权
    find 提权

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

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

相关文章

最佳安卓数据恢复软件〔TOP 7解决方案〕

Android 现在是世界上使用最广泛的移动操作系统&#xff0c;这意味着比以往任何时候都多的 Android 用户会丢失重要数据&#xff0c;例如照片、文档和短信。幸运的是&#xff0c;Android 数据恢复软件可以提供帮助&#xff0c;使普通人无需任何专业知识即可恢复看似永久删除的数…

删除注释(力扣)

删除注释 题目 给一个 C 程序&#xff0c;删除程序中的注释。这个程序source是一个数组&#xff0c;其中source[i]表示第 i 行源码。 这表示每行源码由 ‘\n’ 分隔。 在 C 中有两种注释风格&#xff0c;行内注释和块注释。 字符串// 表示行注释&#xff0c;表示//和其右侧…

【大数据之Flume】六、Flume进阶之自定义Source

&#xff08;1&#xff09;概述&#xff1a;   Source 是负责接收数据到 Flume Agent 的组件。Source 组件可以处理各种类型、各种格式的日志数据&#xff0c;包括 avro、thrift、exec、jms、spooling directory、netcat、sequence generator、syslog、http、legacy。但是有时…

Linux 快速创建桌面图标

在安装 tar.gz 这类型压缩文件时&#xff0c;通常启动文件是.sh文件。文章主要记录快速添加到桌面图标。 1、解压 tar -zxvf XXX.tar.gz 2、创建桌面图标文件 touch XXX.desktop 3、文件中配置 [Desktop Entry] NameXXX CommentZZZ Exec/软件可执行文件所在目录/可执行文…

Python 一篇入门

目录 Python 的简介与特点 Python支持多种编程风格 解释运行 跨平台 可扩展强 可嵌入 丰富的库 Python版本选择 Python开发环境搭建 认识Python解释器 快速入门 变量和赋值 动态类型 变量命名规则 认识 "数字" 认识 "字符串" 认识 "…

【数据结构】移除链表元素-图文解析(单链表OJ题)

LeetCode链接&#xff1a;203. 移除链表元素 - 力扣&#xff08;LeetCode&#xff09; 本文导航 &#x1f4ad;做题思路 &#x1f3a8;画图更好理解&#xff1a; ✍️代码实现 &#x1f5c2;️分情况讨论&#xff1a; ❄️极端情况&#xff1a; &#x1f4ad;做题思路 遍历链表…

油画欣赏|桂林的《瑞云》

《瑞云》陈可之•2023年绘油画《瑞云》&#xff0c;运用巧妙的光影处理&#xff0c;描绘出桂林之山、水、云的大好自然风光&#xff0c;令人心旷神怡。此作品是陈可之先生游览桂林时所绘新作。阳光和煦&#xff0c;碧波清流&#xff0c;乘舟遥看山水&#xff0c;亦是人间一大乐…

深度学习——全维度动态卷积ODConv

ODConv(OMNI-DIMENSIONAL DYNAMIC CONVOLUTION)是一种关注了空域、输入通道、输出通道等维度上的动态性的卷积方法&#xff0c;因此被称为全维度动态卷积。 part1. 什么是动态卷积 动态卷积就是对卷积核进行线性加权 第一篇提出动态卷积的文章也是在SE之后&#xff0c;他提出…

前端如何打开钉钉(如何唤起注册表中路径与软件路径不关联的软件)

在前端唤起本地应用时&#xff0c;我查询了资料&#xff0c;在注册表中找到腾讯视频会议的注册表情况&#xff0c;如下&#xff1a; 在前端代码中加入 window.location.href"wemeet:"; 就可以直接唤起腾讯视频会议&#xff0c;但是我无法唤起钉钉 之所以会这样&…

2023华数杯数学建模A题思路分析 - 隔热材料的结构优化控制研究

# 1 赛题 A 题 隔热材料的结构优化控制研究 新型隔热材料 A 具有优良的隔热特性&#xff0c;在航天、军工、石化、建筑、交通等 高科技领域中有着广泛的应用。 目前&#xff0c;由单根隔热材料 A 纤维编织成的织物&#xff0c;其热导率可以直接测出&#xff1b;但是 单根隔热…

nodejs中的path.json和path.resolve的区别

nodejs中的path.json和path.resolve的区别 我们有多少次在 Node.js 项目中遇到过path.join()和path.resolve()却没有真正理解它们之间的区别&#xff1f;本文就讲解一下这两者的区别。 重要术语 首先我们先来看看几个术语&#xff0c;便于后续我们掌握这两者的差异。 字符串…

HCIP实验练习题

实验拓扑如下&#xff1a; 实验题目要求如下&#xff1a; 【1】R2为ISP&#xff0c;只能配置IP地址 【2】R1~R2之间为HDLC封装 【3】R2~R3之间为ppp封装&#xff0c;pap认证&#xff0c;R2为主认证方 【4】R2~R4之间为ppp封装&#xff0c;chap认证&#xff0c;R2为主认证方…

2023年华数杯数学建模C题思路 - 母亲身心健康对婴儿成长的影响

# 1 赛题 C 题 母亲身心健康对婴儿成长的影响 母亲是婴儿生命中最重要的人之一&#xff0c;她不仅为婴儿提供营养物质和身体保护&#xff0c; 还为婴儿提供情感支持和安全感。母亲心理健康状态的不良状况&#xff0c;如抑郁、焦虑、 压力等&#xff0c;可能会对婴儿的认知、情…

Java包装类(自动拆装箱)

包装类 为什么要有包装类&#xff1f; 在面向对象中&#xff0c;“一切皆为对象”&#xff0c;但是基本数据类型不符合这一理念&#xff0c;为了让基本类型也称为对象 便于类型之间的转化&#xff0c;数据类型之间的基本操作 转换方式&#xff1a; int ——> Integer ne…

软件第三方测评机构简析,软件检测证明材料的作用和意义

软件检测证明材料是由信息产业部授权或省级软件产业主管部门认可的软件第三方测评机构出具的检测证明材料&#xff0c;对于用户来说非常重要&#xff0c;是从软件的开发过程、测试结果和用户评价等方面来判断软件的质量和安全性&#xff0c;它可以帮助用户判断软件的质量和安全…

【c++】rand()随机函数的应用(二)——舒尔特方格数字的生成

目录 一、舒尔特方格简介 二、如何生成舒尔特方格 &#xff08;一&#xff09;线性同余法 1、利用线性同余法生成随机数序列的规律 (1) 当a和c选取合适的数时&#xff0c;可以生成周期为m的随机数序列 (2) 种子seed取值也是有周期的 2、利用线性同余法生成5阶舒尔特方格…

IIC子系统-实现si7006温湿度传感器采集温湿度功能

1.将IIC核心层和总线驱动层配置进内核 *********************配置核心层*************************1.找到核心层代码目录&#xff1a;内核顶层目录/drivers/i2c2. 内核顶层目录执行make menuconfig3. > Device Drivers > I2C support ->-*-I2C support4.保存退出***…

Java进阶——数据结构与算法之哈希表与树的入门小结(四)

文章大纲 引言一、哈希表1、哈希表概述2、哈希表的基本设计思想3、JDK中的哈希表的设计思想概述 二、树1、树的概述2、树的特点3、树的相关术语4、树的存储结构4.1、双亲表示法4.2、孩子兄弟表示法&#xff1a;4.3、孩子表示法&#xff1a;4.4、双亲孩子表示法 三、二叉树1、二…

ThreadPoolExecutor详解(上)

为什么会有线程池&#xff1f; 如果客户端发一个请求&#xff0c;服务端就创建一个线程接收请求&#xff0c;线程资源是有限的&#xff0c;而且创建一个线程和执行结束之后都要调用操作系统资源销毁线程&#xff0c;这样频繁操作肯定非常占用cpu和内存资源&#xff0c;线程池的…

性能测试 —— “问题分析”

性能测试大致分以下几个步骤&#xff1a; 需求分析 脚本准备 测试执行 结果整理 问题分析 今天要说的是最后一个步骤——“问题分析”&#xff1b; 需求描述 有一个服务&#xff0c;启动时会加载一个1G的词表文件到内存&#xff0c;请求来了之后&#xff0c;会把请求词去…