轻松看懂的加解密系列(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

相关文章

Python轻松实现Word到Markdown的转换

《Python轻松实现Word到Markdown的转换》在文档管理、内容发布等场景中,将Word转换为Markdown格式是常见需求,本文将介绍如何使用FreeSpire.DocforPython实现... 目录一、工具简介二、核心转换实现1. 基础单文件转换2. 批量转换Word文件三、工具特性分析优点局

springboot的controller中如何获取applicatim.yml的配置值

《springboot的controller中如何获取applicatim.yml的配置值》本文介绍了在SpringBoot的Controller中获取application.yml配置值的四种方式,... 目录1. 使用@Value注解(最常用)application.yml 配置Controller 中

Spring Boot基于 JWT 优化 Spring Security 无状态登录实战指南

《SpringBoot基于JWT优化SpringSecurity无状态登录实战指南》本文介绍如何使用JWT优化SpringSecurity实现无状态登录,提高接口安全性,并通过实际操作步骤... 目录Spring Boot 实战:基于 JWT 优化 Spring Security 无状态登录一、先搞懂:为什

Java轻松实现在Excel中插入、提取或删除文本框

《Java轻松实现在Excel中插入、提取或删除文本框》在日常的Java开发中,我们经常需要与Excel文件打交道,当涉及到Excel中的文本框时,许多开发者可能会感到棘手,下面我们就来看看如何使用J... 目录Java操作Excel文本框的实战指南1. 插入Excel文本框2. 提取Excel文本框内容3

在DataGrip中操作MySQL完整流程步骤(从登录到数据查询)

《在DataGrip中操作MySQL完整流程步骤(从登录到数据查询)》DataGrip是JetBrains公司出品的一款现代化数据库管理工具,支持多种数据库系统,包括MySQL,:本文主要介绍在D... 目录前言一、登录 mysql 服务器1.1 打开 DataGrip 并添加数据源1.2 配置 MySQL

Springboot中JWT登录校验及其拦截器实现方法

《Springboot中JWT登录校验及其拦截器实现方法》:本文主要介绍Springboot中JWT登录校验及其拦截器实现方法的相关资料,包括引入Maven坐标、获取Token、JWT拦截器的实现... 目录前言一、JWT是什么?二、实现步骤1.引入Maven坐标2.获取Token3.JWT拦截器的实现4.

golang实现nacos获取配置和服务注册-支持集群详解

《golang实现nacos获取配置和服务注册-支持集群详解》文章介绍了如何在Go语言中使用Nacos获取配置和服务注册,支持集群初始化,客户端结构体中的IpAddresses可以配置多个地址,新客户... 目录golang nacos获取配置和服务注册-支持集群初始化客户端可选参数配置new一个客户端 支

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

Java发送SNMP至交换机获取交换机状态实现方式

《Java发送SNMP至交换机获取交换机状态实现方式》文章介绍使用SNMP4J库(2.7.0)通过RCF1213-MIB协议获取交换机单/多路状态,需开启SNMP支持,重点对比SNMPv1、v2c、v... 目录交换机协议SNMP库获取交换机单路状态获取交换机多路状态总结交换机协议这里使用的交换机协议为常

Java轻松实现PDF转换为PDF/A的示例代码

《Java轻松实现PDF转换为PDF/A的示例代码》本文将深入探讨Java环境下,如何利用专业工具将PDF转换为PDF/A格式,为数字文档的永续保存提供可靠方案,文中的示例代码讲解详细,感兴趣的小伙伴... 目录为什么需要将PDF转换为PDF/A使用Spire.PDF for Java进行转换前的准备通过