How does brute force attack work

Что делать при обнаружении попытки брутфорс?

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

Второе — включить для данного абонента опцию mini-Firewall. Эта функция СКАТ DPI необходима для обеспечения безопасного использования Интернет, защиты сети от перегрузок, действия вредоносного ПО. Встроенный в платформу mini-Firewall решает две основных задачи:

  1. предотвратить взлом пользователей по открытым портам, по которым может идти атака;
  2. заблокировать активность, которая может идти от абонента.

Коллекция английских слов, разделённых на различные тематические категории.

Ссылка для скачивания: https://kali.tools/files/passwords/wordlist_imsky/wordlists.zip

Альтернативный вариант (версия может оказаться более свежей):

git clone https://github.com/imsky/wordlists.git

Категории:

├── adjectives (прилагательные)
│   ├── age.txt (возрат)
│   ├── algorithms.txt (алгоритмы)
│   ├── appearance.txt (внешность)
│   ├── character.txt ()
│   ├── colors.txt ()
│   ├── complexity.txt ()
│   ├── construction.txt ()
│   ├── corporate_prefixes.txt ()
│   ├── emotions.txt ()
│   ├── geometry.txt ()
│   ├── linguistics.txt ()
│   ├── materials.txt ()
│   ├── music_theory.txt ()
│   ├── physics.txt ()
│   ├── quantity.txt ()
│   ├── shape.txt ()
│   ├── size.txt ()
│   ├── sound.txt ()
│   ├── speed.txt ()
│   ├── temperature.txt ()
│   └── weather.txt ()
├── ipsum ()
│   ├── corporate.txt ()
│   ├── hipster.txt ()
│   ├── lorem.txt ()
│   └── reddit.txt ()
├── names ()
│   ├── cities ()
│   │   ├── alpha.txt ()
│   │   ├── france.txt ()
│   │   ├── netherlands.txt ()
│   │   └── switzerland.txt ()
│   ├── codenames ()
│   │   ├── apple.txt ()
│   │   ├── intel.txt ()
│   │   └── microsoft.txt ()
│   ├── states ()
│   │   ├── canada.txt ()
│   │   ├── city_states.txt ()
│   │   └── usa.txt ()
│   ├── streets ()
│   │   ├── chicago.txt ()
│   │   └── newyork.txt ()
│   └── surnames ()
│       ├── basque.txt ()
│       ├── english.txt ()
│       ├── french.txt ()
│       ├── german.txt ()
│       ├── irish.txt ()
│       ├── italian.txt ()
│       └── scottish.txt ()
├── nouns ()
│   ├── 3d_graphics.txt ()
│   ├── 3d_printing.txt ()
│   ├── accounting.txt ()
│   ├── algorithms.txt ()
│   ├── apex_predators.txt ()
│   ├── astronomy.txt ()
│   ├── automobiles.txt ()
│   ├── birds.txt ()
│   ├── buildings.txt ()
│   ├── cats.txt ()
│   ├── chemistry.txt ()
│   ├── coding.txt ()
│   ├── condiments.txt ()
│   ├── construction.txt ()
│   ├── containers.txt ()
│   ├── corporate_job.txt ()
│   ├── corporate.txt ()
│   ├── cotton.txt ()
│   ├── data_structures.txt ()
│   ├── design.txt ()
│   ├── dogs.txt ()
│   ├── driving.txt ()
│   ├── fast_food.txt ()
│   ├── filmmaking.txt ()
│   ├── fish.txt ()
│   ├── food.txt ()
│   ├── fortifications.txt ()
│   ├── fruit.txt ()
│   ├── furniture.txt ()
│   ├── gaming.txt ()
│   ├── geography.txt ()
│   ├── geometry.txt ()
│   ├── ghosts.txt ()
│   ├── houses.txt ()
│   ├── insurance.txt ()
│   ├── linear_algebra.txt ()
│   ├── meat.txt ()
│   ├── metals.txt ()
│   ├── military_airforce.txt ()
│   ├── military_army.txt ()
│   ├── military_navy.txt ()
│   ├── minerals.txt ()
│   ├── music_instruments.txt ()
│   ├── music_production.txt ()
│   ├── music_theory.txt ()
│   ├── phones.txt ()
│   ├── physics_optics.txt ()
│   ├── physics.txt ()
│   ├── physics_units.txt ()
│   ├── physics_waves.txt ()
│   ├── plants.txt ()
│   ├── radio.txt ()
│   ├── real_estate.txt ()
│   ├── seasonings.txt ()
│   ├── set_theory.txt ()
│   ├── shopping.txt ()
│   ├── spirits.txt ()
│   ├── sports.txt ()
│   ├── startups.txt ()
│   ├── storage.txt ()
│   ├── travel.txt ()
│   ├── typography.txt ()
│   ├── vcs.txt ()
│   ├── water.txt ()
│   ├── web_development.txt ()
│   ├── wines.txt ()
│   ├── wood.txt ()
│   └── writing.txt ()
└── verbs ()
    ├── 3d_graphics.txt ()
    ├── art.txt ()
    ├── collection.txt ()
    ├── communication.txt ()
    ├── cooking.txt ()
    ├── corporate.txt ()
    ├── creation.txt ()
    ├── destruction.txt ()
    ├── fire.txt ()
    ├── look.txt ()
    ├── manipulation.txt ()
    ├── military_navy.txt ()
    ├── movement.txt ()
    ├── music_production.txt ()
    ├── music.txt ()
    ├── programming.txt ()
    ├── quantity.txt ()
    ├── radio.txt ()
    ├── sports.txt ()
    ├── thought.txt ()
    ├── vcs.txt ()
    └── web.txt ()

