Как взломать пароль с помощью брутфорс атаки

Краткое введение

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

DoS-атака

DoS-атака не подразумевает взлома данных. Ее цель состоит в загрузке сервера большим количеством трафика, чтобы реальные пользователи не могли получить к нему доступ.

DDoS-атака

DDoS-атака аналогична DoS, но имеет ключевое отличие, а именно то, что в ней задействуется не одна атакующая машина, а множество. 

Наше решение не будет работать против такого вида атак. Поэтому с целью их предотвращения стоит обратиться к Akamai, Cloudflare и другим подобным сервисам, которые смогут оградить приложение прокси-сервером. 

Брутфорс атака

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

Защиты против атак брутфорсом:

  • сложные пароли максимальной длины;
  • двухфакторная аутентификация;
  • reCAPTCHA;
  • ограничение попыток ввода.

What is a Brute Force Attack

A brute force attack is a popular cracking method: by some accounts, brute force attacks accounted for five percent of confirmed security breaches. A brute force attack involves ‘guessing’ username and passwords to gain unauthorized access to a system. Brute force is a simple attack method and has a high success rate.

Some attackers use applications and scripts as brute force tools. These tools try out numerous password combinations to bypass authentication processes. In other cases, attackers try to access web applications by searching for the right session ID. Attacker motivation may include stealing information, infecting sites with malware, or disrupting service.

While some attackers still perform brute force attacks manually, today almost all brute force attacks today are performed by bots. Attackers have lists of commonly used credentials, or real user credentials, obtained via security breaches or the dark web. Bots systematically attack websites and try these lists of credentials, and notify the attacker when they gain access.

Blocking Brute Force Attacks

A common threat web developers face is a password-guessing attack known as a brute force attack.
A brute-force attack is an attempt to discover a password by systematically trying every possible combination of letters, numbers, and symbols until you discover the one correct combination that works.
If your web site requires user authentication, you are a good target for a brute-force attack.

An attacker can always discover a password through a brute-force attack, but the downside is that it could take years to find it.
Depending on the password’s length and complexity, there could be trillions of possible combinations.

To speed things up a bit, a brute-force attack could start with dictionary words or slightly modified dictionary words because most people will use those rather than a completely random password. These attacks are called dictionary attacks or hybrid brute-force attacks.
Brute-force attacks put user accounts at risk and flood your site with unnecessary traffic.

Hackers launch brute-force attacks using widely available tools that utilize wordlists and smart rulesets to intelligently and automatically guess user passwords. Although such attacks are easy to detect, they are not so easy to prevent.

For example, many HTTP brute-force tools can relay requests through a list of open proxy servers. Since each request appears to come from a different IP address, you cannot block these attacks simply by blocking the IP address.
To further complicate things, some tools try a different username and password on each attempt, so you cannot lock out a single account for failed password attempts.

Using Python to Brute Force DVWA (High Security)

While researching for this tutorial I come across a post over on medium by Danny Beton https://medium.com/@dannybeton/dvwa-brute-force-tutorial-high-security-456e6ed3ae39 where he covers step by step creating the python script that will allow you to capture the CSRF Token and brute force the login to DVWA on high security.

I did have to make a few changes to the original script from Danny’s page to get it working but only because I was having issues with the Password file adding 0x0n to the end of each brute force password attempt, I also wanted to see each password try output to the screen as the script runs.

Below is my edited version of Danny’s Python script which i saved as DVWA-BruteForce.py.

You will need to download the Python modules beautyfulsoup and requests for the script above to work as these are not part of the default pre installed modules in Python.

BeautyfulSoup is a web scrapping library used to capture the CSRF token. Requests are what he used to make the requests to the web server. He also used argv to supply arguments to the script from the command line but this module already comes installed.

These modules can be installed using pip with the commands below.

Also to get this to work you need to edit the URL = in the script to be the IP address of your DVWA web server, also you need to capture a PHPSESSID using Burp as we did previously in step 8 on the Low Security setting, add your PHPSESSID = to the script.

