Εισαγωγή στο Android Pentesting

Το Android Pentesting αναφέρεται στη διαδικασία ελέγχου της ασφάλειας των εφαρμογών και των συσκευών Android προκειμένου να εντοπιστούν πιθανά τρωτά σημεία που θα μπορούσαν να αξιοποιηθούν από επιτιθέμενους.

Περιλαμβάνει την αξιολόγηση της κατάστασης ασφαλείας των εφαρμογών και των συστημάτων Android με την προσομοίωση επιθέσεων και την προσπάθεια εκμετάλλευσης αδυναμιών στο σχεδιασμό, την υλοποίηση ή τη διαμόρφωσή τους.

android pentesting new

Σε αυτόν τον οδηγό θα κατεβάσουμε τα εργαλεία που χρησιμοποιούνται για να ξεκινήσουμε το Android Pentesting και θα λύσουμε δύο HTB Mobile Challenges.

Τα εργαλεία που θα χρησιμοποιήσουμε θα είναι τα εξής:

Τα challenges του HTB θα είναι:

  • Pinned – Θα εκτελέσουμε μια παράκαμψη SSL Pinning Bypass.
  • Manager  Hack εφαρμογή χρησιμοποιώντας το Burp Suite.

Ας ξεκινήσουμε εγκαθιστώντας τα εργαλεία που θα χρησιμοποιήσουμε. Για να χρησιμοποιήσουμε αυτά τα εργαλεία, θα πρέπει να έχουμε εγκαταστήσει τη Java και την Python στον κεντρικό υπολογιστή.

Πρώτα ας εγκαταστήσουμε το Android Studio. Αυτό θα μας επιτρέψει να δημιουργήσουμε εξομοιωτές για δοκιμές αντί να χρησιμοποιούμε μια φυσική συσκευή.

htb

Μόλις κατεβάσετε το Android Studio, μπορείτε να το εγκαταστήσετε. Το Android Studio μπορεί να εγκατασταθεί σε Windows, MacOS και Linux.

Στη συνέχεια θα εγκαταστήσουμε το Burp Suite.

https://portswigger.net/burp/communitydownload

Τέλος, θα εγκαταστήσουμε τη γέφυρα εντοπισμού σφαλμάτων Android (ADB).

https://developer.android.com/tools/adb

Το πρώτο πρόγραμμα που θα χρησιμοποιήσουμε είναι το Android Studio. Αυτό θα μας επιτρέψει να δημιουργήσουμε εξομοιωτές για συσκευές Android.

Όταν ξεκινάμε το Android Studio για πρώτη φορά θα πρέπει να δημιουργήσουμε ένα project.

htb1

Θα ονομάσω το project Android Pentesting.

htb2

Δημιουργία μιας συσκευής για δοκιμές.

Κάντε κλικ στο τηλέφωνο με το εικονίδιο Android στην επάνω δεξιά γωνία.

htb3

Κάντε κλικ στο “Προσθήκη νέας συσκευής…”

htb4

Στη συνέχεια επιλέξτε Δημιουργία εικονικής συσκευής.

htb5

Πειραματιστείτε ελεύθερα με αυτό το τμήμα. Μπορείτε να ρυθμίσετε πολλαπλές συσκευές με πρόσβαση στο Play Store και να καθορίσετε το API. Για τους σκοπούς αυτού του οδηγού θα χρησιμοποιήσω μια συσκευή Google Pixel 6 που δεν έχει πρόσβαση στο Play Store.

*Σημειώστε ότι μια συσκευή με πρόσβαση στο Google Play Store δεν μπορεί να κάνει root. Οι συσκευές χωρίς το εικονίδιο του Play Store είναι συσκευές με root.

htb6

Το επόμενο βήμα είναι η επιλογή της έκδοσης API. Θα χρησιμοποιήσω την έκδοση 28. Μπορείτε να πειραματιστείτε με τις διάφορες εκδόσεις του API.

htb7

Το τελευταίο βήμα για αυτό θα είναι η ονομασία της συσκευής μας. Εγώ επέλεξα Pentesting Device. Μπορείτε να την ονομάσετε όπως εσείς προτιμάτε.

