Как создать вирус для linux

Пишем свое вредоносное ПО. Часть 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, то вызывается фрагмент сканирования клавиатуры.

Читайте также:  Экспорт контактов windows phone

Этим мы обеспечили сканирование клавиатуры только когда открыто окно браузера на сайтах facebook и gmail.

Еще более умный кейлогер

Давайте предположим, что злоумышленник смог получить данные кодом, на подобии нашего. Так же предположим, что он достаточно амбициозен и смог заразить десятки или сотни тысяч машин. Результат: огромный файл с гигабайтами текста, в которых нужную информацию еще нужно найти. Самое время познакомиться с регулярными выражениями или regex. Это что-то на подобии мини языка для составления неких шаблонов и сканирования текста на соответствие заданным шаблонам. Вы можете узнать больше здесь.

Для упрощения, я сразу приведу готовые выражения, которые соответствуют именам логина и паролям:

Эти выражения здесь как подсказка тому, что можно сделать используя их. С помощью регулярных выражений можно искать (т найти!) любые конструкции, которые имеют определенный и неизменный формат, например, номера паспортов, кредитных карт, учетные записи и даже пароли.
Действительно, регулярные выражения не самый читаемый вид кода, но они одни из лучших друзей программиста, если есть задачи парсинга текста. В языках Java, C#, JavaScript и других популярных уже есть готовые функции, в которые вы можете передать обычные регулярные выражения.

Для C# это выглядит так:

Где первое выражение (re) будет соответствовать любой электронной почте, а второе (re2) любой цифро буквенной конструкции больше 6 символов.

Бесплатно и полностью не обнаружим

В своем примере я использовал Visual Studio – вы можете использовать свое любимое окружение – для создания такого кейлогера за 30 минут.
Если бы я был реальным злоумышленником, то я бы целился на какую-то реальную цель (банковские сайты, соцсети, тп) и видоизменил код для соответствия этим целям. Конечно, также, я запустил бы фишинговую кампанию с электронными письмами с нашей программой, под видом обычного счета или другого вложения.

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

Я скомпилировал мой код и проверил exe файл на сайте Virustotal. Это веб-инструмент, который вычисляет хеш файла, который вы загрузили и ищет его в базе данных известных вирусов. Сюрприз! Естественно ничего не нашлось.

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

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

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

Источник

Заметки убунтолога

Ubuntu • Kubuntu • Xubuntu • Mint • Lubuntu

☆ Linux Mint ☆

пятница, 26 октября 2012 г.

ПРО ВИРУСЫ ДЛЯ LINUX


В первую очередь дам ответы на самые распространенные вопросы о вирусах в Linux и в Ubuntu в частности.

Вопрос 1. Существуют ли вирусы для Linux?
Ответ: Да, конечно, но их в несколько тысяч раз меньше чем под Windows и до сих пор ни один из них не получил массового распространения.

Вопрос 2. Могут ли вирусы для Windows заразить компьютер с Linux?
Ответ: Да, если в Linux установлен Wine, то, в принципе, в Linux могут работать вирусы для Windows, однако многие вирусы используют именно недокументированные системные вызовы Windows, которые очень плохо реализованы в Wine и поэтому риск заражения намного меньше. Далее, вирусы могут работать и в Windows , установленной на виртуальной машине, запущенной под управлением Linux. Кроме того, компьютеры с Linux могут быть пассивными носителями вирусных файлов, которые могут снова начать работать, после того как их, например, на флешке перенесут на компьютеры, работающие под управлением Windows.

Вопрос 3. Правда ли, что Linux лучше защищен от вирусов, чем Windows?
Ответ: Для того, чтобы ответить на этот вопрос нужно выбрать адекватный метод сравнения, ну и собственно провести тест. Теоретически такое сравнение можно провести взяв два свежих кроссплатформенных вируса, «натравить» их на компьютеры под управлением Linux и Windows и посмотреть результаты. Однако, проблема в том, что вирусы, как правило , используют какую-то одну уязвимость, характерную для одной операционной системы, поэтому подобное сравнение вряд ли получится осуществить.

