65:内网安全-域环境&工作组&局域网探针方案——域信息收集就是要获取域里的用户都有哪些!多数操作需要管理员权限,比如mimikatz、nishang,所以事先做提权就非常关键了!!!

65:内网安全-域环境&工作组&局域网探针方案

 

思维导图

一 基本认知

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欺骗适用于局域网,而不适用于域。

大概内网安全流程问题:

  • 熟悉基础概念-信息收集-后续探针-权限提升-横向渗透-权限维持

二 案例演示

本课重点

  • 案例1:基本信息收集操作演示
  • 案例2:网络信息收集操作演示
  • 案例3:用户信息收集操作演示
  • 案例4:凭据信息收集操作演示
  • 案例5:探针主机域控架构服务操作演示

环境介绍

下图属于单域环境,Windows2008R2作为域控DC,有五个域成员主机,fileserver文件服务器、SqlServer数据库服务器、webserver网站服务器和两台个人PC。他们都是在192.168.3.0这个网段,网站服务器有两个网卡,一个在3.31一个在230.131,这个230.133就好比是它的一个对外出口(外网接口),kali攻击机就好比攻击者,它通过230.131这个接口进入网站服务器计算机,由于这台计算机是处于内网连接,所有它享有3这个网段的访问权限。拿下网站服务器后的首要攻击目标就是DC!只要拿下DC,也就相当于同时拿下了所有域成员主机权限。

案例1:基本信息收集操作演示

旨在了解当前服务器的计算机基本信息,为后续判断服务器角色,网络环境等做准备。

服务器角色就是这台服务器是干嘛的,它在内网中扮演什么角色,比如mary-pc就是个人办公电脑,SqlServer就是数据库服务器,每台服务器都是有一个角色的,是仅仅个人用,还是用来文件传输?用来dns解析?

假设已经拿下了一台内网服务器webserver:

1
2
3
4
systeminfo 详细信息(操作系统版本、补丁编号等信息)
net start 启动服务(查看当前主机开启了哪些服务,从服务中就可以判断它是什么角色)
tasklist 进程列表(查看当前主机开启了哪些进程)
schtasks 计划任务(若报错无法加载列资源,说明你的权限不够,因此要提权才能使用该命令)

案例2:网络信息收集操作演示

旨在了解当前服务器的网络接口信息,为判断当前角色,功能,网络架构做准备

1
2
3
4
5
ipconfig /all 判断存在域-最简单方式查看主DNS后缀
net view /domain 判断存在域
net time /domain 判断主域(主域就是域控的意思)【在域环境下查看当前时间】
nslookup <域控制器全名> 追踪来源地址
netstat -ano 当前网络端口开放

<1>ipconfig /all 查看主DNS后缀,这就是当前最简单最直接判断当前服务器是域环境还是单纯的工作组局域网环境!有域的话会有主DNS,因为在域环境里面通常会由DNS解析服务器。这是第一个判断标准。

<2>net view /domain 判断存在域

<3>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是子域。

<4>nslookup <域控制器全名>  追踪来源地址

OWA2010CN-God.god.org就是域控的计算机全名,我们可以通过nslookup和ping命令去ping这个名字来获取域控的对应ip地址。

<5>netstat -ano 查看当前网络端口开放

案例3:用户信息收集操作演示

旨在了解当前计算机或域环境下的用户及用户组信息,便于后期利用凭据进行测试

系统默认常见用户身份:

1
2
3
4
5
6
7
8
9
Domain Admains:域管理员(默认对域控制器有完全控制权)
Domain Computers:域内机器
Domain Controllers:域控制器
Domain Guest:域访客,权限低
Domain users:域用户
Enterprise Admains:企业系统管理员用户(默认对域控有完整控制权)
 
我们主要攻击Domain Admains和Enterprise Admains
大部分成员主机在Domain users域用户里

相关用户收集操作命令:

1
2
3
4
5
6
7
8
9
10
whoami /all 用户权限
net config workstation 登录信息
net user 当前电脑里面的用户(本地用户)
net localgroup 本地用户组
net user /domain 当前域里面的用户
net group /domain 获取域用户组信息
wmic useraccount get /all 涉及域用户详细信息
net group "Domain Admins" /domain 查询域管理员账户
net group "Enterprise Admins" /domain 查询管理员用户组
net group "Domain Controllers" /domain 查询域控制器

收集用户信息的作用:==》域信息收集就是要获取域里的用户都有哪些!

  • 先找到域用户名,为后续进行密码账号的攻击做准备,后续攻击是可以用这些真实的用户名套用密码字典进行暴力破解,一旦找到对应的密码就可以登录计算机进行后续操作。看看用户名在哪个组,我就有什么权限。

<1>net user 获取当前电脑里面的用户(本地用户),对于本地用户,当前计算机可通过用户名密码登录。

