macOS Keychain
最后更新于
最后更新于
WhiteIntel 是一个由暗网支持的搜索引擎,提供免费功能,用于检查公司或其客户是否受到窃取恶意软件的侵害。
WhiteIntel的主要目标是打击由信息窃取恶意软件导致的账户劫持和勒索软件攻击。
您可以访问他们的网站并免费尝试他们的引擎:
用户钥匙串(~/Library/Keychains/login.keycahin-db
),用于存储诸如应用程序密码、互联网密码、用户生成的证书、网络密码和用户生成的公钥/私钥等特定于用户的凭据。
系统钥匙串(/Library/Keychains/System.keychain
),存储系统范围的凭据,如WiFi密码、系统根证书、系统私钥和系统应用程序密码。
这些文件虽然没有固有的保护措施,可以被下载,但是它们是加密的,需要用户的明文密码才能解密。可以使用类似Chainbreaker的工具进行解密。
钥匙串中的每个条目都受**访问控制列表(ACLs)**的管辖,ACLs规定了谁可以在钥匙串条目上执行各种操作,包括:
ACLAuhtorizationExportClear:允许持有者获取密钥的明文。
ACLAuhtorizationExportWrapped:允许持有者获取使用另一个提供的密码加密的明文。
ACLAuhtorizationAny:允许持有者执行任何操作。
ACLs还伴随着一个可信应用程序列表,这些应用程序可以在不提示的情况下执行这些操作。这可能是:
Nil
(无需授权,每个人都受信任)
一个空列表(没有人受信任)
特定应用程序的列表。
此外,条目可能包含**ACLAuthorizationPartitionID
密钥,用于识别teamid、apple和cdhash**。
如果指定了teamid,则为了无需提示地访问条目值,使用的应用程序必须具有相同的teamid。
如果指定了apple,则应用程序需要由Apple签名。
如果指定了cdhash,则应用程序必须具有特定的cdhash。
当使用**Keychain Access.app
创建新的条目**时,适用以下规则:
所有应用程序都可以加密。
没有应用程序可以导出/解密(无需提示用户)。
所有应用程序都可以查看完整性检查。
没有应用程序可以更改ACLs。
partitionID设置为**apple
**。
当应用程序在钥匙串中创建条目时,规则略有不同:
所有应用程序都可以加密。
只有创建应用程序(或明确添加的任何其他应用程序)可以导出/解密(无需提示用户)。
所有应用程序都可以查看完整性检查。
没有应用程序可以更改ACLs。
partitionID设置为**teamid:[teamID here]
**。
security
密钥链枚举和转储不会生成提示的机密可以使用工具LockSmith来完成
列出并获取每个密钥链条目的信息:
API SecItemCopyMatching
提供每个条目的信息,使用时可以设置一些属性:
kSecReturnData
:如果为true,将尝试解密数据(设置为false可避免潜在的弹出窗口)
kSecReturnRef
:还可以获取密钥链条目的引用(如果后来发现可以无需弹出窗口解密,则设置为true)
kSecReturnAttributes
:获取条目的元数据
kSecMatchLimit
:返回多少结果
kSecClass
:密钥链条目的类型
获取每个条目的ACL:
使用API SecAccessCopyACLList
可以获取密钥链条目的ACL,它将返回一个ACL列表(如ACLAuhtorizationExportClear
和之前提到的其他ACL),其中每个列表包括:
描述
受信任应用程序列表。这可以是:
一个应用程序:/Applications/Slack.app
一个二进制文件:/usr/libexec/airportd
一个组:group://AirPort
导出数据:
API SecKeychainItemCopyContent
获取明文
API SecItemExport
导出密钥和证书,但可能需要设置密码以加密导出内容
以下是无需提示即可导出机密的要求:
如果列出了1个或更多受信任的应用程序:
需要适当的授权(Nil
,或者是授权访问机密信息的应用程序允许列表的一部分)
需要代码签名匹配PartitionID
需要代码签名与一个受信任应用程序匹配(或者是正确的KeychainAccessGroup的成员)
如果所有应用程序都受信任:
需要适当的授权
需要代码签名匹配PartitionID
如果没有PartitionID,则不需要这个
因此,如果列出了1个应用程序,则需要在该应用程序中注入代码。
如果partitionID中指定了apple,则可以使用**osascript
访问它,因此任何信任partitionID中带有apple的所有应用程序的内容。也可以使用Python
**进行此操作。
Invisible:这是一个布尔标志,用于从UI密钥链应用程序中隐藏条目
General:用于存储元数据(因此未加密)
Microsoft将所有用于访问敏感端点的刷新令牌都以明文形式存储。
WhiteIntel是一个由暗网推动的搜索引擎,提供免费功能,用于检查公司或其客户是否已受到窃取恶意软件的侵害。
WhiteIntel的主要目标是打击由信息窃取恶意软件导致的账户劫持和勒索软件攻击。
您可以访问他们的网站并免费尝试他们的引擎: