轻松看懂的加解密系列(5)番外篇III:如何优雅地获取到你同事的电脑登录密码

本文主要是介绍轻松看懂的加解密系列(5)番外篇III:如何优雅地获取到你同事的电脑登录密码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        这篇文章可能是本系列最实用的一篇了,希望读者学习了之后不是立刻去非法获取你同事的电脑登录密码,而是能够增强自我安全意识,在日常工作和学习中防患于未然。毕竟常言说得好——“人在江湖飘,哪有不挨刀”!

        本文的主角——【mimiktaz】是一款知名的安全工具,它是一个密码和凭证获取工具,专注于 Windows 操作系统。它的开发者是法国安全研究人员Benjamin Delpy,也被称为gentilkiwi。Mimikatz 的主要用途是在渗透测试和安全评估中测试 Windows 系统的安全性,尤其是对于凭证管理和密码保护方面的漏洞和弱点。但由于其名气太大,以至于绝大多数杀毒软件和 Windows 系统内置的安全程序,只要是发现了它的踪迹,基本上会在第一时间把它隔离和清除。所以能不留痕迹地把它在目标机器上下载并且运行起来首先就是一件比较棘手的事情。

        所以不怀好意者在实施窃取操作的时候,大多时候并不会费尽周折地将 mimiktaz 工具下载到目标机器本地,而一般都会选用类似猴子把食物囫囵吞枣塞入嗉囊的行为,即把需要窃取的数据先悄悄地整体打包下来,然后想办法隐蔽地传输出去,最后再换个地方安安静静地分析其内容。假设你的电脑出了问题,而你又是个电脑小白,窃取者要想优雅地获取你登录密码,针对你的 Windows 机器,只需要做到以下三个步骤,就可以将包含登录密码的数据整体打包后发送出去。记住,当你下次把系统出了问题的 Windows 机器交给同事摆弄的时候,要千万提防以下这些异常行为。

第一步:

        由于微软早在2014年就发布过针对内存保存明文登录密码的修复【Microsoft Update Catalog】,所以在实施窃取前,需要手动在目标机器的【图-1】注册表路径下创建【UseLogonCredential】,并设置为1,或者通过命令行运行以下命令,来还原 Windows 的这项修复。但是注册表设置需要重启机器或者用户重新登录才能起效,所以当别人操作过你的机器后要求你重启或者重新登录的时候,一定要多留一个心眼,最好了解对方有没有修改了你的某些系统设置。

reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f 
#需要重启或用户重新登录后可以成功抓取
图-1

         不过针对普通人来说,别人在修理其电脑问题的时候,要求重启下机器基本是无法抗拒的要求。如果你连重启电脑表示都不放心的话,别人可能直接就走开了。哎!真是难以启齿来拒绝啊~~

第二步:

        重启电脑之后,窃取者接下来就是获取【lsass】进程的内存【Dump】文件了。这是因为 lsass.exe(Local Security Authority Subsystem Service)是 Windows 操作系统的一个重要进程,它具有多项关键功能,其中最重要的就是负责处理用户登录和身份验证请求。当用户尝试登录到计算机时,lsass.exe 负责验证其凭据。所以当第一步的注册表项被打开后,lsass 就会在内存中保存你刚才登录时输入的明文密码,而这正是窃取者的首要目标。

        此时窃取者一般会采用两种方式来获取 lsass Dump 文件,最简单的方法莫过于直接从任务管理器里创建 Dump 文件,如【图-2】,但这过于明目张胆,很容易被发现。比较隐蔽一点的方式是装作在命令行里敲命令的方式,顺便利用命令行运行 Sysinternals procdump 软件来获取 lsass.exe 进程的 Dump 文件,如【图-3】。前提是还得在当前目标机器里下载一份 procdump 的拷贝,的确比较麻烦。

图-2
图-3

        不过针对普通人来说,别人在修复你的系统问题的时候,特别是系统死机、软件崩溃、或者弹出异常窗口这类问题,对方要求抓取一份 Dump 日志加以分析也是天经地义的事情。 哎!真是防不胜防啊~~

