Thick Client Methodology
Architecture
- 2 Tiers :
1) TCP View :
TrÚs utile pour déterminer l'adresse de destination du client lourd.
2) Wireshark :
Allumer Wireshark et essayé de vous connecter au client lourd, de tester des fonctionnalités, etc... Filtrer le host avec l'IP trouvée dans TCPView.
La connexion à la base de données est-elle chiffrée?
Les données sensibles, telles que les numéros de sécurité sociale ou les informations médicales, username ou mot de passe, sont-elles transmises en clair ? Si c'est lisible ça signifie que la connexion à la base de données n'est pas cryptée et que toute personne ayant accÚs à ce réseau peut lire ces infos.
3) Echo Mirage :
Echo Mirage permet d'intercepter et de modifier le trafic TCP. C'est un espece de BurpSuite pour les clients lourds. Utile pour comprendre comment marche le client lourd. Essez de modifier des paramÚtres pour voir comment le client réagis.
- 3 Tiers :
Si un client lourd est construit sur une architecture Ă trois niveaux, la partie rĂ©seau du test sera essentiellement la mĂȘme que le test d'une application Web.
Beaucoup plus complexe pour proxyfier le tout :
Proxy-aware : Un client lourd qui a des options ou des paramĂštres pour se proxyfier dans l'application elle-mĂȘme.
Non-proxy-aware : Un client lourd qui n'a pas d'options de paramĂštres dans l'application elle-mĂȘme et nĂ©cessite une approche de test diffĂ©rente.
Burp Proxy: invisible proxying
BurpSuite :
L'astuce est de proxyfier tout le systÚme Windows en allant dans les réglages de son PC et en cherchant "proxy".
Informations Gathering
1) Strings :
Balancez un petit coup de strings sur votre binaire en .exe pour voir si vous trouvez des creds en clairs ou des choses croustillantes.
2) CFF explorer :
Permet de rapidement connaitre la technologie utilisée et donc d'adapter son analyse (.NET différent d'autre assembly par exemple.)
Attaque coté client
SQL Injection (probable)
XXE (probable)
Error Handling avec fuite d'infos (probable)
XSS (Peu probable)
DLL Hijacking
1) ProcMon (Process Monitor) :
Ouvrez Procmon et appliquez ces rĂšgles :
Process Name is "Nom_client_lourd.exe"
Result is "Name not found"
Path end with ".dll"
Vous aurez quelque chose qui ressemble à ça :
Remplacer la DLL :
Il faudra maintenant trouver un chemin sur lequel vous avez les droits d'Ă©criture ( Genre "/AppData" ou "/User/"). Les chemins du type "/System32" ou "/Windows" ne sont pas bons (il faudrais ĂȘtre admin sur la machine pour modifier des fichiers dedans)
Téléchargez cette DLL non vulnérable :
Remplacer votre DLL manquante par votre DLL en la déplaçant dans le dossier dans lequel vous avez des droits d'écritures et modifiez son nom par le nom de la DLL manquante.
Rallumez votre client lourd. Si "hello world" pop up alors vous avez une DLL Injection
Interesting files
1) Config files :
Cherchez dans le meme dossier que votre client lourd un fichier du type : Client_Lourd.exe.config. Ce fichier peut contenir beaucoup d'informations.
2) Les logs :
Trouvez les logs de votre client lourd et examinez les.
Analyse du binaire
1) GetPE-Security:
Utilisez ce script Github pour allez plus vite, il vérifiera si l'ASLR est en place ou encore si le strongNaming est activé.
2) DĂ©compiler le binaire :
J'utilise dnSpy pour dĂ©compiler le binaire et chercher des requĂȘtes SQL vulnĂ©rables ou des mot de passe Ă©crit en clair.
Analyse de la mémoire
1) Gestionnaire de taches :
Ouvrez le gestionnaire de taches, ouvrez la fenĂȘtre en grand, cliquez droit sur votre Client Lourd et crĂ©ez un fichier de vidage.
2) HxD :
Importez votre fichier de vidage dans HxD et fouillez pour des mots de passes, requĂȘtes spĂ©ciales, ou username. Depuis HxD vous pouvez modifier des datas (genre augmenter un compte de 10k a 200k). Ecrasez la mĂ©moire pour valider. Si cela marche alors vulnĂ©rable.
Les vulnérabilités critiques les plus répandues :
Credentials en clairs
Clefs d'api en clairs
Sel de mdp en clairs
Pas de chiffrement dans la transmission
Injection SQL
Bypass d'autorisation
XXE
Manipulation de requĂȘtes SQL
Changement des méthodes de chiffrements
Last updated