Как написать вирус для ботнета

Обновлено: 28.03.2024

Архитектура — наше все

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

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

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

Псевдослучайные имена

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

Функция генерации псевдослучайной последовательности

int generator (int seed) srand(seed);
/* вывод двадцати первых элементов последовательности*/
for (x = 1; x printf("iteration %d, rand=%d\n", x, rand());
getch();
return 0;
>

Базовыми функциями, отвечающими за инициализацию и генерацию псевдослучайной последовательности, являются давно знакомые нам srand() и rand(). На основе переменной seed функция srand() инициализирует множество чисел, на котором, в свою очередь, будет работать функция генерации rand().

Результат работы функции generator() при значении seed=123:

Таким образом, seed является тем самым параметром, на основе которого будет генерироваться последовательность доменов. Легким движением руки и небольшим шевелением извилин генератор псевдослучайной числовой последовательности превращается в генератор псевдослучайной последовательности доменных имен.

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

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

  • Аутентификация — непосредственно распознавание клиента, запрашивающего ресурс;
  • Авторизация — определение, имеет ли аутентифицированный клиент необходимые права на запрашиваемый им ресурс.

Для установки процесса аутентификации в конфигурационном файле веб-сервиса Config.Web необходимо внести соответствующие изменения:

Бот в разрезе

Структура командного файла

где i, j, k меняются в интервале (1; бесконечность).

Действия бота таковы:

  1. выделение k-ой строки;
  2. передача выделенной строки в функцию, которая реализует подключение библиотеки, необходимой для выполнения команды (функция PlugLibrary());
  3. PlugLibrary() соответствующим образом интерпретирует строку и выполняет необходимое действие, зависящие от типа команды. Парсинг command.txt реализует функция Parse(char *FileName).

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

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

И это только начало…

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

Links

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

Денис Макрушин


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

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

Теория

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

warning

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

Определяем IP

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

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

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

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

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

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

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

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

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

image

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

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

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

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

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


Если вы ещё не были в Испании, то обязательно должны её посетить, здесь есть множество мест, заслуживающих внимания. Это Мадрид, город, который никогда не спит, вы видите его на первом слайде, он меньше, чем Нью-Йорк. Это Барселона со своим удивительным храмом Святого Семейства, и, конечно же, Памплона, где люди убегают от разъярённых быков. Здесь всего одно правило: если ты пьян, не беги! А так всё просто: вы просто должны бежать быстрее, чем бык.

Если вам нравятся особые праздники, то вот битва томатов Томатина. Я не уверен насчёт истории этого обычая, но вам всего лишь требуется кидаться помидорами, и это довольно интересно. Да, такова Испания!

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


Эта прекрасная иллюстрация того, как мы в Испании пользуемся разными вещами. Мы, испанцы, действуем по-своему, не так, как другие. Итак, идея создания ботнета довольно проста – давайте их всех заразим! Очень простая идея, которую мы хотели воплотить в ботнете – чтобы участвующие в нём компьютеры захотели сами себя заразить.


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



Это очень распространённый способ атаки путём конфигурирования специального троянского XML-файла, простой, но отлично работающий.


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


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


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

Для ее реализации мы собрали машину, которая была ”человеком посередине", и зарегистрировали её как узел TOR и как анонимный прокси сервер, и в обоих случаях проработали какое-то время. Тем не менее, мы должны сказать, что наша вредоносная активность в качестве узла TOR была обнаружена, что привело к игнорированию нашего IP-адреса.


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


После того, как мы арендовали сервер, мы принялись его настраивать. Это должен был быть простой сервер на основе Apache и SQUID прокси. Далее при помощи этого сервера мы собирались инфицировать все файлы JavaScript одним маленьким кусочком кода, занимающим всего пару строк.


Всё, что нам нужно было сделать, показано на следующем слайде.

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



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


Если вы не хотите потерять свой пароль или свои персональные данные, не пользуйтесь нашим сервером! Это очень хорошая политика безопасности. Более-менее аналогичную политику безопасности используют в армии – вы видите похожее предупреждение на сайте Инженерного корпуса армии США, так что мы поступили вполне законно.


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



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



Вот, собственно, и всё — теперь можно было наслаждаться плодами нашего труда. Однажды мы даже смогли мобилизовать 5000 ботов. Проведя анализ соединений, мы установили, что большинство машин нашего ботнета располагались в России, Бразилии, Мексике и Индонезии, где услуги прокси-серверов пользуются большим спросом. Нам не потребовалось платить за это, не нужно было создавать никаких специальных полиморфных вредоносных программ, достаточно было опубликовать в интернете один-единственный IP-адрес сервера. Ну, вы знаете, мы же из Испании.

Вопрос заключался в том, кто же пользуется такого рода услугами? Сколько человек в этом зале пользуется услугами прокси-серверов в интернете? Итак, если вы хотите анонимности, используете один прокси-сервер. Если вы хотите ещё больше анонимности, используйте больше, чем один прокси-сервер, так вы сможете заразить больше, чем 1 прокси-сервер (смех в зале).



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


Этот парень создал целую спамерскую компанию, чтобы дурить людей, предлагая им сделать специальную визу для получения работы в Великобритании, за это он просил по 275 фунтов. На следующем слайде приведено электронное письмо, в котором он просил денег.




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



Нет ли здесь кого-нибудь из Вирджинии, кто встречал бы эту девушку?

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


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

Спасибо, что остаётесь с нами. Вам нравятся наши статьи? Хотите видеть больше интересных материалов? Поддержите нас оформив заказ или порекомендовав знакомым, 30% скидка для пользователей Хабра на уникальный аналог entry-level серверов, который был придуман нами для Вас: Вся правда о VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps от $20 или как правильно делить сервер? (доступны варианты с RAID1 и RAID10, до 24 ядер и до 40GB DDR4).

VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps до декабря бесплатно при оплате на срок от полугода, заказать можно тут.

Вирусные аналитики и исследователи компьютерной безопасности стремятся собрать как можно больше образцов новых ботнетов. В своих целях они используют honeypot'ы.… Но что если хочется понаблюдать за зловредом в реальных условиях? Подставить под удар свой сервер, маршрутизатор? А что если подходящего устройства нет? Именно эти вопросы натолкнули меня на создание bhunter — инструмента для получения доступа к узлам бот-сетей.

image


Существует много способов распространения вредоносного по для расширения бот-сетей: начиная от фишинга и заканчивая эксплуатацией 0-day уязвимостей. Но самым распространенным методом до сих пор остается перебор паролей к SSH.

Именно так и работает bhunter. Слушает 22 порт (служба SSH) и собирает все лоигны и пароли, с которыми пытаются к нему подключиться. Затем, используя собранные пароли, пытается подключиться к атакующим узлам.

Программу можно условно разделить на 2 основные части, которые работают в отдельных потоках. Первая — honeypot. Обрабатывает попытки входа, собирает уникальные логины и пароли (в данном случае пара логин+пароль рассматривается как единое целое), а также добавляет в очередь для дальнейшей атаки IP-адреса, которые пытались подключиться.

Вторая часть отвечает непосредственно за атаку. При чем атака ведется в двух режимах: BurstAttack (атака очередью) — перебор логинов и паролей из общего списка и SingleShotAttack (атака одиночными выстрелами) — перебор паролей, которые использовались атакуемым узлом, но еще не были добавлены в общий список.

Чтобы иметь хоть какую-то базу логинов и паролей сразу после запуска, bhunter инициализируется списком из файла /etc/bhunter/defaultLoginPairs.

Предусмотрено несколько способов запуска bhunter:

Просто командой

При таком запуске есть возможность управлять bhunter'ом через его текстовое меню: добавлять логины и пароли для атаки, экспортировать базу логинов и паролей, указать цель для атаки. Все взломанные узлы можно увидеть в файле /var/log/bhunter/hacked.log

Используя tmux

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

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

As a service

В данном случае мы включаем автозапуск bhunter при старте системы. В данном методе взаимодействие с bhunter не предусмотрено, а список взломанных узлов можно получить из /var/log/bhunter/hacked.log

За время работы над bhunter мне удалось найти и получить доступ к совершенно разным устройствам: raspberry pi, маршрутизаторы (особенно mikrotik), web-сервера, а однажды ферма для майнинга (к сожалению доступ к ней был в течении дня, поэтому интересной истории не получилось). Вот скриншот программы, на котором виден список взломанных узлов после нескольких дней работы:

image

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

На эффективность влияют такие параметры как: страна, в которой расположен сервер с bhunter, хостинг, и диапазон из которого выделен ip-адрес. На моем опыте был случай, когда я арендовал два виртуальных сервера у одного хостера, и один из них подвергался атакам со стороны ботнетов в 2 раза чащще.

При атаке на зараженные узлы в некоторых ситуациях не удается однозначно определить подошел пароль или нет. Журналирование таких случаев ведется в файле /var/log/debug.log.

Модуль Paramiko, который используется для работы с SSH иногда ведет себя некорректно: уходит в бесконечное ожидание ответа от узла, когда пытается к нему подключиться. Я экспериментировал с таймерами, но нужного результата не получил

Service name
Другие вектора

SSH не является единственным средством удаленного управления. Есть еще telnet, rdp. Стоит присмотреться и к ним.

Расширение

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


На момент написания статьи готова только тестовая версия, которую можно скачать из репозитория на Github.

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