Security Lab

«What if» или «Преступление без наказания»

«What if» или «Преступление без наказания»

Когда в средствах массовой информации заходит речь о вирусах, журналистов интересуют вопросы «Кто пишет вирусы», «Зачем создаются вирусы», «Сколько стоит создание вируса» и т.д. Почему-то на эти вопросы отвечают либо производители антивирусов, либо сотрудники силовых ведомств и их суждения зачастую основаны на информации из книжки «О Хакерах» десятилетней давности. Давайте попробуем взглянуть на эти вопросы с другой стороны. Сегодня и сейчас.

Когда в средствах массовой информации заходит речь о вирусах, журналистов интересуют вопросы «Кто пишет вирусы», «Зачем создаются вирусы», «Сколько стоит создание вируса» и т.д. Почему-то на эти вопросы отвечают либо производители антивирусов, либо сотрудники силовых ведомств и их суждения зачастую основаны на информации из книжки «О Хакерах» десятилетней давности. Давайте попробуем взглянуть на эти вопросы с другой стороны. Сегодня и сейчас.

Рассказ в двух частях с эпилогом.

(с) Lame@Pochta.Ru 2004

Описанные в данном произведении события целиком и полностью выдуманы автором. Все совпадения с реальными личностями и событиями являются случайными, кроме тех случаев, когда они злонамеренны. Все торговые марки являются собственностью их хозяев, за исключением тех, которые автор придумал. Перепечатка в электронных изданиях возможна только при наличии ссылки на securitylab. Перепечатка в бумажных изданиях – с письменного разрешения автора. Охрану авторских прав осуществляет частное юридическое агентство «Мухи fuckru.net».

Часть первая

Все, к чертям, увольняюсь! Тоже мне, воплощение пророка - менеджер по работе с клиентами. Мало того, что из-за того, что ей было лень лишний раз позвонить заказчику я на три дня раньше уезжаю в командировку. Мало того, что жена устроила мне двухдневную истерику. Мало того, что зарплату продолжают считать в долларах, а бакс валится как сумасшедшей. Мало всего этого, теперь я еще и не поеду к буржуям. Два года сумасшедшей работы, покупка _мною_ сделанных продуктов... Предложение "от Билли" работать дальше, для чего неплохо бы пройти стажировку...
"Понимаете, для оформления визы необходимо Ваше личное присутствие, и это можно было бы сделать завтра, однако в это время Вас уже не будет в Москве. Поэтому мы будем вынуждены послать не Вас". А где, черт вас возьми, я буду?!! В той дыре, куда вы меня заслали.
Мало этого? Не знаю, мне хватит.
Проабрейдить резюме, заспамить по конторам и знакомым... Стоп! Я же два года не брал отпуск. Надо обсудить этот вопрос с HRюшкой.
- Здравствуйте Елена. Я собираюсь написать заявление...
- Нет, просто "по собственному желанию".
- Нет, в отпуск с последующим увольнением.
- Да ради бога, можете не давать, я уйду по КЗоТ. Сегодня.
- Месяц, может полтора. Руководству сейчас сообщу.

...

Жалко, жена не может взять отпуск. Неделя в Египте вместе, это конечно хорошо, но что делать в оставшееся время?
Впрягаться в новую кабалу пока не хочется. Просто лениться - отвык. Залечь с книжкой на несколько дней? Эх, было бы лето, рванул бы в лес. Но сейчас, по апрельской грязи - никакой сатисфакции.
Через пару недель, конечно, придется искать работу. Деньги закончатся, пиво закончится, хозяин квартиры в очередной раз повысит плату...
Хотя о чем я ною? Две недели абсолютно свободного времени, выделенка дома и куча идей, реализовать которые всегда не хватало времени. Например, rootkits под Windows...
Решено. Время подтягивать хвосты!

...