Рядовых же пользователей как правило интересует то, насколько лучше они будут защищены в своей повседневной работе, а не то насколько их операционная система устойчива против вирусных атак в принципе. И здесь у Linux очень много «козырей»:
под Linux написано очень мало вирусов;
в мире Linux существует очень много разных дистрибутивов, написание вируса одинаково хорошо работающего во всех из них весьма затруднительно;
в разных дистрибутивах по-умолчанию установлены разные наборы по-разному скомпилированных программ, что также снижает вероятность массового распространения вируса;
программы, скачанные из интернета, в Linux по-умолчанию не являются исполняемыми, для начала их нужно сделать таковыми;
основным источником программ в Linux являются проверенные репозитории, вероятность попадания вирусов в которые очень мала.

Читайте также:  Расширенный поиск для windows

Вследствие вышеперечисленных особенностей, как уже указывалось выше, НИ ОДИН вирус для Linux не получил массового распространения.

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

ТЕПЕРЬ СОБСТВЕННО ПРО АНТИВИРУСЫ ДЛЯ UBUNTU

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

Какие есть решения?

a) С открытым кодом

Конечно ClamAV — бесплатная программа с открытым кодом.

б) Бесплатные с собственической лицензией

Avast! Linux Home Edition
AVG Antivirus
Avira Antivirus
BitDefender Antivirus
F-Prot Antivirus
Panda Antivirus

Источник

Опасные вирусы для Linux

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

Она действительно намного безопаснее Windows и менее подвержена атакам вирусов и вирусам. Но разработчики — тоже люди и иногда они ошибаются. Из-за недосмотра или еще по каким-либо причинам в системе появляются уязвимости, которые могут быть использованы вирусами. В наши дни Linux стремительно набирает популярность. Если на персональных компьютерах она используется не так часто, то на серверах Linux занимает лидирующие позиции, а теперь еще и на различных IoT устройствах, которых становится все больше.

Хакерам становится все выгоднее делать вирусы для Linux. Ими сложнее заразиться чем в Windows, и в большинстве случаев они используют уже устраненные в новых версиях linux и всем известные уязвимости для проникновения в систему, а также недочеты в настройке.

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

1. Linux.Encoder

Linux.Encoder известный, как первый шифровальщик для операционных систем на базе ядра Linux. Распространение вируса началось 5 ноября 2015 года. Используя различные уязвимости в системе вирус шифровальщик linux проникал на сервер и зашифровывал все доступные для записи файлы с помощью симметричного шифрования AES и RSA.

Открытый ключ, которым было выполнено шифрование доступен всем, а вот за закрытый, нужный для расшифровки, злоумышленники требовали деньги в валюте bitcoin. Основным путем для проникновения в систему для этого вируса была уязвимость в популярной CMS для создания онлайн магазинов — Magento. Естественно, уязвимость была давно закрыта, но не все небольшие ресурсы установили обновление, за что и поплатились.

Было обнаружено несколько версий вируса Linux.Encoder.0, Linux.Encoder.1 , Linux.Encoder.2. Но для всех из них со временем были найдены способы расшифровки файлов.

2. Linux.Mirai

Первая версия Linux.Mirai была обнаружена в мае 2016. У него совсем другая специфика работы. Вирус не причиняет вреда владельцу устройства и пытается остаться незамеченным. Он нацелен больше на IoT устройства, под управлением Linux, которые подключены к сети интернет и использует их для осуществления DDoS атак. Пользователь, скорее всего, ничего не заметит кроме существенного снижения пропускной способности сети.

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

Этот вирус еще известен под именами Bashlite, GayFgt, LizKebab, Torlus, Bash0day и Bashdoor. Именно с помощью ботнена, организованного этим вирусом были осуществлены несколько нашумевших DDoS атак этой осенью. Как бы то ни было, но успех Mirai вдохновил хакеров разрабатывать другие linux вирусы, для организации DDoS атак.

3. Linux.NyaDrop

Это еще один троян, который инфицирует IoT устройства под управлением Linux точно так же, как это делает Mirari. Он не просто ищет устройства без пароля, но и пытается перебрать самые часто используемые пароли для telnet, чтобы попасть на устройство.

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

4. Linux.BackDoor.Gates

Этот троян для Linux был обнаружен еще в мае 2014. Он атакует устройства, под управлением 32 битной версии операционной системы Linux. Вирус состоит из двух частей, бэкдора, который позволяет злоумышленникам выполнять на вашем компьютере необходимые ему команды, а также DDoS бота. Основное предназначение, как и у двух предыдущих — проведение DDoS атак.