Τώρα μπορούμε να κάνουμε κλικ στο κουμπί Play στη δεξιά πλευρά και ο εξομοιωτής μας θα πρέπει να εμφανιστεί. Μπορεί να χρειαστούν μερικά λεπτά κατά την πρώτη εκκίνηση.

htb8

Τώρα έχουμε μια συσκευή για να κάνουμε δοκιμές Android. Είναι απολύτως εφικτό να κάνουμε δοκιμές σε μια φυσική συσκευή. Αυτή είναι μια οικονομικά αποδοτική προσέγγιση χωρίς το φόβο του μπρικανισμού ενός τηλεφώνου.

Στη συνέχεια μπορούμε να ρυθμίσουμε το Burp Suite. Μπορείτε να χρησιμοποιήσετε είτε το Community είτε το Pro.

htb9

Το πρώτο βήμα για να κάνετε το Burp να λειτουργήσει με τον εξομοιωτή (ή τη φυσική συσκευή, αν αυτό χρησιμοποιείτε) είναι να ρυθμίσετε τον ακροατή μεσολάβησης.

Κάντε κλικ στο μενού Proxy και στη συνέχεια κάντε κλικ στην επιλογή Proxy Settings (Ρυθμίσεις μεσολάβησης).

htb10

Στη συνέχεια κάντε κλικ στο 127.0.0.1:8080 και κάντε κλικ στο κουμπί Επεξεργασία.

Αλλάξτε τη διεύθυνση Bind to σε All interfaces (Όλες οι διασυνδέσεις).

htb11

Επιστρέφοντας στο τηλέφωνό μας, θέλουμε να ανοίξουμε τις Ρυθμίσεις στη συσκευή μας Pixel.

htb12

Από τις Ρυθμίσεις θέλουμε να ανοίξουμε το Network & Internet

htb13

Στη συνέχεια θέλουμε να επιλέξουμε Wi-Fi.

htb14

Τώρα κάντε κλικ στο Android Wi-Fi.

htb15

Τώρα κάντε κλικ στο εικονίδιο του μολυβιού πάνω δεξιά.

htb16

Κάντε κλικ στην επιλογή Advance Options και στη συνέχεια Proxy.

htb17

Εδώ μπορούμε να ρυθμίσουμε τον πληρεξούσιο μας. Θα πρέπει να χρησιμοποιήσουμε τη διεύθυνση IP του κεντρικού υπολογιστή μας. Η δική μου είναι 192.168.0.224. Θα πρέπει να συγκεντρώσετε την εσωτερική σας διεύθυνση IP από το ipconfig/ifconfig/ip addr.

Η θύρα θα είναι 8080. Αυτή είναι η προεπιλεγμένη θύρα Burp.

htb18

Τώρα κάντε κλικ στο κουμπί Αποθήκευση.

Επιστρέφοντας στο Burp βλέπουμε την κυκλοφορία να περνάει, αλλά έχουμε ένα πρόβλημα με το TLS. Στο επόμενο βήμα θα ρυθμίσουμε ένα πιστοποιητικό από το Burp στη συσκευή Android. Με αυτόν τον τρόπο η κυκλοφορία TLS θα λειτουργεί μέσω του διακομιστή μεσολάβησης και του Burp.

htb19

Επιστρέφοντας στην ενότητα Proxy Listeners μπορούμε να κάνουμε κλικ στην επιλογή “Εισαγωγή / εξαγωγή πιστοποιητικού CA”. Κάντε κλικ σε αυτό και στη συνέχεια κάντε κλικ στην επιλογή “Εξαγωγή πιστοποιητικού σε μορφή DER”.

htb20

Αποθηκεύστε το πιστοποιητικό στο μηχάνημα υποδοχής σας. Εγώ ονόμασα το δικό μου burp.der.

htb21

Το επόμενο βήμα θα είναι η χρήση του Android Bridge για τη μεταφορά του πιστοποιητικού στη συσκευή μας.

Χρησιμοποιώντας την εντολή

