Что такое вирусный скрипт
Скрипт-вирусы
— это вредоносные программы, начало которым положили макровирусы.
Общая черта скрипт-вирусов — это привязка к одному из «встроенных» языков программирования. Каждый вирус привязан к конкретной «дырке» в защите одной из программ Windows и представляет собой не самостоятельную программу, а набор инструкций, которые заставляют в общем-то безобидный «движок» программы совершать несвойственные ему разрушительные действия.
С конца 90 х гг. скрипт-вирусы сумели «оседлать» великое множество программ. Помимо уже знакомого семейства «макровирусов» встречаются «зверушки», умеющие атаковать Internet Explorer или Windows Media Player различных модификаций.
В ноябре 1998 года появился первый скрипт-вирус VBScript.Rabbit, заражающий скрипты Web-страниц, а через полгода, в мае 2000 года грянула глобальная эпидемия скрипт-вируса «LoveLetter».
Сейчас этот тип вирусов прочно удерживает первое место в списке наиболее распространенных и опасных вирусов.
Как и в случае с документами Word, само по себе использование микропрограмм (скриптов, Java-апплетов и так далее) не является криминалом, большинство из них вполне мирно трудится, делая страничку более привлекательной для глаза или более удобной.
Чат, гостевая книга, система голосования, счетчик — всем этим удобствам наши странички обязаны микропрограммам-скриптам. Что же касается Java-апплетов, то их присутствие на страничке тоже обосновано — они позволяют, например, вывести на экран удобное и функциональное меню, которое разворачивается под курсором вашей мышки.
Удобства удобствами, но не стоит забывать, все эти апплеты и скрипты — самые настоящие, полноценные программы. Причем многие из них запускаются и работают на вашем компьютере! И, встроив в них вредоносную начинку, создатели страницы смогут получить доступ к содержимому вашего жесткого диска. Последствия уже известны — от простой кражи пароля до форматирования жесткого диска.
Переносчиками вирусов в большинстве случаев являются сообщения электронной почты, содержащие вложенные файлы. Зараза может проникнуть в компьютер либо через программы (то есть исполняемые файлы с расширением *.ехе), либо через документы Microsoft Office, которые могут содержать вредоносные участки кода.
Хитрость создателей вируса проста — файл, который показался нам картинкой, имел двойное расширение! Например, AnnaCurnikova.jpg.vbs. Вот именно второе расширение и является истинным типом файла, в то время как первое является просто частью его имени. А поскольку расширение vbs Windows хорошо знакомо, она, не долго думая, прячет его от глаз пользователей, оставляя на экране лишь имя AnnaCurnikova.jpg.
Хороша ловушка? Хороша. Но различить ее легче легкого: фокус с «двойным расширением» не проходит, если мы заранее активируем режим отображения типов файлов. Сделать это можно с помощью меню Свойства папки на Панели управления Windows: щелкните по этому значку, затем откройте закладку Вид и снимите галочку со строчки Скрывать расширения для зарегистрированных типов файлов.
Профилактическая защита от скрипт-вирусов состоит в том, что в браузере можно запретиь получение активных элементов на локальный компьютер.
Что такое вирусный скрипт
Продюсер или технический специалист? Заполни анкету и работай с международными школами на GetCourse
Как вирусный скрипт помог пользователям пригласить 160 тыс. друзей
Кейс Школы рисования Вероники Калачёвой
Дмитрий Останин
Сооснователь Getcourse, руководитель продюсерского центра GetProduction
Если вы в поиске универсального канала для продвижения, откуда будет приходить постоянный поток клиентов, огорчим вас: его не существует. Но, с другой стороны, клиенты есть везде. Вот три универсальных решения, как понять, где именно продвигаться:
Чем больше вы знаете вашу аудиторию, тем больше работающих идей по продвижению у вас появится. Когда мы начали плотно общаться с клиентами по рисованию, то знали практически всех учеников, которые приходили к нам на курсы. Мы поняли, что наших пользователей окружают люди, которые тоже рисуют или хотели бы научиться. Так бывает не во всех нишах, но в рисовании это работает. Люди общаются на тему рисования, делятся своим увлечением, идеями и достижениями с друзьями, проводят вместе время за хобби. Когда мы это увидели, то смогли реализовать простое решение — «пригласи друга».
» data-img-src=»https://fs-thb01.getcourse.ru/fileservice/file/thumbnail/h/AB.dd8676838d98d9f280278ce3bed035d6.png/s/s1200x/a/116/sc/131″ > Первый запуск экстрим-скетчинга: шапка посадочной страницы
Первый запуск экстрим-скетчинга: шапка посадочной страницы
Первый запуск экстрим-скетчинга: шапка посадочной страницы
Мы сделали простой продукт с очень простым лендингом kalachevaschool.ru/sumextreme. Опубликовали в социальных каналах Школы рекламный пост, который крутился месяц.
» data-img-src=»https://fs-thb01.getcourse.ru/fileservice/file/thumbnail/h/AB.d9d3ed6fdd14fdf9862f8254abe5703b.jpg/s/s1200x/a/116/sc/131″ > Пост в Facebook о наборе на Летний экстрим-скетчинг
Пост в Facebook о наборе на Летний экстрим-скетчинг
Пост в Facebook о наборе на Летний экстрим-скетчинг
У поста было не так много лайков и репостов. Продукт стоил небольших денег — 990 руб. Предложение было в том, что можно было заплатить, а можно было пройти курс бесплатно, если пригласишь друзей. Лучшему ученику по мнению преподавателя доставалась поездка в Париж. Были анонсированы также поощрительные призы — наборы маркеров, скетчбуки, книги по творчеству.
Трафик до старта кампании
Трафик во время кампании
Ежедневный трафик после старта рекламы вырос в 7,5 раз. До запуска кампании мы получали около 4 тыс. посещений лендинга в день. После запуска — 30 тыс. посещений в день.
В совокупности за месяц рекламной кампании мы получили 160 тыс. регистраций на курс.
Число зарегистрированных пользователей
259 896
Техническая сторона кейса: вирусный скрипт
Управляющий партнёр GetCourse
Чтобы участвовать в экстрим-скетчинге бесплатно, пользователям нужно было пригласить трёх друзей. Пришедших пользователей нужно было фиксировать и закреплять за тем, кто их позвал, по принципу реферальной партнёрской программы.
Благодаря скрипту у каждого пользователя была уникальная ссылка на лендинг курса. Её можно было публиковать в соцсетях или делиться в личных сообщениях, пересылать по электронной почте. Когда приглашённые пользователи оставляли по ссылке e-mail, платформа фиксировала вирусную регистрацию и закрепляла нового пользователя за его «родителем» из базы.
Шаги реализации кейса:
1. Пользователь оставлял заявку на лендинге курса. После заполнения формы он автоматически добавлялся в группу участников Летнего экстрим-скетчинга. (Читайте статью про автоматическое добавление в группу при заполнении формы).
2. Группе затем отправлялась цепочка писем. Первая рассылка — инструкция, рассказывала, как участвовать в марафоне бесплатно. В письме была размещена персональная ссылка со скриптом для приглашения друзей.
Антивирусная прав ДА! TM
Кругозор без горизонтов
Чтобы получить доступ к сервисам проекта, войдите на сайт через аккаунт. Если у вас еще нет аккаунта, его можно создать. Подписка
О вредоносных скриптах: как они работают, чем опасны и как не столкнуться с ними
Один из наших читателей в соцсетях задал вопрос о вредоносных скриптах и общей безопасности при работе в Интернете. В частности, он интересовался защитой от угроз на JavaScript и других скриптов, размещаемых злоумышленниками на веб-страницах, а также попросил дать несколько советов по правильной настройке веб-антивируса Dr.Web. Благодарим за актуальный вопрос – ведь это отличный повод разобраться, в чем же там дело!
Если рассказывать обо всех вредоносных скриптах, которые когда-либо видели специалисты нашей вирусной лаборатории, то статья по своему объему потянет на учебник и явно не впишется в формат «Антивирусной правды». Вы наверняка уже догадались, что это очень многообразный, а значит – распространенный тип вредоносных программ.
Что же такое вредоносный скрипт?
В широком смысле всякий скрипт – это программный код (сценарий), написанный на различных интерпретируемых языках. Все скрипты выполняются с помощью внешней программы – интерпретатора. В отличие от исполняемых файлов, скрипты в большинстве своем существуют в виде текстовых файлов и могут быть прочитаны человеком. Например, исходный код скомпилированного файла привести в первозданный вид почти невозможно, а скрипты, напротив, всегда содержат исходный код. По принципу работы «плохие» скрипты ничем не отличаются от «хороших».
Вредоносные скрипты можно условно разделить на два вида.
В контексте работы в Интернете под вредоносными скриптами чаще всего подразумевается первый вид. Такие сценарии как правило написаны на JavaScript и PHP. Они находятся в коде страниц недобросовестных или взломанных сайтов и пытаются майнить криптовалюту в браузере пользователя, отображают рекламу с целью накруток, перенаправляют на другие сайты, зачастую мошеннические и опасные. К веб-скриптам можно отнести и PHP-инфекторы, которые заражают «хорошие» скрипты на серверной стороне. Кроме того, вредоносный код может находиться в составе расширений для браузеров.
Теоретически скрипт веб-страницы может быть использован как эксплойт – набор ошибочно интерпретируемых браузером данных, позволяющий получить доступ к атакуемой системе. Однако в настоящее время такие эксплойты встречаются все реже в виду развития браузеров, которые ограничивают доступ к функциям ОС, поэтому вредоносный код на сайте едва ли может навредить компьютеру в целом. Но несмотря на это, упомянутых деструктивных функций вполне достаточно, чтобы сильно испортить жизнь любому пользователю. Реклама, мошенничество, фишинг, замедление работы браузера, даже сам взлом сайтов – это все про веб-скрипты. К тому же они кроссплатформенны и очень распространены, поскольку злоумышленники массово используют их для инфицирования страниц и веб-серверов.
Но опасность подстерегает не только на сайтах. Другим видом вредоносных скриптов являются сценарии, которые запускаются компонентами ОС. Они могут быть написаны на разных скриптовых языках: JScript, VBS, PowerShell, Perl, Python и многих других. Такие сценарии гораздо более функциональны и опасны, так как обращаются напрямую к API-объектам. Несмотря на то, что скрипты крайне редко содержат основную функциональность, они часто используются либо для начальной загрузки других вредоносных модулей в заражаемые системы, либо для промежуточных действий или вспомогательных операций. Например, в Windows часто встречаются PowerShell-скрипты, содержащие эксплойты или утилиты для продвижения по системе/сети. Хотя скрипты и считаются кроссплатформенным инструментом, некоторые из них работают только в предназначенных для этого ОС, так как для их работы важно наличие тех или иных системных API. Упомянутые PowerShell, а также BAT и JScript-сценарии работают в Windows, AppleScript предназначен для macOS, а ВПО для Linux часто представлено в виде bash-скриптов.
Системные скрипты для ОС чаще всего распространяются через электронную почту, раздаются на взломанных и вредоносных сайтах, загружаются другими программами, распространяются самостоятельно через съемные носители и сетевые ресурсы.
Добавим, что почти все вредоносные (и не только) скрипты тем или иным образом обфусцированы. Это значит, что для их детектирования часто приходится применять другие технологии, нежели традиционное сравнение по сигнатурам.
Для обезвреживания системных скриптов в Windows мы применяем алгоритмы машинного обучения, встроенные в основное антивирусное ядро. Такой подход позволяет успешно детектировать вредоносный код вне зависимости от его запутанности, что невозможно было бы сделать при помощи сигнатурного анализа.
Для блокировки веб-скриптов используется наш эвристический анализатор и веб-антивирус – SpIDer Gate. Отметим, что для эффективной защиты дополнительно настраивать какой-либо из компонентов Dr.Web не нужно, так как настройки по умолчанию соответствуют оптимальным.
Таким образом, сегодня мы узнали, что скрипты могут нести самую разную вредоносную нагрузку – являться эксплойтами, майнерами, различными вспомогательными утилитами, рекламными троянами и даже шифровальщиками. Чтобы обезопасить себя и свой компьютер, требуется использовать надежную защиту.
Вирусный скрипт
Что такое вирусный скрипт?
Это функционал, позволяющий пользователям (ученикам) привлекать новых пользователей для регистрации в аккаунте по дружеской ссылке. Мы рекомендуем использовать вирусный скрипт в промокампаниях, когда вы предлагаете специальный бесплатный контент, уникальное акционное предложение либо выдаёте временный доступ к платным материалам и просите свою базу пригласить N участников. Актуальнее всего использовать вирусный скрипт на большой базе пользователей. Например, в одном из наших проектов по такому принципу устроен «Экстрим-скетчинг».
Как работает вирусный скрипт?
Для начала создадим страницу, ссылкой на которую пользователи будут делиться (например, страницу регистрации на курс). Такая страница обязательно должна содержать форму регистрации или продажи или аналогичный виджет с формой.
Уникальная вирусная ссылка будет выглядеть так:
Ссылку можно отправить в тексте рассылки вашей базе пользователей:
Или ссылку можно быстро и легко опубликовать для всех авторизованных пользователей. Для этого на странице размещаем текстовый блок, добавляем в него ссылку и включаем функцию «Заменять переменные пользователя»:
Далее нужно опубликовать страницу с размещённой ссылкой. В режиме просмотра появится готовая ссылка, для каждого авторизованного посетителя страницы она будет уникальной:
Данную ссылку пользователь может распространить любым удобным способом — например, отправить сообщением другу или опубликовать в соцсетях. При переходе по ссылке новый пользователь заполняет форму и попадает в базу аккаунта, система фиксирует вирусную регистрацию и закрепляет нового пользователя за его «родителем» из базы.
В профиле приглашённого пользователя можно увидеть тип регистрации — «Приглашён другим пользователем» и ссылку на пользователя-«родителя»:
Как использовать вирусные связи?
Все вирусные связи фиксируются и хранятся в системе. Чтобы проанализировать или использовать данные о пригласивших / приглашённых пользователях, можно построить сегмент:
Данные по этим условиям можно использовать в рассылках, воронках, процессах и так далее.
Например, в рамках рекламной кампании задано определённое количество (N) друзей, которых нужно пригласить для получения бонуса — можно настроить рассылки, которые будут автоматически запускаться при достижении этого порога, высылать материалы новому пользователю и письмо с бонусом пользователю-«родителю».
Внутри условия можно задать порог приглашенных пользователей (например, пригласил не менее 3 друзей), а также уточнить другие параметры пользователей (например, пригласил друга, который оплатил заказ с определённым предложением):
Пишем свое вредоносное ПО. Часть 1: Учимся писать полностью «не обнаружимый» кейлогер
Хакерский мир можно условно разделить на три группы атакующих:
1) «Skids» (script kiddies) – малыши, начинающие хакеры, которые собирают известные куски кода и утилиты и используя их создают какое-то простое вредоносное ПО.
2) «Byuers» — не чистые на руку предприниматели, тинэйджеры и прочие любители острых ощущений. Покупают услуги по написанию такого ПО в интернете, собирают с ее помощью различную приватную информацию, и, возможно, перепродают ее.
3) «Black Hat Сoders» — гуру программирования и знатоки архитектур. Пишут код в блокноте и разрабатывают новые эксплоиты с нуля.
Может ли кто-то с хорошими навыками в программировании стать последним? Не думаю, что вы начнете создавать что-то, на подобии regin (ссылка) после посещения нескольких сессий DEFCON. С другой стороны, я считаю, что сотрудник ИБ должен освоить некоторые концепты, на которых строится вредоносное ПО.
Зачем ИБ-персоналу эти сомнительные навыки?
Знай своего врага. Как мы уже обсуждали в блоге Inside Out, нужно думать как нарушитель, чтобы его остановить. Я – специалист по информационной безопасности в Varonis и по моему опыту – вы будете сильнее в этом ремесле если будете понимать, какие ходы будет делать нарушитель. Поэтому я решил начать серию постов о деталях, которые лежат в основе вредоносного ПО и различных семействах хакерских утилит. После того, как вы поймете насколько просто создать не детектируемое ПО, вы, возможно, захотите пересмотреть политики безопасности на вашем предприятии. Теперь более подробно.
Для этого неформального класса «hacking 101» вам необходимы небольшие знания в программировании (С# и java) и базовое понимание архитектуры Windows. Имейте ввиду, что в реальности вредоносное ПО пишется на C/C++/Delphi, чтобы не зависеть от фреймфорков.
Кейлогер – это ПО или некое физическое устройство, которое может перехватывать и запоминать нажатия клавиш на скомпрометированной машине. Это можно представить как цифровую ловушку для каждого нажатия на клавиши клавиатуры.
Зачастую эту функцию внедряют в другое, более сложное ПО, например, троянов (Remote Access Trojans RATS), которые обеспечивают доставку перехваченных данных обратно, к атакующему. Также существуют аппаратные кейлогеры, но они менее распространены, т.к. требуют непосредственного физического доступа к машине.
Тем не менее создать базовые функции кейлогера достаточно легко запрограммировать. ПРЕДУПРЕЖДЕНИЕ. Если вы хотите попробовать что-то из ниже следующего, убедитесь, что у вас есть разрешения, и вы не несёте вреда существующей среде, а лучше всего делать это все на изолированной ВМ. Далее, данный код не будет оптимизирован, я всего лишь покажу вам строки кода, которые могут выполнить поставленную задачу, это не самый элегантный или оптимальный путь. Ну и наконец, я не буду рассказывать как сделать кейлогер стойким к перезагрузкам или пытаться сделать его абсолютно не обнаружимым благодаря особым техникам программирования, так же как и о защите от удаления, даже если его обнаружили.
Для подключения к клавиатуре вам всего лишь нужно использовать 2 строки на C#:
Вы можете изучить больше про фунцию GetAsyncKeyState на MSDN:
Для понимания: эта функция определяет нажата клавиш или отжата в момент вызова и была ли нажата после предыдущего вызова. Теперь постоянно вызываем эту функцию, чтобы получать данные с клавиатуры:
Что здесь происходит? Этот цикл будет опрашивать каждые 100 мс каждую из клавиш для определения ее состояния. Если одна из них нажата (или была нажата), сообщение об этом будет выведено на консоль. В реальной жизни эти данные буферизируются и отправляются злоумышленнику.
Умный кейлогер
Погодите, а есть ли смысл пытаться снимать всю подряд информацию со всех приложений?
Код выше тянет сырой ввод с клавиатуры с любого окна и поля ввода, на котором сейчас фокус. Если ваша цель – номера кредитных карт и пароли, то такой подход не очень эффективен. Для сценариев из реального мира, когда такие кейлогеры выполняются на сотнях или тысячах машин, последующий парсинг данных может стать очень долгим и по итогу потерять смысл, т.к. ценная для взломщика информация может к тому времени устареть.
Давайте предположим, что я хочу заполучить учетные данные Facebook или Gmail для последующей продажи лайков. Тогда новая идея – активировать кейлоггинг только тогда, когда активно окно браузера и в заголовке страницы есть слово Gmail или facebook. Используя такой метод я увеличиваю шансы получения учетных данных.
Вторая версия кода:
Этот фрагмент будет выявлять активное окно каждые 100мс. Делается это с помощью функции GetForegroundWindow (больше информации на MSDN). Заголовок страницы хранится в переменной buff, если в ней содержится gmail или facebook, то вызывается фрагмент сканирования клавиатуры.
Этим мы обеспечили сканирование клавиатуры только когда открыто окно браузера на сайтах facebook и gmail.
Еще более умный кейлогер
Давайте предположим, что злоумышленник смог получить данные кодом, на подобии нашего. Так же предположим, что он достаточно амбициозен и смог заразить десятки или сотни тысяч машин. Результат: огромный файл с гигабайтами текста, в которых нужную информацию еще нужно найти. Самое время познакомиться с регулярными выражениями или regex. Это что-то на подобии мини языка для составления неких шаблонов и сканирования текста на соответствие заданным шаблонам. Вы можете узнать больше здесь.
Для упрощения, я сразу приведу готовые выражения, которые соответствуют именам логина и паролям:
Эти выражения здесь как подсказка тому, что можно сделать используя их. С помощью регулярных выражений можно искать (т найти!) любые конструкции, которые имеют определенный и неизменный формат, например, номера паспортов, кредитных карт, учетные записи и даже пароли.
Действительно, регулярные выражения не самый читаемый вид кода, но они одни из лучших друзей программиста, если есть задачи парсинга текста. В языках Java, C#, JavaScript и других популярных уже есть готовые функции, в которые вы можете передать обычные регулярные выражения.
Для C# это выглядит так:
Где первое выражение (re) будет соответствовать любой электронной почте, а второе (re2) любой цифро буквенной конструкции больше 6 символов.
Бесплатно и полностью не обнаружим
В своем примере я использовал Visual Studio – вы можете использовать свое любимое окружение – для создания такого кейлогера за 30 минут.
Если бы я был реальным злоумышленником, то я бы целился на какую-то реальную цель (банковские сайты, соцсети, тп) и видоизменил код для соответствия этим целям. Конечно, также, я запустил бы фишинговую кампанию с электронными письмами с нашей программой, под видом обычного счета или другого вложения.
Остался один вопрос: действительно такое ПО будет не обнаруживаемым для защитных программ?
Я скомпилировал мой код и проверил exe файл на сайте Virustotal. Это веб-инструмент, который вычисляет хеш файла, который вы загрузили и ищет его в базе данных известных вирусов. Сюрприз! Естественно ничего не нашлось.
В этом основная фишка! Вы всегда можете менять код и развиваться, будучи всегда на несколько шагов раньше сканеров угроз. Если вы в состоянии написать свой собственный код он почти гарантированно будет не обнаружим. На этой странице вы можете ознакомиться с полным анализом.
Основная цель этой статьи – показать, что используя одни только антивирусы вы не сможете полностью обеспечить безопасность на предприятии. Нужен более глубинная оценка действий всех пользователей и даже сервисов, чтобы выявить потенциально вредоносные действия.
В следующих статья я покажу, как сделать действительно не обнаружимую версию такого ПО.