Как написать программу-вирус на Java

Обновлено: 23.11.2024

Привет, друзья! Добро пожаловать обратно! Прежде чем продолжить работу с Malicious Logic, я прошу вас взглянуть на эту замечательную и информативную статью «Черви, вирусы и не только»!!

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

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

Вредоносная логика — это набор инструкций (в основном программы), которые вызывают нарушение политики безопасности веб-сайта/программы/приложения и т. д.

Сценарий UNIX

В этом примере мы предполагаем, что «.» находится в среде пути, а скрипт назван ls и помещен в каталог.

Анализ сценария

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

В ОС UNIX идентификатор пользователя обычно представляется целым числом от 0 до 65 535. Этот номер также называется UID (уникальный идентификационный номер). Что делают программы setuid, так это то, что они создают процессы с UID владельца, а не третьего лица, выполняющего программу. Это означает, что у исполнителя будут права владельца… Это само по себе является возможной уязвимостью.

Возвращаясь к нашему сценарию, была создана setuid-копия оболочки UNIX. Позже эта программа удаляется, а затем выполняется правильная команда ls (для вывода списка файлов и папок, присутствующих в текущем рабочем каталоге).

Троянские кони

Вернуться к предыдущему сценарию... Предположим, что кто-то (root) ввел:

Если скрипт был набран преднамеренно, то результатом будет троянский конь.

Вирус — базовый формат

Большинство компьютерных вирусов следуют следующему основному сценарию:

  1. Фаза внедрения — на этом этапе вирус внедряется в цель.
  2. Этап выполнения — на этом этапе вирус выполняет некоторые действия.

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

Компьютерный вирус:-

"Кусок кода, способен копировать сам себя и обычно имеет пагубные последствия, такие как повреждение системы или уничтожение данных».

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


Кто первым создал вирус?

< /i> Опубликовано 17 апреля 2013 г.
Первый в мире компьютерный вирус был разработан в 1986 году двумя пакистанскими братьями в Лахоре, Пакистан. Первый компьютерный вирус под названием «Мозг» был разработан Амджадом Фаруком Алви и Баситом Фаруком Алви с целью выявления пиратства написанного ими программного обеспечения.

Как создать A

Простой Вирус И

Что Языки

Используются?

C Sharp и C++ — очень популярные языки в мире Cracking Word. Иногда хакеры используют другие
объектно-ориентированные языки, такие как Java и т. д. Сегодня я научу вас, как создать простой вирус с помощью JAVA.

ДЕТАЛИ ВИРУСА:-

Этот вирус начинает создавать несколько файлов на вашем диске, и это будет продолжаться до тех пор, пока эта программа не будет
остановлена ​​вручную, но вы не можете остановить эту программу, потому что она также зависает на вашем компьютере, и, честно говоря, я пробовал этот вирус. на моем компьютере, и на моем диске было создано более 80 000 файлов.

Интенсивность вируса:-

Это не повредит вашим данным, но может повредить вашу оперативную память и нарушить работу процессора.

ОБНАРУЖИВАЕТСЯ ЛИ ЭТО КАКИМ-ЛИБО АНТИВИРУСОМ?

Нет! Ни один антивирус не сможет это остановить, потому что в основном антивирусы фокусируются на троянских конях, вредоносных программах и т. д.

ШАГ 1:
Прежде всего вам необходимо установить Java на свой компьютер с помощью JDK.

ШАГ 2:
Затем создайте цикл, область действия которого должна быть бесконечной.

ПРИМЕР:-
int a=0;
while(a

>
поскольку мы не увеличили "a", которые являются переменными в блоке while, поэтому его область действия бесконечна.

ШАГ 3:
Импортируйте файл класса PrintWriter, который создаст файл, а затем введите следующий код.

ПРИМЕР:-
попробуйте <
PrintWriter b = null;

b = new PrintWriter("d:\\"+ a + ".txt");

b.write("Извините. :P" + "\n С уважением, Хани");
> catch (FileNotFoundException ex) <
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
>


Здесь блок catch выполняется, если возникает исключение. Я расскажу вам об исключениях в Java в своем следующем блоге.

ШАГ 4:
Теперь создайте приложение и отдайте своему другу и скажите ему, чтобы он выполнил и увидел медовую оболочку :)
Вот и все. :)

Мне казалось, что вредоносное ПО никогда не сможет быть написано на Java. Те, кто обучал меня Java, говорили, что это «безопасно» и не допускает «низкоуровневого доступа», такого как c, c++.

