您的位置:首页 > 其它

枚举NT系统用户帐号

2010-11-25 14:47 246 查看
枚举用户SID。

WMI方法

Set wmiColl = GetObject("WinMgmts:root/cimv2").ExecQuery("Select * FROM Win32_UserAccount")

For Each wmiObj In wmiColl

WScript.Echo wmiObj.sid

Next

在枚举NT系统用户帐号时,通常通过NULL Session,来进行。但是并不是说只要建立了

NULL Session就可以枚举帐号,如果作了一些安全设置就没那么容易了。(例如:在用

流光枚举的时候出现的ErrorCode: 5就是这样的)

但是我们可以通过SID来进行这个工作,我们知道,系统中每建立一个用户账号,总会给

其赋一个标识号,就好比Unix系统中,每个用户账号都有一个UID一样,在Windows NT/

2000系统里,用户的唯一标识号就是SID(安全标识号)。之后,该用户对系统资源进行

访问时,就是通过其SID进行权限检查的。

一个SID是由一长串数字组成的,其中包括两个部分,前一部分用来唯一标识一个域(如

果是独立的工作站,唯一标识的就是工作站主机),后一部分唯一标识域(或主机)中

的某个账号。

例如:

S-1-5-21-789336058-113007714-1060284298-500

对域在同一个域中SID的前面部分时相同的,不同的只是最后的部分。

系统内置的管理员账号SID的最后总是500、Guest的SID最后总是501。

用户帐号SID的最后是从1000开始的。

知道了这个规律,我们就可以通过得到Guest的SID,通过构造SID的最后部分(累加)来

枚举用户帐号。一个帐号即使被删除,他的SID依然存在。所以通过这种方法得到的用户

名有一些也许是已经被删除了的。

我写了一个小工具GetAccount,就是根据这个原理来的。

用法:

GetAccount //IP Type Count

Type:

0:系统内置的帐号

1:用户增加的帐号

Count: 枚举的数目(累加的数目)

例如:

C:/>GetAccount.exe //211.154.211.15 1 10

GetAccount Via SID, by netXeyes 2002/04/06

Connect Host 211.154.211.15 ....OK

Start Ememurate Account....

Name is: TsInternetUser

Name is: IUSR_XINNET-5C4H2165

Name is: IWAM_XINNET-5C4H2165

Name is: iisshare

Name is: www.sbs.com.cn Admins

Name is: www.sbs.com.cn Authors

Name is: www.sbs.com.cn Browsers

Name is: web2018

Name is: www.fontainburg.com Admins

Name is: www.fontainburg.com Authors

Disconnect Host 211.154.211.15 ....OK
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