渗透测试--域攻击思路Book

作者的掏心话

    该系列名为  渗透测试-XXXX    

    该系列都是比较基础的内容,如各位没找到自己想要的内容,小编给各位赔不是了。
    该系列是以俺日常学习笔记为数据基础,所整理出来的使用手册。该系列希望能够做到成为渗透测试时的帮助手册,提醒渗透的思路、渗透工具的具体使用等内容,以免各位在互联网再不断翻找。由于互联网的内容良莠不齐,俺可保证收集到的内容均经过验证,所以请放心食用。

我们必须记录的信息

        整个域渗透过程都充斥着这些消息,我们必须对其保持高度敏感:

1.域用户\组

2.加域设备

3.关键服务

4.存在漏洞主机

使用文档简介

        该文档的重点在于思路上的枚举,瘾小生会将所有经过验证的思路写于此处,以便使用,工具的具体使用本文没有详细介绍,参考文章《渗透测试--域攻击工具Playbook》,里面有详细的攻击使用指令。这两篇文章是相辅相成的,在这里所有的手法指令都能在那篇文章找到对应点。

寻找立足点

        寻找立足点的最终目的为拿到一台加域的Windows主机,可以让这台主机搭载我们的toolkit。我们通常有以下过程和手段:

1.嗅探存活的主机

2.对LLMNR/NBT-NS投毒

3.用户枚举&密码喷洒&了解密码策略

4.Administrator密码复用

5.内网漏洞扫描

立足点建立

        当我们寻找到可以立足的地方后,我们就可以在这个地点上做一些别的事情了,站稳脚跟后我们可以完成以下操作:

枚举当前主机的安全策略

枚举当前主机的基本信息

枚举当前主机的防御情况

枚举当前主机的人员使用情况

网络情况

凭证枚举

站在立足点上寻找更高的立足点 

        立足点可能各种情况,针对这些情况,我们应该有不同的处理办法。但是万变不离其宗,我们在获取到一个立足点的时候,我们必须了解,我们是谁,我们在哪里,我们可以做什么。

用户

设备

服务

设备

        设备是用户的载体,在设备上的时候,我们有必要获取这个设备上的一切用户凭证。

在Linux设备上Responder嗅探

在Windows设备上Inveigh嗅探

在Windows设备上提取LSA

在Windows设备上提取SAM

在Linux主机上查看ccache文件

在Linux主机上查看keytab文件

在Linux\Winodws设备上使用Lazagne

在Linux\Winodws设备上搜索用户文件

在Linux\Winodws设备上搜索配置文件

在DC设备上复制NTDS.dit

在Linux设备上使用linpeas自动化获取敏感信息

渗透测试--Windows凭证收集-CSDN博客

渗透测试--Linux上获取凭证-CSDN博客

用户

        用户是权限的载体,当我们获取到一个用户的时候,我们非常有必要了解用户价值,以及其可能深入的可能性。

枚举用户的所属组

枚举用户的ACL权限

枚举用户可用服务

构建域地图以了解用户是否拥有价值

猜测用户的功能

服务

        服务很可能会导致凭证的泄露,这正是我们喜欢的。服务是否存在漏洞,是否存在缺陷,能否获取凭证,是我们应当思考的东西

mssql RCE

mssql 窃取Hash

SMB 窃取Hash

SMB Pwned 则可以做一切你想做的

域信息收集

探测存活主机

fping扫描

Responder嗅探存活主机

对LLMNR/NBT-NS投毒

Responder投毒

Responder hash存储位置/usr/share/responder/logs/

Powershell启动Inveigh投毒

cmd启动Inveigh投毒,在控制台输入HELP即可看到一些操作手册。

 用户枚举

Windows SMB空会话枚举

rpcclient工具利用SMB会话检索用户名

crackmapexec工具利用SMB会话检索用户名

nxc工具利用SMB检索用户名

Windows net工具利用SMB会话检索用户名

ldapsearch工具利用LDAP匿名绑定枚举用户名