Три дня чтения сырцов с rootkit.com и сопутствующей литературы наводят на мысли. Мерзкая конечно с точки зрения безопасника вещь - внедрение в trusted computing base. В саму подсистему безопасности. В самую основу основ операционной системы.
Но и у ребят пишущих rootkit тоже не все хорошо. На уровне самой системы они незаметны, но вот по сетевой активности их вполне можно вычислить. Если rootkit ожидает соединение, его увидит любой сетевой сканер. Если использует нестандартный сетевой протокол - вычислит "продвинутый" межсетевой экран или система активного аудита. Сейчас, конечно, последнее не очень важно, но безопасность все же не стоит на месте. И растут продажи разного железа и софта, продавцы которого обещают счастье и абсолютную безопасность сразу после покупки.
Надо связаться с Папаем, он помнится, работал в этом направлении. Интересно, до чего ребята додумались?
Ася у Папая, как обычно offline. Однако, на мой "привет" он ответил практически сразу.

Papaich:
Привет, как дела?
Gimli:
Да жив пока. У меня есть вопрос по руткитам, поможешь?
Papaich:
Говори. А что за интерес ко "злу"?
Gimli:
Да так, чисто научный. Как вы со сканированием портов боритесь?
Papaich:
Ну... пока единого подхода нет. Я сейчас тут один проект ковыряю... Только вот Ася... Тебе это срочно?
Gimli:
Не горит. Говорю же, так для себя ковыряюсь. Что, Ася уже под контролем? Не вашим случайно? ;-)
Papaich:
Пока нет, но мы работаем в этом направлении :-). А береженого Бог бережет. Сейчас, разгребусь с текучкой, стукну в почту. Ты там представься, по линку.
Gimli:
Ок.

Через полтора часа мне в почту пришло сообщение от Васисуалия Пупкиладзе с моим ником в теме и ссылкой на https сервер. Судя по адресу хостился Папаич где-то в Китае. Ну, раз сервер китайский, пойдем через китайскую же проксю.
Кликнув на ссылке, я вышел на девственно черную страницу, в центре которой мелким кислотно-зеленым шрифтом было написано: "привет!".
Хорошо, что не иероглифами. Помню, однажды посетил ХиПовый Winь, где корейский стоял по умолчанию. Пока научил ее понимать английский язык, работал с закрытыми глазами...
Набираю в строке ввода "Здорова!" и давлю «Ввод». Видимо, моя вежливость положительно подействовала на сервер, поскольку на следующей странице было уже две строки: "ты кто?" и "ты куда?". Ввожу "Гимли" и "к Папаю". На этот раз сервер задумался надолго, выдав сообщение: "Ахтунг, всем стоять! Враг не пройдет!".
Пару минут спустя на экране появилось знакомая страница сервера сертификатов от Microsoft, предлагающего загрузить выданный сертификат. Интересно, что это Папай мне подсовывает? Открываю свойства - нормальный действительный сертификат, выданный на неделю доверенным CA... Доверенным? С каких это пор Папай стал подразделением Thawte? Постой-ка, а почему это в целях использования сертификата Папаевского сервера стоит электронная почта? А? Ага! Семен-Семеныч! Пару недель назад в багтреке был флейм о том, что IE криво отрабатывает цепочку доверия. Да, эти ребята багтрек не только "для информации" читают. Круто!
Ставлю сертификат, и мне на машину пытается загрузиться какой-то ActiveX. Естественно подписанный. Ну ладно, поверим Папаю.
На экране появляется привычное окно IM, в нем один контакт. Пишу Папаю: "Ну блин круто, чувак!", давлю кнопку send и уже ничему не удивляясь соглашаюсь с предложением зашифровывать и подписывать все сообщения.
Papaich:
Что, поразил?
Gimli:
Удивил, но в пределах моего разумения. Ты лучше скажи, как ты мелкомягкий CA заставил левые сертификаты издавать!
Papaich:
Да не. Движка на openssl, мордашку, вот у Билли свистнул.
Gimli:
Ну, тогда легче. А то я уже решил менять Визу на сберкнижку. :-)
Papaich:
Вполне здравая мысль. Кроме шуток.
Gimli:
Не пугай. И без тебя дышать страшно. Так что там со сканированием?
Papaich:
Думаем такую вещь: впихивать в первый пакет tcp соединения данные для аутентификации...
Gimli:
Т.е. если syn без пароля, то вместо syn-ack летит rst?
Papaich:
Угу. Но есть проблема: что выбирать в качестве пароля. Ведь если вбивать его в код, то скоро он вылезет наружу...
Gimli:
И злые безопасники начнут сканировать сеть с этим паролем?
Papaich:
В том то и дело.
Gimli:
Хм... Дай подумать. А криптографию сюда прикрутить не пытались?
Papaich:
Куда?
Gimli:
Ну, например, посылать в первом пакете строку и подпись к ней? У сервера есть открытый ключ, он проверяет подпись и если она ОК - отсылает ответ.
Papaich:
Интересно. Ну, а если плохой парень перехватит и задумает проиграть сессию?
Gimli:
Не плохой, а хороший. Не забывай, я все же безопасник :-[]
Papaich:
Что среди безопасников нет плохих парней?
Gimli:
Скорее правило, чем исключение. На меня посмотри :-). К делу - строка должна быть уникальной. Например - сервер сохраняет все предыдущие вызовы.
Papaich:
Хм, конечно хорошо, но для массового использования не подходит. Что для одного кита внове, для другого - прошлый век.
Gimli:
Сделай, чтобы строка была уникальна для каждого сервера, например «IP адрес + строка». Просто ssl какой-то получается... Или сделай как в Цербере.
Papaich:
Как "в где"?
Gimli:
В Kerberos. Подписывай метку времени. Не будут же на всех серваках время сдвигать для скана?
Papaich:
Это да, это вряд ли. Правда вылезет проблема синхронизации времени, но сейчас с этим в принципе нормально. Где про твой Цербер почитать?
Gimli:
ртфм рэфэцэ тебя устроит?
Papaich:
Конечно. Давно я говорил, что тебя надо подтянуть. А то сидит пацан без денег, а сейчас еще и без работы.
Gimli:
Ты то откуда знаешь?
Papaich:
Слухами земля...
Gimli:
Не был бы ты хакером, решил бы что ты ГэБист.
Papaich:
Одно другому не мешает.
Gimli:
Папай 8-0???
Papaich:
Не парься, шутка ; )
Gimli:
Ха-ха. А что, за киты ныче много платят?
Papaich:
На пиво хватает. Смотря конечно, кого порутить.
Gimli:
Это как везде.
Papaich:
Угу. Ты не стесняйся, будут еще мысли - заходи.
Gimli:
Хорошо. Удачи.

Иконка с изображением человечка посерела, Папай ушел в offline.
Перед тем, как выключить машину запускаю PatchFinder. Эта программа, по идее, должна обнаруживать попытки китов проникнуть в систему. Пошелестев винчестером, PatchFinder обнадеживающе заявил, что в системе все замечательно. Не верю. Ок, тушу виртуалку.
С некоторых пор в Сеть, а уж тем более на стрелки с хакерами я хожу исключительно с vmware. Даже лицензионной, если хотите знать.
Контроль целосносности с базовой системы показал, что за время общения с Папаем на машину были установлено новое устройство, по внешним признакам очень похожее HE4HOOK – один из rootkit отечественного производства. Однако, кроме стандартных файлов в папке кита лежал архив с исходными кодами и документацией. В файлах оказался сырец того модуля, о котором говорил Папай. Что ж, посмотрим...

...

Захожу на Папаевский сервер. Тот пускает меня уже без вопросов. Папай, как обычно - offline.

- Седьмой, седьмой, отвечай седьмой, я тебя не слышу! Почему молчишь?

Через десять минут Папаич ответил.

