我试图弄清楚在用户登录浏览器/扩展程序后,密码管理器(如LastPass)是否将密码以纯文本(或然后可以用主密码解密的哈希值)存储在内存中。
我正在努力寻找关于这个主题的学术工作,但很难找到。有谁知道关于这个主题的任何学术工作?
另外,如何进行这项调查?我计划获取笔记本电脑的完整内存转储,还是仅获取浏览器和 LastPass 等进程的内存转储更好?
我试图弄清楚在用户登录浏览器/扩展程序后,密码管理器(如LastPass)是否将密码以纯文本(或然后可以用主密码解密的哈希值)存储在内存中。
我正在努力寻找关于这个主题的学术工作,但很难找到。有谁知道关于这个主题的任何学术工作?
另外,如何进行这项调查?我计划获取笔记本电脑的完整内存转储,还是仅获取浏览器和 LastPass 等进程的内存转储更好?
首先,我使用 google Academic 查找有关 LastPass、密码管理器和内存取证的论文。这是我发现的最后一个更有帮助的
Amari, K. (2009) 从易失性内存中恢复和分析数据的技术和工具。
在了解内存提取和分析后,我创建了一个具有 2 GB RAM 的 windows 7 虚拟机,安装了一些浏览器,在各种网站上创建了一些帐户,安装了 LastPass,重新启动机器并使用 DUMPIT(搜索 DUMP IT 内存)捕获了内存转储倾倒)。我使用 SIFT Workstation 分析了内存转储,在终端中我使用了命令
strings windows7.raw | grep “password” > output.txt
交换电子邮件地址的“密码”、假帐户的已知密码、网站名称等。我什么也没找到,所以内存是干净的。
然后我登录到 LastPass 并使用相同的工具进行了另一个内存转储。分析这个文件突出显示了一堆散列值,这证实了 LastPass 在其网站上所说的 - LastPass 将加密的散列值存储在内存中。
接下来,我决定登录网站和帐户,但并非所有网站和帐户都只是其中的一个随机数,并进行了另一个内存转储。使用与我之前发现解密密码、电子邮件地址和其他信息相同的方法,这意味着当您访问 LastPass 有密码的网站时,它会解密并存储在内存中供您的浏览器使用。我还应该声明,即使您不使用 LastPass 而是使用内置密码管理器的浏览器,您也会得到相同的结果。
所以你可能会说我首先需要知道密码,我没有简单地搜索“pass”或者在谷歌网站的情况下,内存转储中的“Passwd”给出了密码。
如果我再次这样做,我会执行上述所有相同的步骤,但是,我会注销 Windows 帐户并进入另一个帐户,以查看是否可以从该内存转储中获取密码,我怀疑您的意思是您可以登录公共计算机并从那里的内存转储中获取以前的用户密码。
我会说 LastPass 在您登录网站之前是安全的,任何人都不太可能解密散列值。最后,不要在公共计算机上使用 LastPass 或任何其他密码。
也许进行此类研究的一种简单方法是使用一些通常专门用于游戏作弊的工具,通过分析和直接编辑目标软件内存内容。在你最喜欢的搜索引擎上搜索“游戏记忆搜索作弊”之类的东西,你应该会找到其中的几个。
我所指的程序对目标应用程序虚拟内存进行快照,然后允许您:
下面的谷歌搜索产生了一些学术论文。
inurl:\.edu\/ filetype:pdf password manager
作为测试,您可以在内存映像上运行bulk_extractor以查找已知的用户名/密码组合。