windapsearch工具利用LDAP匿名绑定枚举用户名

kerbrute工具利用kerberous协议爆破枚举用户名

密码喷洒行为守则

        因为我们是白客,我们必须负责人地采取渗透行为,来维护信任关系。所以我们应当记录我们的密码喷洒活动:

【需记录内容】

  • 目标账户
  • 攻击中使用的域控制器
  • 喷药时间
  • 喷药日期
  • 尝试输入密码

【我们必须避免的情况】

  • 锁定用户账户

密码喷洒 

hydra&medusa密码喷洒渗透测试-暴力破解_渗透测试密码本-CSDN博客

bash密码喷洒

nxc&crackmapexec密码喷洒

 kerbrute密码喷洒 

Administrator密码复用

DomainPasswordSpray.ps1在Windows主机上进行密码喷洒

了解密码策略

rpcclient枚举密码策略

crackmapexec枚举密码策略

enum4linux枚举密码策略

ldapsearch枚举密码策略

Windows net工具枚举密码策略

PowerView.ps1枚举密码策略

密码本制作

参考渗透测试--密码本生成-CSDN博客

fscan扫描内网漏洞情况

         fscan可能是我们的好帮手https://github.com/shadow1ng/fscan。但请记住,这种做法比较吵闹。

枚举当前主机的安全策略 

Powershell枚举当前主机是否开启实时防护

Powershell枚举当前主机的是否存在app锁

Powershell枚举当前主机的Powershell是否受限

Powershell枚举当前主机的LAPS策略

Powershell使用LAPS策略枚举LAPS主机密码

枚举当前主机的基本信息

使用cmd枚举主机基本信息

使用Powershell枚举当前主机基本信息

使用WMIC枚举当前主机补丁情况

使用WMIC枚举当前主机的整体情况

使用WMIC枚举当前主机的进程列表

枚举当前主机的防御情况

使用Powershell枚举当前主机防火墙情况

使用Powershell枚举当前主机Windows Defender情况

使用Powershell枚举当前主机的AV设置和版本号情况

枚举当前主机的人员使用情况

使用qwinsta了解当前主机的使用情况

网络情况

使用cmd了解当前主机的网络情况

使用net了解当前主机的网络情况

建立SMB服务点

在立足点使用net工具建立SMB服务

枚举域密码策略、组策略、域信息

使用net枚举密码策略

使用PowerView枚举组策略

使用Powershell枚举组策略

Powerview枚举域信息SID

枚举域名信息

ActiveDirectory PowerShell枚举域名信息

使用WMIC枚举域和域控信息

枚举域用户

CrackmapExec & nxc枚举用户

rpcclient枚举用户
rpcclient枚举用户详细信息,依据SID

smbmap枚举用户

net工具枚举用户

Windapsearch枚举域用户

在立足点使用ActiveDirectory PowerShell枚举域用户

在立足点使用Powerview枚举用户详细信息

Powerview枚举子域用户信息

在立足点使用Powershell测试本地管理员人员

在立足点使用net枚举域设备

在立足点使用net枚举域内某用户详细信息

在立足点使用net枚举域内用户列表

在立足点使用dsquery枚举域内用户列表

在立足点使用dsquery按通配符搜索域内信息

在立足点使用dsquery按特定属性集进行搜索域内信息

在立足点使用Powershell搜索用户详细信息

在立足点使用net枚举组内用户

枚举管理员

Windapsearch查找域管理员名称

Windapsearch查找特权账户位置

在立足点使用net寻找本地管理员账户

在立足点使用net列出本地管理员组的用户

Powerview枚举本地账号的管理员权限

Rubeus枚举特权账户的管理员用户以及其TGS票据

Powerview检索根域管理员SID

枚举主机上登录的用户、本地组

nxc & CrackMapExec枚举登录用户

使用Wmic枚举当前主机上登录的用户

使用Wmic枚举当前主机上的本地组

在立足点使用net枚举主机的本地组

枚举域组,组成员

