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)

  • 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é.

GitHub - NetSPI/PESecurity: PowerShell module to check if a Windows binary (EXE/DLL) has been compiled with ASLR, DEP, SafeSEH, StrongNaming, and Authenticode.

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 :

  1. Credentials en clairs

  2. Clefs d'api en clairs

  3. Sel de mdp en clairs

  4. Pas de chiffrement dans la transmission

  5. Injection SQL

  6. Bypass d'autorisation

  7. XXE

  8. Manipulation de requĂȘtes SQL

  9. Changement des méthodes de chiffrements

Last updated