Всего за несколько движений Android-телефон можно превратить в скрытое устройство для хакинга, на котором можно запускать такие инструменты, как Nmap, Nikto и Netcat. И все это без получения root-доступа устройства.
Термин Root-прав - одно из понятий Linux, который лежит в основе ядра Android, и те кто работал с этой операционкой знают, что это такое. Root- это учетная запись главного администратора, или superuser-а. Имея доступ к этому профилю появляется целый ряд возможностей, не доступных в обычном режиме работы.
Разработчики студии UserLAnd Technologies выпустили в Google Play приложение, которое позволяет запускать на смартфонах под управлением Android дистрибутив Linux. Отличительной особенностью разработки является ее способность работать на устройствах без root-прав, существенно расширяя свою потенциальную аудиторию. Благодаря UserLAnd у пользователей появятся возможности для запуска утилит командной строки, а также ряда продвинутых программ для разработки ПО, средств редактирования и других десктопных инструментов.
По большому счету Linux превращает совершенно обычный Android-смартфон в полнофункциональную рабочую станцию. Таким образом пользователь может при необходимости подключить аппарат с приложение UserLAnd к компьютеру и начать работу с десктопными инструментами. Преимущество такого метода перед запуском Linux с флешки заключается в отсутствии необходимости переносить данные, а также перезагружать саму машину, чтобы изменения дистрибутива вступили в силу и позволили осуществлять рабочий процесс.
Благодаря этому приложению можно использовать операционную систему Debian ARM64 вместе с текущей версией Android. Эта архитектура ARM, иногда называемая «AARCH64», аналогична архитектуре ARM-образов Kali Linux Raspberry Pi, что позволяет легко использовать репозитории Kali. И что самое приятное, команда UserLAnd недавно добавила выделенную файловую систему Kali, поэтому необходимость импортировать репозитории для каждого пользователя отпадает.
Все созданные файловые системы доступны. И хотя многие инструменты Kali работают без проблем, UserLAnd по-прежнему считается все еще новым проектом, что в принципе может привести к сбою в работе некоторых инструментов (например, Nmap) при выполнении определенных команд. Стоит отметить, что эти проблемы, скорее всего, будут устранены в ближайшее время.
Если вам интересно как это работает, то UserLAnd использует специально разработанные скрипты и исполняемые файлы, которые создают на Android-устройствах файловые системы Debian и Ubuntu. Например, Proot — ПО с открытым исходным кодом, которое реализует функции, аналогичные chroot. Proot запускает программы с использованием альтернативной корневой директории, что позволяет обходиться без рута на Android устройстве. Обычно приложение, находящееся в пространстве пользователя, общается с ядром операционной системы через системные вызовы. Proot, запущенный на UserLAnd, работая в фоновом режиме и интерпретируя эти системные вызовы, при необходимости будет выполнять и управлять ими, чтобы эмулировать действия пользователей и их разрешения в файловой системе.
Начнем с установки SSH-клиента, который будет основным приложением для взаимодействия с ОС Debian. Затем мы рассмотрим некоторые советы по настройке ОС и импорту репозитория Kali Linux, чтобы действительно превратить Android в устройство для взлома. Некоторые читатели знают, что Kali Linux основана на операционной системе Debian, поэтому импорт их репозитория не нарушит работу системы.
Шаг 1. Установите приложение ConnectBot (опционально)
UserLAnd недавно добавил встроенную функциональность SSH, поэтому этот шаг можно пропустить. Тем не менее, сторонние SSH-клиенты по-прежнему можно использовать, если у вас возникнет такое желание.
ConnectBot — это SSH-клиент с открытым исходным кодом, разработанный для Android-смартфонов, который позволяет безопасно подключаться к SSH-серверам и Telnet или даже к вашему собственному устройству для работы с консоли. Вы вводите имя пользователя, имя хоста, к которому нужно подключиться, и (необязательно) используемый порт. Параметры подключения сохраняются, так что открыв приложение в следующий раз, вы сможете подключиться быстрее. ConnectBot пытается установить выбранное соединение, а затем просит ввести пароль.
Можно подключиться к нескольким серверам одновременно и чередовать эти соединения.
Можно использовать сертификаты с открытым ключом, а также использовать приложение для туннельных соединений.
Это будет основной способ взаимодействия с новой операционной системой UserLAnd Debian. Если вы не используете или не имеете доступа к Google Play, то ConnectBot также можно скачать из F-Droid репозитория.
JuiceSSH также очень хороший вариант, поскольку у него больше функций. Это полноценный SSH-клиент, который адаптирован под мобильные гаджеты. Сервис включает в себя поддержку Mosh и Telnet, а также предоставляет возможность одновременно работать с несколькими фоновыми задачами. Приложение имеет двухфакторную аутентификацию защиты, надежное шифрование и прочие параметры, которыми раннее были наделены только более серьезные программы.
Вы можете использовать его вместо ConnectBot, если захотите. С другой стороны, ConnectBot регулярнее обновляется и проще для новичков, поэтому мы решили, что с ним будет удобнее.
Шаг 2. Установите приложение UserLAnd
Чуть выше мы уже рассмотрели вкратце, что такое UserLAnd и что он делает, поэтому не будем сейчас на этом останавливаться. Здесь важно только то, что его нужно установить и сделать это вы можете как через Google Play, так и через F-Droid.
Дисклеймер (отказ от ответственности): UserLAnd имеет некоторые ограничения. Без root-доступа интерфейс Wi-Fi в операционных системах Android нельзя переключить в режим мониторинга, поэтому традиционные инструменты взлома Wi-Fi, такие как Aircrack-ng и другие работать без root-доступа не будут. Тем не менее, с помощью UserLAnd можно делать многие другие интересные вещи. Запуск же Kali без рутирования Android -телефона или сноса ОС Android само по себе достаточно сложное действие, поэтому не забудьте в Google Play поставить UserLAnd хорошую оценку — разработчики это заслужили.
Шаг 3. Создайте новую файловую систему
После завершения установки откройте UserLAnd и вкладку «Приложения» («Apps»). Обновите вкладку и подождите несколько минут, чтобы она наполнилась списком дистрибутивов.
Операционная система Kali Linux была совсем недавно добавлена в список доступных дистрибутивов. Выберите «Kali» или «Debian», затем приложение UserLAnd запросит учетные данные. Создайте имя пользователя, пароль и VNC-пароль.
«Пароль» разрешит доступ к SSH-серверу, который будет запущен после завершения установки файловой системы.
Затем UserLAnd загрузит необходимые исполняемые файлы и скрипты из своего GitHub-репозитория, которые он использует для создания файловых систем. Время, которое потребуется для загрузки и разархивации необходимых ресурсов, зависит от процессора Android и скорости интернет-соединения. В некоторых тестах процесс установки занимал до 20 минут, поэтому наберитесь терпения.
Во время нашей первой попытки использовать UserLAnd мы получили следующую ошибку: Не удалось извлечь файловую систему,что-то пошло не так («Could not extract filesystem. Something went wrong»). Помогло удаление и переустановка приложения UserLAnd. Если эта проблема до сих пор не устранена, то откройте новый вопрос на GitHub.
Шаг 4. Взаимодействие с файловой системой
После завершения установки перейдите на вкладку «Сеансы» («Sessions») и выберите только что созданную опцию. UserLAnd автоматически попытается открыть ConnectBot и спросит: «Вы уверены, что хотите продолжить соединение?» («Are you sure you want to continue connecting»). Нажмите «Да» и введите пароль, созданный на предыдущем шаге.
На этом этапе удобно использовать синхронизованную с телефоном Bluetooth-клавиатуру — это сильно упростит настройку ОС, но в принципе это не обязательно. Если вы не используете Bluetooth-клавиатуру, то мы рекомендуем установить Hacker’s Keyboard из Google Play - это полноценная 5-ти рядная клавиатура с клавишами Tab/Esc/Ctrl. Имеется отдельный циферный блок, знаки пунктуации на привычных местах. Идеальна для тех, кто использует ConnectBot для SSH соединений.
Шаг 5. Обновите ОС
Первое, что нужно сделать после установки новой операционной системы на телефон Android — это убедиться, что система обновлена. Обновить систему можно, используя для начала команду su для получения root-а в консоли, а затем стандартные команды обновления системы apt-get update && apt-get dist-upgrade.
distortiion@localhost:~$ su
root@localhost: /home/distortion# apt-get update && apt-get dist-upgrade
Ign:1 http://cdn-fastly.deb.debian.org/debian stable InRelease
Get:2 http://cdn-fastly.deb.debian.org/debian stable-updates InRelease [91.0 kB]
Hit:3 http://cdn-fastly.deb.debian.org/debian stable Release
Get:4 http://cdn-fastly.deb.debian.org/debian stable Release.gpg [2434 B]
Get:5 http://cdn-fastly.deb.debian.org/debian stable-updates/main arm64 Packages [5096 B]
Get:6 http://cdn-fastly.deb.debian.org/debian stable-updates/main Translation-en [4512 B]
Get:7 http://cdn-fastly.deb.debian.org/debian stable/main Translation-en [5393 B]
Get:8 http://cdn-fastly.deb.debian.org/debian stable/contrib arm64 Packages [29.9 kB]
Get:9 http://cdn-fastly.deb.debian.org/debian stable/contrib Translation-en [45.9 kB]
Get:10 http://cdn-fastly.deb.debian.org/debian stable/non-free arm64 Package [50.8 kB]
Get:11 http://cdn-fastly.deb.debian.org/debian stablenon-free Translation-en [80.6 kB]
Fetched 5714 kB in 31s (183 kB/s)
Reading package lists... Done
Reading package lists... Done
Building dependency tree... Done
Calculating upgrade... Done
The following packages will be upgraded:
tzdata
1 upgraded, 0 newly intalled, 0 to remove and 0 not upgraded.
Need to get 270 kB of archives.
After this operation, 1024 B of additional disk space will be used.
Do you want to continue? [Y/n]
На скриншоте выше, например, видно, что есть только один пакет, который необходимо обновить.
Шаг 6. Установите необходимое программное обеспечение
Новая файловая система очень мала и в установке по умолчанию не содержит многих необходимых программ. Ниже приведены несколько пакетов, которые мы рекомендуем для каждодневного использования Debian и Kali. Некоторые программы пока не требуются, но вам будет легче прорабатывать будущие статьи, где Android будет использоваться в качестве основного устройства для взлома, если вы установите их сейчас.
- Screen — консольный мультиплексор, который позволяет пользователям запускать несколько терминалов одновременно и переключаться между ними. Это один из самых важных пакетов для установки при использовании UserLAnd. Телефоны Android плохо обрабатывают длительные SSH-сессии и имеют привычку разрывать соединения без видимой причины. Такой обрыв соединения может привести к прекращению работы запущенных команд без возможности повторного подключения к прерванной сессии, чтобы просмотреть ход выполнения команды. Для поддержки постоянных сеансов shell’а как раз и используется Screen.
- Net-tools — это набор утилит, содержащий ifconfig, netstat, route и несколько других полезных сетевых приложений.
- Netcat — это многофункциональная UNIX-утилита, разработанная как надежный инструмент для создания TCP и UDP соединений. Netcat можно использовать для создания и взаимодействия с простыми бэкдорами macOS.
- Neofetch — кроссплатформенная утилита для сбора информации о системе. Он удобно отображает технические характеристики системы вместе с логотипом дистрибутива. У этого пакета нет другого реального применения, кроме демонстрации свойств вашей системы коллегам и друзьям. Neofetch немного глючит с дистрибутивами UserLAnd, но вдруг вам будет интересно, как мы создали фото для обложки, поэтому включили его в этот список.
- GnuPG— обычно используется для шифрования файлов и защиты сообщений электронной почты. Некоторые установочные скрипты (например, у Metasploit) используют gpg для импорта своих ключей подписи программного обеспечения. Можно и вручную установить Metasploit без gpg, но наличие в системе GPG сделает процесс установки менее сложным.
- cURL — инструмент командной строки, который используют для скачивания файлов через HTTP и другие популярные протоколы. Это полезный инструмент для загрузки файлов из Интернета.
- Wget — как и cURL, wget — это инструмент командной строки, используемый для загрузки файлов из Интернета. Некоторые разработчики предпочитают именно его, а не cURL, поэтому полезно будет иметь и его тоже на всякий случай.
- Git — популярная система контроля версий программного обеспечения, которая обычно используется для клонирования (загрузки) проектов GitHub.
- Nano — консольный текстовый редактор. Он делает редактирование файлов через SSH более удобным. Если вы предпочитаете Vim или Emacs, то скачайте эти редакторы (или в дополнение к nano).
Указанные выше пакеты можно установить с помощью команды apt-get.
Команда apt-get - это мощный консольный инструмент, который работает с Улучшенным инструментарием пакетов (APT) Ubuntu, выполняющий такие функции, как установка новых программных пакетов, обновление имеющихся пакетов, обновления индекса списка пакетов и даже обновление все системы Ubuntu.
Будучи простым консольным инструментом, apt-get имеет ряд преимуществ над другими инструментами управления пакетами, доступными в Ubuntu серверным администраторам. Некоторые из этих преимуществ включают легкое использование простых терминальных соединений (SSH) а также возможность использования в сценариях системных администраторов, которые могут быть автоматизированы с помощью утилиты планирования cron.
apt-get update && apt-get install net-tools netcat neofetch gnupg curl wget git nano screen
Шаг 7. Импорт репозитория Kali Linux (опционально)
Если на Шаге 3 вы установили Kali Linux, то этот шаг можно пропустить. Для пользователей ОС Debian импорт репозитория Kali в ваш дистрибутив не является обязательным. Однако это позволит быстро установить некоторые приложения, такие как sqlmap, Commix, Bettercap, Nikto, dnsmap, и сотни других программ, которые нельзя найти в дефолтных репозиториях Debian.
Чтобы начать импорт репозитория Kali Linux, воспользуйтесь nano, чтобы добавить ссылку на репозиторий Kali в файл /etc/apt/sources.list.
nano /etc/apt/sources.list
Добавьте строку, приведенную ниже, в конец файла (как показано на скриншоте), затем нажмите Ctrl + X, чтобы выйти и сохранить изменения. У ConnectBot есть экранные кнопки для таких клавиш, как Ctrl и Shift. В качестве альтернативы экранным кнопкам можно использовать Bluetooth-клавиатуру или приложение Hacker’s Keyboard - полноценная 5-рядная виртуальная клавиатура для Android.
Особенности:
- клавиши Tab/Esc/Ctrl
- отдельный циферный блок
- знаки пунктуации на обычных местах
- удобна для использования ConnectBot для SSH соединений
deb http://http.kali.org/kali kali-rolling main contrib non-free
Затем добавьте ключ подписи Kali, используя следующую команду wget.
wget -q -O - https://www.kali.org/archive-key.asc | apt-key add -
Если команда выполнится успешно, терминал вернет «ОК» (как показано на скриншоте ниже). И, наконец, с помощью команды apt-get update обновите кэш APT.
root@localhost:/home/distortion# wget -q -O - https://www.kali.org/archive-key.asc | apt-key add -
OK
root@localhost:/home/distortion# apt-get update
Ign:1 http://cdn-fastly.deb.debian.org/debian stable InRelease
Hit:3 http://cdn-fastly.deb.debian.org/debian stable-updates InRelease
Hit:4 http://cdn-fastly.deb.debian.org/debian stable Release
Ign:2 http://ftp.halifax.rwth-aachen.de/kali kali-rolling InRelease
Get:6 http://ftp.acc.umu.se/mirror/kali.org/kali kali-rolling Release [29.6 kB]
Get:7 http://ftp.acc.umu.se/mirror/kali.org/kali kali-rolling Release.gpg [833 B]
Get:8 http://ftp.acc.umu.se/mirror/kali.org/kali kali-rolling/main arm64 Packages [16.4 MB]
64% [8 Packages 9415 kB/16.4 MB 57%] 546 kB/s 13s
Заключение
Android — популярная платформа не только для простых смертных, но и для правильных людей. Количество полезных утилит здесь просто зашкаливает. За это можно сказать спасибо UNIX-корням системы, значительно упростившим портирование многих инструментов на Android.
С помощью UserLAnd превратить Android-телефон в устройство для хакинга можно довольно просто. И хотя Android обрабатывает данные медленнее, чем Raspberry Pi, он по-прежнему является отличным инструментом, который можно легко спрятать, и который способен запускать программное обеспечение Kali.