Как написать антивирус на python

Обновлено: 21.11.2024

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

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

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

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

Сценарий UNIX

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

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

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

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

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

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

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

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

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

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

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

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

Побегав по просторам Тостера, я толком ничего не нашел, можно ли создать антивирус на питоне.

Поскольку я изучаю Python и, возможно, он станет моим основным языком, я хочу знать, можно ли это сделать на Python

антивирус? И вообще, стоит ли лезть в область информационной безопасности с языком python?

Заранее спасибо.

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

Возможно, лучший ответ. Также в реестре ползает много Windows-вирусов, интересно, кто-нибудь портировал API для редактирования записей реестра на Python?

Вы определенно можете просмотреть вредоносное ПО на python, и отличный пример этого показан на канале YouTube Джона Хаммонда. Есть еще кое-что, что нужно сделать, не только Python, но я не думаю, что вы сможете написать код универсального работающего антивируса на Python.

Можно так же, как можно срубить дерево молотком.

Лучший ответ

На каком языке обычно пишут антивирусы? Я предполагаю, что c/cpp?

Для файла на компьютере:

Черт возьми. Правительство должно нанять тебя или еще что-нибудь.

Хорошо, что я разрабатываю только вирусы, вирусы, вирусы, вирусы

Здесь много ошибок. Вот исправленный код

Теперь у вас есть полноценный антивирус.

Разве вам не нужно определять продолжение?

Нет, братан, это не сработает. Вам нужен отступ /s

А люди говорят, что программировать сложно

Возможно, если вы достаточно глубоко покопаетесь в win32 API. Вопрос скорее в том, разумно ли это делать, и на него можно ответить однозначно: нет, это не то, для чего нужен Python.

Просматривая ветку, я вижу, как можно разочароваться в том, чтобы сосредоточиться на Python. Абсолютно возможно сканировать файлы (как быстро, так и медленно — читать как с интенсивным использованием ЦП или с экономией ЦП, как хотелось бы) в Python и проверять наличие известных сигнатур, принимать меры по этим сигнатурам.Вы также можете получить доступ к реестру.

Я думаю, что Python — отличный язык, если вы интересуетесь кибербезопасностью (да, там намеренно нет места). Я был инженером по кибербезопасности в правительстве, где моя работа на 90% выполнялась на Python. Если это тот язык, на который ваш мозг случайно натыкается, то обязательно следуйте ему.

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

Короткий ответ: ДА.

Подробный ответ: да, НО…

Начнем с того, что в 2021 году вирусы стали немного анахронизмом… в настоящее время другие виды вредоносных программ (например, черви) встречаются гораздо чаще, чем вирусы. Более того, современные операционные системы более безопасны и менее подвержены заражению, чем MS-DOS или Windows 95 (извините, Microsoft…), и люди лучше осведомлены о риске вредоносных программ в целом.

Кроме того, для написания компьютерного вируса Python, наверное, вообще не лучший выбор. Это интерпретируемый язык, поэтому для его выполнения требуется интерпретатор. Да, вы можете встроить интерпретатор в свой вирус, но полученный вирус будет более тяжелым и немного неуклюжим… давайте проясним, для написания вируса, вероятно, лучше использовать другие языки, которые могут работать на более низком уровне и которые могут быть скомпилированы, и поэтому в старые времена очень часто можно было увидеть вирусы, написанные на C или ассемблере.

Тем не менее, на Python по-прежнему можно писать компьютерные вирусы, и в этой статье вы продемонстрируете это на практике.

Свой первый компьютерный вирус я встретил в 1988 году. Я играл в старый платформер CGA с моим другом Алексом, у которого был замечательный компьютер Olivetti M24 (да, я ТАКОЙ старый…), когда программа зависла и маленький шарик начал летать по экрану. Мы никогда раньше не видели ничего подобного и поэтому не знали об этом тогда, но мы столкнулись с вирусом пинг-понга, одним из самых известных и распространенных вирусов всех времен… по крайней мере здесь, в Италии.

Теперь, прежде чем начать, вы знаете, я должен написать небольшое заявление об отказе от ответственности.

