跳转到帖子

游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

TheHackerWorld官方

渗透基金会3354域中用户密码策略的访问

精选回复

发布于

0x00 前言

在域渗透中,我们需要在密码爆炸前获取域内用户的密码策略,避免密码爆炸时锁定用户。

从防御的角度,需要对出口订单爆炸的攻击行为进行认定,并采取防御措施。

本文将介绍获取域内用户密码策略的常用方法,分享利用ideas检测域内用户密码爆炸的方法。

0x01 简介

本文将介绍以下内容:

一种修改域用户密码策略的方法

一种获取域外域用户密码策略的方法

在域中获取域用户密码策略的方法

检测方法

0x02 基础知识

我们需要注意以下密码策略:

最长密码期限,即密码过期的时间。默认值为42。

最小密码长度,即密码的最小长度。默认值为7。

帐户锁定持续时间,这意味着锁定的帐户在自动解锁之前将保持锁定的分钟数。默认值为30。

帐户注销阈值,指示导致用户帐户被锁定的失败登录尝试的次数。默认值为5。

帐户锁定计数器after表示在登录尝试失败后,在登录尝试失败计数器重置为0次错误登录尝试之前必须经过的分钟数。默认值为30。

0x03 修改域用户口令策略的方法

该域的密码策略默认保存在该域的默认域策略中,guid为{ 31 b2f 340-016d-11 D2-945 f-00 c 04 FB 984 f 9 }

在域控制器上打开组策略管理,找到当前域,选择默认域策略,右键选择编辑,如下图所示。

2-1.png

打开计算机配置-策略-windows设置-安全设置-帐户策略,如下图所示

2-2.png

根据提示修改相应的选项。

修改后,您可以选择立即更新组策略以使其立即生效。命令行输入:

gpupdate

0x04 域外获取域用户口令策略的方法

1.Kali系统通过ldapsearch获取域用户口令策略

测试环境如下

2-1.png

前提:我们可以访问域控制器(DC)的389端口,并且我们已经获得了域中至少一个普通用户的密码。

在这个测试环境中,我们获得了域中普通用户testa的密码DomainUser123!

连接命令如下:

LDAP search-x-H LDAP://192 . 168 . 1 . 1:389-D ' CN=testa,CN=Users,DC=test,DC=com' -w DomainUser123!-b 'DC=test,DC=com ' | grep replUpToDateVector-A 13

参数描述:

-x表示简单身份验证

-H服务器地址

-D用于绑定服务器的DN。

-w绑定DN的密码

-b指定要查询的根节点。

使用grep命令过滤输出结果,grep replUpToDateVector -A 13是只显示与密码策略相关的条目。

输出结果如下

3-1.png

包括以下所需信息:

maxPwdAge: -3628800000000

最小长度:10

锁定持续时间:-18600000000

锁定阈值:15

锁定观察窗口:-18600000000

换算成秒,除以1000000。

例如:

(1)maxPwdAge: -3628800000000

36288000000000/10000000=3628800s

3628800/86400=42d

maxPwdAge=42d

(2)锁定持续时间:-18600000000

-18600000000/10000000=1860s

1860/60=31米

锁定持续时间=31m

2.Windows系统通过PowerShell获取域用户口令策略

测试环境如下

3-1.png

前提:我们可以访问域控制器(DC)的389端口,并且我们已经获得了域中至少一个普通用户的密码。

在这个测试环境中,我们获得了域中普通用户testa的密码DomainUser123!

这里需要Active Directory,这是一个powershell模块。

不需要专门安装powershell模块Active Directory,调用Microsoft.ActiveDirectory.Management.dll就可以解决。

微软。ActiveDirectory.Management.dll是在安装powershell模块Active Directory后生成的,我已经解压并上传到github:

https://github.com/3gstudent/test/blob/master/Microsoft.ActiveDirectory.Management.dll

此外,您需要使用凭证信息,因此完整的Powershell命令如下所示:

$uname='testa '

$ pwd=convert to-secure string ' domain user 123!'-AsPlainTextForce

$ cred=新对象系统。management . automation . PS credential($ uname,$pwd)

导入模块。\微软。ActiveDirectory.Management.dll