How Brute Force Attacks Work

In simple terms, brute force attacks try to guess login passwords. Brute force password cracking comes down to a numbers game.

For most online systems, a password is encouraged to be at least eight characters long. Most passwords are eight characters long but are often a mix of numeric and alphabetic (case sensitive) characters, which is 62 possibilities for a given character in a password chain. If we combine 62 options for every character in an eight-character password, the result would be 2.18 trillion possible combinations. That is a lot of combinations for a cyberattacker to try.

In the past, if a hacker tried to crack an eight-character password with one attempt per second, it would roughly take seven million years at most. Even if the hacker were able to attempt 1000 combinations per second, it would still take seven thousand years.

It’s a different story nowadays with brute force hacking software having the power to attempt vastly more combinations per second than mentioned above. For example, let’s say a supercomputer can input 1 trillion combinations per second. With that amount of power, a hacker can reduce the time it takes to try 2.18 trillion password/username combinations to just 22 seconds!

Computers manufactured within the last decade have advanced to the point where only two hours are necessary to crack an eight-character alphanumeric password. Many cyber attackers can decrypt a weak encryption hash in months by using an exhaustive key search brute force attack.

The example above applies to password combinations of 8 characters in length. The time it takes to crack a password varies depending on its length and overall complexity.

Сколько же времени займет перебор паролей для ВК?

Напомню, что мы перебираем  221 918 520 426 688 (222 триллиона) вариантов пароля.

Поэтому, чтоб узнать сколько мы будем взламывать пароль ВК перебором  делим количество на скорость, т.е. 

221918520426688 пароля / 7,4 пароля в секунду = 29737081737176сек = 495618028953 мин = 8260300483 часов = 344179187 дней = 942957 лет

Вывод:реальная программа для взлома ВК могла бы подобрать пароль перебором за 94 тысячи лет.

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

Можно значительно ускорить процесс перебора!
Для этого нужно:
1. Повысить вычислительную мощность. Например, заразить 1.000.000 чужих компов и со всех одновременно брутить ВК (аж смешно)
2. Укоротить брут-словарь до, например, пары тыщ.(по принципу социальной инженерии)

Как сделать брут-словарь?
1. Ручками в программе блокнот  (notepad.exe)
2. Прогой «генератор брута» (ссылка внизу статьи)

Этот брут – словарь наполняем реальными вариантами.

Реальные  – это такие, которые хоть как-то связано с взламываемым человеком:

— телефоны (его, его родственников, друзей)Пример — номера с +7с,  8кой, без 8ки – попадается редко

— даты рождения (его, его родственников, близких)Пример — (одной и той же даты) 010118, 01012018, 20180101, 180101 – попадается часто

— Имена любимых, близкихПример — SashaMaria, MariaIvanova, SaNoMaIv – попадается средне

Название сайта (или фамилия) на другой раскладкеПример, если набрать слово «vkontakte» на русской раскладке, то получится – «млщтефлеу» — такая схема ну очень часто попадается на всех сайтах.

— лоховской список паролей для брута (список самых распространенных паролей в сети — ссылка в конце статьи)

Долго ли писать словарь? Ну, не очень – полчаса за глаза хватит. А кто сказал что будет легко?))

Допустим у нас есть созданный брут словарь и рабочая прога для подбора пароля ВК (либо ручной ввод по словарю).

Возникает одна важная проблема – система защиты сервера.