Вот мой вопрос: можем ли мы использовать java для выполнения ВСЕХ "плохих вещей/задач, необходимых вредоносным программам", которые могут выполнять c, c++?
Если это так, то можем ли мы сказать, что Java также хороша для написания вредоносных программ? В конце концов, большинство преступников хотели бы, чтобы их вредоносное ПО было многоплатформенным.

Хорошим началом будет изучение Java Native Interface, который позволяет вам выполнять код C.

4 ответа 4

Код Java может вызывать собственный код (например, код, написанный на языке C или любом другом, и скомпилированный в последовательность кодов операций ЦП) через стандартный интерфейс. На самом деле Java может куда-то записать DLL-файл (в виде группы байтов) и загрузить его, так что все, что может делать собственный код, может и Java.

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

  1. Требуется виртуальная машина Java. Java не установлена ​​по умолчанию во многих современных операционных системах.
  2. Виртуальная машина Java имеет тенденцию помещать апплеты Java в песочницу. Чтобы запустить нативный код или получить доступ к произвольным файлам, апплет Java должен запросить разрешение, которое влечет за собой цифровые подписи и сертификаты, которые могут быть отслежены до преступника. Или необходимо использовать конкретную ошибку выхода из песочницы; такие ошибки обнаруживаются регулярно, но они также исправляются с похвальной быстротой.
  3. Существующие реализации виртуальных машин Java слишком толстые. Они оптимизированы для больших приложений, которые в любом случае будут использовать много оперативной памяти, поэтому любой Java-код имеет большой минимальный объем памяти. Вредоносное ПО обычно предпочитает незаметность.
  4. Виртуальные машины Java поставляются с обширными инструментами отладки, которые позволяют подключаться к работающей виртуальной машине и проверять, что в ней происходит. Это может помочь в очистке от вредоносных программ на основе Java.

Вот почему Java не будет казаться лучшим языком для авторов вредоносных программ. Кроме того, даже если Java номинально переносима, кросс-платформенное вредоносное ПО является труднодостижимой целью, потому что вредоносное ПО, как правило, работает на довольно низком уровне, т. е. на уровне, который сильно зависит от ОС. Изменение файла /etc/passwd в Unix-подобной системе — очень неприятная вещь; но это никак не повлияет на Windows, в которой нет файла /etc/passwd. Таким образом, у авторов вредоносных программ мало стимулов для использования Java.

"Java не установлена ​​по умолчанию во многих современных операционных системах" - она ​​не установлена ​​по умолчанию, ее устанавливают пользователи :) в итоге она так или иначе присутствует.

На самом деле Dalvik — это не точно Java; в частности, он использует собственный формат байт-кода. Хотя части Java скрыты в Dalvik, вы не можете взять скомпилированное Java-приложение и ожидать, что оно будет работать «как есть» в Dalvik. Он даже не будет загружен. Не только формат байт-кода должен быть переведен, но и библиотека классов, используемых для взаимодействия с системой, в Dalvik совершенно другая.

Вредоносное ПО бывает настолько разных форм и размеров, что на этот вопрос сложно ответить. Написать вредоносное ПО на Java так же просто, как

Могу ли я написать Java-приложение, которое похищает ваши данные? Без труда. Могу ли я написать руткит для Linux на Java? Почти наверняка нет, но это не мешает мне делать все вещи, которые я могу делать с любыми разрешениями, с которыми работает JVM.

Поэтому в этом смысле да, вы можете писать вредоносное ПО на Java, но вы будете несколько более ограничены, чем если бы вы писали на системном языке, таком как C; кейлоггер гораздо сложнее написать на Java, чем на C, и скрыть его, вероятно, невозможно.

@FirstNameLastName сокрытие процесса от основной ОС — это задача, требующая низкоуровневого изменения свойств среды выполнения ядра (Google DKOM). Это то, чего вы можете достичь с помощью такого языка, как C, благодаря тому, что у вас есть доступ к хост-системе с гораздо более низкой абстракцией, чем в Java. Java находится в «песочнице» внутри JVM.Скрытие процесса Java из приложения Java будет означать попытку скрыть виртуальную машину саму внутри подпроцесса.

Возможно, вы неправильно поняли, что имели в виду, когда услышали, что Java более безопасна. Они имели в виду, что ваше приложение более безопасно или что вредоносное ПО не может быть написано на этом языке?

В прошлом был обнаружен ряд уязвимостей в API-интерфейсе Java (и впоследствии они были исправлены), которые позволяли программе Java выполнять вредоносный код без согласия пользователя. Это часто происходит через апплеты, поскольку многие браузеры поддерживают Java.

Просмотрите базу данных CVE, где вы можете найти некоторые предыдущие уязвимости Java.