Papaich:
Привет. Что хотел?
Gimli:
Я тут копал твой кит и нашел мааааленькую дырочку.
Papaich:
Нашел мой подарочек? Как? Что за дырка?
Gimli:
Я в сетке из-под vmware. Дырка следующая – что-то не так с генами ;-). "Подправленный" стек отвечает на те пакеты, на который стандартный отвечать не должен.
Papaich:
А что это дает?
Gimli:
При сканировании Antisniff "порученная" машина выглядит как машина с сетевой картой в promoscius mode.
Papaich:
Что за антисниф такой?
Gimli:
Да есть такая старая тулза, я её вспомнил только потому, что на курсах рассказывали.
Papaich:
Погоди, сейчас я Ханта позову, он сетевание тянет. Ты с ним поболтай, а я побегу.
Gimli:
Ок.
Через несколько минут в списке пользователей появляется еще одно имя.
XaHT:
Привет. Что там с китом?
Gimli:
Вычисляется, правда только в локале. Держи сетевой трейс, пакет 75 и 76й, видишь?
XaHT:
А что в нем не так? Ping как ping.
Gimli:
В заголовке ethernet mac адрес получателя - бродкаст. Windows на такие запросы не отвечает.
XaHT:
Точно?
Gimli:
Поверь мне как дохтуру, месье хацкер. Был бы Linux какой - поверил. Но не мой боевой Винтюк.
XaHT:
Верю, дохтур :). А что так презрительно - хацкер? Можно подумать, ты взломом не балуешься.
Gimli:
Я :-0? Никогда!
XaHT:
А пентест сайта "военных" чей? Стиль твой однозначно: "уважаемые господа, ваши брюки имеют прореху в области ширинки. Причиной этого являются недостатки проектирования, а так же эксплуатации системы. Последствиями могут являться нескромные взгляды, смех. Возможны обморожения, вплоть до летального исхода. Рекомендации: пользоваться услугами профессионального портного, установить регламент использования брюк, а так же проводить периодический аудит основных аспектов информационной безопасности системы "...
Gimli:
Гы. Ты меня победил. :-))). Но пентестил не я, а Гиг. Я только перевел отчет Xspider на русский :-). Откуда такая осведомленность?
XaHT:
Видел тебя как-то в работе.
Gimli:
Хм... "преподавателю не стоит относиться к студентам как к конченным идиотам, хотя я его, пожалуй, понимаю"?
XaHT:
О, какая честь! ты все отзывы учишь наизусть?
Gimli:
Нет, только тех, чье мнение мне интересно. Респекты, Евгений.
XaHT:
Привет, Алексей. Ладно, пообжимались и хватит.
Gimli:
lol. А что Папай говорил про массовые атаки? Я думал, руткиты - работа ручная.
XaHT:
Кит - киту рознь. Есть синие, а есть дельфины :). Некоторые вбрасываются пачками.
Gimli:
А смысл?
XaHT:
Ну как, сейчас много охотников до надежных машин "на стороне"...
Gimli:
Ты что, кардерствуешь?
XaHT:
Я? Боже упаси. Я пишу киты. А что с ними делает покупатель - плевать.
Gimli:
Ну ты даешь, отец. Не ожидал.
XaHT:
Да я и сам... Но за наши драйверы ни 3com ни hp платить не хотят :-(
Gimli:
Ага. Это потому, что ты их на сертификацию в WHKL не подал :-). Ты Баксли "здесь курят" не читал? {quote}я только оплачивал закладную{/quote}.
XaHT:
Смешно. А что ты хочешь, на мою зарплату программиста 11го разряда одному прожить-то можно. Мне по большей части все равно где жить, что есть…
Gimli:
Но не что пить :-)
XaHT:
Это да... Но сейчас жена, ребенок. Квартиру не всю же жизнь снимать. Вот сколько ты тянул в своем "ведущем системном интеграторе"? Килобакс?
Gimli:
Меньше... Почти... :-!. Но сейчас я собираюсь подорожать.
XaHT:
Ну, будешь тянуть полтора. Сейчас ты на волне, а сколько тебе осталось как действующему айтишнику? Хату ты в своей мАскве скоро купишь?
Gimli:
:((( хз.
XaHT:
Во-во. Ну ладно. Пойду я мелкого пестовать.
Gimli:
Удачи.

Странно. Писатели китов кормятся у кардеров. Кардеры в хакерском мире всегда были презренной расой. Но денежной. Я давно общался с кардерами, мне были интересны их мотивации, методы работы. На основных кадерских тусовках я вел две персоналии: разбитного гуру NonStop и явного ГэБэшника K@det. Второй своей тупостью часто поддерживал имидж первого. И хотя работали многие кардеры профессионально, уважения к ним я не испытывал.
Странно, но к тому все и идет. "Любой труд должен оплачиваться". Если не платить исследователям, им начнут платить преступники. Просто документальная передача "Окна" получается. Merde.

...

Недавно в Full Disclosure поднялся довольно мощный флейм по поводу очередной уязвимости в Windows. Компания, обнаружившая уязвимость – Eeye, основательно ругала Microsoft за пренебрежительное отношение к информации об уязвимостях. Слэшдоттеры вопили «Windows Musdie», Гунинский бухтел о том, что Internet Explorer – trojan donwloader, прорицатели предсказывали очередную эпидемию сетевых червей.
Не понимаю я этих ребят. Все крупнейшие эпидемии возникали из-за червей, которые распространялись через дыры в головах пользователей, а не в программах. Хотя конечно ругать Microsoft гораздо удобнее.
Компания Eeye мне нравились всегда. Эти ребята виноваты в двух крупных эпидемиях – Code Red/Nimda и Blaster. Именно они нашли используемые червями дыры, основательно растрезвонили о них, и именно они весьма неплохо на этом заработали, раскрутив свои продукты. А теперь значит Microsoft виноват в том, что не хочет с ними разговаривать. Я могу понять такое поведение со стороны Liu Die Yu, наивного китайского парня. Но эти ребята меня просто очаровывают. Неужели забыли про @Stake? Бодаться с Microsoft – весьма дорогостоящее занятие.
Дырка действительно хорошая. Очень похожа на февральскую с ASN.1, но по логике должна быть гораздо проще в эксплуатации. K-otik пока опубликовал только пример DoS, но интересно было бы посмотреть на результаты. Хотя зачем же ждать?
Загрузить экплойт, вычислить в какой библиотеке возникает переполнение… Вставить в CD пластинку с надписью «Биллин сыр». Поискать, а вдруг код библиотечки есть в «убежавших» из цепких лап Microsoft исходных кодах.
Через три часа я сидел и зачарованно смотрел на пару десятков строчек кода. Я смотрел на дырку, а дырка смотрела на меня. Очень интересное ощущение. Наверное, что-то подобное чувствуют первооткрыватели. Почему я раньше пренебрегал подобными вещами?
Время – семь вечера. Скоро вернется с работы жена. Что у нас сегодня на ужин? Надо придумать. Хотя нет, лучше еще немного поработаю.
В пять утра, Outlook открывая отправленное мною сообщение, кроме привычного окна с текстом, показал красивые язычки пламени. Огонек рисовал malware.exe, прикрепленный к письму. Письмо с цифровой подписью, возможно даже зашифрованное, никакой почтовый фильтр или антивирус не будет с ним связываться – пропустит и все. Просто увидит, что это pkcs и не полезет вовнутрь. Пока это дойдет до Касперского с компанией, пока…
Пальцы машинально набрали адрес кардерского форума. Введя имя и пароль, я зашел на страницу частного общения и написал письмо для Snoopy – одного из самых оборотистых торговцев анонимными прокси-серверами.

NonStop to Snoopy:
Привет, тебе свежие прокси не нужны?

Snoopy жил где-то на Западе, или маскировался под западника, поэтому ответ не заставил себя долго ждать.

Snoopy to NonStop:
Mozhno. Kakoj ob’em? Kakie kanaly. Chto za soft?

NonStop to Snoopy:
Объем – все что найдешь, твои. Сотня тысяч точно будет. Софт – на твой выбор.

Snoopy to NonStop:
Viri? Ti zhe vrode etшm ne balovalsia? Idem, pogovorim podrobney.

продолжение следует...

Домашний Wi-Fi – ваша крепость или картонный домик?

Узнайте, как построить неприступную стену