工作组,域,域控是什么及它们之间的一些关系
为什么会出现类似像’工作组’这种东西?
在了解工作组的具体细节之前,我们先来假设这么一个场景,你在某个互联网公司上班,公司部门有三四个,公司所有的pc加起来(假设绝大部分都是windows系统),总共有七八十台的样子,另外,还有几部打印机和文件共享服务器,也就是说,在公司整个办公内网中大概有80台机器的样子,好,有了场景,咱们再开始说正题,一天早上,你去上班,你同部门的基友说它最近搞了一批新种子,话说好看的不要不要的,问你想不想一睹风采,眼疾手快的你,当然是欣然接受了,然后你果断让那个基友回去马上给把种子共享出来,这时问题就来了,当你打开电脑,点进网络邻居里面一看,卧槽……七八十台机器,一下子杂乱无章的砸到你面前,为了种子,你翻啊,翻啊,费老劲才找到基友共享的种子(当然,可以直接ip访问他的共享,例子确实有些牵强,但这样说只是为了把今天的重点引出来,原谅表达能力实在不是太好……),这时候你心里肯定在骂那个傻x网管,就不能把各个部门的电脑分门别类的规整好吗,害老子要找半天,没错,这也正是早期工作组出现的意义,当然,它的意义也并非仅限于此
那么,到底什么是 ‘工作组’ ?
从上面的实例中我们大概了解到,工作组就是把一些具有相同职能(比如,可以按部门,按房间号,按岗位,按操作系统类型等的不同进行分组管理)的机器都放到一个组里,这样以来,在整个办公内网(网络邻居)中的机器的作用就一目了然了,大大提高了我们的工作效率,……是哪个组就在哪个组里呆着,表面上大家各司其职,一切看起来仅仅有条,貌似是挺好的,别着急,先接着往下看
工作组的一些特点:
在工作组中的每台机器对其自身都拥有绝对的掌控权,也就是说,你可以随意进出任何一个工作组,所谓的工作组只是形式上的把大家放在了一起而已,并不存在真正的集中管理作用,工作组内的每台机器依然是相互独立,互不干涉,各自为政的,举个很简单的例子,假设你和某台ftp服务器处在一个工作组内,因为工作的需要,你经常要到这个ftp上去上传下载各种文件,这时候问题来了,你必须提供一个正确的ftp账号密码给那台ftp服务器去验证,通过以后它才能让你正常的上传下载,假设在同一个工作组内还有其它各种各样的服务器,你要想去这些服务器上干点儿什么事儿,无疑,你还要提供n多个账号密码,试想,如果只是单单几十台机器也许还能够呛接受,但如果是几百台,几万台呢,很显然,我们有限的脑瓜容量绝对不会留着干记密码这种无聊的事情的,那问题又来了,该怎么办呢,这就用到’域’了,先提一嘴,后面再单独说它
另外,从上面可知,工作组中的身份验证方式,是直接在被访问的机器上进行的,有个不得不说的有趣事实,当你本地系统的账号密码和工作组的中的某台机器的账号密码恰巧一样时,这时当你在登录状态去访问那台机器,就不再需要提供账号密码,而是直接就能访问到对方的系统资源,虽然这种’撞号’的几率很小,但不代表不可能,再退一步讲,即使你们账号密码不一样,只要你的guest账户处于启用状态(当然啦,默认都是关闭的),且没有更改过guest密码,一样是可以被工作组中的其它机器匿名访问到的,是不是很危险呢,不过,这一点在’域’也会被彻底改变,最后,我们还需要知道的是,一般在装完系统默认就会处在workgroup这个组中,在工作组中的机器使用netbios协议(作用就是把机器名转换为ip)进行通信
工作组优缺点:
优点:它只是形式上的整体(并非真正的安全边界),但相对来说网络性能较高
缺点:可以看到,所谓的工作组,实质上还是一盘散沙,基本没有任何安全性可言,如果你想进行安全部署,可能就只能一台一台的来配置,过程非常的繁琐,如果你只是想单单对某个几台机器进行集中管理,那就更麻烦了,因为诸多的原因,所以后来就有了windows’域’
关于工作组的渗透方式:
|
|
工作组环境下的简要拓扑说明:
|
|
|
|
好了,说完工作组,下面就来好好介绍下今天的重点 ‘域’:
相对工作组这种’松散自由’的管理方式来讲,域就是一个权限控制相当严格的’工作组’,你甚至可以把它粗略理解成升级版的’工作组’,大家貌似都喜欢把域叫做’安全边界’,其实,个人觉得这确实已经说的够形象了,因为,相比工作组而言,它有一个更加严格的安全管理控制机制,不像工作组那样,在域内可以很方便的对某台或者几台机器,对某个用户或者几个用户进行非常详细的权限控制,另外,域也不像工作组,如果是工作组,只要处在同一内网下(默认是workgroup组),就可以随意访问组中的机器和共享的资源,但,如果是域,只是单单处在同一内网下,还是远远不够的,如果你想访问域内的资源,就必须先要以一个合法的身份加到域中,然后登陆到该域中才可以,至于你对域内的资源有什么样的权限,还需要看你当前的域用户身份,到这里,相信大家已经大概理解域和工作组之间的区别了
那么,问题来了,什么又是 ‘域控’ [DC即’域控制器’]呢?
简单来讲,在一个机器装上活动目录以后,这个机器就会被称作域控,不过,这里需要注意的是,当一台机器变成域控以后该机器上所有的本地用户将会全部变成域内用户,本地安全策略也会升级为域安全策略,域控是整个域内的通信枢纽,所有的权限身份验证都会集中在域控上,如果域控出了问题,整个域内的通信基本也就瘫痪了,需要单独说明的是,域中用来进行身份验证的账户密码hash也都存在域控上[这也是我们在渗透域的最终目的,导出域内所有用户的账号和hash]
域控知道了,那什么又是 ‘域管’ 呢?
其实,就管理性质而言,跟本地管理员的职责并没什么太大的不同,只不过域管是专门用来管理域控的,就像本地管理员只能用来管理本地系统,个人的认识仅此而已,不对的地方,欢迎大家指正
域和dns的关系 [dns服务器有点儿类似’中间人’的角色,主要负责转发]
一般我们在搭建域环境时,中间有个步骤会提示要不要一块把dns服务也装了,个人建议这里最好一起装上,dns在域中的最主要的作用就是为了定位域控制器,让客户端能够找到域控制器,不过我们需要事先在dns上创建一个指向域控制器的区域,然后域内的所有客户机包括域控的dns地址都指向搭建好的dns服务器的ip,这时,当域中的机器进行通信时就会根据这个域名来找到域控制器以及对应的客户机,以此来保证域内的正常通信,其实,你可以可以更简单的理解,dns的主要作用其实就是负责转发,一般情况下,dns服务器和域控制器会处在同一台机器上,其实,也不太建议把它分开装
关于父域,子域,目录树,目录林的概念
父域,子域之间建立信任构成了目录树,目录树与目录树之间建立信任则构成了目录林,核心就在于不管是在林中还是树中,只要他们之间已经建立了信任关系,任何一个域中的机器都可以登录到其它域中
关于父域,子域,活动目录树,目录林环境下的简单拓扑图:
关于域内用户数据漫游的设置:
|
|
域内基本的策略管理:
另外,在域中还有个很重要的特性,就是统一的策略管理,也就是说,我可以针对一台或者几台域内的机器集中进行严格的策略控制,当一个机器加到域中以后,它就不再走本地的安全策略了,而是统一的走域安全策略,比如,你可以集中对一个或者几个组或者组织单元配置不同的安全策略,也就是说,你想让它干啥,它才能干啥(其实,这个秘密就发生在你加入域的那一刻,域控偷偷往你的本地管理组加了个域管理员账号,所以域管才能很随意的去操作域内的任意机器)
关于域的科普差不多就到这儿了,现在我们就来简单了解下域内的基本渗透流程:
|
|
一点小结:
虽然,暂时都是些非常基础的概念性的东西,但在后续的域内渗透过程中却无比重要,尤其当你在使用别人的工具(mimikatz,wce……之流)时,如果没有些基础概念做铺垫,是很难灵活运用的,更不要说去理解作者这样做的目的和好处,同样,对自己后续渗透思路的拓展,也是百害而无一利,不仅知其然,更要知其所以然嘛,包括后面加深对一些漏洞(ms14-068)的理解利用,都是如此,个人始终坚信,不管多么复杂的东西最终都是由基础慢慢堆积而来,尽自己的可能追溯到问题的本质自然是最好不过的,虽然可能会耗费你大量的时间和精力,但那却是值得的