[Vulnhub靶机] DriftingBlues: 4

[Vulnhub靶机] DriftingBlues: 4靶机渗透思路及方法(个人分享)

靶机下载地址:

https://download.vulnhub.com/driftingblues/driftingblues4_vh.ova


靶机地址:192.168.67.23

攻击机地址:192.168.67.3


一、信息收集

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

arp-scan -I 指定网卡 -l

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

nmap -sV -O 靶机地址

        -sV        探测主机服务版本

        -O         识别主机操作系统

3.访问网站,发现页面没有有用回显,查看网页源代码,发现了一串 base64 加密值,尝试对其进行解密,讲过多次解密后获得 /imfuckingmad.txt 文件

4.访问 /imfuckingmad.txt 文件,获得了一串 Brainfuck 编码,对其进行解密,获得了一个图片地址

Brainfuck编码在线解密地址:Brainfuck/Ook! Obfuscation/Encoding [splitbrain.org]

5.访问图片地址,发现是一个二维码图片,我们利用QR_Research工具(CTF中杂项会使用到的一个扫描二维码的工具)对二维码图片进行扫描,获得一个网址https://i.imgur.com/a4JjS76.png

6.访问网站图片https://i.imgur.com/a4JjS76.png(起初以为和先前的题目一样需要修改hosts文件,但后面访问后发现无法成功访问,重新查看给的网址,发现网址用的https协议,原来之前理解错了意思,题目想让我们访问真正的网站。而且正常访问访问不了,需要挂代理),得到了四个用户名

二、漏洞利用

1.利用得到的用户名创建一个usernames.txt文件,作为用户字典。使用 hydra 工具尝试暴力破解ssh和ftp服务,发现ssh服务没有爆破成功,成功爆破了ftp服务,得到了用户名/密码(luther/mypics)

hydra -L usernames.txt -P /usr/share/wordists/rockyou.txt 192.168.67.23 ssh

        -L              指定用户字典的路径

        -P              指定密码字典的路径

        ssh            用于暴力破解SSH服务器
        ftp              用于暴力破额FTP服务器

/usr/share/wordists/rockyou.txt 是kali系统自带的密码文件,默认是个压缩包需要自行解压

2.使用爆破得到的用户名/密码登录ftp服务,成功登录,并发现了sync_log文件和hubert目录,使用 get 命令将sync_log文件下载,进行查看,发现没有什么有用的信息

通过sync_log文件的命令来推断,该文件可能是sync的日志文件。sync是一个系统调用,它将所有文件系统缓冲区中的数据立即写入磁盘。这样做的目的是确保数据的持久性存储,避免因为异常情况(如系统崩溃)导致数据丢失或损坏。当我们使用sync命令时,操作系统会将内存中未写入磁盘的数据强制刷新到磁盘上,以确保数据的一致性。

3.查看分析hubert目录,发现该目录中没有任何文件,但是通过之前的查看的属主和属组跟其他文件的不一样,想起来我们的用户字典中有一个hubert用户,猜测该目录是hubert的用户目录。因为该文件的权限是所有人可读可写可执行,所以我们可以通过上传密钥文件来登录ssh

三、远程登录

1.使用 ssh-keygen 工具生成公密钥,并将生成的密钥保存到 /root/.ssh/ 目录下

ssh-keygen -t rsa

        -t        指定生成的密钥类型,默认为RSA类型

2.将公钥文件的内容输出到authorized_keys文件内,利用ftp服务在hubert目录下创建.ssh目录,并将authorized_keys文件上传到该目录内

3.利用私钥进行ssh远程连接到靶机,成功访问

四、提权

两种提权方式:

        第一种:利用root用户会定期执行python脚本来进行提权

        第二种:利用命令劫持进行提权

第一种提权方法:

1.在成功登录后习惯性使用 ls 命令查看当前目录下的文件,发现一个属主和属组都是root用户的python脚本文件emergency.py。查看该文件的内容,发现该脚本利用python语言执行了系统命令

2.查看 emergency.py 脚本中执行写入'1'命令的 /tmp/backdoor_testing 文件,发现执行了多次该命令,猜测root用户会定期执行emergency.py 脚本来执行写入命令

3.在攻击机打卡nc监听

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

        -l             开启监听

        -v            显示详细输出

        -p            指定监听端口

4.因为之前查看我们发现该文件的其他人不可以写入,所以我们要删除该文件,重新创建一个新的emergency.py文件,来编写文件内容进行shell反弹

5.等待root用户执行emergency.py文件,成功反弹shell,并且shell是root权限,同时可以利用python中的 pty模块 的创建交互式shell

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

        -c        在命令行中调用python代码

pty.spawn() 函数是pty模块中的一个函数,用于创建一个子进程,并将其连接到一个伪终端。通过这个伪终端,我们可以与子进程进行交互,就像在控制台上一样。

第二种提权方法:

1.使用 find 命令寻找suid程序,发现一个可疑程序/usr/bin/getinfo

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.执行该程序,根据执行结果发现分别运行了ip addr、cat /etc/hosts、uname -a命令

3.可以通过修改环境来进行命令劫持提权

通过修改环境变量让getinfo在调用命令调用到我们伪造的ip命令(在检索环境时会先调用最前面的环境也就是最新写入的环境),来达到提权的效果

export PATH=/tmp/:$PATH             把/tmp路径写入到系统路径中

echo $PATH                                   输出系统路径

cd /tmp

echo '/bin/bash' > ip                       把/bin/bash写入到ip文件中(相当于创建ip并写入/bin/bash)

chmod +x ip                                    给ip文件增加执行权限

4.再次运行getinfo,成功提权至root权限

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

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

相关文章

使用secure+xming通过x11访问ubuntu可视化程序

windows使用securexming通过x11访问ubuntu可视化程序 windows机器IP:192.168.9.133 ubuntu-desktop20.04机器IP:192.168.9.190 windows下载xming并安装 按照图修改xming配置 开始->xming->Xlaunch 完成xming会在右下角后台运行 windows在sec…

20240203在WIN10下使用GTX1080配置stable-diffusion-webui.git不支持float16精度出错的处理

20240203在WIN10下使用GTX1080配置stable-diffusion-webui.git不支持float16精度出错的处理 2024/2/3 21:23 缘起:最近学习stable-diffusion-webui.git,在Ubuntu20.04.6下配置SD成功。 不搞精简版本:Miniconda了。直接上Anacoda! …

SpringBoot之事务源码解析

首先事务是基于aop的,如果不了解aop的,建议先去看下我关于aop的文章: Spring之aop源码解析  先说结论,带着结论看源码。首先,在bean的生命周期中, 执行实例化前置增强,会加载所有切面并放入缓存&#xff0…

汉字拼音桥接交流与传承的关键

汉字拼音,一种基于拉丁字母为汉字标注读音的发音指导系统,自20世纪50年代推广以来便成为学习汉语的基石。这种独特的拼写系统不仅在汉语的教育与学习领域起到不可替代的作用,而且对文化的传承、科技的进步以及国际交流都产生了深远的影响。 汉…

MFC实现遍历系统进程

