Как AYYILDIZ TEAM сломали мой блог

Автор: Admin | 04.07.2014
2 комментария | 1 210 views

В данной заметке представлена попытка сбора информации о взломе и анализ проникновения.

Захожу намедни в блог и вижу заголовок «Hacked by AYYILDIZ TEAM» со следующим содержимым:
fuck

Анамнез
За день до происшествия сменил пароль от админки блога на более слабый и создал одноименного системного пользователя с тем же паролем, чтобы дать доступ веб разработчику до FTP и админки. Так же, в этот же день заходил на сервер по SSH уже со слабым паролем и с чужого айфона при помощи программы zatelnet, пароль набирал сам. Под рутом залогиниться не смог, т.к. не смог набрать сложный пароль на клавиатуре смартфона. Логи по этим входам присутствуют.

Анализ
Судя по логам, в систему взломщики так и не попали, как не заходили и на FTP, хотя могли. И да, зайти и почистить логи тоже не могли, т.к. sudo не стоит, пароль у root сложный и последнее ядро без данной уязвимости.
Права на файлы и каталоги сайта, на момент взлома, были такими:

cd /var/www/site
ls -l
-rw-rw-rw- 1 www-data admin 4897 Июн 30 13:41 wp-config.php
...
drwxr-xr-x 9 www-data admin 4096 Июн 28 00:34 wp-admin
...

Итак, взломщики зашли только в админку сайта, к которой либо подобрали, либо знали пароль. Однако, подбирать было бы проблематично, т.к. стоит плагин Captcha (free)
В phpmyadmin заходов не было, опять же судя по логам.

Apache access.log

Злоумышленник зашел на страницу авторизации:

216.185.38.178 - - [29/Jun/2014:15:17:39 +0700] "GET /wp-login.php HTTP/1.1" 200 3911 "-" "Mozilla/5.0 (Linux; U; Android 2.2) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"

В течении минуты сделал 34 запроса на авторизацию (видимо в обход капчи):

216.185.38.178 - - [29/Jun/2014:15:17:40 +0700] "POST /wp-login.php HTTP/1.1" 200 4234 "https://notessysadmin.com/wp-login.php" "Mozilla/5.0 (Linux; U; Android 2.2) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"

и затем получает доступ к админке:

216.185.38.178 - - [29/Jun/2014:15:18:22 +0700] "POST /wp-login.php HTTP/1.1" 302 919 "https://notessysadmin.com/wp-login.php" "Mozilla/5.0 (Linux; U; Android 2.2) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"
216.185.38.178 - - [29/Jun/2014:15:18:22 +0700] "GET /wp-admin/ HTTP/1.1" 200 94736 "-" "Mozilla/5.0 (Linux; U; Android 2.2) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"

Уже через 30 секунд производится вход с другого IP:

216.185.45.88 - - [29/Jun/2014:15:18:45 +0700] "GET /wp-login.php HTTP/1.1" 200 2033 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Dragon/33.1.0.0 Chrome/33.0.1750.152 Safari/537.36"
216.185.45.88 - - [29/Jun/2014:15:18:46 +0700] "GET /wp-includes/css/buttons.min.css?ver=3.9.1 HTTP/1.1" 200 1539 "https://notessysadmin.com/wp-login.php" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Dragon/33.1.0.0 Chrome/33.0.1750.152 Safari/537.36"

Затем происходит следующее:
access.log:

216.185.45.88 - - [29/Jun/2014:15:36:03 +0700] "POST /wp-content/themes/snc-mono/configweb/config.root HTTP/1.1" 200 750 "https://notessysadmin.com/wp-content/themes/snc-mono/configweb/config.root" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Dragon/33.1.0.0 Chrome/33.0.1750.152 Safari/537.36"

error.log:

