提权命令_利用Linux文本操作命令ed进行提权

本文我将为大家介绍一个面向行的文本编辑器命令“ed”,它主要用于生成,显示,更改和操作文本文件。所有ed命令都在行或行范围内执行操作;例如,“d”命令删除行;“m”命令移动行,“t”命令复制行等等。现在,我们要做的就是利用这些“ed”命令,来提升我们在Linux系统上的用户权限。

ed 概要

Linux中的ed命令用于启动“ed文本编辑器”,这是一个基于行的文本编辑器。它是Linux中功能最简单的文本编辑程序,一次仅能编辑一行而非全屏幕方式的操作。它可以帮助用户执行许多操作,如创建,编辑,显示和操作文件。

它有两种不同的工作模式,命令模式(command mode)和输入模式(input mode)。在命令模式下,“ed”从标准输入读取命令并执行,以操作编辑器缓冲区的内容,而在输入,如“m”(移动),“d”(删除),“t” (复制)或“c”(更改)命令时,ed就会进入其输入模式。

键入help命令以了解有关“ed”的更多信息。

ed --help 
b6ce237325d7e4de970bd84907f1d933.png

使用ed初始化文件:在初始阶段运行命令时终端空间如下图所示。默认情况下,编辑器创建一个要写入的空缓冲区,类似于其他基于命令行的编辑器,在没有文件名的情况下调用时的工作方式。

ed
36f05d6e399a9e1a6c705889790d8496.png

现在,让我们来创建一个包含文本内容的文本文件。首先,我们输入a进入输入模式,完成编辑后输入一个点(.)然后回车回到命令模式。按wq文件名保存新文件,再按q退出编辑器。

eda.w info.txtqcat info.txt

你可以使用“cat”命令确认文件是否已被成功创建。

4ef0057c4732afa9060647538868e0ad.png

使用ed编辑文件:如果现在你想要再次编辑同一文件,你可以通过将文件名作为参数传递给ed命令,然后按照以上相同过程操作即可。

在下图中,我在我的文件“info.txt”中添加了一行,并通过相同的方式创建了它。

ed info.txt

注:无论何时使用ed命令的任何选项你都需要使用 ‘a’, ‘.’, ‘w’, ‘q’命令 。

aed182601462870aa2313bd734e9e444.png

现在,我们已经学习了使用ed的基本编辑方法。那么如果我们想要更改特定行,该如何使用ed来实现该操作呢?

在下图中,我为大家展示了如何使用’p'和’n'参数打印任何的特定行

当我们输入’p'(小写) 打印当前行,如输入 ‘,p’(不含引号) 则显示全文;’n'用于显示最后一行的行号和内容,输入数字来选择要编辑行;

ed info.txtp

因此,我们只需输入相应的行号即可。

n25

定位到相应的行后,你可以通过输入“c”命令来更改行。例如,这里我更改了第5行,这是我文件中的最后一行,我添加了一些额外的内容在其中,并使用’cat’命令查看我的内容是否已成功被添加,最后按照上述相同的过程保存文件即可。

ccat info.txt
4ab9eadef026e75507269e0ea94f9434.png

通过使用ed显示错误消息:当你键入ed无法理解的内容时会显示问号 (?)。了解更多有关错误编辑的信息,只需键入’h'即可。

ed info.txtbh

从以下截图中可以看到,当我输入了一个’b'选项时它返回了(?),这是表示错误的符号。而我输入’h’ ed则更进一步的向我说明了错误的原因,即选项b为未知命令。

30807e5f5dbada61adfd7de1d3f37303.png

ed复制和移动操作:除了上面讨论的功能之外,ed还提供了在其他位置复制和粘贴行的选项,在这种情况下,我们使用’t'命令复制行,’m'命令移动行。你需要在t命令前添加你想要复制和添加行的行号。例如,如下所示,我已将第5行复制到位置0并进行了保存。

ed info.txt5t0cat info.txt

在上述命令中,5表示要复制的行,0表示粘贴位置的行号。

e6a43b3832a960b17e4131e6b57807c9.png

ed搜索操作:我们也可以按关键字搜索任意的行。首先,我们在ed后使用“-p%”选项,这将进一步的提示你搜索任务。我们只需在%后跟搜索关键字,按Enter键即可。

ed -p% info.txt%/misconfiguration%/Linux

