当前位置: 首页 > news >正文

北京网站设计公司排行网站系统 建设和软件岗位职责

北京网站设计公司排行,网站系统 建设和软件岗位职责,自己网站建设,如何做网站条幅闪图一、AS-REP Roasting攻击 1、AS-REP Roasting攻击原理 AS-REP Roasting是一种对用户账户进行离线爆破的攻击方式。但是该攻击方式使用上比较受限#xff0c;因为其需要用户账户设置不要求Kerberos 预身份验证选项#xff0c;而该选项默认是没有勾选的。Kerberos 预身份验证…一、AS-REP Roasting攻击 1、AS-REP Roasting攻击原理 AS-REP Roasting是一种对用户账户进行离线爆破的攻击方式。但是该攻击方式使用上比较受限因为其需要用户账户设置不要求Kerberos 预身份验证选项而该选项默认是没有勾选的。Kerberos 预身份验证发生在 Kerberos 身份验证的第一阶段AS_REQAS REP它的主要作用是防止密码离线爆破。默认情况下预身份验证是开启的KDC 会记录密码错误次数防止在线爆破。 当关闭了预身份验证后攻击者可以使用指定用户向域控制器的 Kerberos 88 端口请求票据此时域控不会进行任何验证就将 TGT 和该用户 Hash 加密的 Login Session Key 返回。因此攻击者就可以对获取到的用户 Hash 加密的 Login Session Key 进行离线破解如果字典够强大则可能破解得到该指定用户的明文密码。 2、AS-REP Roasting攻击前提 域用户勾选“不要求Kerberos预身份验证” 需要一台可与KDC 88端口进行通信的主机 3、AS-REP Roasting攻击抓包分析 我们对域内用户 Mary 勾选“不要求 Kerberos 预身份验证”选项和不勾选“不要求 Kerberos 预身份验证”选项两种情况下使用工具向 AS 发起 AS-REQ在这个过程中使用 WireShark 抓包分析 勾选“不要求 Kerberos 预身份验证”选项 第一个包是以用户 Mary 身份发起一个 AS-REQ 请求。由于设置了“不要求 Kerberos 预身份验证”属性因此是不需要预认证的。可以看到在 AS-REQ 包中可以看到是没有 pA-ENC-TIMESTAMP 字段的。 第二个包是 KDC 的 AS-REP 包该包中返回了 TGT 以及用户 Mary Hash 加密的 Login Session Key。攻击者就是取得这串加密字符后进行本地离线爆破。 不勾选“不要求Kerberos预身份验证”选项 当取消了“不要求Kerberos预身份验证”属性是需要预认证的。可以看到在AS-REQ包中可以看到pA-ENC-TIMESTAMP 字段。该字段是用用户Hash加密时间戳。 4、AS-REP Roasting攻击过程 AS-REP Roasting 攻击过程主要有两步 第一步获取 AS-REP 响应包中用户 Hash 加密的 Login Session Key第二步对上一步获得的 Hash 进行解密。对于获取加密的 Login Session Key 的方式又分为域内机器和非域机器两种获取方式 1获取AS-REP响应包中用户Hash加密的Login Session Key 域内机器的获取方式 Rubeus Rubesu 是由国外安全研究院 harmj0y 用 C# 编写的针对 Kerberos 协议进行攻击的工具,可以发起Kerberos请求并将请求票据导入内存中Rebeus 提供了大量的用于 Kerberos 攻击的功能比如 TGT 请求/ST请求/AS-REP Roasting攻击/Kerberoasting攻击/委派攻击/黄金票据/白银票据等。 如果当前主机在域内可以通过执行如下命令运行 Rubeus该工具会自动搜索域内勾选了“不要求 Kerberos 预身份验证”选项的用户并以该用户身份发起 AS-REQ由于不需要预身份验证所以 KDC会直接返回 AS-REP包。然后该工具会将 AS-REP 包中返回的用户 Hash 加密的 Login Session Key 以 John 工具能破解的格式保存在指定文件中。 Rubeus.exe asreproast /format:john /outfile:hash.txt运行 Rubeus 工具获取域内设置了“不要求Kerberos预身份验证”的用户搜到了用户 mary然后以用户 mary 身份发送 AS-REQ 包并将 KD C返回的用户 Has h加密的 Login Session Key 保存为 hash.txt 文件。 ASREPRoast.ps1脚本 如果当前主机在域内则可通过执行如下命令导入 ASREPRoast.ps1 脚本并进行操作。该脚本会自动搜索域内设置了不要求 Kerberos 预身份验证的域用户并以该用户身份发送 AS-REQ由于不需要预身份验证所以域控会直接返回 AS-REP 包。然后该工具会输出不要求 Kerberos 预身份验证的用户名、DN 以及用户 Hash 加密的 Login Session Key。最后使用 select 语句过滤出 Hash。 Import-Module .\ASREPRoast.ps1 Invoke-ASREPRoast | select -ExpandProperty Hash非域机器的获取方式 对于非域内的机器就无法通过上面两种方式来获取 Hash 了。要想获取域内勾选了“不需要 Kerberos 预身份验证”选项的账户、可以使用 Adfind 执行如下命令来进行过滤查询前提是拥有一个有效的域账户和密码。查询出符合条件的域账户之后再使用 Impacket 下的 GetNPUsers.py 脚本获取针对指定用户的用户 Hash 加密的 Login Session Key。 AdFind.exe -h 域控IP:389 -u 域用户 -up 密码 -f useraccountcontrol:1.2.840.113556.1.4.803:4194304 -dn如图使用 Adfind 过滤域内勾选了“不需要 Kerberos 预身份验证”的账号过滤出了用户 Mary。 然后使用 Impacket 下的 GetNPUsers.py 脚本把上一步过滤出来的域账户写入 user.txt 文件中。运行如下命令获取针对指定用户的用户 Hash 加密的 Login Session Key该格式可以被 John 直接爆破。 python GetNPusers.py -dc-ip 域控IP -usersfile user.txt -format john 域名/2对上一步获得的Hash进行解密 john 使用 john 对上一步获取到的 Hash 进行爆破命令如下但是爆破成功与否与字典强度有关。 john --wordlist密码字典路径 hash值hashcat 而如果想用 hashcat 进行爆破由于第一步获取的 Hash 格式并不能直接被 hasheat 所爆破因此要手动添加 $23 到如图所示位置。 然后使用如下命令进行爆破爆破出明文密码为admin!#45 hashcat –m 18200 hash值 密码字典路径 -–forcehashcat命令格式https://hashcat.net/wiki/doku.php?idexample_hashes 二、Kerberoasting攻击 1、Kerberoasting攻击原理 Kerberoasting 是域渗透中经常使用的一项技术是 Tim Medin 在 DerbyCon 2014 上发布的一种域口令攻击方法Tim Medin 同时发布了配套的攻击工具 kerberoast。此后不少研究人员对 Kerberoasting 进行了改进和扩展在 GitHub 上开发发布了大量工具使得 Kerberoasting 逐渐发展成为域攻击的常用方法之一。 Kerberoasting 攻击是在 TGS_REP 的过程中用户将会收到由目标服务实例的 NTLM hash 加密生成的 ST(service ticket)如果获得这个 ST 票据由于该 ST 是用服务 Hash 进行加密的因此客户端在拿到该 ST 后可以用于本地离线爆破。如果攻击者的密码字典足够强大则很有可能爆破出 SPN 链接用户的明文密码。如果该服务在域内被配置为高权限运行那么攻击者可能接管整个域。 整个过程的核心点在于攻击者和 KDC 协商ST加密的时候协商的是使用 RC4_HMAC_MDS 加密算法。而该加密算法较容易被破解因此攻击者能在本地进行离线爆破。 2、服务主体名称SPN 1简介 SPNServicePrincipal Names服务主体名称是服务实例的唯一标识符当域内存在大量的服务时域控为了方便管理会对服务进行标识那么域控标识所使用的方法就是SPN。Kerberos 身份验证使用 SPN 将服务实例与服务登录帐户相关联。如果在整个林或域中的计算机上安装多个服务实例则每个实例都必须具有自己的 SPN。 2SPN类型分类 SPN可以分为以下两种类型 注册在活动目录的“机器账户computer”下 注册在活动目录的“域账号Users”下 注册在活动目录的机器账户CNComputer下。当某一个服务的权限为 Local System 或者 Network Service 时SPN 会注册在机器账户下同时所加入域的每台机器都会自动注册两个SPN“Host/主机名”和“Host/主机名.DC名”。 注册在活动目录的域账号CNUsers下。当某一个服务的权限为一个域用户时SPN会注册在活动目录的域账号下。默认只有机器用户或者域管理员用户才有权限去注册SPN(将服务注册在域用户的权限) 3SPN的格式定义 如下为 SPN 格式定义其中serviceclass 服务类和host主机名为必要参数port、server name为可选参数。 # SPN的格式 serviceclass/host:port/service nameservice class服务的名称例如LDAP、MSsql、SMTP等。host服务所在主机名host有两种形式可以是FQDN(webadmin.god.org)和NetBIOS(webadmin)这两种形式任意一种。port服务的端口号如果使用的是默认端口可以省略。server name服务的专有名称可以省略 4SPN服务注册 Kerberos 协议关于 Client 请求 Server 的某种服务假设我们需要请求某个 Server 的 Http 服务并且我们还想经过 Kerberos 协议的认证那么就需要给 Server 注册一个 SPN给 Server 注册 SPN 之后 Kerberos 就会将服务器实例和服务登录账号关联在 SPN 服务注册方面我们使用本地 Windows 自带的一个二进制的文件— Set SPN 进行注册。 setspn -U -S MySQL/webadmin.god.org:3306/ webadmin // 在主机webadmin上为webadmin用户注册SPN服务 setspn -L webadmin // 列出在webadmin帐户中注册的SPN setspn -q */* // 查询当前域内所有的SPN常见的SPN实例名称 常见服务SPN服务实例名称SQL ServerMSSQLSvc/adsmsSQLAP01.adsecurity.org:1433Hyper-V HostMicrosoft Virtual Console Service/adsmsHV01.adsecurity.orgExchangeExchangeMDB/adsmsEXCAS01.adsecurity.orgVMWareVCenterSTS/adsmsVC01.adsecurity.orgRDPTERMSERV/adsmsEXCAS01.adsecurity.orgWSManWSMAN/adsmsEXCAS01.adsecurity.org 以普通域用户注册 SPN 服务主体时需要域管理员的权限 3、Kerberoasting攻击抓包分析 我们通过使用 Impacket 执行请求注册于用户 Mary 下的 SPN 的服务票据。在此过程中使用 Wireshark 进行抓包分析。 python GetUserSPNs.py -request -dc-ip 192.168.3.21 god.org/mary:admin!#45 -outputfile hash.txt -request-user webadmin第1个 AS-REQ 包是用户 Mary 向 KDC 的 AS 请求TGT。 第2个 AS-REP 包是KDC返回的TGT正常情况下TGT的加密方式为AES256。 第3个 TGS-REQ 包用上一步得到的 TGT 向 KDC 的 TGS 服务请求针对用户webadmin 链接的SPN的服务票据。可以看到请求协商的加密类型有HMAC-MDSDES 和DES3。 第4个 TGS-REP 包是 KDC 的 TGS 服务返回的由指定 SPN 链接的用户的密码 Hash 加密的服务票据。可以看到加密类型为 HMAC_MDS而正常 TGS-REP 包的 ST 的默认加密类型为 AES256。 4、Kerberoasting攻击攻击过程 1攻击过程 攻击者提供一个正常的域用户密码对域进行身份认证KDC 在验证账户和密码的有效性后会返回一个 TGT。该 TGT 用于以后的 ST 请求。攻击者使用获得的 TGT 请求针对指定 SPN 的 ST 。在请求服务票据的 TGS-REQ 过程中攻击者可以指定其支持的 Kerberos 加密类型为 RC4_HMAC_MD5ARCFOUR-HMAC-MDS因为 RC4_HMAC_MD5 加密算法相比于其他加密算法更容易被破解。如果攻击者的 TGT 是有效的不管提供的域账户有无访问该指定 SPN 服务的权限KDC 都会查找哪个账户在 ServicedPrincipalName 属性中注册了所请求的 SPN然后用该用户的 Hash 以 RC4_HMAC_MDS 加密类型加密 ST 并在 TGS-REP 包中发送给攻击者这一步不管用户有没有访问服务的权限只要 TGT 正确就都会返回 ST 服务票据这也是 Kerberoasting 能利用的原因。也就是说任何一个用户只要 hash 正确就可以请求域内任何一个服务的 ST 票据攻击者从 TGS-REP 包中提取加密的 ST。由于该 ST 是用链接到请求的 SPN 的账户 Hash 加密的因此攻击者可以本地离线破解。如果攻击者的字典足够强大则可以爆破出该 SPN 所链接账户的明文密码。 注意Kerberoasting 攻击一般只针对注册在用户下的 SPN因为机器账户的密码是随机生成的128位字符是不可能爆破出来的。 2实战思路 查询域内注册于域用户下的 SPN请求指定 SPN 的 ST导出请求的 ST对该导出的 ST 进行离线爆破 5、SPN的发现 setspn命令 如果当前主机在域内并且使用域用户进行登录如果没有登录就提权到 system 用户可以使用过以下命令进行查询。 setspn -q */* // 查询当前域内所有的SPN setspn -T examples.com -q */* // 查看指定域内所有的SPN如果指定域不存在默认切换查找本域的SPN或本域重复的SPNRiskySPN RiskySPN 是一个 PowerShell 脚本的集合专注于检测与 SPN 相关的账户是否滥用该脚本可以帮助我们自动识别弱密码服务票据根据用户账户和密码过期时间来查找最容易包含弱密码的票据。执行如下命令该脚本会自动查找并过滤出自动去除注册于krbtgt下的kadmin/changepw当前域内注册于域用户下的可能包含弱密码的 SPN 的详细信息。 Import-Module .\Find-PotentiallyCrackableAccounts.ps1 Find-PotentiallyCrackableAccounts -FullDate项目地址https://github.com/cyberark/RiskySPN GetUserSPNs GetUserSPNs 是 Kerberoast 工具集中查询注册于域内用户下的 SPN 的脚本该脚本会查询域内所有注册于用户下的 SPN包括注册于 krbtgt 下的 kadmin/changepw。 Import-Module .\GetUserSPNs.ps1服务主体名称SPN也可以从未加入域的系统中发现impacket 工具包下的 python 版 GetUserSPNs 可以为我们做到这点但是无法使用基于 token 的身份验证因此与 Active Directory 进行通信需要获取有效的域凭证 PowerView.ps1 PowerView.ps1 是 PowerSpolit 中 Recon 目录下的一个 PowerShell 脚本该脚本可用于查询过滤出域用户下注册了 SPN 的用户包括 krbtgt 用户并返回用户的详细信息。 Import-Module .\PowerView.ps1 Get-NetUser –SPN6、请求SPN服务票据 当过滤出注册于用户下的 SPN 之后我们就需要请求这些 SPN 的服务票据了。 impacket - GetUserSPNs Impacket 中的 GetUserSPNs.py 脚本可以请求注册于用户下的所有 SPN 的服务票据也可以请求注册于指定用户下的 SPN 的服务票据。该脚本使用命令如下 # 请求注册于用户下的所有SPN的服务票据并以 hashcat 能破解的格式保存为指定文件 python GetUserSPNs.py -request -dc-ip 域控IP 域名/域用户账号:密码 -outputfile 文件名 # 请求注册于指定用户下的SPN的服务票据 python GetUserSPNs.py -request -dc-ip 域控IP 域名/域用户账号:密码 -outputfile 文件名 -request-user 指定域用户Rubeus Rubeus 中的 Kerberoast 支持对所有用户或特定用户执行 Kerberoasting 操作它的原理在于先用 LDAP 查询域内所有注册在域用户下的 SPN除了kadmin/changepw再通过发送 TGS 包直接输出能使用 John 或 hashcat 爆破的 Hash。该工具使用命令如下 # 请求注册于用户下的所有SPN的服务票据并以hashcat能破解的格式保存到指定文件 Rubeus.exe kerberoast /format:john /outfile:文件名 # 请求注册于用户下的指定SPN的服务票据并以hashcat能破解的格式保存到指定文件 Rubeus.exe kerberoast /spn:serviceclass/host:port/service name /format:john outfile:文件名mimikatz 使用 mimikatz 请求指定 SPN 的服务票据请求的服务票据将保存在内存中然后从内存中导出票据 # 申请指定的SPN服务票据 kerberos::ask /target:serviceclass/host:port/service name kerberos::ask /target:MsSQL/dbadmin.god.org # 查看票据 kerberos::list # 导出所有票据 kerberos::list /export 7、离线破解用户服务票据HASH 通过前面几步取得了 .kirbi 票据文件或 hashcat、John 能直接破解的文件接下来就需要本地离线破解服务票据了。 tgsrepcrack脚本 kerberoast 是用于攻击 Kerberos 实现的一些工具的集合。该工具中的 tgsrepcrack.py 脚本可以对 mimikatz 导出的 kirbi 格式的票据进行爆破。 python2 tgsrepcrack.py 密码字典 票据hashcat 针对 Impacket 和 Rebeus 请求的票据格式可以使用 hasheat 执行如下命令来进行爆破。 hashcat –m 13100 hash值 密码字典路径 -–force8、Kerberoasting 攻击防御 确保服务账户和密码为强密码具有随机性并定期修改。Kerberoasting能成功的最大因素就是KDC返回的ST是用RC4_HMAC_MD5加密算法加密的攻击者可以比较简单地进行爆破。如果配置强制使用AES256-HMAC方式对Kerberos 票据进行加密那么即使攻击者获取了 ST也无法将其破解。但这种加密方式存在兼容性问题。许多服务账户在域中被分配了过高的权限从而导致攻击者在破解出该服务账户的密码后能迅速进行域内权限提升。因此应该对域内的服务账户权限进行限制采取最小化权限原则。防守方在检测Kerberoasting攻击时可以进行日志审计重点关注事件ID为4769请求Kerberos服务票据操作的日志。如果有过多的4769 日志可以对事件ID为4769的日志进行筛选筛选出票据加密类型为0x17RC4-HMAC的日志如图所示。 参考书籍 《域渗透攻防指南》(谢兆国 张秋圆)
http://www.zqtcl.cn/news/270568/

