常规提权手法
1、计划任务提权法:
进入机器后,寻找root,通过查看/etc/crontab,或者/etc/cron.*中的计划任务,看是否存在root权限调用的计划任务,如果这些计划任务的脚本可以被任意用户修改,可以通过在这些计划任务中增加提权脚本进行提权
2、命令截断提权:
假设某程序如下代码,其中system中的命令为可控字符串传参,根据bash命令语法,可通过 ';'进行命令截断。如";/bin/bash;echo"。这样system中执行的命令就变成了"/bin/echo;/bin/bash;echo is cool"。可以通过suid位,执行/bin/bash,从而提权成功;
#include <stdlib.h> #include <unistd.h> #include <string.h> #include <sys/types.h> #include <stdio.h> int main(int argc, char **argv, char **envp) { char *buffer; gid_t gid; uid_t uid; gid = getegid(); uid = geteuid(); setresgid(gid, gid, gid); setresuid(uid, uid, uid); buffer = NULL; asprintf(&buffer, "/bin/echo %s is cool", getenv("USER")); printf("about to call system(\"%s\")\n", buffer); system(buffer); }
3、信息搜集提权法
进入某系统后,可以对本机做详细信息搜集,可能有意外收获,比如本机或其他机器的ssh公私钥,包含有密码文件的信息,用来辅助提权
4、检查/etc/passwd中是否直接保存密码,是的话可以通过john直接进行爆破