通过 SUID 提权
【实验目的】
攻击端通过查找到具有特殊权限的二进制文件,将普通用户权限提升为 root 权限。
【知识点】
SUID、MobaXterm。
【实验原理】
SUID 是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限,若是对一些特殊命令设置了 SUID,那么将会有被提权的风险,常用的 SUID 提权命令有nmap、vim、find、bash、more、less、nano 和 cp 等。
当 s 出现在文件所有者的 x 权限时,被称为“Set UID”,简称为 SUID。
SUID 对一个文件的限制与功能包括以下几点:
(1)SUID 仅对二进制有效
(2)执行者对于该程序需要有 x 的可执行权限
(3)本权限仅在程序的执行过程中有效
(4)执行者具有该程序所有者(user)的权限
SUID 按照八进制为 4,SGID 为 2,SBIT 为 1,在普通权限前一位,比如 4777,其实就是 rws-rwx-rwx,具有
SUID 权限的文件所属者 X 变为 S。
本实验通过弱口令获取普通用户权限,利用 MobaXterm 中 SSH 远程连接服务端,使用 find 命令查找特殊权限,
利用具有 SUID 特殊权限的 find 文件进行提权。
【实验设备】
主机终端:CentOS7 主机1 台、Windows7 主机1 台。
【软件工具】
MobaXterm
【实验拓扑】
实验拓扑如图所示。

【实验思路】
信息收集。
提权。
【实验步骤】
1. 信息收集
(1) 登录拓扑图左侧的攻击端主机,用户名/密码:administrator/com.1234。双击桌面左侧 MobaXterm 图标,打开此工具,如图所示。

(2) 进行 SSH 远程连接 Ubuntu 服务端。点击上方菜单栏 Session,弹出 Session settings 对话框。单击SSH菜单,在 Remote host *右侧文本框内输入目标主机地址192.168.1.10,选中 Specify username 左侧的单选框,在右侧的文本框内输入 mark,输入完毕后,单击下方 OK 按钮,完成设置,如图所示。

(3) 单击 OK 后,切换至命令行界面,输入 mark 用户弱密码 123456(密码不会显示),按下回车后弹出对话框,单击 No 按钮不保存密码,如图所示。远程连接成功,如图所示。


(4) 执行 whoami、id 等命令,确定用户 mark 为普通用户,其 UID 为 1000(UID 大于 499 小于 65535 为普通用户),如图所示。

(5) 查找具有SUID权限的文件。执行命令find / -user root -perm -4000 -exec ls -ldb {} \ ;,利用find找到有SUID权限(SUID 按 8 进制为 4)的文件并使用 ls 命令列出,执行后发现列出了很多文件,但和【实验原理】模块中叙述的所常用的文件对比来看,只能用find这个文件进行提权,如图所示。

2. 提权
(1) find 文件所属者和所属组都为 root 用户,使用 find 命令可以执行其它的系统命令,因此可以使用 find 命令运行 whoami 查看当前用户。执行命令 cd /tmp,切换目录。创建任意文件,这里执行命令 touch 1,创建文件 1。
执行命令 find 1 -exec whoami ;利用 find 命令查找名为 1 的文件,执行 whoami 命令,如图所示,当前用户为 root,
从而提升权限成功。

(2) 或者查看 shadow 文件(shadow 文件只有 root 用户可以查看)有更明显的对比。执行命令 cat /etc/shadow,执行被拒绝。再执行命令 find 1 -exec cat /etc/shadow ;,成功查看 shadow 文件,如图所示,成功提权。

已在FreeBuf发表 0 篇文章
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf
客服小蜜蜂(微信:freebee1024)


