- Инструменты Kali Linux
- Список инструментов для тестирования на проникновение и их описание
- WPForce
- Описание WPForce
- Справка по WPForce
- Руководство по WPForce
- Примеры запуска WPForce
- Установка WPForce
- 3 способа найти рабочую учетную запись в WordPress
- WPscan
- Metasploit
- Burp Suite
- Как защититься от брутфорса
- Простой способ брутфорса WordPress, Joomla, Drupal, OpenCart с BruteCMS
- Плюсы
- Из минусов
- Brute-force атаки с использованием Kali Linux
- Brute-force SSH
- Противодействие
- Brute-force WordPress
- Противодействие
- Заключение
Инструменты Kali Linux
Список инструментов для тестирования на проникновение и их описание
WPForce
Описание WPForce
WPForce — это набор инструментов для атаки WordPress. В настоящее время он содержит 2 скрипта — WPForce, который брут-форсит (подбирает пароль от входа) через API, и Yertle, который, как только подобраны администраторские учётные данные, выгружает шеллы. Yertle также содержит ряд модулей последующей эксплуатации.
- Брут-форс через API, не через форму входа — это позволяет обойти некоторые виды защит
- Может автоматически выгрузить интерактивный шелл
- Может использоваться для вызова полнофункционального обратного шелла
- Дампит (сбрасывает) хеши паролей WordPress
- Может бэкдорить функцию аутентификации для сбора паролей в виде открытого текста
- Внедряет крюк BeEF во все страницы
- Если надо, работает с meterpreter
Справка по WPForce
WPForce — это инструмент для брут-форса WordPress используя WordPress API.
Yertle — это модуль последующей эксплуатации для WordPress
Руководство по WPForce
Страница man отсутствует.
В BlackArch скрипт Yertle вызывается командой wpforce-yertle.
Yertle в настоящее время содержит следующие модули:
Примеры запуска WPForce
Брут-форс сайта (-u «http://www.[website].com»), используя имена пользователей из файла (-i usr.txt) и пароли из файла (-w pass.txt):
Установка WPForce
Установка в Kali Linux
Установка в BlackArch
Программа предустановлена в BlackArch.
Информация об установке в другие операционные системы будет добавлена позже.
Источник
3 способа найти рабочую учетную запись в WordPress
В этой статье будет рассмотрено, как скомпрометировать учетные записи сайта на WordPress при помощи различных техник брутфорса.
Автор: Raj Chandel
- На целевом сайте установлен WordPress
- В качестве рабочей системы используется Kali Linux (с WPscan)
- Приложение Burp Suite (Intruder) для осуществления автоматически атак на веб-приложения.
WPscan
WPscan представляет собой утилиту, работающую из командной строки и применяемую в качестве сканера уязвимостей по методу черного ящика. Обычно используется специалистами и блогерами для тестирования сайтов на безопасность.
В качестве примера используется сайт с WordPress, установленный на локальном хосте (localhost), как показано на рисунке ниже.
Рисунок 1: Тестовый сайт на WordPress, установленный на локальном хосте
Во время брутфорса вы можете использовать как свой список имен пользователей и паролей, так и словарь из дистрибутива Kali Linux. Я использовал файл rockyou.txt , идущий в комплекте с Kali Linux и содержащий 14341564 уникальных пароля.
В параметре –URL указываем адрес сайта, где установлен WordPress.
Параметр – U позволяет указать перечень используемых имен пользователей из файла (в нашем случае – в users.txt ).
Параметр – P позволяет указать перечень используемых паролей из файла rockyou.txt.
Продолжительность сканирования, как правило, зависит о того, насколько большой словарь с паролями, а поскольку список пользователей тоже большой, брутефорс может повлиять на производительность сайта в случае длительного использования.
Рисунок 2: Текстовая заставка, появляющаяся во время запуска брутфорса
Как показано на рисунке ниже, брутфорс завершился успешно, и найдено рабочее сочетание имени пользователя и пароля.
Рисунок 3: Найдена рабочая учетная запись admin / flower
Metasploit
Metasploit устанавливается вместе с Kali Linux. Соответственно, первым делом нужно запустить консоль, а затем нужный модуль для WordPress.
При помощи модуля, указанного ниже, выполняется аудит учетной записи. Сначала происходит валидация имен пользователей, потом привязываются пароли.
И опять, как показано на рисунке ниже, брутфорс тоже завершился успешно. Найдена учетная запись Admin / flower.
Рисунок 4: Повторное успешное завершение брутефорса
Burp Suite
Для решения нашей задачи подойдет Burp suite community edition, или можно использовать версию, которая устанавливается вместе с Kali Linux. Запускаем Burp Suite, открываем страницу авторизации в WordPress и активируем перехват в Burp Proxy. Затем указываем любое имя пользователя / пароля с целью последующего перехвата ответа на текущей запрос.
Рисунок 5: Пробная авторизация в WordPress
Обратите внимание на последнюю строчку перехваченного сообщения на рисунке ниже, где показаны имя пользователя и пароль raj:raj , введенные во время пробной авторизации. Затем кликните правой кнопкой мыши на пустом пространстве в поле с сообщением и выберите Send to Intruder или нажмите ctrl + I для отправки перехваченного сообщения в Intruder.
Рисунок 6: Перехваченное сообщение
Теперь зайдите в раздел Intruder, где находится запрос, созданный по базовому шаблону, который мы отправили. Далее зайдите во вкладку Positions, где выбраны несколько позиций, обозначенных символами § . Всё между двумя символами § будет заменено на полезную нагрузку. Однако сейчас нужно кликнуть на кнопку Clear с правой стороны от редактора.
Далее выберите позиции, как показано на рисунке ниже, и кликните на кнопку Add. Будут настроены две выбранные позиции для вставки полезной нагрузки. В списке Attack type выбираем Cluster bomb, поскольку у нас две позиции с полезной нагрузкой. Этот тип атаки полезен во время брутфорса, поскольку первая полезная нагрузка помещается на первую позицию, а вторая соответственно – на вторую. При проходе в цикле через элементы полезной нагрузки будут испробованы все комбинации. Например, если у вас 1000 имен пользователей и 1000 паролей, будет выполнено 1000000 запросов.
После выполнения всех настроек нажмите на кнопку Start attack.
Рисунок 7: Настройки атаки Cluster bomb для реализации брутфорса при помощи отправки запросов
Во вкладке Payloads кликните на выпадающий список Payload set, где можно выбрать числа 1 и 2. Выберите значение 1 для первой позиции полезной нагрузки. В выпадающем списке Payload type выберите Simple list, позволяющий настроить простой список строк для полезных нагрузок. Вы можете вручную добавить элементы в список при помощи текстового поля и кнопки Add или вставить список из буфера обмена или загрузить из файла.
Рисунок 8: Настройка первой позиции полезной нагрузки
Схожим образом выбираем значение 2 для второй позиции полезной нагрузки и в параметре Payload type выбираем Runtime file. Эта опция полезна, когда нужен очень большой список полезных нагрузок, чтобы не хранить в памяти. Добавьте путь к словарю с паролями и кликните на кнопку Start attack.
Рисунок 9: Настройка второй позиции полезной нагрузки
Во время атаки будут перебираться все возможные комбинации, как показано на рисунке ниже. Если вы обратите внимание на колонки Status и Length, то можете увидеть, что для комбинации admin / flower эти значения отличаются от остальных ( status = 302, lengh = 1203 ). Соответственно, можно сделать вывод, что именно такого результата мы и добиваемся. В итоге была еще раз обнаружена рабочая комбинация имени пользователя admin и пароля flower.
Рисунок 10: Результаты тестирования полезных нагрузок
Как защититься от брутфорса
Если предпринять меры, указанные ниже, можно защититься от атак подобного рода:
Длина пароля: в идеале длина пароля должна быть 8-16 символов. Важно избегать наиболее распространенных паролей и периодически менять.
Сложность пароля: Пароль должен содержать буквы в верхнем / нижнем регистре, должен содержать цифры и специальные символы. Пользователи должны выбирать сложные парольные фразы, а не одиночные слова. Чем сложнее пароль, тем дольше выполняется перебор.
Ограничение количества авторизаций: Ограничьте количество попыток авторизации в панели управления. Например, после трех неудачных попыток должен быть заблокирован IP на определенный период.
Двухфакторная аутентификация: Еще один способ защититься от брутфорса – двухфакторная аутентификация (или 2FA). Эта технология задействует еще один канал подтверждения авторизации (обычно при помощи телефона или электронной почты).
Капча: Установка капчи позволяет довольно просто защититься от ботов, использующих автоматизированные скрипты для авторизации.
Плагин Firewall: Даже неудачные атаки с использованием брутфорса могут замедлить работу сайта или даже полностью уронить сервер. Поэтому важно блокировать эти запросы, например, при помощи фаервола, который позволят отфильтровать плохой трафик и блокирует доступ к сайту.
Cloudflare – один из наиболее известных сервисов для защиты от брутфорса.
Резервная копия: В случае неудачного стечения обстоятельств у вас всегда должна быть свежая резервная копия и план по восстановлению работоспособности сервера.
Есть несколько плагинов для WordPress, позволяющих настроить автоматическое резервное копирование.
Запрет на просмотр содержимого директории и регулярное обновление WordPress также помогает защититься от брутфорса.
Источник
Простой способ брутфорса WordPress, Joomla, Drupal, OpenCart с BruteCMS
BruteCMS — это максимально простая программа для брут-форса входа (админки) таких популярных систем управления контентом как:
Для установки и запуска клонируем репозиторий:
Переходим в папку программы:
В самом начале программа спрашивает:
То есть использовать ли Tor. Если он у вас не настроен, то нажмите n.
Затем программа сама пытается определить CMS, на которой работает веб-сайт.
[*] Password List (Enter to default list):
Вы можете указать свой словарь, либо использовать тот, который поставляется с программой, для этого просто нажмите Enter.
Нужно указать количество потоков брут-форса. По умолчанию это значение равно 5, если вас это устраивает, то просто нажмите Enter.
Если всё прошло успешно, то она пытается определить имя пользователя. Если у неё это не получилось, то укажите имя пользователя вручную. Его можно найти в статьях — это автор, либо в комментариях от автора сайта.
Далее программа всё делает сама — просто ждём.
Если вы завершили брут-форс до того, как кончился словарь, то программа предложит сохранить сессию. Если вы согласились, то нужно будет ввести имя сессии или оставить то, которое предложила программа.
Чтобы продолжить сессию, программу нужно запустить с ключом —resume:
Будет выведен список всех сохранённых сессий — введите номер той сессии, которую вы хотите продолжить.
Плюсы
Программа реально очень простая. Обычно для брута веб-приложений нужно разбираться с формами входа, но здесь всё уже заточено под четыре конкретные КМСки, поэтому для запуска брут-форса сайтов нужно нажать пару кнопок.
Также программа сама пытается определить имя пользователя. Даже словарь и тот уже поставляется с программой.
Продуманный механизм работы с сессиями.
Из минусов
Программа действительно очень простая — как для использования, так и по своей работе. То есть она не предпринимает какие-либо попытки обойти файловые файерволы и проверки на ботов. Даже не используется пользовательский User-Agent. Поэтому для многих сайтов, которые вы точно знаете, что работают на WordPress, вы увидите:
[!] CMS not detected or not supported!
То есть невозможно определить систему управления контентом, либо она не поддерживается.
Но и тех хостингов, где нет даже простеньких защит, тоже хватает.
Источник
Brute-force атаки с использованием Kali Linux
Brute-force (атака полным перебором) – метод решения математических задач, сложность которого зависит от количества всех возможных решений. Сам же термин brute-force обычно используется в контексте хакерских атак, когда злоумышленник пытается подобрать логин/пароль к какой-либо учетной записи или сервису.
Рассмотрим инструменты, которые можно использовать для выполнения brute-force атак на SSH и WEB-сервисы, доступные в Kali Linux (Patator, Medusa, Hydra, Metasploit), а также BurpSuite.
Все материалы, предоставленные в рамках данной статьи, предназначены для использования исключительно в учебных целях. Использование материалов в противоправных и противозаконных запрещено.
Brute-force SSH
Для примера возьмем тестовую машину 192.168.60.50 и попробуем подобрать пароль пользователя test по SSH. Мы будем использовать популярные пароли из стандартного словаря rockyou.txt.
Patator
Для подбора пароля средствами Patator используем команду:
patator ssh_login host=192.168.60.50 user=test password=FILE0 0=/root/wordlist -x ignore:mesg=’Authentication failed’
где:
ssh_login — необходимый модуль
host – наша цель
user – логин пользователя, к которому подбирается пароль или файл с логинами для множественного подбора
password – словарь с паролями
-x ignore:mesg=’Authentication failed’ — команда не выводить на экран строку, имеющую данное сообщение. Параметр фильтрации подбирается индивидуально.
Hydra
Для подбора пароля используя Hydra выполним команду:
hydra -V -f -t 4 -l test -P /root/wordlist ssh://192.168.60.50
где:
-V – показывать пару логин+пароль во время перебора
-f – остановка как только будет найден пароль для указанного логина
-P – путь до словаря с паролями
ssh://192.168.60.50 – указание сервиса и IP-адрес жертвы
Medusa
Для подбора пароля с использованием Medusa выполним команду:
medusa -h 192.168.60.50 -u test -P /root/wordlist -M ssh -f -v 6
где:
-h – IP-адрес жертвы
-u – логин
-P – путь к словарю
-M – выбор модуля
-f – остановка после нахождения валидной пары логин/пароль
-v – настройка отображения сообщений на экране во время процесса подбора
Metasploit
Произведем поиск инструмента для проведения brute-force атаки по SSH:
search ssh_login и получили ответ:
Для просмотра необходимых параметров, воспользуемся командой show options . Для нас это:
rhosts – IP-адрес жертвы
rport – порт
username – логин SSH
userpass_file – путь до словаря
stop_on_success – остановка, как только найдется пара логин/пароль
threads – количество потоков
Указание необходимых параметров производится через команду «set«.
set rhosts 192.168.60.50
set username test
set userpass_file /root/wordlist
set stop_on_success yes
set threads 4
set rport 22
Указав необходимые параметры набираем команду «run» и ждем.
Противодействие
Ограничить количество устанавливаемых соединений с использованием межсетевого экрана. Пример настройки iptables:
-A INPUT -i eth0 -p tcp —dport 22 -m connlimit —connlimit-above 1 —connlimit-mask 32 -j REJECT —reject-with tcp-reset .
Такое правило установит ограничение доступа к SSH для каждого IP-адреса до 1 соединения в секунду, значительно усложнив перебор. Также эффективным решением может быть использование двухфакторной аутентификации (например, используя eToken) или аутентификации с использованием ключевой пары, а также использование ACL на основе IP-адресов.
Brute-force WordPress
Рассмотрим другой пример — подбор пароля окна авторизации веб-формы.
Для примера будем подбирать пароль от учетной записи администратора wordpress.
BurpSuite
Для начала нам необходимо понять, как происходит процесс авторизации. Для этого мы будем использовать BurpSuite. Нам необходимо попробовать авторизоваться с любым паролем и логином, чтобы посмотреть какие запросы проходят через BurpSuite.
Отлично, мы увидели POST запрос для авторизации с ним мы и будем работать.
В BODY указано какой логин и пароль проверялись, а значит, мы можем попробовать самостоятельно подставить нужные нам значения.
Передаем этот запрос в Intruder и там выбираем необходимые параметры для атаки. В пункте Payload Positions тип атаки оставляем sniper, но для проверки оставляем только параметр pwd. Таким образом, при атаке будет изменяться только этот параметр.
Загружаем необходимый словарь и начинаем атаку.
Из поведения веб-приложения мы видим, что неверный пароль возвращает код ответа 200. После перебора словаря, видим, что один из паролей дал ответ с кодом 302 — он и является верным.
Данный метод перебора занимает намного больше времени, чем при использовании Patator, Hydra, Medusa и т.д. Даже с учетом того, что мы взяли небольшой словарь, BurpSuite перебирал словарь около 40 минут.
Hydra
Попробуем подобрать пароль с помощью Hydra.
Как мы уже знаем, при неверной авторизации возвращается код 200, а при успешной – 302. Попробуем использовать эту информацию.
Для запуска используем команду:
hydra -V -f -l admin -P /root/wordlist -t 4 http-post-form://192.168.60.50 -m «/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log+In&redirect_to=http%3A%2F%2F192.168.60.50%2Fwp-admin%2F&testcookie=1:S=302»
Здесь мы указываем обязательные параметры:
-l – имя пользователя
-P – словарь с паролями
-t – количество потоков
http-post-form – тип формы, у нас POST.
/wp-login.php – это URL страницы с авторизацией
^USER^ — показывает куда подставлять имя пользователя
^PASS^ — показывает куда подставлять пароль из словаря
S=302 – указание на какой ответ опираться Hydra. В нашем случае, ответ 302 при успешной авторизации.
Patator
Как мы уже знаем, при неудачной авторизации возвращается код 200, а при удачной – 302. Будем использовать тот же принцип, что и с Hydra:
Запуск производится командой:
patator http_fuzz url=http://192.168.60.50/wp-login.php method=POST body=’log=admin&pwd=FILE0&wp-submit=Log+In&redirect_to=http%3A%2F%2F192.168.60.50%2Fwp-admin%2F&testcookie=1′ 0=/root/wordlist -t 4 before_urls=http://192.168.60.50/wp-login.php -x ignore:code=200 accept_cookie=1
http_fuzz – модуль для brute-force атаки http
url – адрес страницы с авторизацией
FILE0 — путь до словаря с паролями
body – информация, которая передается в POST запросе при авторизации
-t — количество потоков
-x – В данном случае мы указали команду не выводить на экран сообщения строки, содержащие параметр с кодом 200
accept_cookie – сохранение параметра cookie и передачи его в следующий запрос
Как итог – нам удалось подобрать пароль.
Nmap
Утилита Nmap позволяет в том числе производить подбор паролей для веб-форм авторизации, если использовать скрипт http-wordpress-brute с соответствующими аргументами:
—script-args – добавление аргументов
user или userdb – логин или файла с логинами
pass или passdb — указание пароля или словаря
thread – количество потоков
firstonly=true – выводить результат после первого же правильного пароля
nmap 192.168.60.50 —script http-wordpress-brute —script-args ‘user= admin,passdb= /root/wordlist, http-wordpress-brute.thread=3, brute.firstonly=true’
Противодействие
Ограничить (усложнить) brute-force атаки на web-приложения можно средствами iptables (по аналогии с SSH) и средствами nginx. Для этого необходимо создать зону лимитов:
.
limit_req_zone $binary_remote_addr zone=req_limits:10m rate=30r/s;
.
и задействовать ее:
location / <
.
limit_req zone=req_limits burst=10;
limit_req_status 429;
.
>
Такие настройки позволят ограничить количество запросов с одного IP-адреса до 40 в секунду.
Усложнить задачу перебора можно используя следующие методы:
— Применение межсетевого экрана и прочего ПО для ограничения количества обращений к защищаемому сервису. О том, как мы используем машинное обучение для выявления подобных атак (в том числе распределенных), можно почитать в статье.
— Использование средств, препятствующих быстрой проверке корректности ключа (например, Captcha).
Заключение
В данной статье мы поверхностно рассмотрели некоторые популярные инструменты. Сократить риск подбора пароля можно, следуя следующим рекомендациям:
— используйте устойчивые к подбору пароли;
— не создавайте пароли, используя личную информацию, например: дату рождения или имя + дата рождения или мобильный телефон;
— регулярно меняйте пароль;
— на всех аккаунтах применяйте уникальные пароли.
Подобные рекомендации (как и рекомендации по безопасной веб-разработке) мало кто соблюдает, поэтому необходимо использовать различные программные решения, позволяющие:
— ограничить подключение по IP-адресу, или, если это невозможно, ограничить одновременное количество соединений с сервисом (средствами iptables, nginx и прочими);
— использовать двухфакторную аутентификацию;
— выявлять и блокировать подобные атаки средствами SIEM, WAF или другими (например, fail2ban).
Источник