How does brute force attack work
Содержание:
- Что делать при обнаружении попытки брутфорс?
- Коллекция английских слов, разделённых на различные тематические категории.
- How Brute Force Attacks Work
- Сколько же времени займет перебор паролей для ВК?
- Взлом страницы входа роутера
- Какие пароли взламывают чаще всего? Статистика
- Классификация и способы выполнения брутфорс-атаки
- Examples of Brute Force Attacks
- Алгоритмы хеширования
- Отключение xmlrpc.php
- Types of Brute Force Attacks
- Weak Passwords that Enable Brute Force Attacks
- wordlistctl: large database of dictionaries [Dictionary Collection]
Что делать при обнаружении попытки брутфорс?
Обнаружив попытки взлома, первое, что может сделать интернет-провайдер — связаться с абонентом, предупредить его и предложить при необходимости сменить пароль на более сложный. Предупредить можно в том числе с помощью показа баннера или размещения информации на стартовой странице через раздел «Управление маркетинговыми кампаниями».
Второе — включить для данного абонента опцию mini-Firewall. Эта функция СКАТ DPI необходима для обеспечения безопасного использования Интернет, защиты сети от перегрузок, действия вредоносного ПО. Встроенный в платформу mini-Firewall решает две основных задачи:
- предотвратить взлом пользователей по открытым портам, по которым может идти атака;
- заблокировать активность, которая может идти от абонента.
Коллекция английских слов, разделённых на различные тематические категории.
Ссылка для скачивания: 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 не извлекает из них информацию, поскольку на роутере вход выполняется с помощью веб-формы, а для этой модели брут-форс не поддерживается.
Какие пароли взламывают чаще всего? Статистика
Для большинства систем, где может авторизоваться пользователь, предусмотрены логин и пароль, выданные по умолчанию. В идеале, каждый пользователь после входа в систему по дефолтному паролю должен устанавливать свой уникальный, однако многие пренебрегают этим простым правилом безопасности или устанавливают слишком простые сочетания символов, чтобы было проще их запоминать. Таким образом формируются целые группы уязвимых паролей:
- Простые последовательности (keyboard-walks): qwerty, qazwsx, 123456;
- Фразы и слова, которые часто первыми приходят в голову при создании пароля: password, admin, root, access;
- Пароли, частично дублирующие логины, например с добавлением цифр: user123;
- Слова на русском языке в английской раскладке: 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