Эта статья покажет вам, что компьютерный вирус на Python возможен и даже прост в написании. Однако Я НЕ призываю вас писать компьютерный вирус (ни на Python, ни на ЛЮБЫХ ДРУГИХ ЯЗЫКАХ), и я хочу напомнить вам, что НАНЕСЕНИЕ ВРЕДА ИТ-СИСТЕМЕ ЯВЛЯЕТСЯ ПРЕСТУПЛЕНИЕМ!

Теперь мы можем продолжить.

Согласно Википедии…

Компьютерный вирус — это компьютерная программа, которая при запуске воспроизводит себя, изменяя другие компьютерные программы и вставляя свой собственный код. Если эта репликация успешна, то пораженные области считаются «зараженными» компьютерным вирусом (метафора, происходящая от биологических вирусов).

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

Обычно компьютерный вирус состоит из трех частей:

  1. Вектор заражения: эта часть отвечает за поиск цели и распространение на нее.
  2. Триггер: это условие, при выполнении которого выполняется полезная нагрузка.
  3. Полезная нагрузка: вредоносная функция, которую несет вирус

Начнем программировать.

Давайте проанализируем этот код.

В первую очередь мы вызываем функцию get_virus_code(), которая возвращает исходный код вируса, взятый из текущего скрипта.

Затем функция find_files_to_infect() вернет список файлов, которые могут быть заражены, и для каждого возвращаемого файла вирус будет распространять инфекцию.

После того, как заражение произошло, мы просто вызываем функцию summon_chaos(), то есть, как следует из ее названия, функцию полезной нагрузки с кодом вредоносного ПО.

Вот и все, довольно просто?

Очевидно, что все было вставлено в блок try-except, чтобы быть уверенным, что исключения в коде нашего вируса перехватываются и игнорируются оператором pass в блоке exclude.

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

Хорошо, теперь нам нужно реализовать только что созданные функции-заглушки! :)

Начнем с первого: функции get_virus_code().

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

Теперь давайте реализуем функцию find_files_to_infect(). Здесь мы напишем простую функцию, которая возвращает все файлы *.py в текущем каталоге. Достаточно просто для тестирования и… достаточно безопасно, чтобы не повредить нашу текущую систему!:)

Эта подпрограмма также может быть хорошим кандидатом для написания с помощью генератора. Какой? Вы не знаете генераторов? Тогда давайте посмотрим на эту интересную статью! ;)

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

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

Хорошо, наш вирус готов! Давайте посмотрим полный исходный код:

Когда эта программа выполняется, она возвращает 10 чисел от 0 до 100, очень полезно! ЛОЛ!

Теперь в том же каталоге у меня есть мой вирус. Давайте выполним это:

И, как и ожидалось, теперь у нас есть вирус, а не настоящий код.

Давайте создадим еще один файл .py в том же каталоге, простую программу «hello world»:

Попытка еще немного скрыть код вируса

Итак, что мы можем сделать, чтобы его было труднее найти?

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

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

Поэтому нашу функцию get_content_if_infectable() можно изменить следующим образом:

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

а также следует изменить функцию get_virus_code() для поиска текущего хэша скрипта:

А как насчет исходного кода нашего вируса? Можно ли его как-то замаскировать, чтобы его было труднее обнаружить?

Ну, мы могли бы попытаться скрыть его, делая его другим каждый раз, когда мы заражаем новый файл, а затем мы могли бы сжать его с помощью библиотеки zlib и преобразовать в формат base64. Мы могли бы просто передать наш текстовый вирус новой функции transform_and_obscure_virus_code() следующим образом:

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

Полный исходный код нашего нового вируса может быть примерно таким:

Посмотрите на это, теперь это не так просто читать, верно? И каждая инфекция отличается от другой! Более того, каждый раз, когда инфекция распространяется, сжатый вирус byte64 снова и снова сжимается и кодируется.

И это всего лишь простой пример того, что можно сделать… например, вирус мог открыть цель и поместить этот кусок кода в начало случайной функции, не всегда в начало файла, или поместить его в другой файл и сделать просто вызов этого файла с вредоносным импортом заявление или около того…

Подводя итоги

В этой статье мы увидели, что написание компьютерного вируса на Python — тривиальная операция, и даже если это, вероятно, не лучший язык для написания вирусов… стоит держать ухо востро, особенно на рабочем сервере. :)

