Го­тов раз­бирать на ато­мы при­ложе­ния для Android? Я соб­рал для тебя отличные инс­тру­мен­ты для пен­теста при­ложе­ний и нес­коль­ко кру­тых лаб для отра­бот­ки навыков. Теперь ты уви­дишь, что про­исхо­дит у при­ложух внут­ри.
 

Уязвимые приложения

Тес­тировать прог­раммы на реаль­ных при­ложе­ниях не всег­да удоб­но и этич­но. Есть спе­циаль­но раз­работан­ные при­ложе­ния для обу­чения пен­тесту. Клас­сика — Damn Vulnerable Bank. Это при­ложе­ние выдуман­ного бан­ка. У прог­раммы проб­лемы с механиз­мами защиты, в коде про­писа­ны кон­фиден­циаль­ные дан­ные, есть проб­лемы с сетевой безопас­ностью и кон­тро­лем дос­тупа.

В репози­тории Vulnerable Mobile Apps for Penetration Testing соб­раны сра­зу три клас­сных при­ложе­ния для обу­чения пен­тесту.

Damn Insecure and Vulnerable App (DIVA) вклю­чает 13 чел­лен­джей для про­кач­ки навыков пен­теста при­ложе­ний.

Sieve — небезо­пас­ный менед­жер паролей. При­ложе­ние соз­дано для демонс­тра­ции уяз­вимос­тей, свя­зан­ных с меж­про­цес­сным вза­имо­дей­стви­ем (IPC), в час­тнос­ти с механиз­мом Content Provider.

Это вто­рая вер­сия бан­ков­ско­го при­ложе­ния InsecureBankv2. С ним ты про­кача­ешь навыки атак на шиф­рование, аутен­тифика­цию и сес­сии, а так­же пот­ренишь исполь­зование небезо­пас­ных Broadcast Receivers и экспор­тирован­ных Activities. Не забудь ска­чать и запус­тить сер­вер с бэкен­дом и нас­тро­ить кон­нект к нему в при­ложе­нии.

За­пуск сер­вера:

git clone https://github.com/dineshshetty/Android-InsecureBankv2
cd Android-InsecureBankv2/AndroLabServer
pip3 install -r requirements.txt
python3 app.py

Damn Vulnerable Android Components (DVAC) — еще один менед­жер паролей, но для более сов­ремен­ных вер­сий Android. Работа­ет на Android 12 и выше. При­ложе­ние поможет тебе разоб­рать­ся с уяз­вимос­тями в Activities, Services, Content Providers и Broadcast Receivers. Оно поз­волит нат­рениро­вать­ся в сниф­финге, DDoS-ата­ках на устрой­ство и ата­ках на небезо­пас­ное хра­нили­ще.

Что­бы уста­новить при­ложе­ния в боль­шинс­тве эму­лято­ров, дос­таточ­но прос­то перета­щить файл APK на экран «смар­тфо­на».

 

Поиск чувствительных данных

Эта часть ути­лит деком­пилиру­ет APK-файл, что­бы най­ти какую‑нибудь инте­рес­ную информа­цию: токены API (в том чис­ле Google и AWS), адре­са и кре­ды пла­теж­ных шлю­зов, эндпо­инты API, хос­ты баз дан­ных. Но не сто­ит наде­ять­ся, что вытащишь дан­ные из тво­его любимо­го при­ложе­ния. При­чин это­му нес­коль­ко.

При­ложе­ния, которые раз­работ­чики заг­ружа­ют в Google Play, про­ходят стро­гий кон­троль. В Google хорошо понима­ют рис­ки, с которы­ми стал­кива­ются не толь­ко раз­работ­чики при­ложе­ний, но и конеч­ные поль­зовате­ли, и при­нима­ют серь­езные меры защиты. В том чис­ле сами ска­ниру­ют фай­лы на рас­кры­тие чувс­тви­тель­ных дан­ных.

Дру­гая при­чина в том, что схе­ма работы всег­да оди­нако­ва: деком­пиляция, нап­ример в JADX, и поиск по регуляр­кам. Деком­пилято­ры несовер­шенны и не всег­да могут разоб­рать файл. Да и раз­работ­чики час­то исполь­зуют раз­ные схе­мы для запуты­вания кода.

Но это не дела­ет бес­полез­ными ути­литы вро­де APKLeaks. Прос­то нуж­но понимать, как имен­но их при­менять. Нап­ример, ана­лиз очень ста­рой вер­сии при­ложе­ния может рас­крыть инте­рес­ные эндпо­инты API или IP-адре­са сер­веров. Иног­да попада­ются кре­ды, которые живут десяти­лети­ями.

Еще один вари­ант при­мене­ния — кор­поратив­ные при­ложе­ния: кли­ент для какой‑то внут­ренней сис­темы или прог­рамма для под­дер­жки поль­зовате­лей. Такое при­ложе­ние может стать хорошей точ­кой вхо­да.

 

APKLeaks

Это прос­тая и быс­трая ути­лита для поис­ка сек­ретов. Деком­пилиру­ет с помощью JADX, ищет сек­реты по сво­им регуляр­кам. Если JADX не уста­нов­лен, при пер­вом запус­ке APKLeaks сама ска­чает деком­пилятор.

Ус­танови APKLeaks коман­дой

pip3 install apkleaks --break-system-packages

Прог­рамма при­нима­ет нес­коль­ко парамет­ров:

  • -f, --file — файл APK для ска­ниро­вания;
  • -o, --output — файл для сох­ранения резуль­татов;
  • -p, --pattern — свой пат­терн для поис­ка сек­рета;
  • -a, --args — аргу­мен­ты для деком­пилято­ра JADX. Смот­ри справ­ку JADX;
  • -json — сох­ранение резуль­татов в JSON.

При­мер исполь­зования:

apkleaks -f dvba.apk
Пример запуска APKLeaks
При­мер запус­ка APKLeaks

Ути­лита неп­лохо справ­ляет­ся с работой: находит жес­тко закоди­рован­ные логины и пароли, токены авто­риза­ции Basic, Bearer и JWT. Видит клю­чи API облачных сер­висов вро­де AWS и Google Cloud.

 

TruffleHog

Ав­торы заяв­ляют, что это ути­лита для поис­ка кред, но она раз­работа­на не спе­циаль­но для работы с APK. Тул­за уме­ет ска­ниро­вать огромное количес­тво исходни­ков, в том чис­ле готовые фай­лы APK. В отли­чие от APKLeaks и подоб­ных ути­лит, не деком­пилит фай­лы. TruffleHog зна­ет струк­туру APK и ана­лизи­рует по собс­твен­ным алго­рит­мам.

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии