Как создать беспалевный вирус
Обновлено: 18.04.2024
Здравствуй, дорогой читатель/читательница. Если ты читаешь эту статью, значит тебе захотелось немножко разыграть своего друга или знакомого. Здесь ты прочитаешь, как создать свой безобидный вирус с расширением .bat.
Предупреждаю: все описанные здесь примеры должны использоваться строго в законных целях. Автор этой статьи и администрация сайта за причиненный Вами ущерб ответственности не несёт! D:
Короче говоря, сначала рассмотрим, что же такое в сущности, этот таинственный bat-файл, или в компьютерном сленге, батник.
Википедия гласит:
Проще говоря, это аналог командной строки.
Конечно, команд там разных много, но нам потребуется лишь несколько. Впринципе, если Вы хотите сделать этот вирус один раз и не вдаваться в подробности, то запоминать их и не надо.
Общий принцип создания bat-файлов очень прост. Их можно создавать даже через Блокнот.
- Открываем Блокнот
- Пишем @echo off
- Дальше пишем или копируем туда наш код
- Выбираем в левом верхнем углу "Сохранить как. "
- По умолчанию, все файлы сохраняются как .txt. Нас же это не устраивает.
Выбираем вместо "текстовые документы" "все файлы", пишем имя файла.bat и сохраняем.
В итоге должно получиться вот так
А затем вот так
Но если вы хотите быть коварными до конца, поменяйте у пакетного файла расширение на .exe, поставьте ему иконку, на которую пользователь захочет нажать, и, конечно, поменяйте название на название его любимой игры или браузера.
В общем, решайте сами. Фантазия тут неограничена.
Теперь, собственно, сам код.
При активации данного "недовируса" появляется бесчисленное множество командных строк и компьютер гарантированно виснет. Убить процесс можно лишь через перезагрузку компьютера. На моём ноуте с объемом оперативной памяти 16 Гб глюков не наблюдалось лишь первые 3 секунды. Потом он намертво завис.
Называется такой тип вируса "форк-бомба". Опять-таки, читайте в Википедии :)
Данный вирус сбивает время на компьютере. Дёшево и сердито. И максимально безобидно.
Удаляет все ярлыки с рабочего стола. Уже не так безобидно, но еще не катастрофа.
Удаляет все курсоры. Пользователь дезориентирован.
(Команду для самоуничтожения вируса нужно писать после самого вируса). Например
Ну, собственно, и всё. С батниками можно сделать еще очень много чего интересного, но новичкам, я думаю, хватит и этого. И еще раз предупреждаю: не надо разыгрывать людей со слабой психикой, А ТО КАК ТРЕСНУТ!
До скорого, мои хакеры)
Хакерский мир можно условно разделить на три группы атакующих:
Может ли кто-то с хорошими навыками в программировании стать последним? Не думаю, что вы начнете создавать что-то, на подобии regin (ссылка) после посещения нескольких сессий DEFCON. С другой стороны, я считаю, что сотрудник ИБ должен освоить некоторые концепты, на которых строится вредоносное ПО.
Зачем ИБ-персоналу эти сомнительные навыки?
Знай своего врага. Как мы уже обсуждали в блоге Inside Out, нужно думать как нарушитель, чтобы его остановить. Я – специалист по информационной безопасности в Varonis и по моему опыту – вы будете сильнее в этом ремесле если будете понимать, какие ходы будет делать нарушитель. Поэтому я решил начать серию постов о деталях, которые лежат в основе вредоносного ПО и различных семействах хакерских утилит. После того, как вы поймете насколько просто создать не детектируемое ПО, вы, возможно, захотите пересмотреть политики безопасности на вашем предприятии. Теперь более подробно.
Кейлогер – это ПО или некое физическое устройство, которое может перехватывать и запоминать нажатия клавиш на скомпрометированной машине. Это можно представить как цифровую ловушку для каждого нажатия на клавиши клавиатуры.
Зачастую эту функцию внедряют в другое, более сложное ПО, например, троянов (Remote Access Trojans RATS), которые обеспечивают доставку перехваченных данных обратно, к атакующему. Также существуют аппаратные кейлогеры, но они менее распространены, т.к. требуют непосредственного физического доступа к машине.
Тем не менее создать базовые функции кейлогера достаточно легко запрограммировать. ПРЕДУПРЕЖДЕНИЕ. Если вы хотите попробовать что-то из ниже следующего, убедитесь, что у вас есть разрешения, и вы не несёте вреда существующей среде, а лучше всего делать это все на изолированной ВМ. Далее, данный код не будет оптимизирован, я всего лишь покажу вам строки кода, которые могут выполнить поставленную задачу, это не самый элегантный или оптимальный путь. Ну и наконец, я не буду рассказывать как сделать кейлогер стойким к перезагрузкам или пытаться сделать его абсолютно не обнаружимым благодаря особым техникам программирования, так же как и о защите от удаления, даже если его обнаружили.
Вы можете изучить больше про фунцию GetAsyncKeyState на MSDN:
Для понимания: эта функция определяет нажата клавиш или отжата в момент вызова и была ли нажата после предыдущего вызова. Теперь постоянно вызываем эту функцию, чтобы получать данные с клавиатуры:
Умный кейлогер
Погодите, а есть ли смысл пытаться снимать всю подряд информацию со всех приложений?
Код выше тянет сырой ввод с клавиатуры с любого окна и поля ввода, на котором сейчас фокус. Если ваша цель – номера кредитных карт и пароли, то такой подход не очень эффективен. Для сценариев из реального мира, когда такие кейлогеры выполняются на сотнях или тысячах машин, последующий парсинг данных может стать очень долгим и по итогу потерять смысл, т.к. ценная для взломщика информация может к тому времени устареть.
Давайте предположим, что я хочу заполучить учетные данные Facebook или Gmail для последующей продажи лайков. Тогда новая идея – активировать кейлоггинг только тогда, когда активно окно браузера и в заголовке страницы есть слово Gmail или facebook. Используя такой метод я увеличиваю шансы получения учетных данных.
Вторая версия кода:
Этот фрагмент будет выявлять активное окно каждые 100мс. Делается это с помощью функции GetForegroundWindow (больше информации на MSDN). Заголовок страницы хранится в переменной buff, если в ней содержится gmail или facebook, то вызывается фрагмент сканирования клавиатуры.
Этим мы обеспечили сканирование клавиатуры только когда открыто окно браузера на сайтах facebook и gmail.
Еще более умный кейлогер
Давайте предположим, что злоумышленник смог получить данные кодом, на подобии нашего. Так же предположим, что он достаточно амбициозен и смог заразить десятки или сотни тысяч машин. Результат: огромный файл с гигабайтами текста, в которых нужную информацию еще нужно найти. Самое время познакомиться с регулярными выражениями или regex. Это что-то на подобии мини языка для составления неких шаблонов и сканирования текста на соответствие заданным шаблонам. Вы можете узнать больше здесь.
Для упрощения, я сразу приведу готовые выражения, которые соответствуют именам логина и паролям:
Где первое выражение (re) будет соответствовать любой электронной почте, а второе (re2) любой цифро буквенной конструкции больше 6 символов.
Бесплатно и полностью не обнаружим
В своем примере я использовал Visual Studio – вы можете использовать свое любимое окружение – для создания такого кейлогера за 30 минут.
Если бы я был реальным злоумышленником, то я бы целился на какую-то реальную цель (банковские сайты, соцсети, тп) и видоизменил код для соответствия этим целям. Конечно, также, я запустил бы фишинговую кампанию с электронными письмами с нашей программой, под видом обычного счета или другого вложения.
Остался один вопрос: действительно такое ПО будет не обнаруживаемым для защитных программ?
Я скомпилировал мой код и проверил exe файл на сайте Virustotal. Это веб-инструмент, который вычисляет хеш файла, который вы загрузили и ищет его в базе данных известных вирусов. Сюрприз! Естественно ничего не нашлось.
В этом основная фишка! Вы всегда можете менять код и развиваться, будучи всегда на несколько шагов раньше сканеров угроз. Если вы в состоянии написать свой собственный код он почти гарантированно будет не обнаружим. На этой странице вы можете ознакомиться с полным анализом.
Основная цель этой статьи – показать, что используя одни только антивирусы вы не сможете полностью обеспечить безопасность на предприятии. Нужен более глубинная оценка действий всех пользователей и даже сервисов, чтобы выявить потенциально вредоносные действия.
В следующих статья я покажу, как сделать действительно не обнаружимую версию такого ПО.
На днях заняться было нечем, решил в развивающих целях(я начинающий программист) сделать какое-то подобие вируса, если моё творение можно так назвать.
Получать системную информацию, и скриншоты экрана с последующей отправкой на сервер. А так же автообновляться и забирать команды с сервера.
В чем же, спросите, соль?
А она, пожалуй в том, что он абсолютно не детектируется антивирусами. Хоть и имеет функционал, достаточный для шпионажа, дальнейшей загрузки и запуска программ. Обнаружено это было совершенно случайно.
Структура
Основная часть
Начнем с загрузчика. Тут все просто, никаких особых извращений. Единственное, что я сделал — так это загрузка не с собственного сервера(на что, понятное дело, ругались АВ продукты), а загрузка с популярных файловых хостингов(аля rghost, zalil и т.п.). Этим проблема была исчерпана.
Начать я решил с получения сис. информации, которая понадобилась бы в дальнейшем для идентификации компьютера на сервере(для каждого ПК предназначалась бы отдельная папка с названием в виде имени ПК и вложенными инструкциями и прочим). Для получения необходимой мне информации я использовал пространство имен System.Environment(что уже должно быть крайне подозрительно для АВ продукта). Получение скриншота экрана тоже не вызвало затруднений. После получения данной информации я склеивал её и отправлял на сервер. Тут мне и понадобились эти библиотеки.
Почти для каждого метода я выделял отдельный класс и отдельный метод, в этом и состояла вся хитрость.
Немного кода для примера:
Для ещё большего извращения можно вызывать функции через поток. Т.е. создавать новый поток для каждой функции(даже меня тут чуть не стошнило от своего кода, как мне вообще пришло такое в голову).
Да простят меня программисты!
Вывод
Достаточно немного быдлокода, запутанных инструкций и неумения программировать что бы получился скрытый продукт, который можно в последующем обновлять до более злого трояна. Статья написана на скорую руку, в чисто тренировочных целях, без злого умысла. В сеть вирус не запускался и не планируется, тестировалось на домашних ПК.
*Оригинальная картинка, наглым образом вытащеная из ресурсов apk
[прим. apk — расширение файла установки приложения на ОС андроид]
Вступление
Нежданно-негаданно, посреди рабочего дня на мой старенький Sony Ericsson K320i приходит смс следующего содержания:
1. Подготовка
2. Установка
Устанавливаю. Ужасаюсь количеством permission (разрешений). Операционная система любезно предупреждает:
3. Вирус-приложение
Само приложение состоит из одной активити-картинки с обреченным котенком. Наверное таким образом разработчик пытался пошутить.
В этом месте, я немного забегу вперед (см. п.6) и приведу, код AndroidManifest.xml для лучшего понимания статьи.
4. Удаление?
В дальнейших разделах используется описание действий связанных с использованием бесплатных версий продуктов некоторых компаний. Целью повествования не являются жалобы на компании или предоставляемые ими услуги.
5. Dr Web против вируса
Я разочарован! Печально вздохнув, удаляю антивирусник.
UPD от 6.09.14. На данный момент антивирусник успешно опознает данный зловред под детектом Android.SmsBot.origin.165. Алгоритм удаления такой же, как и при использовании Avast (см. ниже).
5. Avast против вируса
Опять на тропу читерства меня толкают. Будем искать другое решение…
6. Реверс-инжиниринг
Послесловие
Таким образом, выполнив повторно пункт 5 данной публикации (не останавливаясь на последнем шаге), вирус версии 4.0 (согласно манифест-файлу) был побежден.
Почему не удалось напрямую из настроек убрать галочку админправ для приложения, а только используя Avast? Скорее всего, стоит очередная ловушка с переопределенным методом.
Выводы
Читайте также: