KeeFarce工具抓取Keepass密码攻击复现及其行为监测

T1555 凭据管理

        攻击者可能会搜索常见的密码存储位置以获取用户凭据。密码存储在系统上的多个位置,具体取决于持有凭据的操作系统或应用程序。还有一些特定的应用程序可以存储密码,以方便用户管理和维护。获得凭据后,它们可用于执行横向移动和访问受限信息。这里我简单整理了Windows系统中平台下五种流行密码管理器的底层工作原理并进行了安全性的研究,如Windows凭证管理工具cmdkey、KeePass、1Password 7、Dashlane、和LastPass等等。其次,浏览器对于操作系统而言也可以算得上是一种第三方工具,其文件也有着具体的存储路径,接下来我们就这些凭据的存储位置以及利用方法进行简单额分析。

Windows常用密码存储位置

        Windows系统下的各种凭据都有其存储位置,常见的凭据包括浏览器密码、sam系统密码、服务器密码、远程密码、VPN密码等等。这些密码凭据再磁盘中往往以加密的形式保存在文件中,也有部分凭据保存在注册表内等等,而这些密码文件的存储位置也不尽相同,下面简单列出了常见凭据的存储路径。

浏览器

1. Ie浏览器

        Internet Explorer 4-6版本:

              HKEY_CURRENT_USER\Software\Microsoft\Protected Storage System Provider 

        Internet Explorer 7-8版本:

              HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IntelliForms\Storage2

         另外HTTP身份验证,密码都是存储在证书文件里:

              Documents and Settings\Application Data\Microsoft\Credentials

2. firefox

        该密码存储的文件名称:signons.txt,signons2.txt和signons3.txt,这些密码文件所在内的Firefox配置文件夹:

           [Windows Profile]\Application Data\Mozilla\Firefox\Profiles\[Profile Name]

       此外,key3.db在同一文件夹中,用于加密/解密。

3. google

        密码存储在[Windows Profile]\Local Settings\Application Data\Google\Chrome\User Data\Default\Web Data路径下。

4. Opera

        密码文件wand.dat位于:[Windows Profile]\Application Data\Opera\Opera\profile.

sam系统密码

        Windows系统密码保存在SAM文件中,这个文件保存在:

        C:/windows/System32/config

服务器密码

Outlook Express邮件服务器:

       HKEY_CURRENT_USER\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\[Profile Name]\9375CFF0413111d3B88A00104B2A6676\[Account Index]

       使用Outlook连接到Exchange服务器的帐户时,连同局域网的计算机登录密码密码将存储在证书文件里.

远程密码

       Windows Network Passwords:

        [Windows Profile]\Application Data\Microsoft\Credentials\[User SID]\Credentials

        [Windows Profile]\Local Settings\Application Data\Microsoft\Credentials\[UserS ID]\Credentials

拨号/VPN 密码

        存储在注册表中:

        HKEY_LOCAL_MACHINE\Security\Policy\Secrets

       其中包含下列字符串:RasDefaultCredentials和RasDialParams

常用第三方工具利用

        密码管理器允许存储和检索加密数据库中的敏感信息。攻击者可能会从第三方密码管理器获取用户凭据。密码管理器是旨在存储用户凭据的应用程序,通常在加密数据库中。这些存储密码的数据库可以作为文件存储在磁盘上。

Windows凭证管理工具cmdkey凭据窃取

        Cmdkey是一个内置的Windows工具,可以用来缓存在特定目标机器上使用的域用户凭证。其允许我们以普通域用户的身份来显示和创建凭证,并且它通常用于在远程系统上执行管理任务看上去。利用过程就是mimkatz解密其加密文件在上个文档中提到。

利用KeeFarce工具注入KeePass进程窃取密码

        KeePass Password Safe 是一个免费的开源密码管理器,主要用于 Windows。另外该工具也支持 macOS 和 Linux 操作系统。此外,还有几个用于Android、iOS、BlackBerry 的非官方端口,KeePass 将用户名、密码和其他字段(包括自由格式的注释和文件附件)存储在加密文件中。该文件可以通过主密码、密钥文件和当前 Windows 帐户详细信息的任意组合进行保护。默认情况下,KeePass 数据库存储在本地文件系统上。

        KeeFarce允许从内存中提取KeePass 2.x密码数据库信息。数据库内明文信息包括用户名,密码,备注和URL,其进程执行注入程序后会被转储到%AppData%/roaming目录下中的CSV文件中。

        该工具使用DLL注入在正在运行的KeePass进程的上下文中执行代码。通过首先注入适合体系结构的引导DLL来实现代码执行。这会在适当的应用程序域内生成一个运行的实例,随后执行KeeFarceDLL.dll。执行该dll文件时会使用CLRMD在KeePass进程堆中查找必要的对象,查找指向某些必需子对象的指针,并使用反射调用导出方法。该工具主要模块由一下几个文件组成,并且为了在目标主机上执行,这些文件需要位于同一个文件夹中:

        当keepass密码管理工具运行过程中创建一个keepass.exe进程,这时我们运行该工具的exe文件就可以实现dll文件的自动化注入,该工具首先会检索keepass进程的进程id,而后再向该进程id对应的进程内存中注入代码执行。

        注入成功之后,其获取到的明文凭据会以csv文件的形式储到%AppData%目录下的roaming文件夹,当我们再次进行代码注入执行时其抓取内容依然会保存在第一次创建的csv文件中。

检测方式

        该过程向进程中注入执行代码,会出现进程访问的行为,也会在keepass进程内存创建一个远程线程会被sysmon 8 号日志记录,其次其创建的csv文件过程也会被sysmon 11 号日志记录。同时我们通过sysmon 7 号日志记录监测注入过程中keepass.exe与keeFarce.exe进程的加载映像,发现KeePass密码管理器加载了KeeFarce工具注入的dll文件。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值