CrackmapExec & nxc枚举组

rpcclient枚举域组

在立足点使用ActiveDirectory PowerShell枚举域组

在立足点使用ActiveDirectory Power域团队详情Shell枚举

在立足点使用ActiveDirectory PowerShell枚举域团队成员

在立足点使用Powerview枚举域组用户信息

Powershell枚举域组详细信息

在立足点使用net枚举域组列表

在立足点使用net枚举域组信息

在立足点使用dsquery按通配符搜索域内信息

在立足点使用dsquery按特定属性集进行搜索域内信息

枚举使用了SPN用户

在立足点使用Powerview查找设置了SPN的用户

在立足点使用Powershell查找设置了SPN的用户

在立足点使用impacket-GetUserSPNs.py查找设置了SPN的用户

在立足点使用setspn.exe枚举设置了SPN的用户

枚举使用了RC4进行密码存储的用户

Powershell查找RC4可逆密码存储用户

powerview了解哪些用户采用RC4进行加密

枚举ACL,GUID反向查询

Powerview枚举当前用户对所有对象的ACL

Powerview枚举当前用户对单个对象的ACL

Powershell枚举当前用户对单个对象的ACL

Powershell枚举当前用户对所有对象的ACL

Powershell完成GUID反向查询权限

Google搜索GUID查询权限

  • ForceChangePassword abused with Set-DomainUserPassword
  • Add Members abused with Add-DomainGroupMember
  • GenericAll abused with Set-DomainUserPassword or Add-DomainGroupMember
  • GenericWrite abused with Set-DomainObject
  • WriteOwner abused with Set-DomainObjectOwner
  • WriteDACL abused with Add-DomainObjectACL
  • AllExtendedRights abused with Set-DomainUserPassword or Add-DomainGroupMember
  • Addself abused with Add-DomainGroupMember

枚举域用户组策略权限

Powerview枚举域用户GPO权限

Powershell枚举域用户GPO权限

枚举域设备,域控

在立足点使用dsquery枚举域设备

netdom查询域控

netdom查询域工作站和服务器

在立足点使用dsquery按通配符搜索域内信息

在立足点使用dsquery按特定属性集进行搜索域内信息

在立足点使用dsquery搜索域控

枚举域内共享

在立足点使用net工具枚举域内的SMB共享

在立足点使用net工具列出当前计算机的共享

枚举DNS记录

使用adidnsdump枚举DNS记录

 枚举域内敏感信息

1.使用Powerview枚举描述字段,可能发现密码
2.使用Powerview枚举PASSWD_NOTREQD字段用户,可能发现空密码用户
3.留意.bat .vbs .ps1文件,可能包含敏感信息
4.组策略首选项GPP密码,drives.xml printers.xml services.xml scheduledtasks.xml ,在这些文件中使用的密码,cpassword采用AES加密,我们可以在MSDN上找到AES的私钥https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-gppref/2c15cbf0-f086-4c74-8b70-1f2fa45dd4be?redirectedfrom=MSDN,也可以使用gpp-decrypt直接解密
5.在受害机上Get-GPPPassword.ps1获取GPP密码
6.使用crackmapexec枚举SMB服务是否存在GPP文件并解析密码
7.使用Powerview、Rubeus、kerburte、Impacket-GetNPUsers.py枚举DONT_REQ_PREAUTH用户,获取不需要认证就能获取TGT的用户

构建域地图、查找域信任关系

Bloodhound构建域地图

Powerview构建域态势地图

sharphound构建域地图

PowerView枚举信任关系

Powershell枚举信任关系

netdom查询与信任

转储当前主机有关账户的信息

使用Wmic转储任何有关服务账户的系统账户信息

枚举主机SMB服务的分享文件夹胡敏感信息

smbmap可递归搜索分享文件夹

CrackmapExec & nxc枚举SMB服务器分享

CrackmapExec & nxc枚举SMB服务器文件基于爬虫

在立足点使用net查看当前主机的smb分享

snaffler爬取所有SMB服务器的有趣文件

