Дыра

Индра Незатейкина
—  Конечно, —  сказал я. —   Арбат  —  это четыре?
—  Арбат  —   это Г.
—  Ничего общего, —  сказал я. —  Извините, Нина.
Кир Булычев. «Можно попросить Нину?»

Все не только не так просто,
 но и просто не так.
Л. Леонов.

Nc -l… ну, пусть будет 1111. Эксплойт к бою. Какой у нас там айпишник?.. Так. Ну, ну?! Томительные секунды напряженного ожидания… Сработало? Что — правда, сработало?! Быть не может! Хотя —  после непропатченной винды и девственно чистого 5-ого IISа —  почему не может быть? Разве я не этого ждал?.. Именно этого, причем почти что всю свою сознательную жизнь. Эксплойт сработал —  вот он мне, реверс-шелл на 1111-ом порту их веб-сервера! Я радостно вскинул руки и издал восторженный вопль —  хорошо, что в серверной я сижу один, и никому не придется объяснять, чему я так радуюсь.
Программисты знают это чувство сумасшедшего счастья —  первые пять минут после того, как программа неожиданно «прошла», и работает, как задумано! Системным администраторам тоже знакомо ощущение душевного подъема, когда после долгих часов, а то и суток мучений, чтения документации, поиска описания ошибок по сайтам производителей, выискивания в форумах iXBT упоминания подобных ситуаций, удается-таки настроить систему и заставить ее работать, как нужно. У хакеров — то же самое, только связанное с получением долгожданного рута на заветной системе.
Ура, свершилось! Я наскоро пошарился по дискам сервера. На первый взгляд ничего интересного, на первом разделе система — «двухтонник» без видимых следов сервис-паков или хотя бы каких-нибудь критичных хотфиксов и криво настроенный файрволл —  «Outpost» какой-то древней версии, на втором, очевидно, резервные копии первого раздела, маленькая подборка диструбутивов программ первой необходимости. Корневая папка веб-сервера тоже перенаправлена на второй раздел. От обхода каталогов, что ли, так защищаются, чудики? Я презрительно усмехнулся, вспомнил, где у меня лежит заранее подготовленная на всякий случай страничка для дефейса. Можно было бы, конечно, скромно обойтись традиционным plain-text’ом в стиле «Defaced by…», но хотелось же выпендриться и вставить красивую, в «фотошопе» нарисованную, картинку. Я залил страничку в корень IIS’а, набрал в браузере их адрес и с удовлетворением увидел результат своей работы. Вот здорово! Хоть делай скриншот и отправляй на void.ru. Но это было бы уж совсем нагло, поэтому скриншот я на всякий случай сделал, а отправлять его, конечно, никуда не стал. Сайт, надо думать, довольно популярный в узких кругах, дефейс скоро обнаружат, и какая-нибудь добрая душа кинет ссылочку на void.ru и без меня.
На сайт этой фирмы я случайно наткнулся. Просто вспомнил, что были у меня года два назад такие враги, набрал наобум какое-то сочетание букв, похожее на написание на английском названия их фирмы, и попал по адресу. Есть в нашем городе такая контора «Роскомп», у них шесть или около того магазинов, раскиданных по окрестностям. Торгуют «железом», собирают, настраивают, «скорая компьютерная помощь» и все такое. В общем, все, как обычно, только город у нас некрупный, и они тут монополисты, что всегда плохо, потому что цены на свои железки они завышают, а покупать больше явно негде. А у меня с ними были личные счеты — два с половиной года назад, когда я еще учился на четвертом курсе, и активно искал работу, хотя бы на лето, и меня никуда, понятное дело, из-за отсутствие опыта, образования, неудобного графика и прочего и прочего, не брали, я пытался устроиться к ним сборщиком компьютеров. Они задали мне пяток специфических вопросов, на половину из которых я не ответил, и, естественно, на работу не взяли. Конечно, тогда у меня никакой квалификации не было, но компьютер я собрал бы без проблем. А чипсеты для PIV я и сейчас не перечислю. Только теперь мне это и не надо — я работаю админом в довольно престижной компании, парк машин большой и разношерстный, с железками тоже иметь дело приходится часто. И теперь я ничуть не жалею, что тогда к ним не попал. Но это теперь, через 2,5 года. А тогда я очень расстроился, и до сих пор какой-то неприятный осадок сохранился, иначе с чего бы я решил просканировать их сервер “Xspider’ом”? И, обнаружив, целый букет уязвимостей, не написал об этом их админу, а дефейснул им сайт?
Конечно, это неправильно. Я ясно понимаю, что это вандализм. Но у меня еще маловато опыта, никакой я не хакер, а просто скрипт-кидди, который регулярно читает баг-треки и уведомления о новых дырах, ищет на securitylab и security.nnov.ru свежие эксплойты, желательно скомпиленные, и проверяет их на всем, что под руку подвернется, а больше ничего делать и не умеет. Но должно же и мне когда-то повезти!
Меня так и распирало от радости из-за неожиданной удачи, и страшно хотелось кому-нибудь похвастаться. Не долго думая, я кинул письмо Андрею,  моему товарищу,  естественно, тоже админу. Только от таких, как я, Андрея отличают честно заработанная кличка Гуру,  стаж работы около 10-и лет и умение безошибочно предвидеть поведение систем, в духе Королева: «сломается здесь». К Андрею я всегда хожу за помощью, когда уже ничего больше не помогает —  хорошо, когда есть такой товарищ. Правда, вытрясти из него что-либо довольно затруднительно, но при определенной настырности все же можно. Андрей имел к «Роскомпу» непосредственное отношение — лет пять назад, когда эта контора только создавалась, он работал у них, проектировал локалку и ставил сервера.
Ответ от Гуру не заставил себя долго ждать: «Поздравляю, respect.» Из этого можно было с уверенностью заключить, что на мой дефейс он даже не взглянул, кто такие «Роскомп», давно и прочно забыл, и в данный момент ему интереснее читать какой-нибудь очередной флуд о настройке ip-телефонии на форуме iXBT. Это меня несколько расстроило. Однако через несколько минут я получил еще одно письмо от Андрея: «Слушай, чем ерундой заниматься, скажи лучше, ты вчерашний доклад Стивена  Хоукинга еще не читал? Очень рекомендую». Я перебрал в памяти титанов современности – Деннис Ритчи, Бьерн Страуструп, Линус Торвальдс, Ричард Столлмен… Никакого Хоукинга среди них не было, хотя имя было какое-то смутно знакомое. Я помялся и спросил, о чем был доклад. «О черных дырах, естественно! В двух словах не расскажешь, читать надо. Если коротко – Кип Торн со своим знаменитым афоризмом отдыхает, а информация все же сохраняется», —  ответил мне Гуру. Черные дыры, естественно. М-да. Интересы у Андрея разносторонние до дикости. Вот теперь я случайно узнал, что в область его интересов входят еще и черные дыры.
Пока я соображал, стоит ли мне искать в «гугле» эту самую статью и насколько радикально она должна повлиять на мое мировоззрение, Андрей кинул еще письмо: «Кстати, сейчас смотрел -- на «Роскомпе» нет твоего дефейса,  сервак уже поднялся, оперативно ребята работают. Может,  и пропатчить уже успели? ; А в чем дыра-то была?». Я удивился. Быть не может! Ткнул в браузере кнопочку «Обновить». Дефейс был на месте. Посмотрел с другой машины —  то же самое. Я написал Андрею, что он адрес как-то не так набирает, что все на месте,  дыра у них двухлетней давности и дал соответствующую ссылку на securitylab.ru. Через минуту я получил оскорбительный ответ: «Как не то набираю? Ты мне сам _ссылку_ кинул! Ты кэш в браузере очисти —  поможет ;)» Мы еще минут десять повыясняли отношения —  уже по аське —  и пришли к заключению, что я из своей сети вижу одно, а Андрей из своей —  совсем другое. Это было довольно странно, мы долго пинговали несчастный «Роскомп», искали его в DNS’е и посимвольно сличали результаты. Все было правильно и поэтому непонятно.
— Кинь-ка мне в почту отчет «спайдера», — попросил Андрей. — Сейчас со своим сопоставлю…
Гуру долго молчал, видимо, поглощенный увлекательной игрой «найди 10 отличий между картинками». Потом выдал заключение:
— Ну, дела! Ftp, www — это понятно, но эхо-то они зачем открыли? И datetime? И chargen? И нетбиос в инет торчит — да уж, решето… Сервис-пака даже первого не установлено. «Или я дурак, или лыжи не едут». Это определенно две разных системы, — он прислал мне свой результат сканирования. Общего между системами и вправду было мало. Та, которую видел я, была насквозь дырявой и почти не настроенной после установки по умолчанию, другая, распечатку которой сделал Андрей, была пропатчена до состояния видимого отсутствия тривиальных уязвимостей и довольно грамотно сконфигурирована.
— Спасибо хоть, что и то и то «двухтонник», — сказал я. — Не понимаю, как можно спокойно спать, когда винда в интернет выставлена. Но это, конечно, их дела…
— Стоп, я все понял! —  воскликнул вдруг Гуру. — Все ясно, как божий день, как я сразу не допер! Просто у них стоит файрволл, который запросы на веб-сервер из нашей сети редиректит на одну машину, а из вашей —  на совсем другую!
—  А так можно? —  усомнился я.
—  Pf умеет, —  сказал Андрей, и для тупых типа меня, пояснил: —  Стандартный файрволл в OpenBSD.
Гуру сдвинут на OpenBSD, она у него везде, кажется, даже на его рабочей станции.
—  Но вот уж за что вашей подсетке такая честь, что вам непатченная винда на растерзание оставлена, это уж я не знаю, —  продолжал Андрей.
Мне вдруг стало сильно не по себе.
—  Ты хочешь сказать —  это «honeypot»? —  выдавил я.
—  Чести много! Кому ты нужен! —  фыркнул Андрей. —  Недохакер несчастный!
—  А что тогда?
—  А я откуда знаю? Ты их админу напиши.
—  Поздно —  я же им уже сайт дефейснул…
—  Ну, тогда жди, когда они к тебе сами придут, вместе с отрядом ОМОНа, и все популярно разъяснят, —  Андрей продолжал потешаться. Он радовался, что все стало просто и понятно.
Я промолчал, сжал зубы и снова уставился в результаты сканирования.
—  Он, кстати, и время неправильное отдает, —  сказал я. —  16 декабря 2000-ого года. Сейчас же не 2000-ый год, или я что-то путаю?
—  С утра был 2004-ый, —  согласился Андрей. —  Ну и что удивительного? Ненастроенная системка, все брошено по умолчанию, и зачем-то в инет высунута. Ладно, ты жди ОМОН, а я пошел делами заниматься —  мне еще squid патчить и компилить от таких, как ты…
«Юморист», —  мрачно подумал я. —  «Очень смешно…»
Едва я, погруженный в мрачные раздумья, успел взяться за какую-то накопившуюся рутину типа анализа логов, как в аське снова появился Андрей.
— Слушай, забыл попросить, — сказал он. — Так, интересно просто. Кинь страничку своего дефейса посмотреть, а?
— Смотри, не жалко, —  я послал ему картинку. — Оцени мой талант компьютерного дизайнера, раз уж хакер из меня никудышный…
Андрей получил картинку и надолго замолчал. Мне даже показалось, что его куда-то срочно вызвали, поэтому я не стал дожидаться его комментариев и снова занялся логами.
— Слушай-ка, — неожиданно возник Гуру. — Ты откуда эту картинку взял?
— Блин, из бесплатной фотогалереи скачал! Говорю же — сам нарисовал, что не так?
— Честно — сам?
— Тебе psd-файл прислать, со слоями? — ехидно поинтересовался я.
— Ладно, верю, — неохотно согласился Гуру. — «Defaced by Ne@r». Ne@r — это, значит, ты?
— Значит, я! — я начал злиться. — Ты мой почтовый ящик не знаешь — near@pisem.net?
— Там собаки нет…
— Еще бы там собака была! Ты как себе это представляешь? — меня раздражало, что Андрей что-то знает и не хочет объяснить по-человечески.
— Слушай… У тебя винда там… сервер терминалов есть где-нибудь в сетке или radmin какой-нибудь?
— Все у меня есть, — сердито ответил я. — Radmin на всех критичных машинах, терминалку, если нужна, могу поднять — проблема-то.
— Пусти меня radmin’ом на одну машинку, а? — попросил Андрей. — Хочу от вас на этот сайт посмотреть.
— Иди, не жалко, — я открыл доступ андреевой подсети на одну из своих рабочих станций с radmin’ом. — Только не долго.
Минут через десять, сунувшись в консоль MDaemon'а — моего почтового сервера, я обнаружил, что конвертик в трее синий, почта не ходит, и вообще наблюдаются какие-то проблемы с каналом в интернет. Пинганув ya.ru, я убедился, что связь с внешним миром отсутствует. Tracert затыкался на нашем маршрутизаторе. Тут же позвонил пользователь из отдела продаж и объявил, что «интернет не работает».
— Черт! — сказал я и полез в стойку — смотреть на «циску». Маршрутизатор, похоже, действительно, висел — светодиоды на интерфейсах светились, но не мигали. Попытка зайти с консоли результата не дала. Пришлось жать кнопку «ресет» и еще минут десять отвечать на звонки рассерженных пользователей.
Потом, когда я, наконец, добрался до своей машины и нажал в браузере кнопку «обновить», я убедился, что мой дефейс исчез, и сайт «Роскомпа» выглядит, как обычно.
— Та-ак, — пробормотал я и попытался вызвать Андрея.
Как ни странно, Андрей ответил.
— Сам вижу, — сказал он.
— Я маршрутизатор перезагрузил, — пояснил я. — Может это быть связано?
— Еще как может, — загадочно подтвердил Гуру.
— Да хватит туману напускать! — не выдержал я. — Объясни — ты что-то понял?
— Не поверишь, — безнадежно ответил Гуру. — Я и сам не верю.
— Да что такое-то?
— Я этот твой дефейс уже видел. Четыре года назад, когда в «Роскомпе» работал.
— Что?..
— 16 декабря 2000 года, как сейчас помню. Впервые мой сервер дефейснули, и, главное, я так и не понял, где была дыра… И по логам было не выяснить. Все баг-треки перерыл — не было на тот момент ничего такого известно, и экплойтов не было… Я тогда этого Ne@r’а нашел бы — придушил собственными руками…
Я молчал с минуту, осмысливая его слова. Вспомнился институтский курс сетевых технологий — всякие там страшные байки про петли маршрутизации и расщепленные горизонты. Я знал, что не может этого быть, но Гуру не стал бы меня так глупо разыгрывать. Не его это методы.
—   Андрей, ты про черные дыры начитался, —  неуверенно сказал я. —  Это там время в разных местах течет по-разному… Ну не бывает же так!
Я уже знал, что сопротивляться глупо. Гуру не ошибается.
—  Я же говорил, что не поверишь, —  ответил Андрей. —  Что  —  черные дыры, модель можно любую придумать, те же широко известные петли в маршрутах подойдут… Ну что, поздравляю, пиши на «секьюритилаб»  —  новую дыру нашел. Во времени…
—  Знаешь, что хуже всего? —  я еще не осознавал до конца ужас ситуации, но чувствовал, что все явно сложнее, чем я могу упихать в свою примитивную картину мира. —  Там, 4 года назад, еще нет никаких сервис-паков, и эксплойт этот еще не написан, и сами уязвимости пока не найдены. И те ребята перед нами абсолютно беззащитны…