0x00:from

--《内网安全攻防》

0x01:域管理员模拟方法简介

在渗透测试中,如果已经拥有一个meterpreter会话,就可以使用Incognio来模拟域管理员或者添加一个域管理员,通过尝试遍历系统中所有可用的授权令牌来添加新的管理员。具体操作后面会讲。

1.利用powershell收集域信息

powershell是微软推出的一款用于满足管理员对操作系统及应用程序易用性和扩展性需求的脚本环境,可以说是cmd.exe的加强版。微软已经讲powershell2.0内置在Windows server 2008 和windows 7中,将powershell3.0内置在Windows server 2012和Windows 8中,将powershell4.0内置在win server 2012 r2和windows 8.1中,将powershell5.0内置在windows server 2016和win 10中。power shell作为微软官方推出的脚本语言,在Windows操作系统中的强大功能众所周知。系统管理员可以利用它提高windows管理工作的自动化程度。渗透测试人员可以利用它更好的进行安全测试。

powerview是一款依赖powershell和wmi对内网进行查询的常用渗透测试脚本,它集成在powersploit工具包

打开一个powershell窗口,进入powersploit目录,然后打开recon目录,输入命令“Import-Module .\PowerView.ps1”,导入脚本

powerview的常用命令如下:

  • Get-NetDomain:获取当前用户所在域的名称
  • Get-NetUser:获取所有用户的详细信息
  • Get-NetDomainController:获取所有域控制器的信息
  • Get-NetComputer:获取域内所有机器的详细信息
  • Get-NetOU:获取域中的OU信息
  • Get-NetGroup:获取所有域内组和组成员的信息
  • Get-NetFileServer:根据SPN获取当前域使用的文件服务器信息
  • Get-NetShare:获取当前域内所有的网络共享信息
  • Get-NetSession:获取指定服务器的会话
  • Get-NetRDPSession:获取指定服务器的远程连接
  • Get-NetProcess:获取远程主机的进程
  • Get-UserEvent:获取指定用户的日志
  • Get-ADObject:获取活动目录的对象
  • Get-NetGPO:获取域内所有的组策略对象
  • Get-DomainPolicy:获取域默认策略或域控制器策略
  • Invoke-UserHunter:获取域用户登陆的计算机信息及该用户是否有本地管理员权限
  • Invoke-OroccssHunter:通过查询域内所有的机器进程找到特定用户
  • Invoke-UserEventHunter:根据用户日志查询某域用户登陆过哪些域机器

2.域分析工具BloodHound

BloodHound是一款免费的工具。一方面,BloodHound通过图与线的形式,将域内用户、计算机、组、会话、ACL,以及与内所有的相关用户、组、计算机、登录信息、访问控制策略之间的关系,直观的展现在red team成员面前,为他们更便捷的分析域内情况、更快速的在域内提示权限提供条件,另一方面, BloodHound 可以帮助BlueTeam成员更好的对己方网络系统进行安全检查,以保证域的安全性。 BloodHound 使用图形理论、在活动目录环境中自动清理大部分人员之间的关系和细节。使用 BloodHound ,可以快速、深入的了解活动目录中用户之间的关系,获取哪些用户具有管理员权哪些用户对所有的计算机都具有管理员权限、哪些用户是有效的用户组成员等信息。

BloodHound 可以在域内导出相关信息,将采集的数据导入本地Neo4j数据库中,并进行展示和分析。Neo4j是一款NoSQL图形数据库,它将结构化数据存储在网络内而不是表中。BloodHound正是利用Neo4j的这种特性,通过合理的分析,直观地以节点空间的形式表达相关数据的。Neo4j和Mysql及其他数据库一样,拥有自己的查询语音Cypher Query Language。因为Neo4j是一款非关系型数据库,所以,要想在其中进行查询,同样需要使用其特有的语法。

1.配置环境

首先,需要准备一台安装了windows服务器操作系统的机器。为了方便、快捷的使用Neo4j的web管理界面,推荐使用chrome或者Firefox

Neo4j数据库的运行需要java环境的支持。

在Neo4j官网选择Windows选项,下载Neo4j数据库安装,解压将bin目录添加到环境变量。启动服务

neo4j.bat console

neo4j的默认配置如下:

输入用户名密码后,会提示修改密码,密码修改为了admin@123

github的BloodHound项目提供了Neo4j的Release版本,下载地址:https://github.com/BloodHoundAD/BloodHound/releases/download/2.0.4/BloodHound-win32-x64.zip

下载后将文件解压,双击bloodhound.exe

  • Database URL :127.0.0.1:7687
  • DB username:neo4j
  • DB password:admin@123

如图所示,则进入bloodhound主界面