adb push burp.der /sdcard/burp.crt

θα στείλει το πιστοποιητικό στην sdcard της συσκευής μας.

htb22

Μπορούμε τώρα να εγκαταστήσουμε το πιστοποιητικό στη συσκευή μας. Ανοίξτε τις Ρυθμίσεις στη συσκευή και αναζητήστε την επιλογή “Install Cert” (Εγκατάσταση πιστοποιητικού). Κάντε κλικ στην επιλογή Εγκατάσταση πιστοποιητικών από την κάρτα SD.

htb23

Στη συνέχεια επιλέξτε “Εγκατάσταση πιστοποιητικού”.

Η συσκευή Android θα σας δώσει αυτή την προειδοποίηση. Κάντε κλικ στο κουμπί Install anyway (Εγκατάσταση) κάτω αριστερά.

htb25

Θα πρέπει να αποθηκεύσετε το πιστοποιητικό burp.crt.

htb26

Κάντε κλικ στο αρχείο burp.crt και ονομάστε το πιστοποιητικό burp.

htb27

Ενδέχεται να σας ζητηθεί να ορίσετε ένα PIN. Εγώ το κράτησα πολύ απλό με 1111.

htb29

Μπορείτε να επαληθεύσετε αν το πιστοποιητικό εγκαταστάθηκε αναζητώντας την επιλογή Trusted και κάνοντας κλικ στην επιλογή Trusted credentials.

htb30

Κάντε κλικ στο Trusted credentials.

htb31

Τώρα κάνοντας κλικ στο USER θα εμφανιστεί το PortSwigger Cert.

htb32

Αυτό συμβαίνει όταν κάνω επανεκκίνηση της συσκευής. Όταν επανεκκινήσω τον εξομοιωτή και βεβαιωθώ ότι ο διακομιστής μεσολάβησης εκτελείται στη θύρα 8080, μπορώ να επαληθεύσω ότι η κυκλοφορία HTTPS πλοηγείται τώρα μέσω του Burp Suite. Αυτό σημαίνει ότι μπορούμε τώρα να αναλύσουμε και να δοκιμάσουμε HTTPS και HTTP με το Burp ακριβώς όπως μια ιστοσελίδα.

htb33

Αν έχετε προβλήματα, ανατρέξτε στα βήματά σας και δοκιμάστε την επανεκκίνηση του εξομοιωτή και του Burp, αν χρειάζεται.

Το τελευταίο εργαλείο που θα χρειαστούμε για να ολοκληρώσουμε αυτόν τον οδηγό είναι η Frida.

Το Frida μπορείτε να το βρείτε εδώ.

Το Frida μπορεί να εγκατασταθεί με το pip (διαχειριστής πακέτων python)

pip install frida-tools

Τώρα που έχουμε τις εργαστηριακές μας ρυθμίσεις έτοιμες, μπορούμε να προχωρήσουμε στην επίλυση κάποιων προκλήσεων HTB για να βρεθούμε με το Android Pentesting.

htb34

Θα ασχοληθούμε με το Pinned και το Manager.

Πρώτα θα κατεβάσουμε το Pinned and Manager από το HTB Challenges. Αφού τα κατεβάσετε, μπορείτε να εξαγάγετε τα αρχεία στο χώρο εργασίας σας. Χρησιμοποίησα την επιφάνεια εργασίας μου για γρήγορη πρόσβαση.

htb35

Ο κωδικός πρόσβασης είναι hackthebox για να λάβετε τα αρχεία.

htb36

Τώρα έχουμε πρόσβαση στο αρχείο pinned.apk.

htb37

Μπορείτε να σύρετε και να αφήσετε το pinned.apk στη συσκευή εξομοιωτή.

htb38

Τώρα θα πρέπει να βλέπετε το Pinned στις εφαρμογές σας.

htb39

Ανοίγοντας την εφαρμογή θα πρέπει να εμφανιστεί αυτή η φόρμα σύνδεσης. Είμαστε τώρα έτοιμοι να δοκιμάσουμε αυτή την εφαρμογή Android.

htb40

Ο στόχος αυτού του εργαστηρίου είναι να εκτελέσετε μια παράκαμψη SSL Pinning Bypass.

Το SSL pinning αναφέρεται σε μια τεχνική ασφαλείας που χρησιμοποιείται για την αποτροπή επιθέσεων man-in-the-middle (MitM) κατά τη δημιουργία ασφαλών συνδέσεων μέσω HTTPS (SSL/TLS) μεταξύ μιας εφαρμογής για κινητά και ενός διακομιστή. Αυτό μας εμποδίζει να βλέπουμε τα αιτήματα/απαντήσεις HTTP στο Burp.

Θα χρησιμοποιήσουμε το Frida για να παρακάμψουμε το SSL Pinning για αυτή την εφαρμογή και να μας επιτρέψει να δούμε τα αιτήματα και τις απαντήσεις HTTP στη σουίτα Burp.

Το τελευταίο εργαλείο που θα χρειαστεί να κατεβάσουμε είναι ο διακομιστής Frida. Αυτό είναι που θα εγκαταστήσουμε στη συσκευή/εξομοιωτή Android για να επικοινωνεί ο πελάτης μας Frida μαζί του.

Μπορείτε να το κατεβάσετε εδώ.

Μπορούμε να εγκαταστήσουμε τον διακομιστή frida ξεκινώντας με τις ακόλουθες εντολές:

unxz frida-server-[version]-android-x86.xz (unzip file) adb push frida-server-16.1.4-android-x86 /data/local/tmp/frida-server (move frida server to /data/local/tmp/) adb shell “chmod 755 /data/local/tmp/frida-server” (change permissions) adb shell (connect to device in shell) /data/local/tmp/frida-server & (start frida server)

Με τον Frida Server να έχει ξεκινήσει στον εξομοιωτή/συσκευή μας, μπορούμε να εκτελέσουμε μια εντολή frida για να εντοπίσουμε τις διεργασίες που εκτελούνται.

frida-ps -Uai

Θα πρέπει να δούμε το Pinned apk μας να τρέχει. Αυτό σημαίνει ότι μπορούμε να αλληλεπιδράσουμε με αυτή την εφαρμογή.

htb41

Τώρα πρέπει να χρησιμοποιήσουμε ένα Frida script για να εκτελέσουμε την παράκαμψη του SSL Pinning.

Θα αξιοποιήσουμε αυτό το script.

htb42

Πρέπει να κάνουμε μια τελευταία προετοιμασία. Η ανάγνωση του σεναρίου αποκαλύπτει ότι χρειαζόμαστε ένα πιστοποιητικό για να το εκτελέσουμε. Η εκτέλεση χωρίς το πιστοποιητικό θα προκαλέσει αποτυχία του σεναρίου Frida και θα οδηγήσει σε αυτό το σφάλμα:

htb43

Μπορούμε να χρησιμοποιήσουμε το ίδιο cert που εξάγουμε από το Burp Suite, το οποίο επίσης αποθηκεύσαμε στον εξομοιωτή στο /sdcard. Εκτέλεση:

adb shell “cp /sdcard/burp.crt /data/local/tmp/cert-der.crt” adb shell “chmod 755 /data/local/tmp/cert-der.crt” (change permissions)

Αυτό θα πάρει το πιστοποιητικό burp που τοποθετήσαμε εκεί νωρίτερα και θα αντιγράψει το πιστοποιητικό σε αυτό που ψάχνει το script.

Τώρα για να εκτελέσετε το script παράκαμψης της Frida SSL Pinning Bypass. Για να χρησιμοποιήσουμε το script μπορούμε να εκτελέσουμε:

frida -U –codeshare pcipolloni/universal-android-ssl-pinning-bypass-with-frida -f com.example.pinned

Το script μας Frida θα πρέπει να ενεργοποιηθεί και να ανοίξει το Pinned στον εξομοιωτή μας.

htb44

