Началось все достаточно обычно — сидя в инете  я получил от одного
человека ссылку:
 
http://nextwar.ru/index.php?art=blog/2006/03/16/predator/index.htm

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

http://nextwar.ru/index.php?art=blog/2006/03/16/predator/index.ht.

Скрипт выдал следующую ошибку:

Warning: file(blog/2006/03/16/predator/index.ht): failed
to open stream: No such file or directory in /home/nextwar/pub/index.php on line
374

Сейчас отдефейсю этот nextwar.ru от нечего делать и опять же забуду про него —
подумал я. Но не тут то было, введя урл

http://nextwar.ru/index.php?art=./

я не получил никакого результата — скрипт не отобразил содержимое каталога, а
лишь выдал очередную ошибку:

Warning: file(.//index.htm): failed to open stream: No
such file or directory in  /home/nextwar/pub/index.php on line 374

Это немного огорчило, видимо если не указывать имя файла, то скрипт
автоматически добавляет /index.htm в конец пути и лишь потом вызывает функцию
чтения файла… Зная по опыту, что фильтрация бывает обычно в файле который на
виду, и довольно редко в других, менее используемых файлах (например в wap
версии сайта и т.д.), я стал внимательно изучать ссылку, которую мне передали.
Сразу же обнаружилась ссылка на "Версию для печати":
 
http://nextwar.ru/print.php?art=blog/2006/03/16/predator/index.htm

Интересно, однако… Возможно тут как раз таки нет фильтрации. Снова повторил
попытку:

http://nextwar.ru/print.php?art=./

Я увидел содержимое каталога, начался поиск конфигов. Найдя и скачав reg.inc
(который, кстати, доступен из веба :)) обратил внимание на  скрипт http://nextwar.ru/newpost.php,
похоже это скрипт добавления публикаций на сайт, он позволяет прикрепить к
статье файл — следовательно есть возможность залить шелл. Введя в браузере

http://nextwar.ru/print.php?art=./newpost.php

я стал изучать скрипт дабы узнать как происходит авторизация.

<?
$psw="kebati"; <- вот что нам требуется для дефейса nextwar.
require ‘functions.inc’;

?>

Создав публикацию и прикрепив к ней файл (remview), я получил полноценный
web-shell

http://nextwar.ru/blog/2006/03/20/blog/s.php

Результаты команды "ps -ax;" мне показались довольно странными — нагрузка в 4
часа утра была довольно значительной для сервера, на котором хостится кривой и
почти не посещаемый сайт… Очевидно, что кто-то крупный еще лежит рядом с
ним…  Начался поиск по каталогам. Зайдя в каталог "/home" я увидел очень
интересные каталоги — lenta, mednovosti, itogi, gazeta… Первым делом зайдя в
каталог "/home/lenta/" я увидел различные каталоги lenta.ru и другие поддомены.
Не буду утомлять, скажу сразу — это оказался не основной сервер lenta.ru, он
просто стоял рядом в локалке, возможно раньше там и хостилась Лента, но видимо
это в прошлом. Слив все интересные базы и скрипты начал подробно изучать
внутренности lenta.ru, меня интересовало опять таки админка и ее авторизация.
Найдя каталог "/home/lenta/www/bin/" стало ясно, что админка как раз таки и
расположена там, но непонятно, как же происходит авторизация?

Все оказалось прозрачно когда я увидел содержание файла "/usr/local/apache/conf/lenta.conf":

<Location /e>
Order deny,allow
Deny from all
Allow from 81.19.80.64/26 81.19.68.198 81.19.64.74
Allow from 193.232.173. 195.46.170.61 195.46.160.133 217.106.245.245
Allow from 194.186.74.1
Allow from 62.117.66.26 195.42.68.201 81.176.66.169 194.226.220.158
Allow from 213.128.199.243 213.128.199.245 213.128.199.242 213.128.197.136
Allow from 217.10.38.16 82.179.232.3 83.102.196.68
</Location>
# RewriteEngine on
# RewriteCond %{REMOTE_ADDR} !^81.19.69.17
# RewriteCond %{REMOTE_ADDR} !^81.19.68.[6-9][0-9]
# RewriteCond %{REMOTE_ADDR} !^81.19.68.1[012].
# RewriteRule ^(/E/.*) https://auto.lenta.ru$1 [R,L]
#
# RewriteCond %{REMOTE_ADDR} ^81.19.69.17$
# RewriteCond %{REQUEST_URI} !^/E/ [NC]
# RewriteRule ^(/.*) http://auto.lenta.ru$1 [R,L]
<Location /E>
Order deny,allow
Deny from all
AuthType Basic
AuthName lenta.ru
AuthUserFile /etc/httpd/usr.lenta
require valid-user
Allow from all
# Allow from 81.19.68.64/255.255.255.224
# Allow from 81.19.69.28
</Location>

