• Поиск
  • Кодер HEX
  • Чекер proxy
  • CSRF/XSS форма

ЦИКЛЫ СТАТЕЙ:

  • 4. SHELL
  • 4.1. ANDROID SHELL
  • 4.2. WINDOWS. КОМАНДНАЯ СТРОКА
  • 4.3. LINUX. UNIX SHELL
  • 4.4. SHELL НЕ БЕЗ METASPLOIT
  • 4.5. WEB SHELL

ANDROID SHELL

Данная статья является началом для статьи БОЕВОЙ ANDROID, но здесь речь пойдёт только о удалённом подключении к консоли Android-устройства и справке по необходимым командам, приложениям и скриптам. В статье будет рассмотрено получение доступа к смартфону через подключение по USB кабелю с использованием консольной программы ADB (Android Debug Bridge) и через приложение SSHDroid.

ЦИКЛ СТАТЕЙ SHELLCODE

  1. ВСЕ О SHELL
  2. ANDROID SHELL
  3. WINDOWS. КОМАНДНАЯ СТРОКА
  4. LINUX. UNIX SHELL
  5. НЕ БЕЗ METASPLOIT

ПРАКТИКА

  1. Для начала скачиваем инструменты для работы со смартфоном:
    1. Официальный сайт ADB
    2. Официальный сайт Android Screencast
    3. Официальный сайт PuTTY
    4. Официальный сайт WinSCP
    5. 4PDA SSHDroid Unlocked
  2. Распаковываем ADB и Android Screencast в C:\adb, а остальное в C:\adb\ssh.
  3. Далее подключаем по USB смартфон и открываем командную строку (win+r, пишем cmd), вводим команды:
    1. cd c:\adb — перейти в каталог adb.
    2. adb devices — показать найдено ли устройство и подключить устройство.
    3. adb connect host:port — подключить устройство удалённо по IP.
    4. adb push C:\adb\ssh\sshdroid.apk /sdcard/Download/apk — перемещаем SSHDroid в стандартную папку для загрузок — Downloads в папку apk.
  4. Устанавливаем приложение SSHDroid со смартфона или с помощью Android Screencast. Для второго способа нужно иметь Java7+ и запустить .jar приложение, тогда появится окно рабочего стола смартфона.
  5. Открываем приложение и нажимаем Start. Там же в поле Address запоминаем IP-адрес.
  6. Открываем PuTTY, в поле Host Name пишем IP-адрес, в поле Port пишем 2222, в Connection Type выбираем чекбокс SSH. ОК.
  7. В открывшемся окне PuTTY появится строка «login as:». Пишем root, а на запрос пароля admin.
  8. putty.exe login@ip:port -pw password — автоматический вход из cmd.

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

СТАНДАРТНЫЕ КОМАНДЫ LINUX

  1. Общие команды:
    1. pwd — показать имя текущего каталога.
    2. cd [путь] — перейти в указанный каталог.
    3. ls — показать содержимое каталога.
    4. cp [полный путь до файла] [полный путь до каталога] — копировать.
    5. mv [полный путь до файла] [полный путь до каталога] — переместить.
    6. rm [полный путь до файла] — удалить.
    7. mkdir — создать каталог.
    8. rmdir — удалить каталог.
    9. echo «Hello World» — показать текст, который она содержит.
    10. Запись в файл.
      1. [команда] > [путь до файла] — записать первой строкой в файл.
      2. [команда] >> [путь до файла] — записать следующей строкой в файл.
      3. * Использовать > и >> можно для всех команд, чтобы можно было записать результат в файл.
    11. Команда cat покажет содержимое файла:
      1. cat /sys/class/power_supply/battery/capacity — показать состояние батареи в процентах.
    12. sh [полный путь до файла] — запустить скрипт.
    13. df — показать свободное место.
    14. ps — показать запущенные процессы.
    15. kill [id] — завершить процесс.
    16. start/stop — запуск и остановка системных служб.
    17. reboot -p — перезагрузить устройство.
  2. Команда pm (package manager) позволяет управлять пакетами:
    1. pm — показать справку по команде.
    2. pm list packages — отсортировать по ключам.
      1. [-s] — только системные приложения.
      2. [-3] — только сторонние приложения.
      3. [-f] — только пути установленных пакетов.
    3. pm list packages — показать список установленных приложений.
    4. pm install [путь] — установить приложение из пакетного .apk файла.
    5. pm clear [приложение] — очистить кэш приложения.
    6. pm uninstall [приложение] — удалить приложение.
    7. pm list permissions — показать все разрешения для приложений.
  3. Команда am (activity manager) позволяет управлять приложениями:
    1. am — показать справку по команде.
    2. am start -n com.android.settings/.Settings — запустить окно настроек.
    3. am start -n com.android.browser/.BrowserActivity — запустить браузер.
    4. am start tel:210-385-0098 — показать окно набора данного номера.
    5. am kill [приложение] — завершить приложение.
    6. * Чтобы запустить приложение — нужно знать его Activity, а для того, чтобы узнать — нужно найти activity приложения в поисковике, либо декомпилировать приложение (с помощью JDK/SDK искать в AndroidManifest.xml, или установить приложение Activity Launcher).
      «Activity — это компонент приложения, который выдает экран, и с которым пользователи могут взаимодействовать для выполнения каких-либо действий.» (с)
  4. Команды для сети:
    1. netcfg — показать сетевые настройки.
    2. netstat -lptu — показать открытые порты и приложения(только серверы).
    3. netstat -wat — показать все порты.
    4. iftop — посмотреть использование сети процессами.
    5. ifconfig wlan0 — посмотреть настройки IP и маски подсети.
    6. svc — управление мобильным подключением, wifi, usb и питанием.
  5. Сервисы:
    1. service — показать справку по управлению Java сервисами.
    2. service list список сервисов.
  6. Дампы: cat /sys/class/power_supply/battery/capacity
    1. dumpstate — дамп состояния устройства.
    2. dumpsys — дамп состояния системных сервисов.