Читайте также:  Файлы библиотек windows 10

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

5. Linux.Lady

Еще один троян для операционных систем семейства Linux обнаруженный в октябре 2016. Он написан на новом языке, разработанном в корпорации Google. Он заражает серверы через неправильно настроенную программу Redis. Троян способен сам распространяться от машины к машине и постоянно исследует сеть на наличие уязвимых компьютеров.

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

6. Linux.DnsAmp

Этот троян для Linux был обнаружен еще в 2014 году, он может заражать как 32, так и 64 битные системы Linux. После заражения вирус прописывает себя в автозагрузку через /etc/rc.local и начинает ожидать команд от сервера. Основная цель вируса — участие в DDoS атаках.

Попадая на вашу машину, как и другие linux вирусы, он отправляет на свои сервера информацию о ней, например, объем памяти и количество swap пространства, а также другие характеристики.

7. Linux.Hanthie

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

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

8. Linux.Myk

Еще один троян для операционных систем Linux, созданный китайскими программистами. Как и Mirori, этот вирус предназначен для организации DDoS атак, но также может предоставить злоумышленнику доступ к вашему компьютеру. Характерная особенность этого вируса в том, что он способен отключать брандмауэр. Инфицирование осуществляется с помощью социальной инженерии. Впервые вирус был обнаружен весной 2015.

9. Linux.Rex

В 2016 году появилось несколько вирусов для Linux, написанных на новом языке от Google — Go. Вирус инфицирует сервера, под управлением различных систем управления контентом, используя обнаруженные в них уязвимости. Он может рассылать электронные письма и самостоятельно искать уязвимые сервера. Чаще всего вирус заражает серверы с Durpal, WordPress, Magento, JetSpeed, в которых не исправлены уязвимости. В WordPress вирус пытается использовать уязвимые плагины WooCommerce, Robo Gallery, Rev Slider, WP-squirrel, Site Import, Brandfolder, Issuu Panel и Gwolle Guestbook. Для сайтов Magento используются уязвимости CVE-2015-1397, CVE-2015-1398 и CVE-2015-1399.

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

10. Linux.Sshcrack

Эта вредоносная программа пытается заразить как можно большее количество устройств путем перебора паролей ssh. Когда программа получает доступ к новому компьютеру, она запускает на нем 200 потоков, выбирает случайный адрес и пытается перебрать ssh пароль для него. Перебор осуществляется по словарю, в котором есть более 10000 значений.

11. Linux.Rekoobe

Этот простой вирус для Linux был обнаружен в ноябре 2015. Он способен выполняться на машинах с архитектурой x86 и x64, хотя изначально был разработан только для SPARC. Вирус распространяется путем социальной инженерии, и может даль злоумышленнику доступ к вашему компьютеру, а также способен загружать на ваш компьютер различные файлы и передавать команды интерпретатору команд linux.

12. Linux.Ellipsis

Этот вирус создает на инфицированном сервере или компьютере с операционной системой Linux прокси-сервер, с помощью которого злоумышленник может делать нужные ему действия в сети и оставаться незамеченным. Вирус распространяется путем перебора логина и пароля к службе удаленного доступа — ssh.

В процессе работы вирус отключает iptables и мешающие ему программы, ведение логов. А также передает контроль над вашим компьютером злоумышленникам.

13. Linux.Ekoms

Этот вирус под Linux передает злоумышленникам снимки вашего экрана каждые 30 секунд. Также может загружать на сервер содержимое папки /tmp. Кроме снимков экрана, вирус может записывать звук. Заражение машины, как и во многих других способах выполняется путем социальной инженерии.

Выводы

Как видите, вирусы и операционные системы linux, вещи все же совместимые. За последнее время их появилось очень достаточно много. Другое дело, что они ориентированны, либо на уязвимые и не обновляемые системы, IoT устройства, или социальную инженерию. Это не повод ставить антивирус, но это не значит что нужно терять бдительность и расслабляться. Не забывайте обновлять свою систему вовремя, особенно если у вас есть сервер. А как вы относитесь к вирусам в Linux? Напишите в комментариях!

Источник

Оцените статью