get-ADDefaultDomainPasswordPolicy-Server 192 . 168 . 1 . 1-Credential $ cred-Verbose

输出结果如下

3-2.png

3.Windows系统通过域共享文件获取域用户口令策略

测试环境同上

该域的密码策略保存在域内的默认域策略中,guid为{ 31 b2f 340-016d-11 D2-945 f-00 c 04 FB 984 f 9 }

您可以通过访问域中的共享文件夹\SYSVOL来查看它。

前提:需要域用户的凭证。

在这个测试环境中,我们获得了域中普通用户testa的密码DomainUser123!

一般位置是:\ \ sysvol \ \ policies \ { 31 b2f 340-016d-11 D2-945 f-00 c 04 FB 984 f 9 } \ machine \ Microsoft \ windows nt \ secedit \ gpttmpl . INF。

测试环境的位置是:\ \ 192 . 168 . 1 . 1 \ sysvol \ test.com \ policies \ { 31 b2f 340-016d-11 D2-945 f-00 c 04 FB 984 f 9 } \ machine \ Microsoft \ windows nt \ secedit \。

输出结果如下

3-3.png

0x05 域内获取域用户口令策略的方法

前提是你获得了域内某个主机的权限。

测试环境如下

4-1.png

1.通过PowerShell获取域用户口令策略

导入模块。\微软。ActiveDirectory.Management.dll

get-ADDefaultDomainPasswordPolicy

2.通过c++获取域用户口令策略

使用API NetUserModalsGet获取域用户的密码策略。

user _ modal _ info _ 0结构保存全局密码信息。

user _ modal _ info _ 3结构保存锁定信息。

参考资料:

https://docs . Microsoft . com/en-us/windows/win32/API/lmaccess/nf-lmaccess-netusermodalsget?重定向自=MSDN

根据参考资料中的编码,增加查询用户锁定信息的功能。代码已经上传到github,地址如下:

https://github . com/3g student/home-of-C-Language/blob/master/getdomainpasswordpolicy . CPP

该代码使用结构USER_MODALS_INFO_0和USER_MODALS_INFO_3来查询用户的密码策略。

输出结果如下

4-1.png

###3.通过域共享文件获取域用户密码策略

一般位置是:\ \ sysvol \ \ policies \ { 31 b2f 340-016d-11 D2-945 f-00 c 04 FB 984 f 9 } \ machine \ Microsoft \ windows nt \ secedit \ gpttmpl . INF。

测试环境的位置是:\ \ test.com \ sysvol \ test.com \ policies \ { 31 b2f 340-016d-11 D2-945 f-00 c 04 FB 984 f 9 } \ machine \ Microsoft \ windows nt \ secedit \ gpttmpl . INF

0x06 检测方法

在用户的属性中有两条有用的信息:

BadPwdCount,记录用户密码错误的次数。

Lastbadpasswordattempt,记录上次密码输入错误的登录时间。

在检测时,我们可以查询这两个属性来识别我们是否受到密码爆炸攻击。具体方法如下:

1.直接在域控制器上查询

Powershell代码如下:

get-ADUser-Filter *-Properties * |选择名称,lastbadpasswordattempt,badpwdcount|fl

输出结果如下

5-1.png

2.在域内普通用户登录的主机上

(1)使用powerview

Get-NetUser |选择名称,badpasswordtime,badpwdcount

输出结果如下

5-2.png

(2)使用c++

https://github . com/3g student/home-of-C-Language/blob/master/checkuserbadpwdpolicy . CPP

输出结果如下

5-3.png

3.在域外的kali系统上

(1)使用ldapsearch

LDAP search-x-H LDAP://192 . 168 . 1 . 1:389-D ' CN=testa,CN=Users,DC=test,DC=com' -w DomainUser123!-b ' DC=测试,DC=com '-b ' DC=测试,DC=com ' '((对象类=用户)(对象类别=人))' | grep-E ' cn:| badPwdCount | badPasswordTime '

输出结果如下

5-4.png

注:

如果密码输入正确,badPwdCount将被清除。

0x07 小结

列举了获取域内用户密码策略的常用方法,介绍了在各种环境下如何识别出口订单爆炸的行为。

留下回复

创建帐户或登录后发表意见

最近浏览 0

  • 没有会员查看此页面。