Брутфорс — это… описание программы, порядок установки, защита
Содержание:
- Unbreakable codes[edit]
- Изменение адреса админ-панели
- Сколько же времени займет перебор паролей для ВК?
- Классификация и способы выполнения брутфорс-атаки
- Brute Force Attack Prevention with Imperva
- Collection of dictionaries from the WirelessHack.org site [Dictionaries for hacking Wi-Fi]
- Ликбез
- Подборка словарей с сайта WirelessHack.org [Словари для взлома Wi-Fi]
- По другую сторону баррикады
- Countermeasures[edit]
- Отключение xmlrpc.php
- Как обойти капчу Вконтакте?
- High Security
- Analyzation of data transmitted via a website login page
- Description
Unbreakable codes[edit]
Certain types of encryption, by their mathematical properties, cannot be defeated by brute force. An example of this is one-time pad cryptography, where every cleartext bit has a corresponding key from a truly random sequence of key bits. A 140 character one-time-pad-encoded string subjected to a brute-force attack would eventually reveal every 140 character string possible, including the correct answer – but of all the answers given, there would be no way of knowing which was the correct one. Defeating such a system, as was done by the Venona project, generally relies not on pure cryptography, but upon mistakes in its implementation: the key pads not being truly random, intercepted keypads, operators making mistakes – or other errors.
Изменение адреса админ-панели
Возможно, это не самый простой и удобный способ защиты, но точно один из максимально эффективных. Изменить адрес (URL) для входа в админ панель можно вручную, если вы опытный администратор, или же при помощи специальных плагинов.
Вручную процесс состоит из нескольких этапов:
1. Переименуйте файл wp-login.php. Используйте случайную последовательность строчных латинских букв, цифры и тире. Например: some-new-page456.php
2. В получившемся файле найдите все упоминания wp-login.php и замените их на новое название.
3. Для корректной работы сайта замену необходимо проделать также в файлах: wp-activate.php, general-template.php, post-template.php, functions.php, class-wp-customize-manager.php, general-template.php, link-template.php, admin-bar.php, post.php, pluggable.php, ms-functions.php, canonical.php, functions.wp-scripts.php, wp-signup.php, my-sites.php, schema.php, ru_RU.po
После этого адрес админ панели будет располагаться по вашей новой ссылке https://site.com/some-new-page456.php. Доступ к новому файлу было бы полезно тоже ограничить и защитить паролем так, как указано выше.
Более простой способ — использование плагина, например, WPS Hide Login. После установки плагина в меню “Настройки” появится новый пункт WPS Hide Login.
Сколько же времени займет перебор паролей для ВК?
Напомню, что мы перебираем 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 году сделали единый адаптивный дизайн.
Классификация и способы выполнения брутфорс-атаки
Существует несколько видов атаки методом «грубой силы»:
- Персональный взлом. В этом случае брутфорс направлен на получение доступа к личным данным конкретного пользователя: аккаунтам социальных сетей, почте, сайту. Во время общения через интернет, в том числе используя мошеннические схемы, злоумышленник старается узнать логин, персональные сведения и другую информацию, которая понадобится для подбора пароля. Далее взломщик прописывает в специальную программу адрес ресурса, к которому нужен доступ, логин учетной записи, подключает словарь и подбирает пароль. Если пароль пользователя основан на личной информации и состоит из малого количества символов, то попытка злоумышленника может принести успех даже за короткое время.
- «Брут-чек». Этот вид брутфорса означает охоту на пароли в больших количествах. Соответственно, цель — завладеть данными не одного пользователя, а множества разных аккаунтов на нескольких веб-ресурсах. К хакерской программе подключается база логинов и паролей каких-либо почтовых сервисов, а также прокси-лист, чтобы замаскировать узел, не дав веб-сервисам почты обнаружить атаку. При регистрации на сайте, в социальной сети или в игре пользователь заполняет поле с адресом своей почты, на который приходят данные для входа в соответствующий аккаунт. В опциях брутфорса прописывается список названий сайтов или других ключевых слов, по которым программа будет искать в почтовых ящиках именно эти письма с логинами и паролями, вынимать и копировать информацию в отдельный файл. Так киберпреступник получает сотни паролей и может использовать их в любых целях.
- Удаленный взлом операционной системы компьютерного устройства. Брутфорс в комбинации с другими взламывающими утилитами применяется для получения доступа к удаленному ПК. Взлом такого вида начинается с поиска сетей, подходящих для атаки. Адреса пользователей добываются особыми программами или берутся из баз. Словари перебора и списки IP-адресов вводятся в настройках brute force. В случае успешного подбора пароля сохраняются IP-адрес машины жертвы и данные для входа, которые далее используются злоумышленником — например, с целью полного управления ПК через утилиту Radmin или другую подобную программу.
Brute Force Attack Prevention with Imperva
Imperva Bot Protection monitors traffic to your website, separating bot traffic from real users and blocking unwanted bots. Because almost all brute force attacks are carried out by bots, this goes a long way towards mitigating the phenomenon.
Bot Protection follows three stages to identify bad bots. It classifies traffic using a signature database with millions of known bot variants. When identifying a suspected bot, it performs several types of inspection to classify the bot as legitimate, malicious or suspicious. Finally, suspicious bots are challenged, to see if they can accept cookies and parse Javascript.
Collection of dictionaries from the WirelessHack.org site [Dictionaries for hacking Wi-Fi]
The WirelessHack.org site collected dictionaries that have been hanging around for some time here and there.
Description page: https://www.wirelesshack.org/wpa-wpa2-word-list-dictionaries.html
Included dictionaries:
- BIG-WPA-LIST-1 (size 247MB)
- BIG-WPA-LIST-2 (size 307MB)
- BIG-WPA-LIST-3 (size 277MB)
- Darkc0de.lst (size 17.4MB) — this was the default dictionary in Backtrack 5
- Rockyou.txt (size 133MB) — default dictionary in Kali Linux
- Names (size 3.7MB) — names and variants of names
Besides them, there are still quite a few dictionaries, for a total of 8.5 GB. If you use dictionaries infrequently, it is recommended to compress them for save storage space – they are plain text files that may be compressed very well – after archiving they will take about 10 times less space.
Magnet link:
magnet:?xt=urn:btih:6c89df058f71559dec6c5c7c9f2cb419182b3294&dn=Collection+of+Wordlist+%28Dictionaries%29+for+cracking+WiFi+WPA/WPA2&tr=udp%3A//tracker.leechers-paradise.org%3A6969&tr=udp%3A//zer0day.ch%3A1337&tr=udp%3A//tracker.coppersurfer.tk%3A6969&tr=udp%3A//public.popcorn-tracker.org%3A6969
The torrent file: https://miloserdov.org/wp-content/uploads/2019/03/1544257923-WordList-Collection.zip
Ликбез
Brute-force (атака полным перебором) – метод решения математических задач, сложность которого зависит от количества всех возможных решений. Сам же термин brute-force обычно используется в контексте хакерских атак, когда злоумышленник пытается подобрать логин/пароль к какой-либо учетной записи или сервису.
Рассмотрим инструменты, которые можно использовать для выполнения brute-force атак на SSH и WEB-сервисы, доступные в Kali Linux (Patator, Medusa, Hydra, Metasploit), а также BurpSuite и даже самый известный сетевой сканер nmap.
Brute-force SSH
Для примера возьмем тестовую машину 192.168.60.50 и попробуем подобрать пароль пользователя test по SSH.
Мы будем использовать популярные пароли из стандартного словаря rockyou.txt. Этот и другие словари доступны в свободном доступе на гитхабе.
Patator
Для подбора пароля средствами Patator используем команду:
где:ssh_login — необходимый модульhost – наша цельuser – логин пользователя, к которому подбирается пароль или файл с логинами для множественного подбораpassword – словарь с паролями-x ignore:mesg=’Authentication failed’ — команда не выводить на экран строку, имеющую данное сообщение. Параметр фильтрации подбирается индивидуально.
Hydra
Для подбора пароля используя Hydra выполним команду:
где:-V – показывать пару логин+пароль во время перебора-f – остановка как только будет найден пароль для указанного логина-P – путь до словаря с паролямиssh://192.168.60.50 – указание сервиса и IP-адрес жертвы
Medusa
Для подбора пароля с использованием Medusa выполним команду:
где:-h – IP-адрес жертвы-u – логин-P – путь к словарю-M – выбор модуля-f – остановка после нахождения валидной пары логин/пароль-v – настройка отображения сообщений на экране во время процесса подбора
Metasploit
Произведем поиск инструмента для проведения brute-force атаки по SSH:
search ssh_login и получили ответ:
Задействуем модуль:
Для просмотра необходимых параметров, воспользуемся командой show options. Для нас это:rhosts – IP-адрес жертвыrport – портusername – логин SSHuserpass_file – путь до словаряstop_on_success – остановка, как только найдется пара логин/парольthreads – количество потоков
Указание необходимых параметров производится через команду “set“.
Указав необходимые параметры набираем команду “run” и ждем.
Противодействие
Ограничить количество устанавливаемых соединений с использованием межсетевого экрана.
Пример настройки iptables:
Такое правило установит ограничение доступа к SSH для каждого IP-адреса до 1 соединения в секунду, значительно усложнив перебор. Также эффективным решением может быть использование двухфакторной аутентификации (например, используя eToken) или аутентификации с использованием ключевой пары, а также использование ACL на основе IP-адресов.
Подборка словарей с сайта WirelessHack.org [Словари для взлома Wi-Fi]
На сайте WirelessHack.org собраны словари, которые уже некоторое время болтаются здесь и там.
В том числе, там словари:
- BIG-WPA-LIST-1 (размер 247MB)
- BIG-WPA-LIST-2 (размер 307MB)
- BIG-WPA-LIST-3 (размер 277MB)
- Darkc0de.lst (размер 17.4MB) — это был дефолтный словарь в Backtrack 5
- Rockyou.txt (размер 133MB) — дефолтный словарь в Kali Linux
- Names (размер 3.7MB) — имена и варианты имён
Кроме них ещё довольно много словарей, в общей сложности на 8.5 Гигабайт. Если вы нечасто используете словари, то рекомендуется их сжать для хранения — они представляют собой обычные текстовые файлы, которые очень хорошо сжимаются — после архивации они будут занимать примерно в 10 раз меньше места.
magnet:?xt=urn:btih:6c89df058f71559dec6c5c7c9f2cb419182b3294&dn=Collection+of+Wordlist+%28Dictionaries%29+for+cracking+WiFi+WPA/WPA2&tr=udp%3A//tracker.leechers-paradise.org%3A6969&tr=udp%3A//zer0day.ch%3A1337&tr=udp%3A//tracker.coppersurfer.tk%3A6969&tr=udp%3A//public.popcorn-tracker.org%3A6969
Торрент файл прикреплён внизу этого поста.
По другую сторону баррикады
Теперь посмотрим на хеши глазами администратора того ресурса, который он хочет максимально защитить от взлома. Как можно усложнить жизнь хешкрекеру или вообще сделать так, что хеши пользователей станут неломаемыми?
Иногда для этого достаточно перейти на самую свежую версию движка и выбрать алгоритм, самый медленный по скорости брута. Но если обновление движка не планируется, а администратор хочет максимально обезопасить пароли своих пользователей от подбора, то есть другой вариант — пропатчить код проверки пароля так, чтобы у всех вновь зарегистрированных пользователей (или сменивших свои пароли после определенной даты) пароли хешировались по-другому. Как?
Конечно, можно использовать любой стандартный тяжелый алгоритм из Linux-функции crypt() — sha512crypt или bcrypt. Но если удастся заполучить такие хеши, то хешкрекер по сигнатурам сразу определит алгоритм и сможет ломать хеши (хоть и медленно). Вывод — нужно хешировать пароли так, чтобы хешкрекер не мог однозначно определить алгоритм по виду хеша, а это делается только нестандартными методами.
Например, можно подмешивать к паролю статическую соль (пусть даже одинаковую для всех, но очень длинную — 200–500 символов) и хешировать обычной PHP-функцией md5. Этой соли в БД форума нет (как, например, в движках vBulletin или osCommerce), она прошита только в PHP-коде, доступ к которому получить гораздо сложнее, чем к хешам. Но даже если заполучить эту соль, то почти нет брутфорсеров, поддерживающих работу с такой длинной солью (во всяком случае, на GPU — точно нет).
Другой вариант — циклически хешировать обычный MD5 от пароля этак 50–100 тысяч раз. На скорости авторизации пользователей это почти не скажется, но скорость брута таких хешей будет мизерной (при условии, что еще удастся выяснить количество итераций — опять же, только из PHP-кода). А если не удастся — то их вообще не сбрутить.
Еще можно взять более длинный хеш от другого алгоритма (например, SHA-256 или SHA-512) и вместо цельного хеша хранить в БД его фрагмент размером 32 символа из середины хеша (да еще и байты можно переставить). Хешкрекер, увидев такой хеш, будет уверен, что это MD5 (или его модификация), и будет пытаться сбрутить его, но бесполезно.
В общем, тут фантазия безгранична — автор за годы работы с хешами сталкивался с массой различных хитроумных видов хеширования, но факт налицо — очень много дампов от самописных CMS, или от коммерческих CMS без доступных исходников, или от пропатченных (по-видимому) форумов, и CMS остаются до сих пор несломанными. Что там внутри намешано при хешировании — неизвестно.
И нестареющий совет всем пользователям: самый надежный вариант защитить свой аккаунт от взлома, даже если был получен доступ к хешу от вашего пароля, — использовать длинный пароль, состоящий из случайных символов. Такие пароли не ломаются!
Countermeasures[edit]
In case of an offline attack where the attacker has access to the encrypted material, one can try key combinations without the risk of discovery or interference. However database and directory administrators can take countermeasures against online attacks, for example by limiting the number of attempts that a password can be tried, by introducing time delays between successive attempts, increasing the answer’s complexity (e.g. requiring a CAPTCHA answer or verification code sent via cellphone), and/or locking accounts out after unsuccessful login attempts.[page needed] Website administrators may prevent a particular IP address from trying more than a predetermined number of password attempts against any account on the site.
Отключение 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 и будет полезен, если у вас ограниченный доступ к серверу, где расположен сайт. Но недостаток в том, что защита привязана к конкретной теме и при ее изменении или обновлении настройку нужно добавлять повторно.
Как обойти капчу Вконтакте?
ВК требует ввод капчи после 3 неудачной попытки (перезагрузка F5 не помогает), а как он узнает что это именно вы делаете несколько попыток входа?
— по IP
— по кукам (cookies), кэшу и JavaScript
Значит, нам не реже чем через 3 запроса нужно менять IP и чистить куки.
С куками, кэшем и JavaScript нет проблем – их можно просто отключить в настройках браузера.
IP можно менять установив прогу по смене IP – в этом нет ничего мудреного, в сети их полно (Гугл в помощь)
Можно пользоваться браузером TOR (кто не знает – это браузер для анонимного гуляния по сети, он же меняет IP-шники при каждой новой сессии, полезная штука особенно для тех кто сёрфит или работает в САР)
Но почти полностью сводит на нет все попытки перебора ГЕОлокация.
Сервер ВК запоминает откуда (географически) был произведен последний вход.
И если ваш IP из другого населенного пункта, то (возможно) будет выскакивать надпись:
«Вы пытаетесь зайти под именем Ивана Иванова из необычного места.»
Чтобы подтвердить, что Вы действительно являетесь владельцем страницы, пожалуйста, укажите все недостающие цифры номера телефона, к которому привязана страница.
High Security
Switching to the High Security level in DVWA extends on the medium level by making the time delay between failed logins a random number between 0 and 4 seconds, the Devoloper has also introduced a Anti Cross-Site Request Forgery (CSRF) token
If you just re-run the hydra command as we did with medium Security changing the security= at the end of the command too high as below..
Hydra’s output will error saying its found 16 valid passwords found.
before going any further let us use FireFox’s inspector element by right-clicking the webpage within firefox and choose Inspect Element and lets take a look at the html.
Drill down in Inspect Element until you find the HTML for the login form. notice there is now a hidden field with the name user_token being submitted with our GET request.
If you change the type=”hidden” to type=”text” you should see the hidden box render in your web browser.
If you remove all the characters from this un-hidden box and try to login we get a new error message that states CSRF token is incorrect.
Making burp intercept a login attempt shows the user_token with a string of alpha numeric characters added to the end of the GET request.
Forward on the intercepted request and have another go at logging in, notice that the user_token= has changed to another random alpha numeric string of characters.
This is the CSRF Token and is used to add credibility to the origin of the request being received by the server, this token is a impossible to guess random number generated by the server and is sent along with our GET request.
On the brute forcing page we are currently looking at, if the CSRF Token does not match, our request will error with the message “CSRF Token is incorrect” which we have just seen previously when we sent a request removing all the characters from the hidden user_token= field.
No longer can use hydra alone to brute force DVWA on the high security level as hydra does not have the ability to collect the CSRF token while making the request, so we have to get a little more creative to get this Brute Force to work.
There are a few different options for us to get around this, firstly we could use Burp this can be used to capture the CSRF token and run the brute force against the page using intruder tab in Burps menus but in the community edition using this feature only allows for a single thread to be run at a time greatly reducing Burp’s attack speed.
You can also combine Burp with Hydra, putting Hydra’s traffic through a proxy like Burp, This allows Burp to handle the requests and capturing the CSRF token, altering Hydra’s initial request, so it does not need to be aware of the CSRF Token and also bypasses Burps intruder limitations in the community edition.
Lastly we can have a go at creating our own brute forcing tool, which is the option i thought was most interesting and i will be covering below using python.
If you would like to see a tutorial for either using Burp or using Burp and Hydra to brute force DVWA on high security please let me know in the comments below and I will make a separate tutorial for these.
Analyzation of data transmitted via a website login page
You need to start by collecting data about the operation of the web form. Analyzing static data (HTML code) can be difficult and very easy to miss some fields. Therefore, we will analyze the ‘live’ data that the browser sends. For this kind of analysis, we need a proxy. We will use the Burp Suite Free Edition.
Configure the proxy in Burp Suite to analyze the data transmitted from the web form
Run Burp Suite, this can be done from the menu, or, if you downloaded the latest version, so:
java -jar ./Downloads/burpsuite_free_*.jar
Go to the tab Proxy -> Options. There, at the very top of the Proxy Listeners, click Add and add a new listener: on any unused port, for example, 7070. For Specific Address, select the IP of the attacker’s computer (that is, the machine where Burp is running).
Here, go to the Request handling tab and tick the Support invisible proxying (enable only if needed).
When you add a new listener, check the box where Running (this will mean that it is currently in use).
Now go to Proxy -> Intercept, disable it.
Now in your web browser open Settings -> Advanced -> Network -> Connections Settings.
There, select Manual Proxy Configuration and in the HTTP Proxy fields, type the proxy IP and port (which Burp Suite listens to).
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.