Говорят, что лень — двигатель прогресса. Как по мне, лучше работает конкуренция. Возможность свободного выбора устройств, приложений и информации сейчас — движущая сила, которая мотивирует разработчиков создавать и совершенствовать свои продукты. Сегодня хочу обсудить, какая альтернатива может быть у знаменитого пентестерского тулкита. Присаживайтесь поудобнее — и добро пожаловать под кат.

Почему смартфон?

Сейчас выбор устройств для любого исследователя уязвимостей очень широк: от крохотного, но при этом мощного UMPC, типа GPD Win 4, до одноплатного компьютера вроде Raspberry Pi Zero. Понятно, что по умолчанию такие девайсы не имеют никакого отношения к тестам на проникновение или эксплуатации недокументированных особенностей. Это все удел программного обеспечения — от самописных скриптов до готовых дистрибутивов вроде Kali Linux (в девичестве BackTrack).

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

У каждого из нас наверняка найдется какой-нибудь слегка устаревший смартфон на Android — это и есть тот самый портативный компьютер с кучей интерфейсов и вполне понятной процедурой подключения дополнительных устройств. Использование смартфона для пентестинга выглядит привлекательным ровно до того момента, пока не приходит пора оценить количество доступных интерфейсов и возможность беспрепятственно получить доступ суперпользователя. Первое еще более-менее легко подобрать, посмотрев на ТТХ конкретного аппарата. А вот со вторым все не так просто. Не каждый смартфон можно легко и непринужденно рутануть. Для каких-то моделей такая возможность вообще не предусмотрена. Первое, что стоит сделать при выборе устройства, — заглянуть на какой-нибудь профильный форум вроде 4pda и убедиться в том, что смартфон можно подвергнуть этой замечательной процедуре.

Ethernet

Теперь пару слов о подключении дополнительных интерфейсов. Тут Android частенько способен удивить. Например, я решил проверить, увидит ли мой старенький смартфон самую простую сетевую карту USB на 100 Мбит/с. Для подключения USB-устройства я воспользуюсь переходником, который с одной стороны имеет Type-C, а на выходе предлагает USB-A, HDMI, VGA и Jack 3.5” до кучи:

USB-C-переходник с подключенной по USB сетевой картой
USB-C-переходник с подключенной по USB сетевой картой

Из закромов родины достаю самый простой USB-сетевой адаптер, собранный в Поднебесной, втыкаю его в переходник и дальше в смартфон. Чисто эксперимента ради отключаю мобильную передачу данных и Wi-Fi. Через секунду в верхней шторке появляется новый значок вида <···> — и вуаля, сеть работает. Теперь я точно знаю, что с подключением почти любого смартфона к обычной проводной сети или сетевому устройству нет никаких проблем. Драйверы в большинстве случаев есть в ядре ОС, и поэтому оно заводится без танцев с бубном.

Huawei P9 Lite, подключенный к сети
Huawei P9 Lite, подключенный к сети

У меня под рукой было всего три старых смартфона, так что я решил проверить, будет ли это действовать со всеми:

  1. Huawei P9 Lite (Android 9) — работает.

  2. Huawei P Smart Z (EMUI 12) — работает.

  3. Blackview P6600 Pro (Android 11) — внезапно не работает, но USB-хаб видит.

Получается любопытная, но закономерная картина. Если разработчик прошивки не вырезал штатные драйверы таких сетевых USB-адаптеров, все взлетает без проблем. В противном случае — увы, только самостоятельные попытки добавить в ядро нужный драйвер, что получится не всегда. Но дадим Blackview еще шанс и добавим туда один из моих любимых китайских USB-брелков RTL-SDR.

SDR

Но мало его туда подключить: чтобы SDR заработал, нам потребуется соответствующий софт и модифицированный драйвер. Благо, такая программа и драйвер есть в Google Play. Называется она SDR Touch. Это позволяет превратить связку из смартфона и RTL-SDR-брелка в примитивный, но вполне рабочий SDR-приемник. Единственное условие — совместима она только с рутованными телефонами. Ставим вначале приложение SDR Driver, потом SDR Touch и финально за 12 $ покупаем лицензию на этот замечательный софт. Подключаем к BlackView P6600 Pro, который я рутанул еще год назад:

SDR Touch, запущенный на Blackview P6600 Pro
SDR Touch, запущенный на Blackview P6600 Pro

Все прекрасно работает, теперь можно брать такую связку в любое удобное место. Ну а огромная батарея Blackview может обеспечить длительную работу получившегося SDR-приемника. А вот оба моих Huawei не подойдут — насколько я знаю, там нет возможности легко разблокировать загрузчик. Хитрость в том, что для этого нужен OEM-код, а его компания Huawei предоставляла лишь по запросу и только до 2018 года. А потом все — не будет вам root-прав и плевать мы хотели на ваши претензии. Вроде бы есть платные утилиты, но результат никто не гарантирует. Хотя если кто-то из наших читателей поделится рабочим способом разблокировки, буду очень признателен.

