Как закинуть троян на компьютер

Обновлено: 04.07.2024

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

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

Теория

Так что же такое троян? Вирус — это программа, основная задача которой — копировать самого себя. Червь активно распространяется по сети (типичные примеры — Petya и WannaCry), а троян — это скрытая вредоносная программа, маскирующаяся под «хорошее» ПО.

Определяем IP

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

Нач­нем писать код. Сра­зу импорти­руем биб­лиоте­ки:

Обе биб­лиоте­ки не пос­тавля­ются с Python, поэто­му, если они у тебя отсутс­тву­ют, их нуж­но уста­новить коман­дой pip .

Код получе­ния внеш­него и внут­ренне­го адре­сов будет таким. Обра­ти вни­мание, что, если у жер­твы нес­коль­ко сетевых интерфей­сов (нап­ример, Wi-Fi и Ethernet одновре­мен­но), этот код может вес­ти себя неп­равиль­но.

Ес­ли с локаль­ным адре­сом все более‑менее прос­то — находим имя устрой­ства в сети и смот­рим IP по име­ни устрой­ства, — то вот с пуб­личным IP все нем­ного слож­нее.

Я выб­рал сайт api. ipify. org , так как на выходе нам выда­ется толь­ко одна стро­ка — наш внеш­ний IP. Из связ­ки пуб­личный + локаль­ный IP мы получим поч­ти точ­ный адрес устрой­ства.

Вы­вес­ти информа­цию еще про­ще:

Ни­ког­да не встре­чал конс­трук­ции типа print( f'<> ') ? Бук­ва f озна­чает фор­матиро­ван­ные стро­ковые литера­лы. Прос­тыми сло­вами — прог­рам­мные встав­ки пря­мо в стро­ку.

Строковые литералы не только хорошо смотрятся в вашем коде, они также помогают избежать таких ошибок, как сложение строк и добавление чисел (Python это не JavaScript!).


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

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

История компьютерных вирусов берет свое начало в 1983 году, когда Фред Коэн использовал его впервые.

Онлайн проверка ссылки

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

Методы воздействия вредоносных программ

Шуточный вирус

К компьютерным вирусам относится множество вредоносных программ, однако не все они способны к "размножению":

  • Черви. Заражают файлы на компьютере, это могут быть любые файлы, начиная от .exe и заканчивая загрузочными секторами. Передаются через чаты, программы для общения типа Skype, icq, через электронную почту.
  • Троянские кони, или трояны. Лишены самостоятельной способности распространяться: они попадают на компьютер жертвы благодаря их авторам и третьим лицам.
  • Руткит. Сборка различных программных утилит при проникновении на компьютер жертвы получает права суперпользователя, речь про UNIX-системы. Представляет собой многофункциональное средство для "заметания следов" при вторжении в систему с помощью снифферов, сканеров, кейлоггеров, троянских приложений. Способны заразить устройство на операционной системе Microsoft Windows. Захватывают таблицы вызовов и их функций, методы использования драйверов.
  • Вымогатели. Такие вредоносные программы препятствуют входу пользователя на устройство путем принуждения к выкупу. Последние крупные события, связанные с программами-вымогателями, - WannaCry, Petya, Cerber, Cryptoblocker и Locky. Все они требовали за возвращение доступа в систему криптовалюту биткоин.

Фальшивое обновление

  • Кейлоггер. Следит за вводом логинов и паролей на клавиатуре. Фиксирует все нажатия, а затем отсылает журнал действий на удаленный сервер, после чего злоумышленник использует эти данные на свое усмотрение.
  • Снифферы. Анализирует данные с сетевой карты, записывает логи с помощью прослушивания, подключения сниффера при разрыве канала, ответвления сниффером копии трафика, а также через анализ побочных электромагнитных излучений, атак на канальном или сетевом уровне.
  • Ботнет, или зомби-сети. Такая сеть представляет собой множество компьютеров, образующих одну сеть и зараженных вредоносной программой для получения доступа хакеру или иному злоумышленнику.
  • Эксплойты. Этот вид вредоносного программного обеспечения может быть полезным для пиратов, ведь эксплойты вызываются ошибками в процессе разработки программного обеспечения. Так злоумышленник получает доступ к программе, а дальше и к системе пользователя, если так задумал хакер. У них есть отдельная классификация по уязвимостям: нулевой день, DoS, спуфинг или XXS.

Пути распространения

Вредоносный контент может попасть на устройство разными способами:

Рассылка в социальных сетях

  • Вирусная ссылка.
  • Доступ к серверу или локальной сети, по которой будет проходить распространение вредоносного приложения.
  • Выполнение программы, зараженной вирусом.
  • Работа с приложениями пакета Microsoft Office, когда с помощью макровирусов документов вирус распространяется по всему персональному компьютеру пользователя.

Спам вирусы

Где могут прятаться вирусы

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

Признаки

Распространение вируса

Любое заболевание или заражение протекает в скрытой фазе или в открытой, этот принцип присущ и вредоносному программному обеспечению:

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

Троян на сайте

  • Показ шокирующих или иных изображений на экране без вмешательства пользователя.
  • Странные звуковые сигналы.

Методы защиты

Самое время подумать о способах защиты от вторжения:

  • Программные методы. К ним относятся антивирусы, файрволлы и другое защитное ПО.
  • Аппаратные методы. Защита от постороннего вмешательства к портам или файлам устройства, непосредственно при доступе к "железу".
  • Организационные методы защиты. Это дополнительные меры для сотрудников и иных лиц, которые могут иметь доступ к системе.

Как найти список вирусных ссылок? Благодаря Интернету можно скачать сервисы, например, от Dr.Web. Или воспользоваться специальным сервисом для показа всех возможных вредных ссылок. Там есть список на вирусные ссылки. Остается выбрать наиболее подходящий вариант.

Вирусная ссылка

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

Приступаем к самому главному действию - к созданию вирусных ссылок и выяснению способов их распространения.

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

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

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

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

Что это такое…
Сегодня поговорим о том, как впихнуть троян или вирус в ActiveX контрол. Все преимущества налицо: главное - ни одному ламеру и в голову не придёт, что в контроле может быть вирь и формат OCX усыпит бдительность "жертвы". Также ни один антивирус пока не проверяет OCX, а если и проверит, то никаких "злобных" программ не найдёт, т. к. в файле OCX программа хранится в изменённом виде.

Что это значит…
Ну, вот представим, что вас довёл ламер-программист, и вы решили ему навредить. Но раз он программист, то и посылать ему обыкновенные EXE трояны тоже почти не имеет смысла - уж программеры знают, как это делается.

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

Троян или вирус…
О том, как написать вирус или крутой троян, который узнает все пароли на компьютере (включая Dial Up) и который вышлет всё вам на e-mail без всяких дополнительных файлов, я расскажу в следующий раз, а сейчас послушайте, как впихнуть троян в ActiveX.

Исходник или готовый…
Если вы не умеете писать трояны, то дождитесь следующей статьи и воспользуйтесь готовым. Например, можно взять знаменитый "Смерть Ламера" и настроить его, а потом уже вставить в ActiveX. Если же у вас есть готовый исходник, то лучше использовать его.

Как это будет…
Сначала создадим новый ActiveX Control проект. Теперь берём троян (или вирь) и вставляем в проект в RES-файл. Думаю, вы знаете, как это сделать. Ну, ладно опишу.

Если у вас не загружен менеджер RES-файлов, то идите в меню Дополнения (Add-ins), а потом нажмите на Менеджер дополнений (Add-in Manager, кажется). В открывшемся окне найдите и выберите VB Resource Editor и внизу поставьте флажки на Загрузить/Выгрузить (Loaded, кажется) и Загрузить при старте (Startup).

Теперь у вас на стандартной панели (там, где кнопки Open, Save и др.) появится ещё одна зелёная кнопочка. И будет появляться при каждом запуске (пока не уберёте галочку) VB.

Нажмите на эту кнопку и должно появиться окно Resource Editor"а. Там кликните кнопку Add Custom Resource… и в открывшемся диалоговом окне выберите настроенный под ваши нужды троян. Нажмите Открыть. В списке должен появиться выбранный вами файл под номером 101. Теперь ОБЯЗАТЕЛЬНО нажимаем Save (сначала в окне Resource Editor"а, а потом в окне всего проекта).

Это всё?
Да всё! Это очень просто, как всегда.

А где ещё можно такое сделать?
А ещё такой способ записи на диск программы и бинарных файлов подходит для вирусов в авто-распаковывающихся архивах (типа WinZip Self Extractor). То есть вы делаете форму, похожую на форму Self Extractor"а. Затем ставите такую же иконку на EXE. Потом вставляете в RES-файл ваш вирус и пишете этот код. Правда, вместо UserControl_Show, вам нужно использовать событие нажатия на кнопку (кнопка Распаковать) или событие загрузки формы (а может ламер не нажмёт на кнопку!), а при нажатии просто выдать ошибку, хотя все дела (запись Трояна) уже сделаны.

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