在下图中,ed仅打印了那些包括搜索关键字misconfiguration和Linux的行。

59f984ffd3da19f1354dc6c7afe00917.png

滥用 ed 命令

现在,我们将利用ed命令执行提权操作。为此,我们需要设置具有管理权限的ed command lab。然后,我们将查看获取sudo权限后对它的影响,以及我们如何更多地将其用于提权。

如下图所示,我创建了一个拥有所有sudo权限的本地用户(test)。

要添加sudo权限请打开/sudoers文件,并输入以下行作为用户权限规范。

test All=(root) NOPASSWD: /bin/ed
28ed4a30e3ed4f4d97392ce904dd6a6d.png

利用 Sudo 权限

我们需要受害者机器的会话,这将有助于我们让本地用户访问目标系统,并通过它提升为root用户权限。

首先,我们使用ssh连接到目标机器。键入以下命令以通过本地用户登录获取访问权限。

ssh test@192.168.1.31

然后我们查找具有sudo权限的“test”用户,发现用户“test”可以在没有密码的情况下以“root”权限执行ed命令。

sudo -l

在知道了test用户拥有sudo权限的事实后,我们可以使用ed命令访问空缓冲区来调用bash /sh shell。如下所示,我们的用户权限已被提升为了root。

3101b7417366cf21636c3037a6d5058d.png

*参考来源:hackingarticles,FB小编secist编译,转自FreeBuf.COM

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

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

相关文章

接口有个电池标志_有人说手机快充毁电池,真的假的?电池快充的原理是什么?...

出门只带一部手机,已成为多数人的生活现状,电池作为手机的心脏,最怕的就是找不到地方“补充能量”但越来越先进的手机“快充”技术,让“充电5分钟,通话2小时”逐渐成为了现实。那么用手机快充时,充电头和充…

10进制转换16进制补足0_信息技术教师资格必考内容——进制换算(一)

前两天给大家整理了信息技术教师资格笔试科目三的必考内容,戳蓝字回顾弄懂这些,信息技术教师资格笔试提高30分!信息技术教师资格笔试——这道20分的题居然这么简单!有小伙伴问还有哪些必考内容进制换算也是必考内容,来…

mysql中正则表达式的用法_mysql之正则表达式的用法

正则表达式用来匹配文本的特殊字符集合格式:在where查询中使用regexp关键字,后面接正则表达式字符正则表达式与like的区别like匹配整列数据regexp可以匹配列中任意位置的字符,更加灵活,更强大。用like模糊匹配,查询字段…

mysql more命令_more命令

more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字…

mysql 如何添加索引_MySQL如何创建一个好索引?创建索引的5条建议【宇哥带你玩转MySQL 索引篇(三)】...

MySQL如何创建一个好索引?创建索引的5条建议过滤效率高的放前面对于一个多列索引,它的存储顺序是先按第一列进行比较,然后是第二列,第三列...这样。查询时,如果第一列能够排除的越多,那么后面列需要判断的行…

mysql的存储引擎详解_MySQL常见存储引擎详解

通过执行show engines命令查看MySQL中支持哪些存储引擎MySQL存储引擎属性对比设置表的存储引擎的方法在my.cnf配置文件中设置default-storage-engine参数表示设置默认存储引擎在MySQL的连接上设置当前连接的默认存储引擎mysql> set default_storage_engineinnodb;创建表的时…

mysql锁场景_MySQL死锁系列-常见加锁场景分析

在上一篇文章《锁的类型以及加锁原理》主要总结了 MySQL 锁的类型和模式以及基本的加锁原理,今天我们就从原理走向实战,分析常见 SQL 语句的加锁场景。了解了这几种场景,相信小伙伴们也能举一反三,灵活地分析真实开发过程中遇到的…

kubectl logs -f tail 显示100_系统管理员应该知道的9个kubectl命令

kubectl是Kubernetes的一个命令行管理工具,可用于Kubernetes上的应用部署和日常管理。本文列举了9个常见的kubectl命令,并对每个命令进行了简单扼要的介绍,供大家参考。同时,大家也可以通过文中连接获取更详细的介绍。如今&#x…

机器视觉技术及应用_工业机器人视觉技术的应用前景