net user /domain 获取当前域里面的用户(关键,对于域用户,当前计算机是否可登录,受活动目录限制,若权限不够,是不能登录的。

<2>net localgroup 本地用户组

<3>net group /domain 获取域用户组信息

<4>wmic useraccount get /all 涉及域用户详细信息

<5>net group "Domain Admins" /domain 查询域管理员账户

<6>net group "Domain users" /domain 查询域用户

案例4:凭据信息收集操作演示(非常重要)

旨在收集各种密文,明文,口令等,为后续横向渗透做好测试准备

1
2
3
4
5
6
7
8
9
10
11
12
13
计算机用户HASH,明文获取   -mimikatz(win),mimipenguin(linux)
计算机各种协议服务口令获取   -LaZagne(all,win&linux),XenArmor(win)
 
Netsh WLAN show profiles  //查询所有连接过的wifi名称
Netsh WLAN show profile name ="无线名称" key =clear  //查询某wifi密码
 
获取凭据的方法:
1.站点源码备份文件,数据库备份文件等
2.各类数据库WEB管理入口,如PHPmyadmin
3.浏览器保存密码,浏览器cookies
4.其他用户会话,3389和ipc$连接记录,回收站内容
5.windows 保存的WIFI密码
6.网络内部的各种账号和密码,如:Email,VPN,FTP,OA等

人能够记住的密码有限,所以一般用户习惯给很多网站、服务等设置相同的或者类似的密码,所以当你找到了一个密码,其他密码很有可能被猜解到。

1、获取计算机用户名密码 mimikatz & mimipenguin

  • mimikatz下载:https://github.com/gentilkiwi/mimikatz/releases
  • mimipenguin下载:https://github.com/huntergregal/mimipenguin/releases/

新版mimikatz貌似运行有问题,下面是旧版运行结果,获取到了明文密码(新版的确有bug)。注意:mimikatz运行需要域管理员权限,域用户无法运行,因为权限不够。(gg!!!!)

mimikatz is a tool I've made to learn C and make somes experiments with Windows security.It's now well known to extract plaintexts passwords, hash, PIN code and kerberos tickets from memory. mimikatz can also perform pass-the-hash, pass-the-ticket or build Golden tickets.

 

同样,mimipenguin运行需要root权限,普通用户无法运行。

2、获取计算机各种协议服务口令 LaZagne(all,win&linux) & XenArmor(win)

LaZagne

  • 优点:免费;自动化脚本;支持win&linux
  • 缺点:很多密码都获取不到,不好用
  • 下载:https://github.com/AlessandroZ/LaZagne

XenArmor ==》看起来还是很强大啊!!!

  • 国外软件,价格40-50美元,网上可能有破解版,不过是老版

这两个软件主要是通过自动化翻找以下内容,从而获取凭据。

  • 1.站点源码备份文件,数据库备份文件等
  • 2.各类数据库WEB管理入口,如PHPmyadmin
  • 3.浏览器保存密码,浏览器cookies
  • 4.其他用户会话,3389和ipc$连接记录,回收站内容
  • 5.windows 保存的WIFI密码
  • 6.网络内部的各种账号和密码,如:Email,VPN,FTP,OA等

案例5-探针主机域控架构服务操作演示

为后续横向思路做准备,针对应用,协议等各类攻击手法

1
2
3
4
5
6
7
8
9
1、探针域控制器名及地址信息
net time /domain
nslookup <域控名称>
ping <域控名称>
  
2、探针域内存活主机及地址信息
nbtscan 192.168.3.0/24 第三方工具(老牌工具,说实在没必要用这个工具,不强大!不免杀!)
for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.3.%I | findstr "TTL =" 自带内部命令(推荐使用)
其他:nmap,masscan,第三方Powershell脚本nishang、empire等(个人喜欢NiShang)

nbtscan下载:http://unixwiz.net/tools/nbtscan.html

NiShang简介:==》注意,这玩意要powershell管理员才可以运行,所以提权就显得非常关键了!!!

Powershell用于渗透测试其实早在多年前就已经被提出了。利用Powershell,攻击者可以在无需接触磁盘的情况下执行命令等,并且相较已经被大家广泛关注并防御的Cmd而言,Powershell并非那么的引人瞩目。Nishang是基于PowerShell的渗透测试专用工具。它集成了框架、脚本和各种payload,能够帮助渗透测试人员在对Windows目标的全过程检测中使用,是一款来源于作者实战经历的智慧结晶。(类似于MSF)

1
2
3
4
5
6
7
8
9
<1>下载NiShang:https://github.com/samratashok/nishang
<2>进入目录,执行以下命令
Import-Module .\nishang.psml        导入模块nishang
set-ExecutionPolicy RemoteSigned    设置执行策略
Get-Command -Module nishang     获取模块nishang的命令函数(有很多命令函数分别执行不同功能,比如以下命令)
Get-information             获取常规计算机信息
Invoke-Mimikatz             获取计算机用户名密码
Invoke-Portscan -startaddress 192.168.3.0 -Endaddress 192.168.3.100 -ResolveHost -ScanPort  端口扫描(查看目录对应文件有演示语法,其他同理)
其他功能:删除补丁,反弹shell,凭据获取等

探针域内主机角色及服务信息

  • 利用开放端口服务及计算机名判断
  • 核心业务机器:
    • 1.高级管理人员,系统管理员,财务/人事、业务人员的个人计算机
    • 2.产品管理系统服务器
    • 3.办公系统服务器
    • 4.财务应用系统服务器
    • 5.核心产品源码服务器
    • 6.数据库服务器
    • 7.文件或者网盘服务器
    • 8.电子邮件服务器
    • 9.网络监控系统服务器
    • 10.其他服务器(内部技术文档服务器,其他监控服务器)

其他涉及资源:

  • https://nagareshwar.securityxploded.com/download-softwares/
  • https://xenarmor.com/allinone-password-recovery-pro-software/
  • 红队实战演练环境:https://pan.baidu.com/s/14eVDglqba1aRXi9BGcBbug 提取码: taqu

参考:
https://blog.csdn.net/Waffle666/article/details/120157352
https://baijiahao.baidu.com/s?id=1697474162209043682&wfr=spider&for=pc

posted @ 2022-02-16 09:48  bonelee  阅读(579)  评论(0编辑  收藏  举报