UART

USB-to-UART
USB-to-UART

Дальше я попробовал приконнектить USB-конвертер уровней от FTDI для общения с другими устройствами по UART. Для проверки буду подключаться к Raspberry Pi 3 B+, в котором предварительно был активирован протокол UART на стандартных пинах (enable_uart=1 в config.txt раздела bootfs):

  • RPI Pin 8 / GPIO14 — FTDI TXD;

  • RPI Pin 10 / GPIO15 — FTDI RXD;

  • RPI Pin 6 / Ground — FTDI GND.

Для Android существуют удобные приложения, такие как Serial USB Terminal и UsbTerminal. Они самостоятельно определяют тип устройства и позволяют в пару нажатий получить к нему доступ:

Список автоматически определившихся устройств в UsbTerminal
Список автоматически определившихся устройств в UsbTerminal

Теперь запускаем «малинку» и спустя несколько секунд видим приглашение для входа в консоль устройства:

Успешное соединение с «малинкой» по UART
Успешное соединение с «малинкой» по UART

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

AndraX

Установка AndraX build 4 (источник изображения)
Установка AndraX build 4 (источник изображения)

Переходим к самому интересному. Поскольку Android основан на ядре Linux, на нем можно запускать скрипты, изначально созданные под Linux. Один независимый разработчик решил, что было бы неплохо взять Metasploit Framework, добавить туда Nmap, Aircrack-NG и еще много всякого добра и сделать удобный интерфейс для запуска. Так на свет появился AndraX, позволяющий превратить почти любой смартфон на Android версии 5 и выше в инструмент пентестера.

Но это только на словах все легко и понятно. Реальность же будет предельно разочаровывающей. Если мы говорим о скриптах, которые не привязаны к работе с конкретным оборудованием смартфона, то это будет функционировать. Но вот как только речь заходит, к примеру, о том, чтобы перехватить handshake беспроводной сети, защищенной WPA, возникает ряд проблем.

Дело в том, что для успешных атак такого рода Wi-Fi-адаптер должен быть переведен в специальный «неразборчивый» режим (monitor mode). Во-первых, не каждый Wi-Fi-адаптер позволяет проделывать такой трюк. Хотя после некоторых танцев с бубном на определенных моделях смартфонов, например Xiaomi Redmi Note 3, это сработает. Во-вторых, без root-прав такое тоже не получится. Ну а если подключать внешний Wi-Fi-адаптер, то велика вероятность, что он «из коробки» не заведется и придется патчить ядро, а затем прошивать им телефон. Вариантов что-либо сломать предостаточно.

В какой-то момент создатель AndraX решил хайпануть: он удалил официальную группу и репозитории проекта, а дальше пустил слух о том, что якобы разработчика убили. Однако спустя пару недель он триумфально вернулся в сеть, разбавив свое «I’m back, m*****f*******». Дальше был выпущен очередной релиз. История тогда наделала много шума, обсуждение можно найти на 4pda.

На момент выхода этого поста проект скорее мертв, чем жив. Официальный сайт не работает, а качать кастомные билды небезопасно от слова совсем. Тут все исключительно на ваш страх и риск. На GitHub были замечены и искомые APK, и архив со скриптами. Но гарантий того, что это вообще запустится, нет никаких. Я проверял в нескольких эмуляторах Android, но ни один из них так корректно и не заработал.

Kali NetHunter

Интерфейс Kali NetHunter на смартфоне Nexus (источник изображения)
Интерфейс Kali NetHunter на смартфоне Nexus (источник изображения)

Теперь давайте посмотрим на еще один любопытный проект по превращению Android-смартфона в инструмент пентестера. Kali NetHunter — отдельная ветка проекта Kali Linux. Разработчики решили не мелочиться и сделали свой набор инструментов в трех возможных вариантах:

  1. NetHunter Rootless для смартфонов без root-прав.

  2. NetHunter Lite для рутованных устройств с кастомным рекавери.

  3. NetHunter для рутованных телефонов определенных моделей, для которых разработчики создали отдельное ядро.

Последний вариант позволяет развернуться на полную катушку, ведь переделанное ядро дает возможность проделывать все те трюки, на которые стоковое ядро не способно. К тому же тут предусмотрели возможность подключить обычный монитор по HDMI и получить полноценный десктоп с базовыми инструментами. Удивляет то, что есть даже пара образов под умные часы на WearOS (TicWatch Pro/Pro 4G/LTE/Pro 2020 и TicWatch Pro 3 GPS/Pro 3 LTE/Pro 3 Ultra GPS/Pro 3 Ultra LTE).

Сразу хочется отметить, что, в отличие от AndraX, проект Kali NetHunter жив и регулярно обновляется. В качестве замены стандартной прошивки рекомендуется использовать чистый AOSP или LineageOS (бывший CyanogenMod). Вместо штатного рекавери следует поставить TWRP, а для получения прав суперпользователя — Magisk. Эта связка даст вам полный контроль над системой, разумеется, на собственный страх и риск.