[Sun Jun 29 15:36:04 2014] [error] [client 216.185.45.88] tar: Removing leading `/' from member names, referer: https://notessysadmin.com/wp-content/themes/snc-mono/configweb/config.root
[Sun Jun 29 15:36:04 2014] [error] [client 216.185.45.88] tar: /etc/passwd.tar: Cannot stat: No such file or directory, referer: https://notessysadmin.com/wp-content/themes/snc-mono/configweb/config.root
[Sun Jun 29 15:36:04 2014] [error] [client 216.185.45.88] tar: root.txt: Cannot stat: No such file or directory, referer: https://notessysadmin.com/wp-content/themes/snc-mono/configweb/config.root
[Sun Jun 29 15:36:04 2014] [error] [client 216.185.45.88] tar: root1.txt: Cannot stat: No such file or directory, referer: https://notessysadmin.com/wp-content/themes/snc-mono/configweb/config.root
[Sun Jun 29 15:36:04 2014] [error] [client 216.185.45.88] tar: root2.txt: Cannot stat: No such file or directory, referer: https://notessysadmin.com/wp-content/themes/snc-mono/configweb/config.root
...
[Sun Jun 29 15:36:04 2014] [error] [client 216.185.45.88] tar: daemon.txt: Cannot stat: No such file or directory, referer: https://notessysadmin.com/wp-content/themes/snc-mono/configweb/config.root
[Sun Jun 29 15:36:04 2014] [error] [client 216.185.45.88] tar: daemon1.txt: Cannot stat: No such file or directory, referer: https://notessysadmin.com/wp-content/themes/snc-mono/configweb/config.root
...
[Sun Jun 29 15:36:04 2014] [error] [client 216.185.45.88] tar: myuser.txt: Cannot stat: No such file or directory, referer: https://notessysadmin.com/wp-content/themes/snc-mono/configweb/config.root
[Sun Jun 29 15:36:04 2014] [error] [client 216.185.45.88] tar: myuser1.txt: Cannot stat: No such file or directory, referer: https://notessysadmin.com/wp-content/themes/snc-mono/configweb/config.root
...

Предположу, что подбирали пароль к системным пользователям. Видно что подставляются файлы по имени пользователей системы, по списку из /etc/passwd, т.е. не просто какому-нибудь дефолтно-линуксовому, а именно из моей системы, т.к. myuser это специфическое имя, которое нельзя просто угадать. Получается, каким-то образом был прочитан мой /etc/passwd, хотя, повторяюсь, входа на FTP и по SSH не было.

Закончилось это неудачей:

[Sun Jun 29 15:36:04 2014] [error] [client 216.185.45.88] tar: Exiting with failure status due to previous errors, referer: https://notessysadmin.com/wp-content/themes/snc-mono/configweb/config.root

Помимо всего этого злоумышленник пытался отправить письма на свой почтовый ящик средствами MTA системы. Не буду вдаваться в подробности настройки, главное что письмо не ушло. Кусок /var/mail/www-data:

From MAILER-DAEMON Sun Jun 29 15:37:27 2014
Return-path: <>
Envelope-to: www-data@notessysadmin.com
Delivery-date: Sun, 29 Jun 2014 15:37:27 +0700
Received: from daemon-mta-name by notessysadmin.com with local (MTA NAME)
        id 1X1Ac3-0007li-FR
        for www-data@notessysadmin.com; Sun, 29 Jun 2014 15:37:27 +0700
X-Failed-Recipients: d00m@kumanova.com.mk
Auto-Submitted: auto-replied
From: Mail Delivery System 
To: www-data@notessysadmin.com
Subject: Mail delivery failed: returning message to sender
Message-Id: 
Date: Sun, 29 Jun 2014 15:37:27 +0700

This message was created automatically by mail delivery software.

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

  d00m@kumanova.com.mk
    Mailing to remote domains not supported

------ This is a copy of the message, including all the headers. ------

Return-path: 
Received: from www-data by notessysadmin.com with local (MTA NAME)
        (envelope-from )
        id 1X1Ac3-0007le-Bc
        for d00m@kumanova.com.mk; Sun, 29 Jun 2014 15:37:27 +0700
To: d00m@kumanova.com.mk
Subject: 91.226.13.141
X-PHP-Originating-Script: 33:wpmass.php
Message-Id: 
From: www-data 
Date: Sun, 29 Jun 2014 15:37:27 +0700

notessysadmin.com/wp-content/themes/snc-mono/wpmass.php?do=pass_change

и

From MAILER-DAEMON Sun Jun 29 15:37:40 2014
Return-path: <>
Envelope-to: www-data@notessysadmin.com
Delivery-date: Sun, 29 Jun 2014 15:37:40 +0700
Received: from daemon-mta-name by notessysadmin.com with local (MTA NAME)
        id 1X1AcG-0007m2-CG
        for www-data@notessysadmin.com; Sun, 29 Jun 2014 15:37:40 +0700
X-Failed-Recipients: ferid23@gmail.com
Auto-Submitted: auto-replied
From: Mail Delivery System 
To: www-data@notessysadmin.com
Subject: Mail delivery failed: returning message to sender
Message-Id: 
Date: Sun, 29 Jun 2014 15:37:40 +0700

This message was created automatically by mail delivery software.

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

  ferid23@gmail.com
    Mailing to remote domains not supported

------ This is a copy of the message, including all the headers. ------

Return-path: 
Received: from www-data by notessysadmin.com with local (MTA NAME)
        (envelope-from )
        id 1X1AcG-0007ly-7Y
        for ferid23@gmail.com; Sun, 29 Jun 2014 15:37:40 +0700
To: ferid23@gmail.com
Subject: Server
X-PHP-Originating-Script: 33:header.php(2) : eval()'d code
Message-Id: 
From: www-data 
Date: Sun, 29 Jun 2014 15:37:40 +0700

Dosya Yolu : /var/www/site
Server Admin : admin@notessysadmin.com
Server isletim sistemi : Apache (Distrib)
Shell Link : https://notessysadmin.com/wp-content/themes/snc-mono/header.php
Avlanan Site : notessysadmin.com

Вообще, на сайте изменилось только три вещи, которые смог обнаружить:

  • Изменена тема с iconic-one на snc-mono. Из wp-content/themes/snc-mono удалены все файлы кроме index.php, сам файл изменен не был. Т.е. все скрипты которыми пользовался злоумышленник были удалены
  • Полностью изменен WPшный index.php, который и отобразился при посещении сайта
  • Изменен пароль администратора сайта

Вместо вывода
Здоровая прагматичность подсказывает что пароль все-таки был угнан с одного из устройств описанных выше, а не подобран. Но проверить это предположение возможности нет. Косвенно на это указывает всего три десятков запросов и капча. Так же, проанализировав логи предыдущих месяцев выяснилось что подбора пароля от админки не было. Таким образом данное стечение обстоятельств и троян в какой-то из систем пользователей сыграли решающую роль.

По причине того, что автор не является специалистом в web разработке и безопасности, осталось несколько вопросов:

  • Как злоумышленникам удалось прочитать системный /etc/passwd
  • Как обошли капчу. И если это можно сделать настолько легко, то встает вопрос о ее нужности
  • Каким образом отредактировали /var/www/site/index.php баз доступа к файлу
  • Почему они не попытались войти в систему или FTP по логину\паролю от админки

Послесловие

Забавно, после взлома появилось несколько рефералов. Среди них фигурируют сайты facebook и golgeler.net.
На втором размещаются дефэйснутые сайты с именами команд или одиночек сделавших это. Проверил на наличие своего домена на данном ресурсе — не оказалось, что достаточно странно, ведь это площадка для мерянья письками выяснения кто из них круче.
На facebook трудно что-то найти, поэтому пошел в гугл:

google_search

Видно, что в кэше упоминания есть и оно принадлежит группе AYYILDIZ TEAM, в которой, помимо прочего, оставляют ссылки на хакнутые сайты и скрины, подтверждающие это. Что, видимо, произошло и со мной. Прошерстил все записи группы, начиная со дня взлома, но упоминания о моем домене нет, что, опять же, странно. Может не успели зафиксировать факт дефейса и хак не является засчитанным? Поэтому ссылки удалили. И, как мне кажется, если бы письмо дошло, то ссылка таки светилась бы на этих ресурсах. Быть может это и есть фиксация дефейса? В любом случае, блога данного исследования нет на обоих ресурсах.

UPD:
Знающие люди подсказали что скорее всего это была PHP инъекция, но к сожалению я в этом не шарю.
UPD2: спустя какое-то время, понимаю, что это была череда независимых условий, в которых пароль оказался слабым и его смогли подобрать по словарю.

Комментарии к посту “Как AYYILDIZ TEAM сломали мой блог

  1. Павел

    А возможно хлор мышлением иметь доступ к моему устройству? И вообще может меня прослушивают ))

    1. admin

      Не исключено.
      Если у вас нет паранойи, это не значит что за вами не следят.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *