что такое brute force
Брутфорс: что это такое и как он работает
Что такое брутфорс
Поговорим поподробнее о том, что такое брутфорс и зачем он нужен. Брутфорс, что с английского дословно переводится, как «полный перебор» – это один из самых эффективных методов хакерской атаки, который используется для взлома компьютерных систем, сайтов, учётных записей путём подбора комбинаций из различных символов.
Кстати, если Вы хотите уберечь от взлома и распространения данные, размещённые на Вашем ресурсе, рекомендуем узнать о том, что такое зеркало сайта и для чего оно ещё нужно. Конечно, брутфорс используется и для благих намерений, например, для восстановления забытого пароля или для его проверки на криптографическую стойкость.
Как работает брутфорс
Рассмотрим, как работает брутфорс и в чём его суть. Цель использования такого метода являет собой получение доступа к аккаунтам, личным и конфиденциальным данным пользователей. Многие хотят «насолить» своим приятелям ради шутки, не стоит заниматься этим с помощью брутфорса, лучше почитайте об этапах СЕО-продвижения сайта и расширьте свой кругозор.
В последствие взлома методом брутфорса может осуществляться рассылка спама, иногда даже происходить вымогательство и шантаж. Так же существует риск получения злоумышленниками данных для входа в платёжные системы, что влечёт за собой финансовые проблемы.
Что же сделать, чтобы не стать жертвой злоумышленников? Самое первое и простое – не разглашать свои личные данные всем подряд и не создавать на их основании свои пароли. Так же делайте их длинными, используя при этом различные символы, и буквы и цифры. Логин и пароль учётных записей всегда делать отличными друг от друга и разными для каждого аккаунта.
Брутфорс: как пользоваться
Далее рассмотрим, как пользоваться брутфорсом и для чего. Если говорить о легальных и благих намерениях, то он используется для проверки надёжности или восстановления паролей. Этим занимаются системные администраторы, используя при этом специализированные программы.
В ситуациях с иными намерениями существует три вида использования такого метода. Первый – это персональный взлом. Киберпреступник может как узнать номер электронного кошелька так и завладеть другими личными данными пользователей. Используя их в последствие, злоумышленник подбирает пароль получения доступа к его аккаунтам, электронной почте или сайту.
Второй вид брутфорса – брут-чек. В данном случае уже выступает цель завладения паролями именно в больших количествах, для последующей продажи аккаунтов и иных целей. И третьим видом является удалённый взлом компьютерной системы, с целью полного управления персональным компьютером жертвы. Зачастую, злоумышленники пишут программы для такого перебора самостоятельно, с использованием мощных компьютерных систем.
Если Вам была интересна данная статья, рекомендуем так же прочитать о разработке сайта-визитки под ключ и о том, как это происходит. Будьте внимательны и осторожны, распространяя свои личные данные, не подвергайте себя риску и не занимайтесь преступной деятельностью.
При освещении в СМИ вируса NotPetya не сообщалось, что он мог наделать еще больше зла. Например, брутфорс на парламент Великобритании. Это является еще одним напоминанием того, что brute force остается глобальной угрозой:
Это также наводит нас на важные вопросы — в первую очередь, как такое могло произойти:
Подобные проблемы заставляют задуматься о том, что нужно глубже исследовать этот тип атаки.
Брутфорс — что это?
Классическая brute force атака — это попытка « угадать » пароль в ПК, когда злоумышленник завладел зашифрованным его значением.
Оно позволяет хакеру использовать мощные компьютеры для тестирования большого количества паролей без риска быть обнаруженным. С другой стороны, такая brute force атака не может быть первым этапом. Для этого злоумышленник должен уже иметь копию зашифрованных паролей.
Онлайн-атака — это, когда злоумышленник пытается взломать функцию входа в систему или приложение с помощью подбора учетных данных. Так как ему не нужно сначала получать зашифрованные пароли, хакер может использовать этот метод при попытке проникнуть в систему.
Имеют ли место brute force атаки онлайн?
Одновременно подобрать имя пользователя и пароль непросто. Большинство систем при неудачном входе в систему не сообщают, что было введено неверно: имя пользователя или пароль. Первый шаг, который предпринимает злоумышленник — это попытка атаковать известных пользователей.
Хакер может находить имена пользователей, используя открытые исследования. Во многих организациях, например, логины пользователей имеют предсказуемую структуру, основанную на имени сотрудника. Простой поиск в LinkedIn позволяет выявить большое количество имен пользователей.
Тем не менее, этот тип классической brute force атаки онлайн является скорее гипотетической. Причина проста: у большинства современных систем и приложений есть встроенная блокировка. Если пользователю не удается войти в систему за несколько попыток, учетная запись блокируется и для ее разблокировки требуется вмешательство администратора.
Рост количества случаев credential stuffing
Credential stuffing — это атака, в которой злоумышленники используют пары имя пользователя / пароль, украденные с общедоступных сайтов, чтобы проникнуть в атакуемую систему.
Количество успешных атак на общедоступные сайты увеличивается, и злоумышленники публикуют базы учетных данных или продают их на подпольных биржах. Предположение, которое слишком часто оправдывается, заключается в следующем: люди используют одинаковое имя пользователя и пароль на разных сайтах.
Подбор пароля брутфорсом при Credential stuffing позволяет обойти блокировку, поскольку каждое имя пользователя вводится только один раз. Использование известной пары имя пользователя / пароль увеличивает вероятность успеха с меньшим количеством попыток.
Поскольку в качестве контрмеры блокировка не эффективна, организации часто применяют двухфакторные механизмы аутентификации. Двухфакторная аутентификация требует, чтобы у пользователя было что-то еще помимо пароля. Например, номер мобильного, на который пользователь может получить текстовое сообщение.
Поскольку двухфакторная аутентификация громоздка, успешная аутентификация обычно одобряется на основе любого « аналогичного » доступа. « Аналогичный » доступ может представлять собой использование одного и того же устройства или географического местоположения.
Многие из нас сталкивались с сайтами, требующими двухфакторной аутентификации при обращении с нового устройства, публичной сети или во время поездок.
Хотя двухфакторная аутентификация является надежным решением, она имеет существенные недостатки: при ней изменяется пользовательский интерфейс и она предполагает интерактивный вход в систему.
Нет ничего более раздражающего, чем натолкнуться на двухфакторную аутентификацию при входе со смартфона. В результате эта опция часто оставляется на усмотрение пользователя в качестве дополнительного варианта. Поэтому возникает необходимость в системе обнаружения, связанной с использованием аналитики, которая бы распознавала метод брутфорса.
Обнаружение brute force атак
Часто рекомендуемый метод обнаружения brute force атак связан с определением классических атак. Это обнаружение нескольких неудачных попыток входа в систему для одного пользователя за короткий промежуток времени.
Многие рекомендации для начинающих при создании правил корреляции SIEM ( Security Information and Event Management ) делают упор на обнаружение brute force атак именно по такому сценарию. Хотя это изящный и простой путь, но он предназначен для определения практически несуществующего вектора атак.
Фактор, который дает возможность идентифицировать brute force атаку при аутентификации — это большое количество неудачных попыток входа в систему. Но поскольку пользователь не может быть ключом к обнаружению, система должна сосредоточиться на другом ключе, чтобы связать поток событий, составляющих атаку.
Практика обнаружения атак
До сих пор мы предполагали, что события, анализируемые для установления атаки, являются ярко выраженными. Любое событие неудавшегося входа в систему определяется как успешная или безуспешная попытка, а имя пользователя всегда находится в одном поле и имеет один формат.
Но обработка потока событий для подготовки их к анализу и обнаружению брутфорс также является проблемой, которую нужно рассматривать отдельно.
Когда поймем, какие события отслеживать, нам все равно нужно знать, как правильно идентифицировать успешную или безуспешную попытки входа в систему. Успешная или безуспешная попытки локального входа — это отдельные события, которые для аутентификации контроллера домена помечаются внутри события.
Обнаружение атак через Cyber Kill-Chain
Поэтому крайне важно, чтобы любая система, используемая для обнаружения brute force атак, включала в себя нестандартные алгоритмы и, чтобы эти алгоритмы обнаружения постоянно обновлялись.
Дайте знать, что вы думаете по данной теме в комментариях. За комментарии, лайки, дизлайки, отклики, подписки низкий вам поклон!
Пожалуйста, опубликуйте ваши отзывы по текущей теме статьи. Мы крайне благодарны вам за ваши комментарии, отклики, дизлайки, подписки, лайки!
Et tu, Brute? Что хотят от нас брутфорсеры?
Каждый владелец сервера с «белым» IP-адресом наблюдал в логах бесчисленные попытки подключиться к серверу по SSH с разных точек мира. Администраторы ставят средства противодействия, такие как fail2ban, переносят SSH на другие порты и всячески пытаются защититься от брутфорсеров. Но чего же хотят эти замечательные люди от наших серверов?
Поверхностный ответ, конечно, прост: наживы на бесплатных вычислительных ресурсах и полученных чувствительных данных. Но этот ответ недостаточно подробный. Давайте разложим виртуальные «приманки» и проследим, что происходит, когда автоматический брутфорс оказывается успешным.
В данной статье мы рассматриваем только случаи попадания под «автоматический» перебор и исключаем целенаправленные атаки на наш сервер.
Не пытайтесь повторить описанное в статье, если у вас нет должной подготовки. Ни в коем случае не повторяйте на продакшн-серверах!
Сперва узнаем «врага» в лицо.
Пассивно-агрессивное наблюдение
У нас есть сервер, который уже пару недель стоит с открытым 22 портом. Этого достаточно, чтобы его заметили и начали атаковать.
Для начала узнаем, откуда к нам приходят, как часто и с какими данными. Не будем изобретать велосипед и просто (это действительно просто!) модернизируем исходный код OpenSSH. Ставим необходимые зависимости.
Команда для Ubuntu:
Получаем самую свежую версию с GitHub:
Проводим этап конфигурации перед сборкой. Здесь и далее мы проводим все операции от имени суперпользователя. Чтобы не сломать оригинальный SSH-сервер, указываем префикс для установки патченной версии.
Если все прошло без ошибок, то можно приступать к изменению исходного кода OpenSSH. Брутфорс организуется по методу аутентификации password. Заглядываем в файл auth-passwd.c. В этом файле интересна функция auth_password(), вернее ее начало.
Этот метод вызывается всякий раз, когда кто-нибудь пытается пройти аутентификацию по паролю. Контекст аутентификации (Authctxt) и структура ssh содержат все полезные нам поля:
Конечно, это не самый потокобезопасный код. Но так как мы пишем всего одну строку и нам не критичен порядок записей, то буферы ОС сами разберутся. Собираем и устанавливаем. Установка необходима для генерации ключей хоста.
Правим конфиг /root/ssh/etc/sshd_config, добавляем следующую строчку.
Если не разрешить вход для суперпользователя, то метод auth_password не будет вызываться. Уносим свой рабочий локальный SSH на другой порт и запускаем нашу ловушку.
За 10 дней наблюдений было предпринято 74 865 попытки зайти c 1 131 IP-адресов. В среднем в секунду было от одной до двух попыток аутентификации. Максимально зафиксированное число — 10 попыток за секунду. Примечательно, что все они были совершены с одного IP-адреса.
В этой статье не будет указания точных IP-адресов, так как это очень непостоянная информация. А вот статистика по странам и автономным системам (AS) будет весьма полезна.
Легко заметить, что Китай преобладает по количеству брутфорса.
Вот так выглядит топ самых настырных адресов из следующих AS:
В этом топе отображаются самые активные брутфорсеры, но если взглянуть на весь список адресов, то обнаружится еще одна интересная закономерность: почти половина останавливается на 50 или 70 попытках.
По источникам брутфорса посмотрели, перейдем к топу паролей. Нам удалось собрать словарь на 2 018 пользователей и 32 238 паролей. Вот топ паролей:
Вот он: ababablkljkjhghfgdfdgjhkfdgfhghfgfgqqqqqqwwwwwwgqqqqqqababab.
Примечательно, что это не попытка ручного подбора методом соприкосновения головы и клавиатуры, а вполне себе словарный пароль, который засветился шесть раз с разных мест.
Также один адрес перебирал пароль по датам, а еще несколько десятков адресов как будто бы плохо сконфигурированы: они всегда приходили с паролем root, а в имени пользователя был просто набор символов, например, 1!2@3#4$5%6^7&8*9(0)-_=+.
Из полученной информации следуют такие выводы:
Карт-бланш
Сперва необходимо выяснить, как действует атакующий. Единственное, в чем мы можем быть уверены, так это в том, что на сервер зайдут через ssh. Сперва пропатчим метод аутентификации, чтобы пропускать всех, кто к нам пришел.
Далее изучаем документацию и находим три полезных ключа для sshd.
Запуск программ в *NIX-подобных системах сопряжен с двумя системными вызовами: fork(2) и execve(2). Первый просто дублирует текущий процесс и не несет никакой полезной информации, а вот второй содержит путь и аргументы новой программы.
Воспользуемся удобным инструментом для трассировки системных вызовов в программах — strace. Настраиваем фильтр по execve, разрешаем трассировать потомков и снимаем ограничения на длину выводимой строки. Итоговая команда для трассировки выглядит так:
На выходе получается несколько перегруженный лог, так как атакующий запускает команды, содержащие конвейеры. Тем не менее, извлечь из лога итоговый скрипт несложно.
К слову, именно этот публичный ключ уже фигурировал на Хабре, но при других обстоятельствах, а автор не потерял доступ к собственному оборудованию. Потенциально имя ключа может пролить свет на назначение этого ботнета, так как во второй части имени ключа, fckr, легко восстановить недостающие гласные. А вот что такое mdr, автору понять не удалось.
На первый взгляд кажется, что атакующий бот проверяет наличие сессий на сервере (команда w) и стесняется что-либо загружать. Возможно, конечно, владелец ботнета остерегается администраторов, которые внимательно относятся к своим серверам, и выжидает некоторое время перед загрузкой зловредных бинарников.
Сделаем вид, что мы безответственные администраторы, и составим следующий shell-скрипт, который запустим через nohup:
Так, первая попытка позволит нападающему пройти в ОС сервера и изменить данные для подключения на свои, а после отключения SSH-сервер перезапустится на обычный, который примет теперь уже подходящие доступы.
Единственный минус данного метода — необходимо несколько раз перезапустить скрипт, прежде чем брутфорсер придет с логином root. Но нам повезло — первый же встречный пришел с логином root.
Но отдаваться первому встречному было плохой идеей. Атакующий собрал информацию о виртуальной машине, сменил пароль и ключ, и в течение следующих двух дней никто по новому ключу не пришел.
Пришлось откатить виртуальную машину на момент до атаки. Из этой попытки был сделан вывод, что ловить хороших людей по одному нецелесообразно: их намерения неясны и тратят много времени.
Решение простое: раз уж мы разрешили заходить каждому встречному, а каждый встречный выполняет отдельные команды в неинтерактивном режиме, так давайте будем записывать приходящие команды вместо исполнения. Находим метод do_child() в session.c.
Можно просто записывать все команды и ничего не выводить, но, кажется, атакующий принимает решения на основе полученной информации. По крайней мере при отсутствии вывода атакующий отключился после первой команды.
Пришлось придумать способ «отсеять» атакующих, которые выполняют простой сбор информации о машине, и запретить деструктивные действия. Также я попытался сделать сервер более привлекательным для атакующих и сделал обманывающие заглушки, которые «говорят», что в сервере 72 ядра, а процессор — Intel® Xeon® Gold 6354.
При этом запуск интерактивной сессии не будет логироваться, но это, на мой взгляд, было не так важно, так как нас атакуют боты. Это предположение, конечно, оказалось неверным, но процесс ssh трассируется на системный вызов execve, поэтому команды мы все равно узнаем.
Колизей
Первое время приходили только атакующие с ключом mdrfckr. Заглушки в сервере SSH не давали им испортить мой ключ, а больше вреда от них и не было. В первый час к нам заглянули 12 серверов, которые суммарно выполнили этот скрипт 79 раз. Кажется, что этот ботнет очень простой и его единственная цель — заставить администратора понервничать и вспомнить, как сбросить пароль в Linux. Дело было под вечер, поэтому виртуальная машина была оставлена в покое в надежде утром найти следы более «серьезных» атакующих.
Утром я вернулся к гипервизору и увидел, что vCPU трудятся на 100%. Заглянул внутрь сервера, проверил логи strace и понял, что ночью мой сервер был полем жарких битв.
Первым пришел любопытствующий скрипт из Испании (Мадрид, AS12479 Orange Espagne SA).
Следом пришел майнер из Америки (Невада, AS53667 FranTech Solutions). В отличие от всех предыдущих, майнер максимально непривередлив. Как-нибудь прокатит. При этом IP-адрес нападавшего и IP-адрес сервера с архивом (Нью-Йорк, AS53667 FranTech Solutions) не совпадают.
Кстати, именно этот майнер дожил до встречи со мной. У него два исполняемых файла krn и krane, а также текстовый файл config.json, это конфиг XMRIG. Тем не менее, майнер непрост: он подчищает за собой историю в .bash_history, удаляет конфиг и исходный архив, а также чистит за собой логи.
Далее были попытки протолкнуть исполняемый файл 8nlh4fpijnyueflljkd2bi9f69 через scp по путям:
На этом моменте место для логирования закончилось, и выяснить IP-адрес атакующего теперь не представляется возможным, так как strace сохраняет только pid. Недостаток места повлиял и на crontab.
Успех был достигнут только по последнему пути, но исходный файл тут же был стерт, а его место занял dhpcd. Этот сервис тоже дожил до встречи со мной, но оригинальный файл уже отсутствовал. К счастью, procfs позволяет вытащить файл даже после его удаления.
Следующий зашедший пытался сменить пароли для пользователей ubuntu, test, oracle, admin, test1, после чего проверил authorized_keys на предмет ключа mdrfckr и заменил ключи на собственный безымянный.
Далее был загружен исполняемый файл r в /dev/shm. Похоже, что данный исполняемый файл избавляется от конкурентов. Он проверяет наличие aliyun.one и скачивающихся скриптов в cron, а затем удаляет множество файлов и грубо завершает другие вредоносные процессы.
/bin, а также по файлам запущенных процессов (/proc/$PID/exe) и применил следующий фильтр:
Назначение этой проверки осталось неизвестным.
Затем в логах появились вторые попытки перечисленных атакующих, а потом — рассвет и прекращение эксперимента. Казалось, что можно очистить сервер от лишнего ПО, заменить команду rm пустышкой и попытаться еще раз.
В идеале, конечно, нужно подменить или запретить системный вызов unlink(2), чтобы вообще ничего не удалялось, но этот трюк достаточно сложный. И может скорее навредить, чем помочь.
Вторая попытка
Теперь первым пришел невиданный ранее посетитель. Он работал через интерактивную оболочку и интересовался наличием masscan на моем сервере. Затем он собрал подробную информацию по процессору и памяти. После — собрал информацию об IP, запустил тесты дисковой подсистемы и проверил скорость доступа к сети Интернет.
Интересно, что скрипт тестирования скачивался с передачей адреса и через stdin: это помогло скрыть источник скрипта от логов трассировки.
Однако большая часть скрипта легко восстанавливается по логу трассировки.
Затем пришел эксперт по смене паролей. Его единственная цель — сменить пароль. И он не справился! Ни одна из перечисленных команд не выполнилась успешно на моем сервере.
А вот и «зашифрованные» в base64 скрипты пошли:
При этом в скрипте используется dota3.tar.gz, но этот файл, увы, не был загружен на сервер. 🙁
Последним на сервер зашел уже известный нам krane, он же продолжил трудиться до рассвета.
Выводы
Мы предложили Интернету беззащитную виртуалку и посмотрели, что произойдет. Все в рамках наших ожиданий, но давайте подведем итог.
Что такое брутфорс и с чем его едят?
Привет, я бы хотел рассказать о очень интересной теме, о которой мало кто знает. Если ты ничего не понимаешь в этой сфере, добро пожаловать, сейчас я тебе всё объясню
Новичок задает себе подобные вопросы: как брутить аккаунты? где взять прокси? где скачать базу для брута? Данный материал поможет разобраться тебе в этом. А если ты вообще ничего не понимаешь, задавай вопросы 😉
Что необходимо иметь для получения профита в этой схеме?
— Софт (программы)
— Прокси
— Базы (емаил и пароль)
— Нормальный компьютер с быстрым интернетом
— Приват. У многих софтов этого рода есть хороший функционал и скорость, поэтому они стоят некоторых денег. То есть, если хотите получить быстрый окуп затраченных средств, то смело покупайте, но учитывайте, что вам также нужны базы и прокси, которые можно получить бесплатно или купить.
Из всего вышесказанного можно сделать вывод: чтобы получить нормальный софт, не обязательно его покупать, нужно следить за последними крякнутыми и паблик софтами, когда софт только выпускают, он работает почти на уровне приват софта
Прокси также есть двух видов :
— Быстрые приват прокси. Их можно без проблем найти и купить в интернете, благо, сайтов достаточно
— Медленные, но бесплатные прокси. Данные прокси выложены в паблик, соответственно, их может найти каждый, следовательно, больше нагрузка на прокси-сервер и ниже скорость чека.
Советую искать всегда SOCKS4/5 прокси, т.к. их скорость в разы больше, чем у HTTP/S
Базы:
Данные вопросы: где достать базу, скачать базу для брута волнуют новичков больше всего. Попытаюсь помочь вам вникнуть в это.
Итак, существует множество различных способов достать почты, но напишу наиболее примитивные из них:
1. Поиск софтом.
С помощью определенных софитов вы сможете добыть паблик базы, возможно, часть из них мало кто чекал. Будет полезно, если вы все найденные базы таким способом будете чекать на рар (редкие) запросы (не стим, не варфейс, не ориджин) ну и в зависимости, какие базы вы ищите (РУ или забугор). Забугор лучше будет чекать на скайп, пэйпал, лигу, ибэй, ориджин. Однако этот способ помогает достать только паблик базы
2. Скачивание баз с форумов. Сейчас выкладывают, в основном, забугор базы. Немного муторный способ, так как вам нужно прокачать аккаунты на форумах, выкладывая что-то полезное от себя. Допустим, скачали базу с одного форума. прочекали ее, забрали нужное, выложили эту же базу на другой форум или раздали ненужное. Не переборщите с жадностью. Опять же, у нас получить базу будет поначалу весьма проблематично, но, после того как вы отдадите что-то полезное, вы получите за это благодарность и сможете скачивать базы из-под хайда.
4. Самый муторный способ: слив зашифрованной базы с уязвимых сайтов. Поиск сайтов делается вручную, но чаще используют дорки.
Далее для слива сайтов используют мозги или Havij или Sqli dumper
Надеюсь, что после прочтения данного материала у вас станет меньше вопросов на тему «как брутить стим», «как брутить warface» и др, если кому-то это было интересно. Удачи!