工业机器人和视觉相当于拥有一双“眼睛”,可以更灵活地完全代替人类的工作。工业机器人视觉分为二维和三维。通过三维视觉,可以对物体进行三维扫描,获得物体的三维信息。通过精确的算法定位,可以更准确的控制生产过程中材料的使用…

mysql setup w_MySql的安装及配置详细指引!

一、安装My Sql数据库1.1,首先下载MySQL与HeidiSQL工具,双击打开后可以看到名为”mysql-5.0.22-win32 Setup.exe”的安装程序,双击执行该程序。1.2,打开安装向导后,单击”Next”继续下一步。1.3 选择安装类型,如果没有…

mysql安装下载的缓存文件_mysql的安装

linux版ubuntu安装mysql从官方提供的mysql-apt-config.deb包进行APT源设置下载完成以后,默认apt源保存在了Downloads目录下。通过终端切换目录到Downloads目录下执行一下命令:cd Downloads/sudo dpkg -i mysql-apt-config_0.8.12-1_all.deb按下方向键选择…

python3.0实例_python3.0 模拟用户登录,三次错误锁定的实例

python用户登录三次锁定怎么修改1.normal_user是存放用户id及密码的文件 2.lock_file是存放被锁定的用户id的文档,默认为空. 3.程序会对normal_user里的合法用户id进行判断,若连续输入用户id错误达三次程序直接退出. 4.程序会输入对正确用户名后的密码进行判断,输入密码有3次机…

安卓9与10的系统要求_代码开源!支持RISC-V架构的安卓系统终于来了!

文章来源:芯片开放社区,作者:OCC编辑万里征途迈出第一步,基于RISC-V的安卓10系统来了。点击链接查案演示视频: 平头哥芯片开放社区(OCC)​occ.t-head.cn今天,平头哥完成了安卓10对RISC-V的移植并开源了全部…

trie树 mysql_Trie树详解(转)

特别声明本文只是一篇笔记类的文章,所以不存在什么抄袭之类的。以下为我研究时参考过的链接(有很多,这里我只列出我记得的):1、字典树的概念字典树,因为它的搜索快捷的特性被单词搜索系统使用,故又称单词查找树。它是一…

mysql 主键 最佳实践_设计套路:Mysql主键的选取

最近在对一些大表进行优化,发现主键和索引设计都有争议,就此从原理上分析主键设计该如何选取。Mysql的数据结构Mysql是由B树构成,搞清楚下面两个问题,就知道为什么用B树了。1.BTree是为磁盘或者其他直接存取辅助设备而设计的一种平…

java tostring格式化日期_java日期格式化SimpleDateFormat的使用详解

日期和时间格式由 日期和时间模式字符串 指定。在 日期和时间模式字符串 中,未加引号的字母 A 到 Z 和 a 到 z 被解释为模式字母,用来表示日期或时间字符串元素。文本可以使用单引号 () 引起来,以免进行解释。所有其他字符均不解释&#xff1…

ul 原点显示_CSS+HTML ul li列表原点如何相连

方案一:html参与考试《第一期模拟考试》3小时50分钟学习文档《LDO电路设计规范》3小时50分钟学习文档《LDO电路设计规范》3小时50分钟Css:*{margin:0;padding:0;}ul{margin:100px;padding:0;list-style: none;}ul li{position:relative;padding-left: 30px;padding-bottom: 20p…

java并发执行一个方法_JAVA的执行并发原理

VolatileVolatile关键字用于确保共享数据的可见性与有序性,但是并不能保证方法的原子性,在程序中对Volatile关键字使用得当的话,它比synchronized的使用和执行成本会更低,因为他不会引起线程的上下文切换和调度。先讲一下重排序&a…

java.util. 什么意思_java.util中,util是什么意义

展开全部1. util包的框架常用的集合类主要636f70793231313335323631343130323136353331333431343630实现两个“super接口”而来:Collection和Map。1.1 Collection有两个子接口:List和SetList特点是元素有序,且可重复。实现的常用集合类有Arra…

java测试用例编写_TestNG测试用例编写和执行

编写TestNG用例测试基本上包括以下步骤:编写业务逻辑针对业务逻辑中涉及的方法编写测试类,在代码中插入TestNG的注解直接执行测试类或者添加一个testng.xml文件运行 TestNG.下面我们介绍一个完整的例子来测试一个逻辑类;1.创建一个pojo类Empl…