
Petite boîte à outils pour extraire des informations et vider les chaînes sensibles des processus Windows.
Petite boîte à outils pour extraire des informations et vider des chaînes sensibles des processus Windows. Conçue pour accompagner FormThief.
Vide la mémoire du processus et recherche des chaînes lisibles. Seuls le PID, la chaîne recherchée et la plage sont fournis pour cette version. Lorsque la chaîne est trouvée, le paramètre de plage indique combien de caractères de chaque côté de la chaîne doivent être affichés, tant qu'ils sont en ASCII valide.
Compilation dans VS. Exemple ci-dessous vidant les informations utilisateur du processus Outlook :
PS C:\Users\capde> .\procsearch.exe 7592 "email" 500
[+] Search string "email" FOUND: (...) "age_group": "adult", "association_status": "{\"com.microsoft.Olk\":\"associated\"}"
,"authority": "https://login.microsoftonline.com/consumers", "birthday": "1969-3-1", "display_name": "John Doe",
"email": "[email protected]", "first_name": "John", "id": "3a25f54136ac887c", "last_name": "Doe", "location":
"UK", "login_name":"[email protected]","onprem_sid": "", "password_change_url": "", "phone_number": "" (...)
Ne fonctionne pas correctement avec Inline-Execute-PE. Je travaille à résoudre ce problème ainsi que la version BOF en C++ qui devrait permettre des plages de recherche plus grandes que la version actuelle en C.
Compiler et charger le .cna :
x86_64-w64-mingw32-gcc -c procsearch-BOF.c -o procsearch-BOF.o
La version BOF est sensible à la taille des buffers, donc l'option <range> n'est pas présente et la sortie est quelque peu limitée. N'hésitez pas à jouer avec les tailles de buffer, mais attention : vous pourriez obtenir des erreurs __chkstk ou le beacon pourrait se bloquer si elles sont trop grandes.
L'idéal était d'écrire ceci en C++, ce qui fonctionne localement avec bof-vs, mais l'exécution dans le beacon renvoie des erreurs de symboles inconnus ou des crashs. Je mettrai à jour dès que possible. Il y a probablement une meilleure façon d'implémenter la fonction de recherche/les buffers en C, mais cela fera l'affaire pour l'instant.
Je ne recommande pas de rechercher un seul caractère comme "." dans un très grand processus, car cela pourrait bloquer le beacon. La longueur minimale recommandée pour les chaînes de recherche est de 3 ou 4 caractères lors de l'utilisation du BOF. Vous pouvez vraiment augmenter la plage avec la version C++.
Exemple de vidage de données utilisateur factices du processus Outlook :
https://github.com/mlcsec/proctools/assets/47215311/dccd1223-774e-4dec-8353-91c057900a07
Utilitaire C# pour afficher toutes les informations de version du fichier pour le PID fourni. Compilation dans VS ou avec csc :

BOF en C qui reproduit une partie des fonctionnalités ci-dessus. Problèmes à résoudre pour vider les valeurs VerQueryValue(lpVersionInfo, "\\StringFileInfo\\040904b0\\....
Compiler et charger le .cna :
x86_64-w64-mingw32-gcc -c procinfo-BOF.c -o procinfo-BOF.o

Extrait les arguments de ligne de commande pour le processus spécifié. Compiler et charger le .cna :
x86_64-w64-mingw32-gcc -c procargs.c -o procargs-BOF.o

Termine un processus (ou utilisez simplement kill dans CS, je ne suis pas sûr d'avoir créé celui-ci) :
x86_64-w64-mingw32-gcc -c prockill-BOF.c -o prockill-BOF.o