基本操作

从NTDS.DIT提取哈希值

SecretsDump 提取ntds.dit哈希值

DSInternals提取ntds.dit哈希值

创建CMD导致RCE

psexec执行cmd

wmiexec执行cmd

创建Powershell导致RCE

evil-winrm执行powershell 

将用户添加到管理员

在立足点使用net将用户添加到管理员 

获取TGS票据

impacket-GetUserSPNs索要TGS门票

setspn配合Powershell索要TGS票证并存入内存

使用PowerView索要TGS票证

使用Rubeus索要TGS票证

枚举用户支持的加密类型

使用Powershell查看用户支持的加密类型 

为设备写入TGT票证

通过Powershell创建PSCredential对象完成TGT票证写入

Powershell创建SecureString对象完成后TGT票证写入

PowerView强制修改密码-GenericALL权限

PowerView添加到用户组-GenericWrite权限

PowerView开启虚假SPN服务获取TGS票据

runas开启某用户上下文的Powershell

mimikatz在具有DCsync权限用户上下文下提取NTLM

横向移动

RDP

使用powerview枚举RDP的用户

Bloodhound枚举RDP用户

MSSQL

Bloodhound枚举MSSQL用户

PowerUpSQL枚举MSSQL实例

mssqlclient创建mssqlshell

Winrm

使用powerview枚举WINRM的用户

Bloodhound枚举WINRM用户

Powershell建立WINRM会话

携带NTLM进行横向

impacket工具集
xfreerdp 依据RDP协议获取远程桌面
evil-winrm 依据winrm协议获取Powershell RCE
CME&nxc 依据SMB实现RCE 枚举 等大量功能
CME&nxc 实现PTH枚举各种服务

域内攻击

nopac漏洞导致RCE和权限提升

printNightmare漏洞导致RCE和权限提升

PetitPotam漏洞导致RCE和权限提升

ACL滥用导致权限提升

Exchange导致权限提升

PrivExchange强迫对任意主机HTTP身份验证,导致中继攻击

打印机配置错误使用RpcOpenPrinter方法强制服务器对任何主机进行SMB身份验证

MS14-068导致权限提升

嗅探LDAP凭证导致获取凭证

DCsync攻击

mimikatz实施DCsync攻击

secretdump实施DCsync攻击

域间攻击

ExtraSids攻击,通过sid历史完成域间的控制

滥用域信任,以当前域权限攻击信任域

        Powerview

        bloodhound

        GetUserSPNs

解决Kerberos双跳问题

使用远程主机的Powershell导入PScredential

使用远程主机注册PSSession配置

攻击链路执行

        由于域内的攻击链路并非固定化的操作,在此只会罗列基本的样例。

ACL链路-例子1

攻击链路

  1. 使用wley用户更改damundsen用户的密码【该步骤危险,需要询问被测方】
  2. damundsen用户身份进行身份验证并利用GenericWrite权限将我们控制的用户添加到Help Desk Level 1组中
  3. 利用Information Technology组中嵌套的组成员身份并利用GenericAll权限来控制adunn用户创建SPN服务,并获取该用户TGS票据,然后破解
  4. 使用adunn用户执行DCsync攻击【需要知道adunn的密码】

 攻击操作

1.使用Powershell构造好更改密码需要的对象。对象为PSCredential和SeureString对象,PSCredential是当前账户的认证信息,SeureString是想修改成为的密码。

2.使用Powerview修改damundsen密码。

3.使用Powershell构建damundsen的PSCredential凭证。

4.利用damundsen用户对Help desk level 1 组的 GenericWrite权限,将damundsen用户写入Help desk level 1 组。

5.将特权账户damundsen开启SPN,从而让其他机器可以请求这个服务,以获取TGS票证。

6.离线破解TGS票证

7.使用adunn账户的权限,完成DCsync攻击

8.清理自己的行踪,使用Powerview删除创建的SPN

9.使用Powerview删除damundsen在help desk level 1中的权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值