Κάνοντας κλικ στο Login θα πρέπει τώρα να στείλετε ένα αίτημα μέσω του Burp. Αυτό σημαίνει ότι για αυτή την εφαρμογή έχουμε παρακάμψει το SSL Pinning και μπορούμε να αναλύσουμε τα αιτήματα HTTP.

htb45

Εδώ στο Burp μπορούμε να δούμε το αίτημα POST και τη σημαία.

htb46

Το τελευταίο εργαστήριο θα είναι για το Manager. Σκοπός του εργαστηρίου είναι η ανάλυση των αιτήσεων HTTP και η εύρεση ενός προβλήματος στη λογική της εφαρμογής μέσω του Broken Access Control.

Στο Hack the Box μπορούμε να κατεβάσουμε το Manager.zip και να το αποσυμπιέσουμε με κωδικό hackthebox. Σημειώστε ότι αυτή η πρόκληση χρειάζεται έναν back end διακομιστή για να επικοινωνήσει. Βεβαιωθείτε ότι έχετε ενεργοποιήσει την περίπτωση και λάβετε τη δημόσια διεύθυνση IP και τη θύρα.

thb47

Με το αρχείο Manager.apk μπορούμε να το σύρουμε στον εξομοιωτή Android για να το εγκαταστήσουμε.

htb48

Μπορούμε τώρα να δούμε τον Manager στον εξομοιωτή.

htb49

Ανοίγοντας την εφαρμογή εμφανίζονται είσοδοι για τη διεύθυνση IP και τη θύρα από το HTB.

htb50

Εισάγοντας τη διεύθυνση IP και τη θύρα από το HTB και κάνοντας κλικ στο connect θα εμφανιστεί μια φόρμα σύνδεσης.

htb51

Η προσπάθεια σύνδεσης ως test:test εμφανίζει το μήνυμα “User Not Found”.

Επιστρέφοντας στο Burp μπορούμε να δούμε το αίτημα POST.

htb52

Ας προσπαθήσουμε να καταχωρήσουμε έναν χρήστη για την εφαρμογή. Θα χρησιμοποιήσω το test:test.

htb53

Με τον δοκιμαστικό χρήστη που δημιουργήθηκε, μπορούμε να δοκιμάσουμε αυτές τις αιτήσεις για να δούμε αν θα βρούμε τυχόν προβλήματα.

htb54

Ας αναλύσουμε το αίτημα στο Repeater.

htb55

Μπορούμε να ενημερώσουμε με επιτυχία τον κωδικό πρόσβασής μας. Τι θα γινόταν αν μπορούσαμε να ενημερώσουμε έναν άλλο χρήστη;

htb56

Μπορούμε να ενημερώσουμε με επιτυχία τον κωδικό πρόσβασης του διαχειριστή λόγω παραβίασης της εποπτείας του ελέγχου πρόσβασης.

htb57

Τώρα μπορούμε να συνδεθούμε ως διαχειριστής με τον κωδικό πρόσβασης test και να ανακτήσουμε το flag.

htb58

 

Αυτό ολοκληρώνει αυτόν τον εισαγωγικό οδηγό για το Android Pentesting.

 

 

 

iGuRu.gr The Best Technology Site in Greeceggns

Get the best viral stories straight into your inbox!















Written by Anastasis Vasileiadis

Οι μεταφράσεις είναι σαν τις γυναίκες. Όταν είναι ωραίες δεν είναι πιστές και όταν είναι πιστές δεν είναι ωραίες.

Αφήστε μια απάντηση

Η ηλ. διεύθυνση σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *

Το μήνυμα σας δεν θα δημοσιευτεί εάν:
1. Περιέχει υβριστικά, συκοφαντικά, ρατσιστικά, προσβλητικά ή ανάρμοστα σχόλια.
2. Προκαλεί βλάβη σε ανηλίκους.
3. Παρενοχλεί την ιδιωτική ζωή και τα ατομικά και κοινωνικά δικαιώματα άλλων χρηστών.
4. Διαφημίζει προϊόντα ή υπηρεσίες ή διαδικτυακούς τόπους .
5. Περιέχει προσωπικές πληροφορίες (διεύθυνση, τηλέφωνο κλπ).