Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #71, НОЯБРЬ 2004 г.

Фатальная проверка

Master-lame-master

Хакер, номер #071, стр. 071-052-4


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

Наступил вечер. Я поговорил с товарищем, который сердечно поблагодарил меня за помощь в расследовании. Узнав про баг в SMS-скрипте, друг разделил мое мнение, решив, что фиксить брешь пока не следует. Как выяснилось, он попросил какого-то программера написать ему перловый сценарий, который слал бы произвольный текст на определенный e-mail. Затем, когда другу захотелось украсить свой сайт, он интегрировал sms.php и перловую поделку. В результате получилось вот что: сценарий обрабатывал входные переменные, затем приплюсовывал к номеру «@sms.megafon.ru» и писал текст сообщения в файл. Финальной строкой был, конечно же, системный запрос к sms.pl, который принимал следующий вид: system("perl ./sms.pl номер@sms.megafon.ru"). Интерпретатор заставлял считывать временный файл с сообщением и засылать текст получателю. А вывод дебаг-инфы был обусловлен тем, что мой приятель захотел протестировать работу системы, а обнулить переменную $debug в файле sms.pl, как водится, забыл. Все эти недоработки и отсутствие какой-либо проверки данных привели к фатальному результату.

Через несколько дней, когда я уже запамятовал о проверке сервера, приятель снова вышел на связь. Он сказал, что хакер снова оставил дефейс и папку /lameroot :). То есть действовал по своей привычной схеме. Вот дурачок :). Я тут же попросил оформить мне SSH-доступ, чтобы выудить из логов важную информацию. Я не ошибся, взломщик действительно нашел брешь в SMS-скрипте. Как выяснилось позже, он заливал скомпиленный mremap.c с интегрированной в него командой, а когда злоумышленнику хотелось выполнить другой запрос, он тупо пересобирал сплоит. Самое главное, что горе-хакер не использовал проксика, и его адрес говорил о том, что нарушитель является клиентом сети крупного московского провайдера. Впоследствии мой приятель написал телегу в саппорт, и дефейсы прекратились. Впрочем, возможно, они прекратились из-за того, что он воткнул проверку на символ «;» в sms.php. Ибо нефиг :).

Где здесь мораль?

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

Что помогло мне при взломе?

1. Имея нюх на подозрительные скрипты, я быстро нашел лазейку на Web’е даже при выключенном журналировании запросов.

Назад на стр. 071-052-3  Содержание  Вперед на стр. 071-052-5