界面左上角是菜单按钮和搜索栏。三个选项卡分别是数据库信息(Database Info)、节点信息(Node Info)和查询(Queries)。数据库信息选项卡中显示了所分析域的用户数量、计算机数量、组数量、会话数量、ACL数量、关系等信息,用户可以在此处执行基本的数据库管理操作,包括注销和切换数据库,以及清除当前加载的数据库。节点信息选项卡中显示了用户再图表中单击的节点的信息。查询选项卡中显示了BloodHound预置的查询请求和用户自己构建的查询请求。

界面右上角是设置区。第一个是刷新功能, BloodHound 将重新就算并绘制当前显示的图形;第二个是导出图形功能,可以将当前绘制的图形导出为json或PNG文件;第三个是导入图形功能,可以导入json文件;第四个是上传数据功能, BloodHound 将对上传的文件进行自动检测,然后获取CSV格式的数据;第五个是更改布局类型功能,用于在分层和强制定向布局之间切换;第六个是设置功能,可以更改节点的折叠行为,以及在不同的细节模式之间切换。

2.采集数据

在使用 BloodHound 进行分析时,需要调用来自活动目录的三条信息,具体如下。

  • 哪些用户登陆了哪些机器?
  • 哪些用户拥有管理员权限?
  • 哪些用户和组属于哪些组?

BloodHound 需要的这三条信息依赖于PowerView.ps1脚本的 BloodHound 。 BloodHound 分为两部分,一是Powershell采集器脚本(有两个版本,旧版本叫做 BloodHound_Old.ps1,新版本叫做SharpHound.ps1),二是可执行文件SharpHound.exe。在大多数情况下,收集此信息不需要系统管理员权限。

下载地址: https://github.com/BloodHoundAD/BloodHound/blob/master/Ingestors/SharpHound.ps1

https://github.com/BloodHoundAD/BloodHound/blob/master/Ingestors/SharpHound.exe

然后,使用 SharpHound.exe 提取域内信息。输入如下命令,将 SharpHound.exe 复制到目标系统中,然后使用cobalt strike 中的beacon进行命令操作。

 SharpHound.exe  -c all

3.导入数据

在Beacon的当前目录下,会生成类似20200318110837_BloodHound.zip的文件

BloodHound支持通过界面上传单个文件和zip文件,最简单的方法是将压缩文件放到界面上节点信息选项卡以外的任意位置,逐个上传json文件。

文件上传后,即可查看内网的相关信息。

  • 1、查找所有域管理员
  • 2、寻找最短到达域管理员路径
  • 3、寻找管理员登陆记录
  • 4、存在Session记录最多的前十个用户
  • 5、存在Session记录最多的前十个计算机
  • 6、拥有最多本地管理权限的前十个用户
  • 7、拥有最多的管理员登陆的前十个机器
  • 8、具有外部域组成员的用户
  • 9、具有外部域组成员的组
  • 10、域信任地图
  • 11、SPN用户的最短路径
  • 12、SPN用户到域管理员的最短路径

缺点是会导致产生大量log

0x02:敏感数据的防护

内网的核心敏感数据,不仅包括数据库、电子邮件,还包括个人数据库及组织的业务数据、技术数据等。可以说,价值高的数据基本都在内网中。因此,了解攻击者的操作流程,对内网数据安全防护工作至关重要。

1.资料、数据、文件的定位流程

内网数据防护的第一步,就是要熟悉攻击者获取数据的流程。在实际的网络环境中,攻击者主要通过各种恶意方法来定位公司内部相关人员的机器,从而获得资料、数据、文件。定位的大致流程如下:

定位内部人事组织结构
在内部人事组织结构中寻找需要监视的人员
定位相关人员的机器
监视相关人员存放文档的位置
列出存放文档的服务器的目录

2.重点核心业务机器及敏感信息防护

重点核心业务机器是攻击者比较关心的机器,因此,我们需要对这些机器采取相应的安全防护

核心业务计算机

  • 高级管理人员、系统管理员、财务/人事/业务人员的个人计算机。
  • 产品管理系统服务器
  • 办公系统服务器
  • 财务应用系统服务器
  • 核心产品源码服务器(IT公司通常会架设自己的SVN或者GIT服务器)
  • 数据库服务器
  • 文件服务器、共享服务器
  • 电子邮件服务器
  • 网络监控系统服务器
  • 其他服务器(分公司、工厂)

敏感信息和敏感文件

  • 站点源码备份文件、数据库备份文件等
  • 各类数据库的web管理入口,例如phpmyadmin、adminer
  • 浏览器密码和浏览器cookie
  • 其他用户会话、3389和ipc$连接记录、“回收站”中的信息等。
  • windows无线密码
  • 网络内部的各种账号和密码、电子邮箱、VPN、FTP、TeamView等。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注