Содержание файла /etc/httpd/usr.lenta:

moshkow:fE99kw9dmwNTk
editor:.w0aZZEVyfz3Y

Содержимое его сразу же отправилось на брут (с этого места я подключил еше пару
людей к дефейсу). Теперь я прошел по ссылкам http://www.lenta.ru/e и http://www.lenta.ru/E
на что получил

Forbidden 403

Значит в админку еще фильтрация по ip адресам… Однако в тоже время у человека,
который использует Стрим выскакивало окошко с авторизацией,  следовательно
надо было поискать "смертника" с Интернетом от МТУ, который зайдет и произведет
дефейс. Как назло в аське никого подходящего не было, пока мы искали выяснилась
следующие детали… Деталь первая — хеш одного из паролей подобрался — wwwwww
(moshkow). Деталь вторая — если заходить в админку по https, то выскакивает
окошко с авторизацией, значит фильтрация по ip тут не работает. Скрестив пальцы,
пройдя по адресу

https://lenta.ru/E

я ввел

login "moshkow"
password "wwwwww"

Сработало!! Это значило что уже ничто не спасет ленту от дефейса… Стали
готовить дефейс. На главной странице пестрила главная новость дня с участием
президента Белоруссии:
 
http://lenta.ru/news/2006/03/20/win/

Содержание этого файла:

.Super 0
.Title Александр Лукашенко переизбран [президентом Белоруссии]
.Razdel xussr
.Top 7
.RightCol Центральная избирательная комиссия Белоруссии обработала 100 процентов
бюллетеней
для голосования на выборах президента страны
.Announce Центральная избирательная комиссия Белоруссии обработала 100 процентов
бюллетеней
для голосования на выборах президента страны. "На третий срок избран Александр
Григорьевич
Лукашенко", — заявила в ночь на понедельник на пресс-конференции в Минске
председатель ЦИК
страны Лидия Ермошина.
.RamblerTitle Лукашенко переизбран президентом
.Alt Александр Лукашенко. Фото Reuters, архив
.Picture yes

Это значит, что надо просто отредактировать эту новость и все! Отредактировали,
но немного криво — на главной странице красовалась надпись "Hacked" без нашего
текста. Пока мы искали причину, среагировали админы — они удалили новость.
Главной новостью стало происшествие в метро, решили отредактировать её и сделать
зеркало. На этот раз все прошло хорошо, наш текст отобразился, видимо в первый
раз ошибкой было то, что в начале текста было много лишних переводов строки.
Сделав зеркало мы раскидали ссылку по контактам в асе и наблюдали за реакцией
админов. Дефейс провисел минут 5, после его снятия пропал доступ по https
соединению, админы просто отфильтровали файерволом порт до дальнейшего
разбирательства.

Вот так довольно просто была взломана lenta.ru, предотвратить дефейс которой
можно было просто не используя одинаковые пароли на 2 разных серверах. У нас
также была возможность залить шелл через админку и полазить по серверу (на
котором также, кажется, хостился vesti.ru), но риск был слишком  велик — за
lenta.ru постоянно наблюдали, малейшая ошибка и они бы среагировали и мы могли
бы остаться без дефейса.

Зеркало:

http://taxidermia.void.ru/mirrors/2006/03/20/lenta.ru/

 

Оставить мнение

Check Also

Безопасность смарт-контрактов. Топ-10 уязвимостей децентрализованных приложений на примере спецификации DASP

Количество смарт-контрактов в блокчейне Ethereum только за первую половину 2018 года вырос…