第三步:

        其实在第二步完成之后,你的明文密码所在的内存文件就已经被拷贝出来了,窃取者接下来要做的就是采用一种“光明正大”的策略把这份拷贝从目标机器上发送出去。常用的方法包括但不限于以下这些:

  • 即时通讯应用程序,比如微信,QQ等;
  • FTP服务器或局域网共享服务器;
  • 移动存储设备,比如U盘;
  • 云存储服务;

        所以当对方宣称需要把相关的日志文件发送出去供细细研究的时候,往往是你最后的机会了。哎!人家帮忙捣鼓半天,好不容易发现点线索,又是不知道该怎么拒绝啊~~

综上所述,普通小白要想防范窃取者,可以采用以下防备策略:

  • 按照组织要求安装杀毒软件、应用软件更新和系统更新,并且保证都是最新的;
  • 将 Windows 内置的所有安全选项都设置在最严格的级别;
  • 不将电脑交由不信任的人来操作;
  • 当授信方操作电脑时切忌不管不问,任由对方摆弄,最好一直在身边寸步不离,紧盯屏幕,并且装作自己挺懂的样子;
  • 一旦发生需要下载安装第三方软件、修改系统配置、关闭防火墙和杀软、添加白名单、重启电脑和传输日志等操作的时候,要求对方讲清楚为什么是必须的。如果自己不懂,可以请授信的其他相关IT人员参与讨论;
  • 不要启用系统内置的管理员账号;
  • 定期更新电脑系统的密码,特别是刚刚被其他人操作过以后(这可能是最简单而行之有效的策略)!!!

利用mimikatz解析出个人隐私数据:

        假设以上三步骤已经被完成,接下来的内容就是讲解如何从刚才窃取到的 lsass Dump 文件里解析出电脑登录密码了。小白也可以围观,看看你电脑里的隐私是如何被一步步窃取出来的,从而加强个人的安全防范意识。

        首先需要提醒一下窃取者,尽量在实施窃取操作后,清除留下的痕迹。所以以上三步的操作最好都尽量还原,包括清除注册表内容、删除下载的文件拷贝和清除传输记录等等。

第一步:下载 mimikatz

发布地址:GitHub/mimikatz/releases

        一般来说,浏览器会内置屏蔽 mimikatz 的下载路径,如【图-4】,需要手动继续,直到显示下载内容,如【图-5】。

图-4
图-5

        作为黑客,如果你自己的 Windows 安全实时保护没有关闭,或者杀毒软件都在正常工作。那么大概率 mimikatz 的压缩包一旦下载后就会立刻被隔离。这时你要么关闭保护和杀软,如【图-6】;要么把 mimikatz 加到白名单里,如【图-7】;要么就手动从隔离区里把 mimikatz 所有被禁文件给还原回来,如【图-8】。

图-6
图-7
图-8

第二步:使用 mimikatz 解析内存 Dump 文件 

        将 mimikatz 顺利地下载到本地后,就可以通过以下三条命令解析出目标机器的登录密码了。如【图-9】所示,目标机器的 Administrator 账号密码为“12345678”,如【图-9】。

mimikatz # privilege::debugmimikatz # sekurlsa::minidump C:\Users\test\Downloads\lsass.dmpmimikatz # sekurlsa::logonpasswords
图-9

        mimikatz # sekurlsa::logonpasswords 命令输出的内容远不止目标电脑登录密码,还包括存储在控制面板【Credential Manager】里的所有密码。如【图-10】,其隐私泄漏的惨烈程度简直不忍直视,估计目标电脑主人都不一定还记得这么多密码。

图-10

第三步:通过登录目标电脑后获取更多密码

        在获得了目标电脑登录密码之后,如果有机会再次登录目标电脑,那对方的各种隐私将对你完全洞开。比如你可以轻易获得对方存储在Chrome浏览器里的各种网站的登录密码,如【图-11】。此处不能再展开说了~~

图-11

第四步:通过远程访问获取对方电脑的文件

        即使暂时没有机会通过窃取到的登录密码再次登录目标电脑,还可以通过著名的【sekurlsa::pth】哈希传递攻击PTH。

        当我们获得了目标电脑账号的 NTLM 哈希值,如【图-9】中 NTLM,我们可以使用 mimikatz 对其进行哈希传递攻击。执行完命令后,会弹出cmd窗口。

        以【图-12】为例,PTH 命令包含三个参数:目标机器登录账号、目标机器 IP地址以及目标机器账号的 NTLM 哈希值。命令执行成功后会再次弹出一个本地命令行窗口,其进程号为【3616】。但此命令行可以访问目标机器上的登录账号下的文件,甚者可以访问其他更低权限账号的文件。对比【图-13】中的文件内容,可以确认远程打开的文件的确是相同的文件。