今天我们来枚举系统中的进程和结束系统中进程。 认识几个API 1)CreateToolhelp32Snapshot 用于创建系统快照 HANDLE WINAPI CreateToolhelp32Snapshot( __in DWORD dwFlags, //指定快照中包含的系统内容__in DWORD th32P…

如何使用CLZero对HTTP1.1的请求走私攻击向量进行模糊测试

关于CLZero CLZero是一款功能强大的模糊测试工具,该工具可以帮助广大研究人员针对HTTP/1.1 CL.0的请求走私攻击向量进行模糊测试。 工具结构 clzero.py - 工具主脚本; default.py - 包含了大多数标准攻击测试方法和字符; exhaustive.py - 包…

微信公众号接入智能聊天机器人

微信公众号免费接入智能聊天机器人 准备物料操作步骤1.准备1个域名2.讯飞星火认知大模型3.github帐号4.vercel1.登录[vercel](https://vercel.com/login),使用github帐号登录2.创建一个新应用,通过github导入(它会自动拉取github仓库的项目)3.添加domains 5.微信公众…

【MySQL】学习和总结DCL的权限控制

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-Bl9kYeLf8GfpdQgL {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

k8s-项目部署案例

一、容器交付流程 在k8s平台部署项目流程 在K8s部署Java网站项目 DockerFile 如果是http访问,需要在镜像仓库配置可信任IP 三、使用工作负载控制器部署镜像 建议至少配置两个标签 一个是声明项目类型的 一个是项目名称的 继续配置属性 资源配额 健康检查 五、使…

堆排序-Python实现

简述 堆排序(Heap Sort)是一种基于比较的排序算法,它利用堆这种数据结构所设计的一种排序算法。堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。 堆 堆排…

JCIM | MD揭示PTP1B磷酸酶激活RtcB连接酶的机制

Background 内质网应激反应(UPR) 中的一个重要过程。UPR是由内质网中的三种跨膜传感器(IRE1、PERK和ATF6)控制的细胞应激反应,当内质网中的蛋白质折叠能力受到压力时,UPR通过减少蛋白质合成和增加未折叠或错…

零基础学Python(8)— 流程控制语句(上)

前言:Hello大家好,我是小哥谈。流程控制语句是编程语言中用于控制程序执行流程的语句,本节课就带大家认识下Python语言中常见的流程控制语句!~🌈 目录 🚀1.程序结构 🚀2.最简单的if语句 &a…

论 Scratch 版“愤怒的小鸟”的资源(10000 余块代码)

资源链接 “愤怒的小鸟”资源:https://download.csdn.net/download/leyang0910/88820527 游戏 SJA 分析及:角色数量:12,素材数量:214,积木数量:1442,音频数量:11 “愤怒…

【复现】万户 ezOFFICE SQL注入漏洞_42

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一: 四.修复建议: 五. 搜索语法: 六.免责声明 一.概述 万户ezOFFICE协同管理平台分为企业版和政务版。 解决方案由五大应用、两个支撑平台组成,分别为知识管理、工作流程、沟…

考研数据结构笔记(5)

单链表的查找 按位查找(O(n))按值查找(O(n))单链表长度(O(n))小结 基于带头结点的代码 按位查找(O(n)) 按值查找(O(n)) 单链表长度(O(n)) 小结

牛客网SQL进阶137:第二快/慢用时之差大于试卷时长一半的试卷

官网链接: 第二快慢用时之差大于试卷时长一半的试卷_牛客题霸_牛客网现有试卷信息表examination_info(exam_id试卷ID, tag试卷类别,。题目来自【牛客题霸】https://www.nowcoder.com/practice/b1e2864271c14b63b0df9fc08b559166?tpId240 0 问题描述 试…

EMQX Enterprise 5.3 发布:审计日志、Dashboard 访问权限控制与 SSO 一站登录

EMQX Enterprise 5.3.0 版本已正式发布! 新版本带来多个企业特性的更新,包括审计日志,Dashboard RBAC 权限控制,以及基于 SSO(单点登录)的一站式登录,提升了企业级部署的安全性、管理性和治理能…

[算法前沿]--061-生成式 AI 的发展方向,是 Chat 还是 Agent?

什么是AI Agent (LLM Agent) AI Agent 的定义 AI Agent是一种超越简单文本生成的人工智能系统。它使用大型语言模型(LLM)作为其核心计算引擎,使其能够进行对话、执行任务、推理并展现一定程度的自主性。简而言之,Agent是一个具有…

互联网加竞赛 基于深度学的图像修复 图像补全

1 前言 🔥 优质竞赛项目系列,今天要分享的是 基于深度学的图像修复 图像补全 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-se…

JMeter测试工具(性能篇)

自动化脚本 设置全局变量 断言 接口弱压力测试 模拟半小时之内1000个用户访问服务器资源,要求平均响应时间在3000ms内,且错误率为0 模拟100个用户同时访问服务器资源,要求平均响应时间在3000毫秒内,且错误率为0 高并发 模拟2个…