从0到1认识内网渗透1-相关内网概念&环境搭建
从0到1认识内网渗透1-相关内网概念&环境搭建
内网定义
内网也指局域网,是指在某一区域内由多台计算机互连而成的计算机组,组网范围通常在数千米以内。在局域网中,可以实现文件管理、应用软件共享、打印机共享、工作组内的日程安排、电子邮件和传真通信服务等。内网是封闭的,可以由办公室内的两台计算机组成,也可以由一个公司内的大量计算机组成。
一个简单的内网大概由255个机器组成(192.168.xxx.0~192.168.xxx.255)
Windows工作组
工作组简介
在一个大型单位里,可能有成百上千台计算机互相连接组成局域网,它们都会列在"网络"(网上邻居)内。如果不对这些计算机进行分组,网络的混乱程度是可想而知的 为了解决这一问题,产生了工作组( Work Group)这个概念。将不同的计算机按功能(或部 门)分别列入不同的工作组,例如技术部的计算机都列入"技术部"工作组、行政部的计算机都列入"行政部"工作组。要想访问某个部门的资源,只要在"网络"里双击该部门的工作组名 就可以看到该部门的所有计算机了。相比不分组的情况,这样的情况有序得多(尤其对大型局域网来说)。
通常工作组模式适合较少人的轻办公环境。个人Windows计算机默认属于WORKGROUP工作组。
工作组状态下,所有的信息账号密码等都存放在本地电脑文件中。
加入工作组
右击桌面上的"计算机"图标,在弹出的快捷菜单中选择"属性"选项,然后依次单击"更改设置"和"更改"按钮,在"计算机名"输入框中输入计算机的名称,在"工作组"输入框中输入想要加入的工作组的名称(默认工作组是WORKGROUP)。
这时在网络中,别人可以访问我们的共享资源,我们也可以加入同一网络中的任何工作组,工作组就像一个可以自由进入和退出的社团,方便同组的计算机互相访问,工作组没有集中管理作用,工作组里的所有计算机都是对等的(没有服务器和客户机之分)。
创建工作组
如果输入的工作组的名称在网络中不存在,就相当于新建了一个工作组(当然暂时只有当前这台计算机在该工作组内),单击"确定"按钮Windows会提示需要重新启动。在重新启动之后进入"网络",就可以看到所加入的工作组的成员了。当然也可以退出工作组(只要修改工作组的名称即可)。
退出工作组
只要将工作组名字修改即可,不过在网上别人照样可以访问你的共享资源。
Windows域环境
域简介
Windows域是计算机网络的一种形式,其中所有用户帐户,计算机,打印机和其他安全主体都在位于称为域控制器(DC)的一个或多个中央计算机集群上的中央数据库中注册,身份验证在域控制器上进行, 在域中使用计算机的每个人都会收到一个唯一的用户帐户,然后可以为该帐户分配对该域内资源的访问权限。
域与工作组区别
域是一个有安全边界的计算机集合(入侵时需要边界突破),可以简单地把域理解成升级版的工作组,与工作组相比,域的安全管理控制机制更加严格,用户要想访问域内的资源,必须以合法的身份登录域,而用户对域内的资源拥有什么样的权限,还取决于用户在域内的身份。
其中安全边界指在两个域中,一个域中的用户无法访问另一个域中的资源。
域的组成
域控制器( Domain Controller、DC)
域中的一台类似管理服务器的计算机,我们可以形象可以地将它理解为一个单位的门禁系统。域控制器负责所有连入的计算机和用户的验证工作。域内的计算机如果想互相访问,都要经过域控制器的审核。
- 域控机器必须为Windows的Server版本或专业版
- DNS服务器默认在域控上
- 域控制器中存在由这个域的账户、密码、属于这个域的计算机等信息构成的数据库。当计算机连接到域时,域控制器首先要鉴别这台计算机是否属于这个域,以及用户使用的登录账号是否存在、密码是否正确。如果以上信息有一项不正确,域控制器就会拒绝这个用户通过这台计算机登录。如果用户不能登录,就不能访问服务器中的资源。
- 域控制器是整个域的通信枢纽,所有的权限身份验证都在域控制器上进行,也就是说,域内所有用来验证身份的账号和密码散列值都保存在域控制器中
备份域控(备份DC)
与域控身份一样,在域控掉线时替代域控保证域环境正常运做,如果没有备份DC,一旦DC瘫痪了,域内的其他用户就不能登录该域了。如果有一台备份DC,至少该域还能正常使用(把瘫痪的DC恢复即可)。
域管
域上的管理员用户(域名\Administrator)
域内用户组
机器加入域后,只能使用域内用户登录域,域内用户的信息保存和修改统一在DC上,里面包含许多组。
管理员组(Administrators)
组内成员可以不受限制地存取计算机或域的资源,拥有AD和DC的管理权限(更改Enterprise Admins、Domain Admins组的成员关系)
域管理员组(Domain Admins)
组内成员拥有完整的管理员权限
Administrator用户是域内最高管理员SID=500(和每台机器的本地最高管理员一样),并且域内主机存在两个最高管理员账户
加入该组的除Administrator用户外,其他用户都是普通管理员,该组会自动添加到自己所在域的Administrators组中,可以继承Administrators组所有权限
该组默认添加到每台域内主机的本地Administrators组,可以获得了域中所有计算机的所有权
管理员组添加的用户仅对本地有效,域管理员组添加的用户对本域中所有机器都有效(只有Administrator是最高管理员权限)
企业系统管理员组(Enterprise Admins)
域森林或根域中的一个组
该组在域森林中的每个域的域控上都是Administrators组的成员,可以获得域森林中所有域控的完全访问权(如备份DC)
域用户组(Domain users)
组内存在所有的域成员(默认情况下,新建的用户都属于Domain Users组)
该组默认添加到每台域内主机的本地Users组
域内机器用户组(Domain Computers)
任何由我们建立的计算机账号都属于该组
域内访客组(Domain Guests)
权限较低
机器用户
Windows域环境中,每台计算机都有一个机器账户,用于在网络中进行身份验证和授权,用于代表计算机进行域认证和访问域资源。机器账户的名称通常以计算机名称或计算机GUID作为前缀,后缀为$(如WIN-2019$)
域中机器用户和本地SYSTEM用户联系
当电脑加入域中后机器账号的密码会同步到域控上(本地SYSTEM用户相当于对应域内的机器用户)
域中的本地计算机用户是无法向域内进行信息交互,需要切换为本地的SYSTEM用户(由于对应了域内机器用户)便可以对域内进行信息交互(SYSTEM用户充当了域内机器用户角色)
注意,SYSTEM用户并不是专门为域中的机器账户而创建。
本地administrator切换到system
powershell脚本
下载切换脚本
1 | certutil -urlcache -split -f https://raw.githubusercontent.com/decoder-it/psgetsystem/master/psgetsys.ps1 |
需要在windows下启动一个administrator权限的powershell,运行脚本
1 | .\psgetsys.ps1 |
PSTools工具
1 | PsExec.exe -accepteula \\本机IP -s cmd.exe |
活动目录(Active Directory、AD)
域环境中提供目录服务的组件,用于存储域内的网络对象(用户、组、计算机、共享资源、打印机等)帮助用户快速、准确从目录中找到所需资源,实现高效集中管理(统一修改密码、统一推送软件服务、统一设置相关参数等),类似域的数据库
AD不一定在域控上,也可以存在与域内主机上,但是要以域管身份访问AD,内网中的一台计算机上安装了AD,它就变成了DC(用于存储活动目录数据库的计算机)
组织单元(OU)
域中包含的一类目录对象(如用户、计算机、组、文件、打印机等等)是一个容器,可以在OU上部署策略
域的分类
单域
通常,在一个地理位置固定的小公司里,建立一个域就可以满足需求。在一个域内,一般要有至少两台域服务器,一台作为DC,另一台作为备份DC。活动目录的数据库(包括用户的账号信息)是存储在DC中的,所以说在内网渗透中拿下备份DC可以看到敏感数据。
多域
多个域环境,每个域都有自己对应的DC
父域和子域
出于管理及其他需求,需要在网络中划分多个域,第一个域称为父域,各分部的域称为该域的子域,例如大公司的各个分公司位于不同的地点,就需要使用父域及子域,一个域管理员只能管理本域,不能访问或者管理其他域。如果两个域之间需要互相访问,则需要建立信任关系( Trust Relation),信任关系是连接不同域的桥梁。
域控自动升为父域,其他均为子域(创建新的子域时,系统自动将其和父域建立双向可传递信任关系)
域树(林)
多个域通过建立信任关系组成的集合(域树内的父域与子域,不但可以按照需要互相管理、还可以跨网络分配文件和打印机等设备及资源,从而在不同的域之间实现网络资源的共享与管理、通信及数据传输)
域森林
域森林( Forest)是指多个域树通过建立信任关系组成的集合(在一个公司兼并场景中某公司使用域树abc.com,被兼并的公司本来有自己的域树abc.net(或者在需要为被兼并公司建立具有自己特色的域树时)由于域树abc.net无法挂在域树abc.com下。所以域树abc.com与域树abc. net之间需要通过建立信任关系来构成域森林。通过域树之间的信任关系,可以管理和使用整个域森林中的资源,并保留被兼并公司自身原有的特性)
域名服务器
域名服务器( Domain Name Server,DNS)是指用于实现域名( Domain Name)和与之相对的IP地址( IP Address)转换的服务器。从对域树的介绍中可以看出,域树中的域名和DNS域名非常相似。而实际上,因为域中的计算机是使用DNS来定位域控制器、服务器及其他计算机、网络服务的,所以域的名字就是DNS域的名字。在内网渗透测试中,大都是通过寻找DNS服务器 来确定域控制器的位置的(DNS服务器和域控制器通常配置在同一机器上)
域信任关系
域是安全边界,若无信任关系,域用户账户只能在域内使用,不能用于其他域,域间的信任使得域用户可以跨域使用
可传递信任
如果A域和B域之间的信任关系是可传递并且B域和C域之间的信任关系也可传递,那么A域与C域自动建立了信任关系
不可传递信任
如果A域和B域之间的信任关系是不可传递或者B域和C域之间的信任关系也不可传递,那么A域与C域默认无信任关系
单向信任
若A域和B域之间创建的是单向信任,则只有A域能信任B域,B域不能信任A域
单向信任也可以是可传递信任或不可传递信任,取决于创建的信任类型
双向信任
若A域和B域之间创建的是双向信任,则A域B域可以相互信任,双向信任也可以是可传递信任或不可传递信任,取决于创建的信任类型,其中在林(域树)中所有的域信任都是双向可传递的信任。
内部信任
指在同一个林中的域之间的信任关系,这种信任是可传递的(均是双向可传递信任)
外部信任
指不同林之间的域的信任,这种信任关系是单向或者双向不可传递的(需要特别设置信任关系)
搭建域环境
搭建域控制器(DC)
修改计算机名称(方便识别管理)
设置服务器与静态IP地址(域控DNS服务器为本地IP)
添加角色中安装Active Directory域服务和DNS服务器(DNS服务器默认在域控上)
域服务中升级为域控服务器(安装过程中存在报错则可能密码不满足策略)
设置林功能级别为对应的系统版本
安装DNS服务
设置目录服务还原模式的密码(在开机进入安全模式修复活动目录数据库时使用)
域控搭建完成
主机加入域
手动修改DNS为域控IP(只要能ping通域就可以加入域)
修改计算机名并且选择加入域(方便识别管理)
输入域管的账号密码(需要权限认证,较工作组更严格)
添加域内账户
设置域用户密码复杂度策略,域控上打开服务管理器,选择Default Domain Policy的编辑
展开列表进行设置密码复杂度,设置完成,需要重启计算机生效
在域控AD上添加域内账户(本地账户不能登录域内)
加入域后,可以使用域内用户进行登录
测试连通性
退出域
修改计算机隶属于工作组即可
登录域
机器加入域后可以选择使用域内用户登录计算机,也可以选择本地用户登录计算机。
- (机器名\本地用户名)本地用户登录计算机时,是校验存放在本地的用户文件,本地认证对比NTLM-HASH值
- (域名\域内用户名)域内用户登录计算机时,是校验存放在DC的用户文件(若DC出现故障就无法通过校验,域会受损故需要备份DC),域认证通过Kerberos认证
声明:本文仅限于技术讨论与分享,严禁用于非法途径。若读者因此作出任何危害网络安全行为后果自负,与本号及原作者无关。