Run the Python Script using this command below adding the password list and the message which is received on a successful login.

If the Script works you should see an output like this..

Ограничение доступа по IP-адресам

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

Настройка ограничения доступа по IP-адресам для Apache

Настроить ограничение по IP-адресу можно при помощи файла .htaccess, который нужно поместить в папку wp-admin/:

<IfModule mod_authz_core.c>
<RequireAny>
Require all denied #запретить всем
Require ip 127.0.0.1 #разрешить локальные подключения
Require ip 23.45.67.89 #один адрес
Require ip 10.20.30.40 #еще один адрес
Require ip 123.123.123.0/24 #блок адресов
</RequireAny>
</IfModule>

Указанная настройка актуальна для веб-сервера Apache 2.4+.

Настройка ограничения доступа по IP-адресам для Nginx

Если на вашем сервере используется Nginx + php-fpm, то добавлять ограничения нужно в файл конфигурации Nginx для соответствующего сайта (в блоке server):

location ~* ^/(wp-admin|wp-login.php)
{
allow 23.45.67.89; #один адрес
allow 123.123.123.0/24; #блок адресов
deny all; #запрет всем остальным
}

Обратите внимание на обязательные точки с запятой в конце каждой строки и на то, что все разрешения (allow) должны быть выше запретов (deny)

Sidebar: Using CAPTCHAS

A completely automated public Turing test to tell computers and humans apart, or CAPTCHA, is a program that allows you to distinguish between humans and computers.
First widely used by Alta Vista to prevent automated search submissions, CAPTCHAs are particularly effective in stopping any kind of automated abuse, including brute-force attacks.

They work by presenting some test that is easy for humans to pass but difficult for computers to pass; therefore, they can conclude with some certainty whether there is a human on the other end.

For a CAPTCHA to be effective, humans must be able to answer the test correctly as close to 100 percent of the time as possible.
Computers must fail as close to 100 percent of the time as possible.
Researchers at Carnegie Mellon’s School of Computer Science continually work to improve and introduce new CAPTCHAs.

If you are developing your own CAPTCHA, keep in mind that it is not how hard the question is that matters-it is how likely it is that a computer will get the correct answer.
I once saw a CAPTCHA that presents the user with a picture of three zebras, with a multiple-choice question asking how many zebras were in the picture.
To answer the question, you click one of three buttons.

Nevertheless, a simple CAPTCHA may still be effective against brute-force attacks.
When you combine the chance of an attacker sending a correct username and password guess with the chance of guessing the CAPTCHA correctly, combined with other techniques described in this chapter, even a simple CAPTCHA could prove effective.

Неразрушаемые коды

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

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

Theoretical limits[edit]

The resources required for a brute-force attack grow exponentially with increasing key size, not linearly. Although U.S. export regulations historically restricted key lengths to 56-bit symmetric keys (e.g. Data Encryption Standard), these restrictions are no longer in place, so modern symmetric algorithms typically use computationally stronger 128- to 256-bit keys.

There is a physical argument that a 128-bit symmetric key is computationally secure against brute-force attack. The so-called Landauer limit implied by the laws of physics sets a lower limit on the energy required to perform a computation of kT  · ln 2 per bit erased in a computation, where T is the temperature of the computing device in kelvins, k is the Boltzmann constant, and the natural logarithm of 2 is about 0.693. No irreversible computing device can use less energy than this, even in principle. Thus, in order to simply flip through the possible values for a 128-bit symmetric key (ignoring doing the actual computing to check it) would, theoretically, require 2128 − 1 bit flips on a conventional processor. If it is assumed that the calculation occurs near room temperature (~300 K), the Von Neumann-Landauer Limit can be applied to estimate the energy required as ~1018joules, which is equivalent to consuming 30 of power for one year. This is equal to 30×109 W×365×24×3600 s = 9.46×1017 J or 262.7 TWh (about 0.1% of the yearly world energy production). The full actual computation – checking each key to see if a solution has been found – would consume many times this amount. Furthermore, this is simply the energy requirement for cycling through the key space; the actual time it takes to flip each bit is not considered, which is certainly greater than 0.