相关文章:

  • 安徽茶叶商城网站建设贵阳市花溪区建设局网站
  • 广西网站建设制作推广普通话倡议书
  • 最新网站建设的模板下载小制作作文400字
  • 海南省城乡建设部网站首页央视新闻
  • 高端白酒品牌有哪些网站怎么做才能得到更好的优化
  • 北京安慧桥网站建设青之峰做网站
  • 免费制作网站的平台推广网站多少钱
  • 怎么增加网站的收录量广西建设厅网站地址
  • flash网站方案料神wordpress建站教程
  • 杭州 企业 建网站蚌埠网站优化
  • 网站建设的分类黄骅港最新招聘
  • 门户网站建设和检务公开自查搜索引擎排名优化价格
  • 湘阴网站建设如何建立自己的网站
  • 国外的ps网站网页源代码翻译器
  • 六安马昌友优化营商环境 助推高质量发展
  • wdcp 配置网站什么是搜索引擎营销?
  • 东莞网站上排名建设银行网站登录不进去
  • 陕西建设厅八大员官方网站服装公司做哪个网站
  • 福建省住房和城乡建设厅网站站群 网站如何做
  • 网站换稳定服务器网页制造与网站建设论文
  • wordpress 产品目录seo技术是干什么的
  • 做里番网站犯法吗中建八局第一建设有限公司资质
  • 怎么制作网站教程电商seo建站优化价格表
  • 黄平网站建设网站建设公司广告 晴天娃娃
  • 中山市 有限公司网站建设网站建设 福步 2018
  • 英语网站开发中国桥梁建设公司排名
  • php做的网站怎么运行公司网站备案查询
  • jsp 响应式网站模板设计类网站策划案
  • 建设银行网站怎么注销网银百度广告联盟
  • flash建网站教程天津市建设工程评标专家网