Собственно помеха её заключается в том, что при слишком частых запросах сервер тупо блокирует (временно) ваш IP. Кроме того, если вы работаете с ВК через стандартную форму ввода (HTML\FORM), то после 3 ей неудачной попытки ВК будет просить ввести капчу.

В старой версии ВК можно было просто перейти на мобильную версию – m.vk.com, теперь же мобильной версии как таковой нет – в 2016 году сделали единый адаптивный дизайн.

Взлом страницы входа роутера

Чтобы иметь представления об HTTP аутентификации начнём с выдержки из справки Router Scan by Stas’M:

Формально можно разделить устройства на два типа — те, которые используют аутентификацию на уровне протокола HTTP, — и другие, которые её не используют — в их число входят устройства, использующие HTTP формы для авторизации.

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

Но, если вы затрудняетесь визуально определить тип аутентификации, можно изучить HTTP заголовки ответа устройства, а конкретно заголовок WWW-Authenticate — именно он указывает на использование аутентификации на уровне протокола.

Для подбора пароля к таким устройствам Router Scan использует словари пар логин/пароль. Программой поддерживаются два метода аутентификации на уровне протокола:

  • Basic — базовая аутентификация, имя пользователя и пароль обрабатываются обратимым шифром и отправляются в заголовках (подробнее).
  • Digest — дайджест аутентификация, данные для входа необратимо хешируются алгоритмом MD5 и отправляются в заголовках (подробнее).

Для остальных устройств, не использующих эти методы, перебор по словарям не поддерживается (за исключением некоторых моделей, для которых была добавлена поддержка словаря Form аутентификации). Но можно воспользоваться функцией Use credentials в главном окне программы, которая проверяет пару логин/пароль независимо от метода аутентификации.

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

Это несколько кучных подсетей в которых в избытке водится роутер ZTE F668. Скажу больше — почти во всех них стандартные логины и пароли, но ни Router Scan, ни RouterSploit не извлекает из них информацию, поскольку на роутере вход выполняется с помощью веб-формы, а для этой модели брут-форс не поддерживается.

Какие пароли взламывают чаще всего? Статистика

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

  1. Простые последовательности (keyboard-walks): qwerty, qazwsx, 123456;
  2. Фразы и слова, которые часто первыми приходят в голову при создании пароля: password, admin, root, access;
  3. Пароли, частично дублирующие логины, например с добавлением цифр: user123;
  4. Слова на русском языке в английской раскладке: gfhjkm, flvby.

Немного статистики:

  • по данным https://haveibeenpwned.com/ на сегодняшний день скомпрометировано более 9 млрд аккаунтов;
  • в «словаре» паролей у злоумышленников находится более 555 млн записей;
  • наибольшее число хостеров ботнет (botnet C&C — command & controllers) располагается в США. На втором и третьем месте — Россия и Нидерланды.

Из отчета Spamhaus Botnet Threat Report 2019

Классификация и способы выполнения брутфорс-атаки

Существует несколько видов атаки методом «грубой силы»:

  • Персональный взлом. В этом случае брутфорс направлен на получение доступа к личным данным конкретного пользователя: аккаунтам социальных сетей, почте, сайту. Во время общения через интернет, в том числе используя мошеннические схемы, злоумышленник старается узнать логин, персональные сведения и другую информацию, которая понадобится для подбора пароля. Далее взломщик прописывает в специальную программу адрес ресурса, к которому нужен доступ, логин учетной записи, подключает словарь и подбирает пароль. Если пароль пользователя основан на личной информации и состоит из малого количества символов, то попытка злоумышленника может принести успех даже за короткое время.
  • «Брут-чек». Этот вид брутфорса означает охоту на пароли в больших количествах. Соответственно, цель — завладеть данными не одного пользователя, а множества разных аккаунтов на нескольких веб-ресурсах. К хакерской программе подключается база логинов и паролей каких-либо почтовых сервисов, а также прокси-лист, чтобы замаскировать узел, не дав веб-сервисам почты обнаружить атаку. При регистрации на сайте, в социальной сети или в игре пользователь заполняет поле с адресом своей почты, на который приходят данные для входа в соответствующий аккаунт. В опциях брутфорса прописывается список названий сайтов или других ключевых слов, по которым программа будет искать в почтовых ящиках именно эти письма с логинами и паролями, вынимать и копировать информацию в отдельный файл. Так киберпреступник получает сотни паролей и может использовать их в любых целях.
  • Удаленный взлом операционной системы компьютерного устройства. Брутфорс в комбинации с другими взламывающими утилитами применяется для получения доступа к удаленному ПК. Взлом такого вида начинается с поиска сетей, подходящих для атаки. Адреса пользователей добываются особыми программами или берутся из баз. Словари перебора и списки IP-адресов вводятся в настройках brute force. В случае успешного подбора пароля сохраняются IP-адрес машины жертвы и данные для входа, которые далее используются злоумышленником — например, с целью полного управления ПК через утилиту Radmin или другую подобную программу.