However, this argument assumes that the register values are changed using conventional set and clear operations which inevitably generate entropy. It has been shown that computational hardware can be designed not to encounter this theoretical obstruction (see reversible computing), though no such computers are known to have been constructed.[citation needed]

Modern GPUs are well-suited to the repetitive tasks associated with hardware-based password cracking

A single COPACOBANA board boasting 6 Xilinx Spartans – a cluster is made up of 20 of these

AES permits the use of 256-bit keys. Breaking a symmetric 256-bit key by brute force requires 2128 times more computational power than a 128-bit key. One of the fastest supercomputers in 2019 has a speed of 100 petaFLOPS which could theoretically check 100 million million (1014) AES keys per second (assuming 1000 operations per check), but would still require 3.67×1055 years to exhaust the 256-bit key space.

An underlying assumption of a brute-force attack is that the complete keyspace was used to generate keys, something that relies on an effective random number generator, and that there are no defects in the algorithm or its implementation. For example, a number of systems that were originally thought to be impossible to crack by brute force have nevertheless been cracked because the key space to search through was found to be much smaller than originally thought, because of a lack of entropy in their pseudorandom number generators. These include Netscape’s implementation of SSL (famously cracked by Ian Goldberg and David Wagner in 1995) and a Debian/Ubuntu edition of OpenSSL discovered in 2008 to be flawed. A similar lack of implemented entropy led to the breaking of Enigma’s code.

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

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

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

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

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

Брутфорс для ВК

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

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

Как обезопасить себя от взлома

Как бы банально это ни звучало — не разглашайте конфиденциальные данные, даже если собеседник вам симпатичен. Устанавливайте пароли чуть более сложные, нежели пресловутые 123456789, qwerty, даты рождения, имена и фамилии, и прочие шаблонные комбинации.

Impossible Security

Brute Force and user enumeration should not be possible at the impossible security level in DVWA. There is now a lock out feature, where if there are five bad logins within 15 minutes the user account gets locked out.

If the locked out user tries to login, even with a valid password, it will say their username or password is incorrect. this should make it impossible to know there is a valid account on the system.

If time is not an issue we do have a couple of options here that would eventually brute force the login. We could Edit the python script we used on High Security and add a 15-minute wait after every 4 password tries. This would mean that you only try 16 diffrnet passwords a hour and if you had a huge wordlist could take you months or even years to complete.

The other option would be to use password spraying this is where you use one password against multiple users and because you are not hammering the hell out of a single user you end up not not hitting the lock outthreshold .

If you would like to see some more information about Password Sparying leave me a comment below and i will make sure i add it to the list of future posts.

Стоит ли игра свеч

Что такое брутфорс в современных реалиях? Будем откровенны — все программы предлагают лишь теоретическое решение проблемы, так как на практике скомпилировать множество вариаций паролей хотя бы в диапазоне от 0-9, А-я, A-z, при условии символов в количестве от 6 до 9 будет непросто, итоговая сумма комбинаций равняется 220 триллионам!, а подбор такого количества запросов с учетом использования даже мощного оборудования, смены IP-адресов превысит 90 тыс. лет! Конечно, выставление определенных критериев вроде дат, имен, значимых событий, исключения лишних параметров и видов комбинаций, подключение антикапча-сервисов, а также проведение операции посредством сети, состоящей из множества компьютеров, значительно ускорит процесс, но опять же не гарантирует результата и вряд ли окупит потраченные усилия и средства.

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

Софт

Сейчас хешкрекинг в основном производится на видеопроцессорах (GPU). На обычных процессорах (CPU) брутятся только те алгоритмы, которые не реализованы под GPU. Для брута на GPU фактичeски уже стандартом стало использование программы oclHashcat, имеющей сборки как для Windows, так и для Linux, а также поддерживающей все современные видеопроцессоры — и NVIDIA, и AMD. Совсем недавно ее автор перевел программу в разряд Open Source, и теперь она доступна на GitHub, так что каждый желающий может присоединиться к работе над ее новыми версиями.

Для распределения работы этой программы между несколькими компьютерами используется оболочка hashtopus. Другим популярным GPU-брутфорсером остается нестареющий John the Ripper (JtR) в сборке Jumbo, который также имеет множество алгоритмов под все видеокарты, но для получения максимальной эффективности его желательно все-таки пересобирать под каждую конкретную конфигурацию железа.

Для работы на CPU программ гораздо больше, но самыми функциональными остаются все те же hashcat и JtR. Еще можно к ним добавить программу Hash Manager, которая больше заточена под обработку хешей в «промышленных масштабах», то есть очень крупных списков, которые не удается загрузить в другие программы. Все эти программы бесплатные, и каждый решает сам, что выбрать себе для ежедневной работы, только практика показывает, что желательно уметь владеть всем этим софтом — как правило, профессиональные хешкрекеры используют ту или иную программу в зависимости от конкретной ситуации.

Еще нужно учесть, что все эти программы консольные, не имеют встроенного GUI и, чтобы использовать их максимально эффективно, нужно уметь работать в консоли (см. врезку). А в идеале еще нужно уметь программировать командные файлы (BAT или CMD), чтобы максимально гибко настраивать работу программ. Тогда можно однократно составить для себя комплект командных файлов для разных атак, а потом, когда все настроено, весь хешкрекинг сведется к заполнению файла нужными хешами и запуску того или иного командного файла c определенными параметрами.

Консоль — райский дом хешкрекера

Самый продвинутый хешкрекерский софт — консольный и управляется либо через параметры командной строки, либо через редактирование файлов конфигурации. Но тенденция такова, что пользователи все дальше и дальше уходят от консоли, требуют графического интерфейса и наиболее популярный вопрос с форумов по работе с такими программами звучит так: «Я запустил программу, выскочило черное окно и закрылось. Что делать?» Ответ очевиден — изучать консоль.

Скорее всего, линуксоиды и так владеют навыками работы в консоли, а вот для пользователей Windows лучшим выбором будет программа FAR Manager. С ее помощью очень удобно работать со списками хешей и другими файлами. А если ее объединить с дополнительными инструментами (например, из состава программы Hash Manager), то получится просто убойный комплект, позволяющий обрабатывать любые файлы буквально за секунды.

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

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

Description

A brute force attack can manifest itself in many different ways, but
primarily consists in an attacker configuring predetermined values,
making requests to a server using those values, and then analyzing the
response. For the sake of efficiency, an attacker may use a dictionary
attack (with or without mutations) or a traditional brute-force attack
(with given classes of characters e.g.: alphanumeric, special, case
(in)sensitive). Considering a given method, number of tries, efficiency
of the system which conducts the attack, and estimated efficiency of the
system which is attacked the attacker is able to calculate approximately
how long it will take to submit all chosen predetermined values.

Триггеры и уведомления о попытках взлома

Триггеры обрабатывают статистику по трафику в фоновом режиме и анализируют данные в соответствии с заданными условиями. В случае с отчетом по Brute force выводится ТОП список хостов, с которых были обращения по ssh протоколу.

Отчет формируется на основании трех ключевых метрик:

  1. время жизни сессии;
  2. количество сессий на одного абонента за период;
  3. протокол прикладного уровня.

Пример из практики

В данном примере зафиксировано 105 сессий на 1 абонента.

На основании отчета QoE система позволяет создать более детализированные отчеты, чтобы увидеть подробности в сыром логе Netflow. Доступна информация:

  • по продолжительности сессии,
  • IP абонента и хоста,
  • номерам портов и автономных систем.

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

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

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

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

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

Adblock
detector