Однако, возможно, эти люди имели в виду, что ваши приложения могут быть написаны более защищенными от хакеров. В этом смысле отчасти верно. Например, Java-приложения (обычно) не могут быть взломаны с помощью атак переполнения буфера, поскольку стек управляется jvm. Я думаю, именно это имелось в виду, когда вам говорили, что Java более безопасна.

Вот еще немного информации о том, почему программирование на Java может быть безопасным.

Часть вредоносной программы Java, вероятно, может выполнять большую часть, если не все, функций, которые может выполнять часть вредоносной программы C.

Однако есть несколько особенностей языка Java, которые, вероятно, заставляют авторов вредоносного ПО склоняться к языку, подобному C.

Требуется виртуальная машина Java

Программа Java не может выполняться на компьютере, если на этом компьютере не установлена ​​виртуальная машина Java (JVM). Написание вашего вредоносного ПО на Java автоматически ограничивает вас от любой цели, на которой не запущена JVM.

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

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

Ограничения виртуальной машины Java

Это требование JVM также может затруднить сокрытие вредоносного Java-приложения. Он полагается на установленную пользователем JVM; все, что им нужно сделать, это удалить это, и они остановят вредоносное ПО на своем пути.

Кроссплатформенная совместимость — это не так просто

К настоящему моменту вы можете подумать: "Да, но разве это не стоит того, чтобы ваше вредоносное ПО волшебным образом работало на всех платформах?"

Хотя Java действительно совместима с разными платформами (пока доступна JVM), это может не обязательно означать то, что вы думаете.

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

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

Кроме того, давайте не будем забывать, что код C можно скомпилировать для нескольких разных платформ. Преимущество Java перед C заключается в том, что его можно скомпилировать один раз и запустить где угодно, но в конечном итоге один и тот же код C может работать на разных платформах — всего лишь с одним дополнительным шагом.

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

Дата регистрации август 2009 г. Пол Местоположение wada Сообщений 181 Репутация 10 Спасибо 11 --> Спасибо 24

Начало написания вирусов на Java

Это руководство посвящено самым основам написания Java-вируса.
Я знаю, что Java не идеальная программа для написания вирусов, но она отлично подходит для обучения. Каждую неделю я буду выпускать новый туториал, как будет дальше.

Неделя первая:
I. Получение свойств системы
II. Создание файлов
III. Запуск файлов

Вторая неделя:
I. Создание временных файлов
II. Запись в системные файлы

Третья неделя:
I. Отключение безопасности
II. Создание файлов, которые копируют себя на компьютер

Четвертая неделя:
I. Трояны удаленного доступа
II. Открытие соединений между клиентом и сервером

Пятая неделя:
I. Java Drive By

Шестая неделя:
I. Использование Java для проникновения в Facebook

Седьмая неделя:
I. Взлом клиентов и апплетов с помощью Java Snoop


Неделя первая:
Я использую Java Eclipse IDE: Eclipse Classic 4.2.1 | Пакеты Eclipse
Здесь мы начнем с основ написания вирусного кода с помощью java.Я предполагаю, что вы уже знаете и понимаете базовый синтаксис Java и понимаете, по крайней мере, простые программы, написанные на Java.

Я. Первое, что мы должны знать, чтобы прилично поместить файл в определенное место на компьютере, — это как получить системные свойства.
К счастью, в Java уже есть очень хороший метод для этого:

Объяснение:
[SPOILER]Это очень простой код. Я разобью его на части.
Система: Совершенно очевидно..
getProperty(): Метод для возврата свойства запрошенной вами строки.
Путь к строке: в основном здесь вы вводите строку, которую хотите найти, я использую «user.home», чтобы получить домашний путь пользователя.[/SPOILER]

II. Далее Мы должны знать, как создать файл. Это довольно простой код.

Объяснение:
[SPOILER]File — это конструктор,
и fileName — это имя, которое мы хотим дать этому файлу[/SPOILER]

III. Я не буду вдаваться в подробности записи в файл, но вот код, который я использовал для записи в файлы.

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

Код: Здесь я собрал простой пример кода для этого руководства. Просто следуйте комментарию, чтобы узнать, что делает программа. Он просто создает новый файл в домашней папке пользователя с именем %tempDir%.bat и записывает команду пакетного файла для удаления указанной пользовательской папки в системе. Затем он запускает этот пакетный файл и удаляет системную папку.

Чтобы удалить папку, просто измените имя "AddHere" в коде на папку, которую вы хотите удалить.
-Я не несу ответственности за то, что вы делаете с этим кодом, он не предназначен для незаконных целей, просто чтобы научить, как это делать.

-Следующее руководство будет выпущено на следующей неделе.
-GcFlames12

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