Examples of Brute Force Attacks

How common are brute force attacks?

Brute force attacks are so frequent that everyone, from individuals to enterprises operating in the online realm, has experienced such an attack. The organizations that have been hit the hardest in the last couple of years include:

  • In 2018, Firefox’s master password feature was proven to be easily cracked with a brute force attack. It is unknown how many users’ credentials were exposed. In 2019. Firefox deployed a fix to resolve this issue.
  • In March 2018, Magento was hit by a brute force attack. Up to 1000 admin panels had been compromised.
  • In March 2018, several accounts of members of the Northern Irish Parliament had been compromised in a brute force attack.
  • In 2016, a brute force attack resulted in a massive data leak in the e-Commerce giant, Alibaba.
  • According to Kaspersky, RDP-related brute force attacks rose dramatically in 2020 due to the COVID-19 pandemic.

Every brute force attack’s end-goal attack is to steal data and/or cause a disruption of service.

Алгоритмы хеширования

С одной стороны, набор актуальных алгоритмов хеширования почти не меняется со временем. Причины просты — алгоритмы хеширования паролей пользователей ОС не меняются годами, да и в интернете сотни тысяч ресурсов все еще базируются на устаревших движках, и обновление версий не происходит, несмотря на то что все новые версии форумов и CMS уже поддерживают более надежное хеширование — например, в IPB версии 4 уже сразу стоит алгоритм bcrypt. С другой стороны, небольшие изменения все-таки происходят — все больше начинает попадаться очень тяжелых алгоритмов — различные варианты PBKDF2 и тот же bcrypt, которые брутятся с мизерной скоростью даже на фермах.

Всего же известны уже сотни алгоритмов, примеры их хешей можно посмотреть здесь. Подавляющее большинство алгоритмов хеширования базируется на каком-либо из стандартных алгоритмов — MD5, SHA-1, SHA-256 и SHA-512 или на их комбинациях. Брутфорсеры давно уже поддерживают десятки таких алгоритмов в GPU-версиях и сотни алгоритмов в CPU-версиях.

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

Ну а если так и не удается определить алгоритм, то можно спросить на форуме — например, здесь. Вдруг кто-то уже сталкивался с такими хешами?

Отключение xmlrpc.php

Атаки путем запросов к файлу xmlrpc.php очень популярны, поскольку таким образом за один запрос возможно перебрать десятки тысяч комбинаций различных логинов и паролей. Поэтому очень важная часть защиты админ-панели — это отключение или ограничение доступа к данному файлу. В WordPress протокол XML-RPC используется для взаимодействия движка с различными внешними приложениями, например, Jetpack. Как показывает практика, в 99% сайтов файл xmlrpc.php не используется вообще. Если вы сомневаетесь, используется он у вас или нет, то создайте резервную копию файлов, которые вы будете изменять перед выполнением дальнейших инструкций.

Отключение xmlrpc.php при помощи плагинов

Для отключения xmlrpc.php можно использовать различные плагины, которых на данный момент уже достаточно много. Просто напишите в поиске в маркетплейсе плагинов «xmlrpc»:

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

Запрет доступа к  xmlrpc.php при помощи .htaccess

Первый вариант:

<IfModule mod_alias.c>
RedirectMatch 403 (?i)/xmlrpc.php
</IfModule>

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

Второй вариант:

<Files xmlrpc.php>
Require all denied
Require ip 127.0.0.1 #разрешить локальные подключения
Require ip 23.45.67.89 #один адрес
Require ip 10.20.30.40 #еще один адре
</Files>

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

Запрет доступа к  xmlrpc.php при помощи Nginx

Если на вашем сервере не используется Apache, то запрет доступа через Nginx будет выглядеть так:

location /xmlrpc.php
{
allow 23.45.67.89; #один адрес
allow 123.123.123.0/24; #блок адресов
deny all; #запрет всем остальным
}

Отключение xmlrpc.php при помощи пользовательской функции

Еще один вариант защиты связан с добавлением пользовательской функции в файл вашей темы сайта. В конце functions.php вашей темы добавьте код:

function shapeSpace_disable_xmlrpc_multicall($methods) {
unset($methods);
return $methods;
}
add_filter('xmlrpc_methods', 'shapeSpace_disable_xmlrpc_multicall');