图-12
图-13 在目标机器上直接打开这两个文件的结果

        综上所述,普通小白要想防范窃取者,还需要采用以下防备策略:

  • 尽量不让浏览器或者其他应用软件记住你的网站密码;
  • 尽量选择需要二次验证的登录方式,比如需要手机短信验证码登录;
  • 尽量不要通过 Windows Native 登录方式,并选择记住密码,因为这样会导致存储在控制面板【Credential Manager】;

        最后笔者忍不住还要再次强调一下最简单有效的防范手段 —— 定期更新电脑系统的密码,特别是刚刚被其他人操作过以后!!!如【图-14】所示,你只要赶在攻击者利用获取到的账号 NTLM 哈希值发起 PTH 攻击之前改了你的系统登录密码并重启机器,攻击者就是有天大的本事也暂时无计可施了。

图-14

这篇关于轻松看懂的加解密系列(5)番外篇III:如何优雅地获取到你同事的电脑登录密码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/815900

相关文章

Java实现优雅日期处理的方案详解

《Java实现优雅日期处理的方案详解》在我们的日常工作中,需要经常处理各种格式,各种类似的的日期或者时间,下面我们就来看看如何使用java处理这样的日期问题吧,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言一、日期的坑1.1 日期格式化陷阱1.2 时区转换二、优雅方案的进阶之路2.1 线程安全重构2

Linux下如何使用C++获取硬件信息

《Linux下如何使用C++获取硬件信息》这篇文章主要为大家详细介绍了如何使用C++实现获取CPU,主板,磁盘,BIOS信息等硬件信息,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录方法获取CPU信息:读取"/proc/cpuinfo"文件获取磁盘信息:读取"/proc/diskstats"文

使用Python实现一个优雅的异步定时器

《使用Python实现一个优雅的异步定时器》在Python中实现定时器功能是一个常见需求,尤其是在需要周期性执行任务的场景下,本文给大家介绍了基于asyncio和threading模块,可扩展的异步定... 目录需求背景代码1. 单例事件循环的实现2. 事件循环的运行与关闭3. 定时器核心逻辑4. 启动与停

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

浅析Java中如何优雅地处理null值

《浅析Java中如何优雅地处理null值》这篇文章主要为大家详细介绍了如何结合Lambda表达式和Optional,让Java更优雅地处理null值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录场景 1:不为 null 则执行场景 2:不为 null 则返回,为 null 则返回特定值或抛出异常场景

电脑死机无反应怎么强制重启? 一文读懂方法及注意事项

《电脑死机无反应怎么强制重启?一文读懂方法及注意事项》在日常使用电脑的过程中,我们难免会遇到电脑无法正常启动的情况,本文将详细介绍几种常见的电脑强制开机方法,并探讨在强制开机后应注意的事项,以及如何... 在日常生活和工作中,我们经常会遇到电脑突然无反应的情况,这时候强制重启就成了解决问题的“救命稻草”。那

kali linux 无法登录root的问题及解决方法

《kalilinux无法登录root的问题及解决方法》:本文主要介绍kalilinux无法登录root的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录kali linux 无法登录root1、问题描述1.1、本地登录root1.2、ssh远程登录root2、

SpringMVC获取请求参数的方法

《SpringMVC获取请求参数的方法》:本文主要介绍SpringMVC获取请求参数的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下... 目录1、通过ServletAPI获取2、通过控制器方法的形参获取请求参数3、@RequestParam4、@

Python获取C++中返回的char*字段的两种思路

《Python获取C++中返回的char*字段的两种思路》有时候需要获取C++函数中返回来的不定长的char*字符串,本文小编为大家找到了两种解决问题的思路,感兴趣的小伙伴可以跟随小编一起学习一下... 有时候需要获取C++函数中返回来的不定长的char*字符串,目前我找到两种解决问题的思路,具体实现如下:

Python从零打造高安全密码管理器

《Python从零打造高安全密码管理器》在数字化时代,每人平均需要管理近百个账号密码,本文将带大家深入剖析一个基于Python的高安全性密码管理器实现方案,感兴趣的小伙伴可以参考一下... 目录一、前言:为什么我们需要专属密码管理器二、系统架构设计2.1 安全加密体系2.2 密码强度策略三、核心功能实现详解