常规提权手法

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直接进行爆破

 

 

posted @ 2020-03-24 10:20  隐念笎  阅读(630)  评论(0编辑  收藏  举报