Данный метод позволяет не затрагивать настройки Apache или Nginx и будет полезен, если у вас ограниченный доступ к серверу, где расположен сайт. Но недостаток в том, что защита привязана к конкретной теме и при ее изменении или обновлении настройку нужно добавлять повторно.

Types of Brute Force Attacks

The most basic brute force attack is a dictionary attack, where the attacker works through a dictionary of possible passwords and tries them all. Dictionary attacks start with some assumptions about common passwords to try to guess from the list in the dictionary. These attacks tend to be somewhat outdated, given newer and more effective techniques.

Recent computers manufactured within the last 10ish years can brute force crack an 8 character alphanumeric password – capitals and lowercase letters, numbers, and special characters – in about two hours. Computers are so fast that they can brute force decrypt a weak encryption hash in mere months. These kinds of brute force attacks are known as an exhaustive key search, where the computer tries every possible combination of every possible character to find the right combination.

Credential recycling is another type of brute force attack that reuses usernames and passwords from other data breaches to try to break into other systems.

The reverse brute-force attack uses a common password like “password,” and subsequently tries to brute force a username to go with that password. Since password is one of the most common password in 2017, this technique is more successful than you might think.

Weak Passwords that Enable Brute Force Attacks

Today, individuals possess many accounts and have many passwords. People tend to repeatedly use a few simple passwords, which leaves them exposed to brute force attacks. Also, repeated use of the same password can grant attackers access to many accounts.

Some of the most commonly found passwords in brute force lists include: date of birth, children’s names, qwerty, 123456, abcdef123, a123456, abc123, password, asdf, hello, welcome, zxcvbn, Qazwsx, 654321, 123321, 000000, 111111, 987654321, 1q2w3e, 123qwe, qwertyuiop, gfhjkm.

Strong passwords provide better protection against identity theft, loss of data, unauthorized access to accounts etc.

wordlistctl: large database of dictionaries [Dictionary Collection]

wordlistctl is a program that contains a large database of dictionaries. In fact, it is this database that is of interest, dictionaries can be downloaded directly, without this program – I will give links to the databases below, they are in JSON format, that is, quite readable.

wordlistctl is created by blackarch.org developers, web site: https://github.com/BlackArch/wordlistctl

How to install wordlistctl

Installing wordlistctl on Kali Linux:

sudo apt install python3-pip python3-libtorrent python3-coloredlogs
git clone https://github.com/BlackArch/wordlistctl
cd wordlistctl

Open the requirements.txt file

gedit requirements.txt

And remove the line from there

libtorrent

Then continue:

sudo pip3 install -r requirements.txt
python3 ./wordlistctl.py

In BlackArch, this program is in the standard repository – install directly from there.

sudo pacman -S wordlistctl

How to use wordlistctl

All dictionaries are divided into 5 categories:

  • username
  • password
  • hostname
  • filename
  • misc = other

To show all dictionaries, for example, in the password category:

wordlistctl -F password

With the -S option, you can search by dictionary names, for example, search for ‘rus’:

wordlistctl -S rus

--====--

 searching for rus in urls.json

 wordlist russian_users found: id=842
 wordlist rus_surnames_date099_fin found: id=1022
 wordlist rus_surnames_first_letter found: id=1046
 wordlist rus_surnames_fin found: id=1094
 wordlist rus_surnames_date19002020_fin found: id=1104
 wordlist rus_names_date099_fin found: id=1163
 wordlist rus_names_translit found: id=1185
 wordlist rus_cities_translit found: id=1206
 wordlist rus_names_date19002020_fin found: id=1209
 wordlist rus_eng found: id=1245
 wordlist rus_names_fin found: id=1278
 wordlist rus_mat found: id=1316
 wordlist rus_latin found: id=1323
 wordlist rus_names_kb_chage found: id=1324
 wordlist rus_cities_kbchange found: id=1401
 wordlist rus-mini found: id=1705
 wordlist russian found: id=1710
 wordlist russian2 found: id=1711
 wordlist russian_31799 found: id=1712
 wordlist russian_name found: id=1713
 wordlist russkie-maty found: id=1714
 wordlist rus_months_en found: id=1768
 wordlist rus_months_translit found: id=1769

To download dictionaries, create a wordlists folder in the current directory:

mkdir wordlists

And download to this folder (-d wordlists) a dictionary that has the identifier 1714 (-f 1714), unpack it and delete the original archive (-Xr):

wordlistctl -f 1714 -d wordlists -Xr
Добавить комментарий

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

Adblock
detector