Сам Python не предоставит вам такой доступ. Вы можете объединить C и Python, чтобы создать хороший антивирусный продукт, но это означает, что вам нужно изучить C. Однако C — это то, что вы можете изучить за две-четыре недели. Кажется, что все думают, что это сложный язык, хотя на самом деле это очень простой язык.

Можете ли вы написать вредоносное ПО на Python?

Python – это язык программирования общего назначения, поэтому он может выполнять множество функций, в том числе создавать вредоносные программы. Есть несколько программ, которые в основном предназначены для использования в качестве «черного хода», и теперь они легко обнаруживаются антивирусом.

Можно ли написать вирус на Java?

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

На каком языке программирования написан антивирус?

Большинство антивирусов и брандмауэров создаются на языках программирования C и C++.

Как узнать, какой антивирус установлен на моем ноутбуке?

Статус вашего антивирусного программного обеспечения обычно отображается в Центре обеспечения безопасности Windows. Откройте Центр обеспечения безопасности, нажав кнопку Пуск , щелкнув Панель управления, щелкнув Безопасность, а затем щелкнув Центр обеспечения безопасности. Нажмите Защита от вредоносных программ.

Как вы программируете?

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

Что вы подразумеваете под вредоносным ПО?

Вредоносное ПО – это навязчивое программное обеспечение, предназначенное для повреждения и уничтожения компьютеров и компьютерных систем. Вредоносное ПО — это сокращение от «вредоносного программного обеспечения». Примеры распространенных вредоносных программ включают вирусы, черви, троянские вирусы, шпионское ПО, рекламное ПО и программы-вымогатели.

Сложно ли создать антивирусную программу?

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

Что такое антивирусное ядро?

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

Какой лучший антивирус для ПК?

Лучшее антивирусное программное обеспечение, которое вы можете купить сегодня Kaspersky Total Security. Лучшая антивирусная защита в целом. Битдефендер Антивирус Плюс. Лучшее антивирусное программное обеспечение, доступное в настоящее время. Нортон 360 Делюкс. McAfee Интернет-безопасность. Максимальная безопасность Trend Micro. ESET Smart Security Premium. Софос Хоум Премиум.

Что такое вирус Python?

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

Что такое червь в Python?

Червь реализован на Python. Червь использует архитектуру клиент-сервер для создания бэкдора на клиентской машине, где злоумышленник будет иметь обратную оболочку на своей машине. Червь все делает. txt только для чтения, скрывает все файлы .exe и удаляет любые другие файлы, эти файлы также зашифрованы с использованием AES.

На каком языке написано большинство вредоносных программ?

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

Является ли Java вредоносным ПО?

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

Вредоносное ПО написано на Java?

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

Подходит ли Java для вредоносных программ?

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

Подходит ли Python для кибербезопасности?

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

Сложно ли изучать Python?

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

Какой код используют хакеры?

Питон. Это часто считается языком де-факто для взлома. В 2020 году Python считается лучшим языком программирования для взлома. Вот как этичные хакеры кодируют свои хакерские программы на лету.

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

Представить

Компьютерный вирус — это тип вредоносной программы («вредоносное ПО»), которая при запуске размножается, воспроизводя себя (копируя собственный исходный код) или заражая другие компьютерные программы, изменяя их. Заражать компьютерные программы могут также файлы данных или «загрузочный» сектор жесткого диска. Когда эта репликация завершается успешно, пораженные области считаются «зараженными» компьютерным вирусом.

Термин "вирус" также часто, хотя и ошибочно, используется для обозначения других типов вредоносных программ. «Вредоносное ПО» включает в себя компьютерные вирусы, а также многие другие формы вредоносного программного обеспечения, такие как компьютерные «черви», программы-вымогатели, троянские кони, регистраторы клавиш, руткиты, шпионское ПО, рекламное ПО, вредоносные вспомогательные объекты браузера (BHO) и другое вредоносное программное обеспечение. Большинство активных вредоносных программ на самом деле являются троянскими программами или компьютерными червями, а не компьютерными вирусами.

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

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

Фазы компьютерного вируса

По сути, каждый компьютерный вирус имеет две фазы:

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

Давайте проверим код, чтобы создать простой вирус. Это забавный проект. Не стесняйтесь. Код выполняет поиск файлов python и превращает все строки в следующую строку «ХА-ХА, ВЫ ПОРАЖЕНЫ ВИРУСОМ!! И ЭТО «Кстати, ЗЛО!!».

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