原文地址:http://pen-testing.sans.org/blog/pen-testing/2013/07/24/plundering-windows-account-info-via-authenticated-smb-sessions
通过SMB,可以远程获得共享文件,注册表,服务,域认证以及更多信息。
Linux下进行Windows SBM访问的工具之一是rpcclient。
即使user不是管理组或域管理组的,仍可以获得很多有用信息,例如username,组成员,SID甚至是最后登录消息。
可以使用auxiliary/scanner/smb/smb_login暴力破解模块来获得username和password。
然后可以使用rpcclient来连接到开放了445端口的目标
如果是null session,输入""作为username。然后输入密码
成功登录后如下所示:
[quote]rpcclient $>[/quote]
help命令获得帮助
在极少的场合,rpcclient需要在/etc/hosts文件中添加目标才能工作。
获得目标机器的版本
[quote]rpcclient $> srvinfo
10.10.76.1 Wk Sv NT PtB
platform_id : 500
os version : 6.2
server type : 0x11003[/quote]
通过这个连接http://en.wikipedia.org/wiki/Comparison_of_Microsoft_Windows_versions来查询版本,我们得到的是6.2,所以是Windows8或Windows server 2012.
现在来获得一些user,输入enum,两次<tab><tab>
[quote]rpcclient $> enum
enumalsgroups enumdomains enumdrivers enumkeyenumprivs
enumdata enumdomgroups enumforms enumportsenumtrust
enumdataex enumdomusers enumjobs enumprinter[/quote]
使用下面命令来枚举user
[quote]rpcclient $> enumdomusers
user:[Administrator] rid:[0x1f4]
user:[Fred] rid:[0x3e9]
user:[Guest] rid:[0x1f5]
user:[HomeGroupUser$] rid:[0x3eb]
user:[lab] rid:[0x3ec]
user:[stuff] rid:[0x3f1]
user:[test] rid:[0x3f5][/quote]
我们可以看到username和他们的RID(SID的后缀)。
现在我们枚举管理员组(使用enumalsgroups domain命令)和内建组(使用enumalsgroups builtin命令)。这两个组的集合就是目标知道所有组。在enum和group之间的als指的是aliases。
[quote]rpcclient $> enumalsgroups domain
group:[HomeUsers] rid:[0x3ea]
group:[WinRMRemoteWMIUsers__] rid:[0x3e8]
rpcclient $> enumalsgroups builtin
group:[Administrators] rid:[0x220]
group:[Backup Operators] rid:[0x227]
group:[Cryptographic Operators] rid:[0x239]
group:[Event Log Readers] rid:[0x23d]
group:[Guests] rid:[0x222]
group:[Hyper-V Administrators] rid:[0x242]
group:[IIS_IUSRS] rid:[0x238]
group:[Power Users] rid:[0x223]
group:[Remote Desktop Users] rid:[0x22b]
group:[Remote Management Users] rid:[0x244]
group:[Users] rid:[0x221]
[/quote]我可以看到组名和每个组的RID
使用lookupnames来查看一个完整的SID。我将查看administrator帐号和administrators组
[quote]rpcclient $> lookupnames administrators
administrators S-1-5-32-544 (Local Group: 4)
rpcclient $> lookupnames administrator
administrator S-1-5-21-728759338-17244630-2184799192-500 (User: 1)[/quote]
lookupsids 命令将SID转换成username
queryuser命令来查看基于一个十进制RID的个体的细节。
[quote]rpcclient $> queryuser 500
User Name : Administrator
Full Name :
Home Drive :
Dir Drive :
Profile Path:
Logon Script:
Description : Built-in account for administering the computer/domain
Workstations:
Comment :
Remote Dial :
Logon Time : Thu, 26 Jul 2012 03:22:17 EDT
Logoff Time : Wed, 31 Dec 1969 19:00:00 EST
Kickoff Time : Wed, 31 Dec 1969 19:00:00 EST
Password last set Time : Thu, 26 Jul 2012 03:27:04 EDT
Password can change Time : Wed, 31 Dec 1969 19:00:00 EST
Password must change Time: never
unknown_2[0..31]...
user_rid : 0x1f4
group_rid: 0x201
acb_info : 0x00000211
fields_present: 0x00ffffff
logon_divs: 168
bad_password_count: 0x00000000
logon_count: 0x00000001
padding1[0..7]...
logon_hrs[0..21]...[/quote]
输出显示user的最后登录时间和密码设置时间。
通过SMB,可以远程获得共享文件,注册表,服务,域认证以及更多信息。
Linux下进行Windows SBM访问的工具之一是rpcclient。
即使user不是管理组或域管理组的,仍可以获得很多有用信息,例如username,组成员,SID甚至是最后登录消息。
可以使用auxiliary/scanner/smb/smb_login暴力破解模块来获得username和password。
然后可以使用rpcclient来连接到开放了445端口的目标
$ rpcclient —U <username> <WinIPaddr>
如果是null session,输入""作为username。然后输入密码
成功登录后如下所示:
[quote]rpcclient $>[/quote]
help命令获得帮助
在极少的场合,rpcclient需要在/etc/hosts文件中添加目标才能工作。
获得目标机器的版本
[quote]rpcclient $> srvinfo
10.10.76.1 Wk Sv NT PtB
platform_id : 500
os version : 6.2
server type : 0x11003[/quote]
通过这个连接http://en.wikipedia.org/wiki/Comparison_of_Microsoft_Windows_versions来查询版本,我们得到的是6.2,所以是Windows8或Windows server 2012.
现在来获得一些user,输入enum,两次<tab><tab>
[quote]rpcclient $> enum
enumalsgroups enumdomains enumdrivers enumkeyenumprivs
enumdata enumdomgroups enumforms enumportsenumtrust
enumdataex enumdomusers enumjobs enumprinter[/quote]
使用下面命令来枚举user
[quote]rpcclient $> enumdomusers
user:[Administrator] rid:[0x1f4]
user:[Fred] rid:[0x3e9]
user:[Guest] rid:[0x1f5]
user:[HomeGroupUser$] rid:[0x3eb]
user:[lab] rid:[0x3ec]
user:[stuff] rid:[0x3f1]
user:[test] rid:[0x3f5][/quote]
我们可以看到username和他们的RID(SID的后缀)。
现在我们枚举管理员组(使用enumalsgroups domain命令)和内建组(使用enumalsgroups builtin命令)。这两个组的集合就是目标知道所有组。在enum和group之间的als指的是aliases。
[quote]rpcclient $> enumalsgroups domain
group:[HomeUsers] rid:[0x3ea]
group:[WinRMRemoteWMIUsers__] rid:[0x3e8]
rpcclient $> enumalsgroups builtin
group:[Administrators] rid:[0x220]
group:[Backup Operators] rid:[0x227]
group:[Cryptographic Operators] rid:[0x239]
group:[Event Log Readers] rid:[0x23d]
group:[Guests] rid:[0x222]
group:[Hyper-V Administrators] rid:[0x242]
group:[IIS_IUSRS] rid:[0x238]
group:[Power Users] rid:[0x223]
group:[Remote Desktop Users] rid:[0x22b]
group:[Remote Management Users] rid:[0x244]
group:[Users] rid:[0x221]
[/quote]我可以看到组名和每个组的RID
使用lookupnames来查看一个完整的SID。我将查看administrator帐号和administrators组
[quote]rpcclient $> lookupnames administrators
administrators S-1-5-32-544 (Local Group: 4)
rpcclient $> lookupnames administrator
administrator S-1-5-21-728759338-17244630-2184799192-500 (User: 1)[/quote]
lookupsids 命令将SID转换成username
queryuser命令来查看基于一个十进制RID的个体的细节。
[quote]rpcclient $> queryuser 500
User Name : Administrator
Full Name :
Home Drive :
Dir Drive :
Profile Path:
Logon Script:
Description : Built-in account for administering the computer/domain
Workstations:
Comment :
Remote Dial :
Logon Time : Thu, 26 Jul 2012 03:22:17 EDT
Logoff Time : Wed, 31 Dec 1969 19:00:00 EST
Kickoff Time : Wed, 31 Dec 1969 19:00:00 EST
Password last set Time : Thu, 26 Jul 2012 03:27:04 EDT
Password can change Time : Wed, 31 Dec 1969 19:00:00 EST
Password must change Time: never
unknown_2[0..31]...
user_rid : 0x1f4
group_rid: 0x201
acb_info : 0x00000211
fields_present: 0x00ffffff
logon_divs: 168
bad_password_count: 0x00000000
logon_count: 0x00000001
padding1[0..7]...
logon_hrs[0..21]...[/quote]
输出显示user的最后登录时间和密码设置时间。