В наборе Kali NetHunter присутствует большое количество разных инструментов, в том числе позволяющих телефону прикидываться различными USB-устройствами: от клавиатуры, нажатия клавиш которой можно заранее запрограммировать, до USB-кармана, подключающего любой ISO/IMG-образ. К тому же если ваш смартфон отсутствует в списке рекомендуемых, вы можете попробовать собрать кастомный образ под вашу конкретную модель при помощи Kernel builder.

Проект отличается хорошей документацией, которая более-менее регулярно обновляется и дополняется. Можно задать свой вопрос в Discord или IRC (#kali-linux на сервере irc.oftc.net), плюс почитать форумы и обсуждения выложенных образов на XDA.

Что в итоге

Превратить смартфон в удобный и функциональный инструмент пентестера однозначно можно. Главное — правильно выбрать модель. Проще всего, на мой взгляд, ориентироваться на список доступных образов Kali NetHunter и приобрести нужный аппарат на вторичном рынке, предложений более чем достаточно. Но даже в этом случае будьте готовы к тому, что придется потратить немало часов на то, чтобы все корректно заработало.

Что же касается сравнения с Flipper Zero, тут все будет зависеть от поставленной задачи. Если вам важно портативное устройство, которое способно общаться по UART, с этим справится почти любой рутованный телефон вместе с соответствующим конвертером уровней. Для большей гибкости можно вообще взять Arduino Mega и получить полный фарш по работе с GPIO.

Портирование того же Kali NetHunter на свое устройство — отличная задача не на один вечер. Это даже может стать отдельным хобби для тех, кто любит изучать операционные системы и собирать собственные ядра. Здесь есть прекрасный простор для творчества, а успешным результатом можно будет по праву гордиться.

А вы пробовали превращать смартфон на Android в инструмент для пентестера? Рассказывайте в комментариях.

Комментарии (11)


  1. Grey83
    06.10.2024 09:53
    +3

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

    Да вроде как имеется такая возможность (бесплатно и при этом локально можно получить код) для Huawei P9 Lite, судя по инфе в этой теме:
    https://4pda.to/forum/index.php?showtopic=741037


  1. shadrap
    06.10.2024 09:53
    +2

    к слову Самсунги устойчиво понимают Ethernet с S8 го , S6 отказался работать .


  1. sergbe
    06.10.2024 09:53

    Интересно, ушло в закладки.


  1. MaFrance351
    06.10.2024 09:53
    +1

    Если вам важно портативное устройство, которое способно общаться по UART, с этим справится почти любой рутованный телефон вместе с соответствующим конвертером уровней.

    Кстати, не каждый подойдёт. Moxa UPort 1110 вместе с приложением Serial USB Terminal работать у меня отказался. Пришлось спаять собственный переходник на FT232+ADM213+К561ЛА7.

    Про 1-Wire и EM-Marine ещё интересно. Есть такая штука как iKey, тоже работающая в паре с телефоном, но это дорого и не совсем универсально.


  1. mnnoee
    06.10.2024 09:53

    Если разработчик прошивки не вырезал штатные драйверы таких сетевых USB-адаптеров

    Неправда и лютая лож. В ядре 99% девайсов и в том, который как вы написали не поддерживает на самом деле поддержка есть, дело в том как захарлкодили систему и просто вырезали из неё функционал. В чистом AOSP, можете через dsu чекнуть этот адаптер работать будет. Драйвера не вырезаны.


    1. Grey83
      06.10.2024 09:53
      +3

      не «лож», а «клади» =)


  1. alexnissan
    06.10.2024 09:53

    Двое между собой:

    - вчера я купил Flipper Zero

    - и что он уже в мусорном ведре?


  1. acin
    06.10.2024 09:53

    Прошу прощения, но для SDR Touch рут нужен только если у вас устройство на Андроиде версии ниже чем 3.1, все что новее прекрасно работает без всякого рутования.


  1. NutsUnderline
    06.10.2024 09:53

    в Android далеко не самое свежее, во вторых - если там устройство и поддерживаются то скорее уж вырежут всякое firmware для них. в ядра для kali специально потом добавляют (возвращают) поддержку всяких нужных устройств, в том числе и не поддерживаемых обычным ядром linux


  1. NutsUnderline
    06.10.2024 09:53
    +1

    за 12 $ покупаем лицензию на этот замечательный софт (в play market)

    А так можно?


  1. d8543
    06.10.2024 09:53
    +1

    Redmi Note 8t с root, AOSP прошивкой, кастомным ядром и внешним WiFi-адаптером. ПО Stryker даже в бесплатной версии позволяет устроить всякое с точками доступа. Можно даже запустить перебор хэндшейка по словарю. Скорость сами понимаете какая будет, но работает. Всё взято с 4pda.