Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Crescendo — Crescendo est un visualisateur d'événements en temps réel basé sur Swift pour macOS. Il utilise l'Endpoint Security Framework d'Apple. | Kitploit
Outils/GitHubGitHub/suprhackersteve/crescendo
Outils DéfensifsRéponse aux Incidents
GitHubsuprhackersteve/crescendo

Crescendo

Crescendo est un visualisateur d'événements en temps réel basé sur Swift pour macOS. Il utilise l'Endpoint Security Framework d'Apple.

Voir le dépôt
1.1k69il y a 5 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Cover

Table des matières

  1. Pour commencer
  2. Prérequis
  3. Composants
  4. Tests et développement
  5. Signature
  6. Construction
  7. Problèmes/Bogues/Fonctionnalités
  8. Dépannage
  9. TODO

Crescendo Demo


Pour commencer

Apple a introduit de nouveaux mécanismes de sécurité que nous devons activer pour faire fonctionner Crescendo.

  1. Assurez-vous d'avoir déplacé l'application dans votre dossier /Applications, sinon l'extension système ne se chargera pas.

  2. Lors de la première exécution, il vous sera demandé d'approuver l'extension système après avoir cliqué sur le bouton « Démarrer ».

    NOTE : J'ai remarqué qu'il existe un problème où Préférences Système n'affiche pas de bouton d'autorisation. Je suppose qu'il s'agit d'un problème interne qu'Apple doit résoudre. Revenir aux Préférences Système et naviguer à nouveau semble résoudre le problème.

    Sysext Allow

  3. Vous devrez activer l'accès complet au disque pour l'extension système.

    FullDisk


Prérequis

Crescendo n'est compatible qu'avec macOS >=10.15.X et Xcode 10 au minimum.


Composants

Ce projet se compose de trois composants principaux :

  1. Une extension système (CrescendoExtension)
  2. Un framework wrapper autour du Endpoint Security Framework (Crescendo)
  3. Une application pour visualiser les événements dans une belle petite interface utilisateur (CrescendoApp)

Tests et développement

Il est fortement recommandé de tester ce code dans une machine virtuelle avec SIP désactivé, car ce projet nécessite l'entitlement endpoint-security, TCC et une signature appropriée lorsque SIP est activé.

  1. Démarrez en mode Recovery sur macOS
  2. Désactivez SIP et AMFI
root@kitploit:~
csrutil disable
nvram boot-args="amfi_get_out_of_my_way=0x1"
  1. Redémarrez
  2. Activez le mode développeur pour que nos extensions se rechargent à chaque appel de OSSystemExtensionManager.shared.submitRequest
root@kitploit:~
systemextensionsctl developer on

Signature

Si vous souhaitez signer votre propre application, il est fortement recommandé de lire la documentation d'Apple sur les exigences des extensions système et la notarisation.

La signature et les droits d'accès (entitlements) sont un exercice non trivial.


Construction

J'ai inclus mon fichier .xproj dans cette version pour vous aider à démarrer. À l'avenir, je passerai probablement au nouveau fichier xcconfig, car cette approche me semble bien plus raisonnable que de commiter des fichiers xproj. Si vous souhaitez simplement construire l'application d'exemple en ligne de commande, vous pouvez le faire avec Xcode.

Pour construire cette application et l'exécuter sur un système macOS de production, vous aurez besoin de l'entitlement endpoint-security et d'un certificat développeur d'Apple.

Le framework Crescendo peut facilement être intégré à n'importe quelle application Swift. Je pourrais passer à CocoaPods à l'avenir, mais je ne les connais pas encore bien.


Problèmes/Bogues/Fonctionnalités

N'hésitez pas à ouvrir un problème si vous souhaitez voir une fonctionnalité ajoutée ou si vous rencontrez un problème. Si vous souhaitez contribuer avec une pull request, assurez-vous d'exécuter swiftlint sur votre code avant de contribuer.

Je publierai des versions de l'application compilée et signée et je les inclurai dans l'onglet Releases selon les besoins.


Dépannage

  • Si vous utilisez un Mac de production, vous ne devez PAS désactiver SIP ou AMFI. Ces instructions sont destinées aux développeurs souhaitant apporter des modifications au code.

  • Avez-vous activé l'extension système en cliquant sur le bouton « Autoriser » dans Préférences Système -> Sécurité et confidentialité ? Sinon, vous ne verrez aucun événement.

  • Avez-vous activé l'accès complet au disque dans Préférences Système -> Sécurité et confidentialité -> Onglet Confidentialité ? Sinon, vous ne verrez aucun événement.

  • Si vous rencontrez des problèmes, ouvrez Console.app et recherchez crescendo ou <your_bundle_id>/com.suprhackersteve comme filtre, cela devrait vous aider à diagnostiquer les problèmes potentiels. C'est aussi une bonne idée de vérifier dans CrashReporter si l'extension a planté ou s'est terminée avec fatalError.

  • Si vous souhaitez forcer le déchargement de l'extension système, il y a un élément de menu nommé « Décharger l'extension système » qui la déchargera. Cette action peut entraîner des effets secondaires étranges, ne la faites que si vous savez ce que vous faites.

  • Si vous avez ajouté un processus à la liste noire et qu'il est toujours autorisé à s'exécuter, n'oubliez pas de vérifier le chemin complet réel. Utiliser simplement /Applications/Foo.app ne suffira pas à empêcher l'exécution. De plus, de nombreuses applications macOS sont lancées via xpcproxy.


TODO

  1. Tests unitaires (dois trouver un moyen raisonnable de les exécuter)
  2. Événements réseau (suivi dans ce problème)
  3. Meilleur support de filtrage et de recherche pour les données d'événements
  4. Choisir un système de packaging pour le framework (CocoaPods, Swift Package Manager, etc.)
  5. Essayer de distribuer l'extension système seule en utilisant le nouvel entitlement redistribuable ?
Télécharger l’outil