Как создать беспалевный вирус

Обновлено: 18.04.2024

Здравствуй, дорогой читатель/читательница. Если ты читаешь эту статью, значит тебе захотелось немножко разыграть своего друга или знакомого. Здесь ты прочитаешь, как создать свой безобидный вирус с расширением .bat.

Предупреждаю: все описанные здесь примеры должны использоваться строго в законных целях. Автор этой статьи и администрация сайта за причиненный Вами ущерб ответственности не несёт! D:
Короче говоря, сначала рассмотрим, что же такое в сущности, этот таинственный bat-файл, или в компьютерном сленге, батник.
Википедия гласит:

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

  • Открываем Блокнот
  • Пишем @echo off
  • Дальше пишем или копируем туда наш код
  • Выбираем в левом верхнем углу "Сохранить как. "
  • По умолчанию, все файлы сохраняются как .txt. Нас же это не устраивает.


Выбираем вместо "текстовые документы" "все файлы", пишем имя файла.bat и сохраняем.
В итоге должно получиться вот так

А затем вот так

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

При активации данного "недовируса" появляется бесчисленное множество командных строк и компьютер гарантированно виснет. Убить процесс можно лишь через перезагрузку компьютера. На моём ноуте с объемом оперативной памяти 16 Гб глюков не наблюдалось лишь первые 3 секунды. Потом он намертво завис.
Называется такой тип вируса "форк-бомба". Опять-таки, читайте в Википедии :)

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

Удаляет все ярлыки с рабочего стола. Уже не так безобидно, но еще не катастрофа.

Удаляет все курсоры. Пользователь дезориентирован.

вот так

(Команду для самоуничтожения вируса нужно писать после самого вируса). Например

Ну, собственно, и всё. С батниками можно сделать еще очень много чего интересного, но новичкам, я думаю, хватит и этого. И еще раз предупреждаю: не надо разыгрывать людей со слабой психикой, А ТО КАК ТРЕСНУТ!
До скорого, мои хакеры)

image

Хакерский мир можно условно разделить на три группы атакующих:

Может ли кто-то с хорошими навыками в программировании стать последним? Не думаю, что вы начнете создавать что-то, на подобии 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. Это веб-инструмент, который вычисляет хеш файла, который вы загрузили и ищет его в базе данных известных вирусов. Сюрприз! Естественно ничего не нашлось.

image

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

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

В следующих статья я покажу, как сделать действительно не обнаружимую версию такого ПО.

image

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

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

В чем же, спросите, соль?

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

Структура
Основная часть

Начнем с загрузчика. Тут все просто, никаких особых извращений. Единственное, что я сделал — так это загрузка не с собственного сервера(на что, понятное дело, ругались АВ продукты), а загрузка с популярных файловых хостингов(аля 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? Скорее всего, стоит очередная ловушка с переопределенным методом.

Выводы

Читайте также: