macOS Keychain
WhiteIntel è un motore di ricerca alimentato dal dark web che offre funzionalità gratuite per verificare se un'azienda o i suoi clienti sono stati compromessi da malware ruba-informazioni.
Il loro obiettivo principale è combattere le violazioni degli account e gli attacchi ransomware derivanti da malware che ruba informazioni.
Puoi visitare il loro sito web e provare il loro motore gratuitamente su:
Principali Portachiavi
Il Portachiavi Utente (
~/Library/Keychains/login.keycahin-db
), che viene utilizzato per memorizzare credenziali specifiche dell'utente come password delle applicazioni, password Internet, certificati generati dall'utente, password di rete e chiavi pubbliche/private generate dall'utente.Il Portachiavi di Sistema (
/Library/Keychains/System.keychain
), che memorizza credenziali a livello di sistema come password WiFi, certificati radice di sistema, chiavi private di sistema e password delle applicazioni di sistema.
Accesso al Portachiavi delle Password
Questi file, sebbene non abbiano protezione intrinseca e possano essere scaricati, sono crittografati e richiedono la password in chiaro dell'utente per essere decifrati. Uno strumento come Chainbreaker potrebbe essere utilizzato per la decrittazione.
Protezioni delle Voci del Portachiavi
ACLs
Ogni voce nel portachiavi è regolata da Liste di Controllo degli Accessi (ACL) che indicano chi può eseguire varie azioni sulla voce del portachiavi, tra cui:
ACLAuhtorizationExportClear: Consente al titolare di ottenere il testo in chiaro del segreto.
ACLAuhtorizationExportWrapped: Consente al titolare di ottenere il testo in chiaro criptato con un'altra password fornita.
ACLAuhtorizationAny: Consente al titolare di eseguire qualsiasi azione.
Le ACL sono ulteriormente accompagnate da un elenco di applicazioni attendibili che possono eseguire queste azioni senza richiesta. Questo potrebbe essere:
N
il
(nessuna autorizzazione richiesta, tutti sono attendibili)Un elenco vuoto (nessuno è attendibile)
Elenco di applicazioni specifiche.
Inoltre, la voce potrebbe contenere la chiave ACLAuthorizationPartitionID
, che viene utilizzata per identificare il teamid, apple, e cdhash.
Se il teamid è specificato, allora per accedere al valore della voce senza un prompt l'applicazione utilizzata deve avere lo stesso teamid.
Se l'apple è specificato, allora l'app deve essere firmata da Apple.
Se il cdhash è indicato, allora l'app deve avere il cdhash specifico.
Creazione di una Voce nel Portachiavi
Quando viene creata una nuova voce utilizzando Keychain Access.app
, si applicano le seguenti regole:
Tutte le app possono crittografare.
Nessuna app può esportare/decrittografare (senza richiedere all'utente).
Tutte le app possono vedere il controllo di integrità.
Nessuna app può modificare le ACL.
Il partitionID è impostato su
apple
.
Quando un'applicazione crea una voce nel portachiavi, le regole sono leggermente diverse:
Tutte le app possono crittografare.
Solo l'applicazione che crea (o qualsiasi altra app esplicitamente aggiunta) può esportare/decrittografare (senza richiedere all'utente).
Tutte le app possono vedere il controllo di integrità.
Nessuna app può modificare le ACL.
Il partitionID è impostato su
teamid:[teamID qui]
.
Accesso al Portachiavi
security
security
API
L'enumerazione e il dumping del portachiavi dei segreti che non genereranno un prompt possono essere fatti con lo strumento LockSmith
Elenca e ottieni informazioni su ciascuna voce del portachiavi:
L'API
SecItemCopyMatching
fornisce informazioni su ciascuna voce e ci sono alcuni attributi che è possibile impostare quando la si utilizza:kSecReturnData
: Se è vero, cercherà di decifrare i dati (impostare su falso per evitare potenziali popup)kSecReturnRef
: Ottieni anche il riferimento all'elemento del portachiavi (impostare su vero nel caso in cui successivamente si possa decifrare senza popup)kSecReturnAttributes
: Ottieni metadati sulle vocikSecMatchLimit
: Quanti risultati restituirekSecClass
: Che tipo di voce del portachiavi
Ottieni ACL di ciascuna voce:
Con l'API
SecAccessCopyACLList
è possibile ottenere l'ACL per l'elemento del portachiavi, e restituirà un elenco di ACL (comeACLAuhtorizationExportClear
e gli altri precedentemente menzionati) dove ciascun elenco ha:Descrizione
Elenco delle applicazioni attendibili. Questo potrebbe essere:
Un'applicazione: /Applications/Slack.app
Un binario: /usr/libexec/airportd
Un gruppo: group://AirPort
Esporta i dati:
L'API
SecKeychainItemCopyContent
ottiene il testo in chiaroL'API
SecItemExport
esporta le chiavi e i certificati ma potrebbe essere necessario impostare le password per esportare il contenuto criptato
E questi sono i requisiti per poter esportare un segreto senza un prompt:
Se sono elencate 1 o più app attendibili:
È necessario avere le appropriate autorizzazioni (
Nil
, o far parte dell'elenco consentito di app nell'autorizzazione per accedere alle informazioni segrete)È necessario che la firma del codice corrisponda a PartitionID
È necessario che la firma del codice corrisponda a quella di un'app attendibile (o far parte del giusto KeychainAccessGroup)
Se tutte le applicazioni sono attendibili:
È necessario avere le appropriate autorizzazioni
È necessario che la firma del codice corrisponda a PartitionID
Se non c'è PartitionID, allora questo non è necessario
Pertanto, se è elencata 1 applicazione, è necessario iniettare codice in quell'applicazione.
Se apple è indicato in partitionID, potresti accedervi con osascript
quindi a tutto ciò che si fida di tutte le applicazioni con apple nel partitionID. Python
potrebbe anche essere utilizzato per questo.
Due attributi aggiuntivi
Invisibile: È un flag booleano per nascondere la voce dall'app UI del portachiavi
Generale: Serve per memorizzare metadati (quindi NON È CIFRATO)
Microsoft stava memorizzando in testo normale tutti i token di aggiornamento per accedere ai punti di accesso sensibili.
Riferimenti
WhiteIntel è un motore di ricerca alimentato dal dark web che offre funzionalità gratuite per verificare se un'azienda o i suoi clienti sono stati compromessi da malware ruba-informazioni.
Il loro obiettivo principale è contrastare le violazioni degli account e gli attacchi ransomware derivanti da malware che rubano informazioni.
Puoi visitare il loro sito web e provare il loro motore gratuitamente su:
Last updated