之前 红队视角下Linux信息收集 中提到过提权的信息收集命令,但没有细讲。本篇文章将着重于各种linux提权手段,总结提权的条件和原理。
简单总结一下,红队的常规提权手段有:
按照上面提权的手段,梳理一下需收集的系统信息:
信息的命令都可以在之前的 红队视角下Linux信息收集 一文中找到,这里不再重复,简单介绍下sudo和suid、sgid。
sudo 命令以其他身份来执行命令,预设的身份为 root。在 /etc/sudoers 中设置可执行 sudo 指令的用户。若未经授权的用户企图使用 sudo,管理员随即收到警告邮件。用户使用 sudo 时,必须先输入密码,仅有5分钟的有效期限,超过期限则必须重新输入密码。
执行原理很简单:普通用户执行命令 -> 检查 /var/db/sudo/ 目录下是否有用户时间戳 -> 检查 /etc/sudoers 配置文件,用户是否有 sudo 权限 -> 执行 sudo 命令并反回结果 -> 退出 sudo 返回普通用户 shell 环境。
配置 sudo 必须通过编辑 /etc/sudoers 文件,而且只有超级用户才可以修改它,还必须使用 visudo 编辑。之所以使用 visudo 有两个原因,一是它能够防止两个用户同时修改,同时能够进行有限的语法检查。所以,即使只有一个超级用户,也最好用 visudo 来检查一下语法。
sudo 为安全考虑得很周到,不仅可以记录日志,还能在有必要时向系统管理员报告。但是,sudo 的日志功能不是自动的,必须由管理员开启。这样来做:
touch /var/log/sudo
vi /etc/syslog.conf
local2.debug /var/log/sudo
重启日志守候进程,这样,sudo 就可以写日志了。
-rwsr-xr-x
|
SUID 程序
当 s 出现在文件拥有者的 x 权限上时,如我们上面看到的 /usr/sbin/pppd 这个文件的权限为 -rwsr-xr--,此时就被称为 SET UID 简称 SUID.SUID 对于一个文件有什么限制和功能呢?
例如普通用户用 passwd 修改自己的命令,实际上最终更改的是 /etc/passwd 文件. 此文件时用户管理配置文件,只有 root 权限才能更改.
既然是 root 用户才拥有此权限,为什么我们可以通过 passwd 命令来修改密码呢,那这就要归功于 passwd 设置了 suid 权限位了.普通用户通过执行 passwd 命令,临时拥有 root 权限,间接的修改 /etc/passwd,以达到修改自己密码的权限.
当 s 出现在目录或文件所属群的 x 权限上时,此时就称为 SET GID 简称 SGID,那 SGID 对文件和目录分部有哪些功能呢?
SGID 对目录
SGID 对文件
如上,梳理一下收集的软件信息:
查看版本的命令一般都是 -V
sudo -V
mysql -V
select User, host from mysql.user;
查询数据库用户比较简单,一般登录上去就是udf提权了,基本不会查看其他用户。
pdbedit -L
cat /etc/vsftpd/vsftpd.conf
查看ftp的配置信息,需注意是否有匿名访问权限及用户配置目录。
测出来的大多是vm机器或者exsi机器,docker机器也占相当
dmesg | grep -i VM & grep -i virtual
dmidecode -s system-product-name
systemd-detect-virt
virt-what
本文从软件和系统两个方面梳理了linux提权手段,并总结了sudo、suid和sgid的原理,具体利用手段没有涉及。
本文作者 r0fus0d
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。