ADB КОМАНДЫ

  1. Команда input позволяет отправить нажатие в текущее окно:
    1. input [источник] [команда] [аргументы] — отправить нажатие.
      1. input tap [x] [y] — нажать в указанное место.
      2. input swipe 10 10 10 1000 — вытянуть панель уведомлений.
      3. input keyevent 82 — нажать кнопку питания.
      4. input text «текст» — вставить текст в текущее поле.
      5. press (Default: trackball)
      6. roll [dx] [dy] (Default: trackball)
    2. dumpsys window | \sed -n ‘/mUnrestrictedScreen/ s/^.*) \([0-9][0-9]*\)x\([0-9][0-9]*\)/\1 \2/p’ — показать ширину и высоту экрана.
  2. Скриншоты:
    1. screencap — сделать скриншота.
    2. screenrecord — записать скринкаст.
  3. Копирование:
    1. adb push [путь с пк] [путь на андроид] — копировать.
    2. adb pull [путь на андроид] [путь с PC] — копировать.
  4. Установка и удаление приложений:
    1. adb install [-l] [-r] [-s] [полный путь до приложения на пк] — загрузить приложение на устройство и установить его.
      1. [-l] — блокировка приложения.
      2. [-r] — переустановить приложение, с сохранением данных.
      3. [-s] — установить приложение на карту памяти.
    2. adb uninstall [-k] [название_приложения.apk] — удалить приложение с устройства.
      1. [-k] — не удалять сохраненные данные приложения и пользователя.
  5. Перезагрузка:
    1. adb reboot bootloader — перезагрузить в режим bootloader.
    2. adb reboot recovery — перезагрузить в режим recovery.
  6. getprop/setprop — команды для чтения и изменения системных переменных.

Твики build.prop

Файл /system/build.prop хранит системные настройки Android. Это конфиг всех конфигов, и с его помощью можно сделать огромное количество интересных вещей. Достаточно вписать в конец файла строку с именем опции и значением через знак равно:

  1. ro.product.model — хранит название устройства (отображается в меню «О телефоне»). Иногда позволяет обманывать Play Store и ставить приложения, предназначенные для других устройств, или включать недоступные другим функции. Например, выдать себя за Pixel 2 XL и поставить новый Pixel Launcher с полноценной поддержкой Android Assistant;
  2. ro.sf.lcd_density — плотность пикселей на экране, которую я всегда выставляю для своего Nexus 5 на 420 вместо 480. Это позволяет получить пять иконок в ряд в стоковом лаунчере вместо четырех плюс делает текст более мелким;
  3. ro.telephony.call_ring.delay — при значении 0 уберет задержку начала включения музыки при звонке;
  4. persist.audio.fluence — содержит четыре команды, отвечающие за работу шумодава. Можно поиграть со значениями, если тебя плохо слышно при звонке или есть «булькающий» звук на записи видео;
  5. debug.sf.nobootanimation — значение 1 убирает бутанимацию;
  6. ro.config.hw_quickpoweron — значение true увеличивает скорость загрузки телефона (в теории);
  7. qemu.hw.mainkeys=0 — позволяет активировать показ наэкранных клавиш в дополнение к хардварным;
  8. ro.telephony.default_network — говорит системе, в какой режим должна быть переключена мобильная сеть при загрузке. В качестве значения выступает цифра, которую можно узнать так: набираем в номеронабирателе ##4636## и нажимаем на «Информация о телефоне». В меню «Предпочтительный тип сети» отсчитываем сверху до нужного режима. Счет начинается с нуля. То есть для 3G-смартфона значения будут такими: WCDMA preferred (предпочтительно 3G) — это 0, GSM Only (только 2G) — 1, WCDMA only (только 3G) — 2 и так далее. Досчитал до нужного пункта — записал цифру в значение. Теперь сразу после перезагрузки сеть будет активироваться именно в том режиме, который записан в build.prop.

