域环境&工作组&局域网探针方案

域环境&工作组&局域网探针方案
Yatming的博客基本理论
DMZ
- 英文全名“Demilitarized Zone”,中文含义是“隔离区”,在安全领域的具体含义是“内外网防火墙之间的区域”。DMZ区是一个缓冲区,在DMZ区存放着一些公共服务器,比如论坛等
工作组 VS 域环境
- 工作组:地位平等,管理分散,没有集中管理。
- 域环境:地位不平等,管理集中,实现集中管理。
- 域环境也可以简单的理解为工作组的升级版,更好管理。
- 这里我们把域环境和工作组区分开来是因为他们的攻击手段不同,工作组中的攻击手法如DNS劫持、ARP欺骗在域环境下是没有作用的。有一些攻击手段需要一些条件,这些条件在域环境下没有,相应的攻击手段就会失效。
域控制器DC
- 域控DC是这个域中的管理者,域里面的最高权限,判断是否拿下整个域,就是看你是否拿下这台域控制器
AD(活动目录)
- 是微软所提供的目录服务(查询,身份验证),活动目录的核心包含了活动目录数据库,在活动目录数据库中包含了域中所有的对象(用户,计算机,组…),活动目录(Active Directory)是面向Windows Standard Server、Windows Enterprise Server 以及Windows Datacenter Server的目录服务。Active Directory储存了有关网络对象的信息,并且让管理员和用户能够轻松的查找和使用这些信息,Active Directory使用了一种结构化的数据储存方式,并以此作为基础对目录信息进行合乎逻辑的分层组织
linux域渗透问题
- Q:AD域控制器只在windows server系统能做吗?Linux可以?
- A:linux上也有相应的活动目录的,不过要装LDAP环境,一般企很少会用LDAP来管理的,因为功能上不及域强大,而且用linux来管理的话要求技术人员门槛也比较高,个人认为Linux还是比较适合做服务器好一点。(就是说Linux上面的域环境需要环境支撑,而且功能没有windows上的域强大,所以大部分我们遇见的都是windows,这也是没有Linux的原因。当然,Linux这个操作系统也是可以加入域的,比如域内有Linux的操作系统,有Linux的服务器也行,只是很少)
局域网技术适用问题
- 不同的攻击技术手段适用面不同,这个我们要有所了解,比如arp欺骗适用于局域网,而不适用于域。
大概内网安全流程问题
- 熟悉基础概念-信息收集-后续探针-权限提升-横向渗透-权限维持
案例演示
环境介绍
- 下图属于单域环境,Windows2008R2作为域控DC,有五个域成员主机,fileserver文件服务器、SqlServer数据库服务器、webserver网站服务器和两台个人PC。他们都是在192.168.3.0这个网段,网站服务器有两个网卡,一个在3.31一个在230.131,这个230.133就好比是它的一个对外出口(外网接口),kali攻击机就好比攻击者,它通过230.131这个接口进入网站服务器计算机,由于这台计算机是处于内网连接,所有它享有3这个网段的访问权限。拿下网站服务器后的首要攻击目标就是DC!只要拿下DC,也就相当于同时拿下了所有域成员主机权限
基本信息收集操作演示
旨在了解当前服务器的计算机基本信息,为后续判断服务器角色,网络环境等做准备。
1 | systeminfo 详细信息(操作系统版本、补丁编号等信息) |
网络信息收集操作演示
1 | ipconfig /all #判断存在域-最简单方式查看主DNS后缀 |
ipconfig /all
查看主DNS后缀,这就是当前最简单最直接判断当前服务器是域环境还是单纯的工作组局域网环境!有域的话会有主DNS,因为在域环境里面通常会由DNS解析服务器。这是第一个判断标准。
net time /domain
判断主域(主域就是域控的意思),net time /domain
可以判断主域,是因为域成员计算机的时间一般会以域控制器为准,所以当执行net time /domain
命令时,该计算机会去域控获取时间,此时返回的OWA2010CN-God.god.org
就是域控的计算机全名。然后可以通过nslookup
来最终确认域控IP每一台计算机名字都是基于域名下面生成的(如
SqlServer.god.org
),另外,如果找到了god.org
,sqlserver.god.org
,xiaodi.sqlserver.god.org
之类的计算机全名,说明当前环境存在多域,sqlserver.god.org
是xiaodi.sqlserver.god.org
的父域,xiaodi.sqlserver.god.org
是子域nslookup <域控制器全名>
追踪来源地址,OWA2010CN-God.god.org
就是域控的计算机全名,我们可以通过nslookup
和ping
命令去ping这个名字来获取域控的对应ip地址
用户信息收集操作演示
了解当前计算机或域环境下的用户及用户组信息,便于后期利用凭据进行测试
- 系统默认常见用户身份
1 | Domain Admains:域管理员(默认对域控制器有完全控制权) |
- 相关用户收集操作命令
1 | whoami /all 用户权限 |
收集用户信息的作用
- 先找到域用户名,为后续进行密码账号的攻击做准备,后续攻击是可以用这些真实的用户名套用密码字典进行暴力破解,一旦找到对应的密码就可以登录计算机进行后续操作。看看用户名在哪个组,我就有什么权限
net user
获取当前电脑里面的用户(本地用户),对于本地用户,当前计算机可通过用户名密码登录net user /domain
获取当前域里面的用户,对于域用户,当前计算机是否可登录,受活动目录限制,若权限不够,是不能登录的
凭据信息收集操作演示
收集各种密文,明文,口令等,为后续横向渗透做好测试准备
1 | 计算机用户HASH,明文获取 -mimikatz(win),mimipenguin(linux) |
获取计算机用户名密码 mimikatz & mimipenguin
- https://github.com/gentilkiwi/mimikatz/releases
- mimikatz-master.zip
- https://github.com/huntergregal/mimipenguin/releases/
- mimipenguin-master.zip
注意:mimikatz运行需要域管理员权限,域用户无法运行,因为权限不够
使用:
1 | privilege::debug |
当目标为win10或2012R2以上时,默认在内存缓存中禁止保存明文密码,但可以通过修改注册表的方式抓取明文。
1 | reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f |
在windows2012以上的系统不能直接获取明文密码了,当可以搭配procdump+mimikatz获取密码。
1 | https://blog.csdn.net/weixin_40412037/article/details/113348310 |
获取计算机各种协议服务口令 LaZagne(all,win&linux) & XenArmor(win)
- 优点:免费;自动化脚本;支持win&linux
- 缺点:很多密码都获取不到,不好用
- https://github.com/AlessandroZ/LaZagne
- LaZagne-master.zip
1 | 用法: |
XenArmor
探针主机域控架构服务操作演示
为后续横向思路做准备,针对应用,协议等各类攻击手法(探针域内主机角色及服务信息,利用开放端口服务及计算机名判断)
1 | 下载地址: |
探针域内存活(在线)主机及地址信息
nbtscan 192.168.70.0/24 第三方工具(类似于nmap,但是会标注域用户名和dc)
1 | nbtscan-1.0.35.exe 192.168.70.0/24 |
for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.3.%I | findstr "TTL="
(用for循环去ping1-254网段的主机,这是自带内部命令,不会被杀毒软件拦截)
—这个没有域用户名和dc识别
其它探针方式如:nmap(易拦截)、masscan、第三方PowerShell脚本(windows的脚本开发语言)、nishang(推荐)、empire(推荐)等
Nishang
导入之前加一句,nishang的使用是要在PowerShell 3.0以上的环境中才可以正常使用。也就是说win7下是有点小问题的(我这里并没有遇到)。因为win7下自带的环境是PowerShell 2.0
进入powershell,进入Ni
shang
1 | Set-ExecutionPolicy RemoteSigned |
1 | Get-Command -Module nishang #得到的命令来自nishang模块 |
获取计算机密码
加载mimikatz获取计算机密码
如果是简单密码可以直接显示出来,复杂密码显示hash值
1 | Invoke-Mimikatz |
端口扫描
扫描192.168.184.125-192.168.184.130所有存活主机,以及存活主机开放的端口
1 | Invoke-PortScan -StartAddress 开始ip -EndAddress 结束ip -ResolveHost -ScanPort |
注意:
如果报错提示:win10 ERROR kuhl_m_sekurlsa_acquireLSA ; Handle on memory
需要win10以管理员身份运行powershell即可解决该问题
其他使用方法:
1 | https://blog.csdn.net/weixin_40412037/article/details/115510209 |