ЗАПУСК ПРИЛОЖЕНИЙ

  1. Чтобы запустить стандартное приложение «Настройки» с определённым меню нужно выполнить:

    am start -n com.android.settings/.Settings\…

    и вместо «…» нужно подставить строку из предоставленных ниже. Результат этой команды откроет приложение, а вам остаётся прописать input с определённым действием и нажать на нужные кнопки, ввести нужные данные. Таким образом вы можете делать с помощью скриптов перезапуск отладки по USB, подключиться к Wi-Fi сети, зашифровать данные, сделать восстановление системы итд.
    // Спец. возможности
    $AccessibilitySettingsActivity
    // Синхронизация
    $AccountSyncSettingsActivity
    // Настройки IP (и фильтр плохих сетей)
    $AdvancedWifiSettingsActivity
    $AndroidBeamSettingsActivity
    // Bluetooth
    $BluetoothSettingsActivity
    // Зашифровать данные
    $CryptKeeperSettingsActivity
    $CryptSDCardSettingsActivity
    // Передача данных
    $DataUsageSummaryActivity
    // Настройки даты и времени
    $DateTimeSettingsActivity
    // Для разработчика
    $DevelopmentSettingsActivity
    // Настройки администрирования
    $DeviceAdminSettingsActivity
    // Состояние телефона
    $DeviceInfoSettingsActivity
    // Экран
    $DisplaySettingsActivity
    $DockSettingsActivity
    // Язык и ввод
    $InputMethodAndLanguageSettingsActivity
    // Язык
    $LocalePickerActivity
    // Мое местоположение
    $LocationSettingsActivity
    $ManageAccountsSettingsActivity
    // Приложения
    $ManageApplicationsActivity
    $MenuPowerSavingModeSettingsActivity
    $MotionSettingsActivity
    // Питание
    $PowerUsageSummaryActivity
    // Восстановление и сброс
    $PrivacySettingsActivity
    // Работающие приложения
    $RunningServicesActivity
    // Безопасность
    $SecuritySettingsActivity
    $SoftwareUpdateSettingsActivity
    $SoundSettingsActivity
    // Проверка правописания
    $SpellCheckersSettingsActivity
    // Настройки хранилища
    $StorageSettingsActivity
    // Использование памяти
    $StorageUseActivity
    // Точка доступа Wi-Fi
    $TetherSettingsActivity
    // Настройки синтеза речи
    $TextToSpeechSettingsActivity
    // Словарь пользователя
    $UserDictionarySettingsActivity
    // VPN
    $VpnSettingsActivity
    $WifiP2pSettingsActivity
    // Wi-Fi
    $WifiSettingsActivity
    // Беспроводные сети
    $WirelessSettingsActivity

СКРИПТЫ

  1. Сохраняем скрипт в файл с расширением .sh.
  2. sh [полный путь до файла] — запустить скрипт.

Запуск ADB в сетевом режиме:
#!/system/bin/sh
setprop service.adb.tcp.port 5555
stop adbd
start adbd

Делает бэкап всех приложений на карту памяти
#!/system/bin/sh
mkdir /sdcard/backup
cp /data/app/*.apk /sdcard/backup

Скрипт, который восстановит бэкап:
#!/system/bin/sh
for i in /sdcard/backup/*; do
pm install -t -r $i
done

Изменить IMEA
echo ‘AT+EGMR=1,7,»xxx»‘ >/dev/radio/pttycmd1

Изменить MAC
ip link set eth0 address 00:11:22:33:44:55

Показывает имя всех установленных пакетов
pm list packages -f

Запускает программу
monkey -p имя пакета -c android.intent.category.LAUNCHER 1
========
Создать файл /system/etc/wifi/ungolianth.conf с содержимым:
network={
ssid=»Ungolianth»
psk=»JJi.D6k-AcapF4HI1V+Qz1WzK*KEJyW2-z2!l2dgP~Hg05zCwnOXWJ2Dbyd9ph0″
priority=1
}

#!/system/bin/sh
wpa_supplicant -i wlan0 -c /system/etc/wifi/ungolianth.conf
dhcpcd wlan0
========

МАТЕРИАЛЫ

  1. 4PDA — ADB и все, что c помощью него можно сделать
  2. ][ — Shell-скриптинг в среде Android

Теги:

Автор: