Kerberos双跳变通办法

这篇文章将介绍一些快速而邪恶的解决方法,以克服在Windows环境中进行红队活动时可怕的两次跳跃问题。这篇文章中介绍的方法也涉及到一般的Windows横向移动技术-而不仅仅是双跳解决方案。

如果您必须横向移动或在Windows环境中进行常规系统管理,那么您可能会遇到这个障碍-特别是Powershell Remoting / WinRM。如果您不确定什么是两次跳转问题,下面将对其进行简要介绍。否则,请查阅此Microsoft文章以获得更好的主意。

当您的攻击方具有内部网络访问权限,但未加入域时,此帖子将关注一个场景(从红色团队成员的角度出发)。还假设您作为攻击者仅具有CLI访问权限,并且具有“本地管理员”资格-而且在整个域中都启用了WinRM。

笔记
列出的方法并不全面。通常,这些方法将取决于环境配置,权限,收获的凭据等。

WinRM双跳蓝调*

这是问题的经典示例。左侧是从攻击者框到第一个目标跃点(bizintel)的PowerShell远程会话。右侧是直接终端到teltel。两者都在远程目标secdev上运行dir命令。

下面是另一个示例,显示了teltel上的PS远程会话,然后尝试将另一个PS远程会话插入secdev。类似于跳箱情况。

如果PS远程处理的功能与Linux上通过SSH跳来跳去的功能相同,那会很好吗?不,这不容易!

Microsoft解决方案

此问题是设计使然(Kerberos),Microsoft提供了解决此问题的解决方案。尽管从某种意义上说,人们可能无权或无权进行某些更改,尤其是基于资源的委派的最安全的解决方案。

相对于此博客文章,这是MS提供解决方案的最新文章。提到的建议的更高安全性方法是“基于资源的约束委派”。由于这是一个红色的团队职位,并且我们还没有Domain Admin,因此我们将避免涉及此内容。此外,此处不会介绍CredSSP技术。

调用命令

这种方法有点像“双跳”问题,“不一定”可以解决。它不依赖任何配置,您只需在攻击框中运行它即可。它基本上是一个嵌套的Invoke-Command。

这将在第三个服务器secdev上运行主机名。

$cred = Get-Credential ta\redsuit
Invoke-Command -ComputerName bizintel -Credential $cred -ScriptBlock {Invoke-Command -ComputerName secdev -Credential $Using:cred -ScriptBlock {hostname}
}

笨拙的,但是可以照本宣科。

您还可以使用bizintel建立PS-Session,然后从那里直接运行带有$ cred的Invoke-Command。虽然,从攻击框中运行它可以集中执行任务。

端口代理

由于我们在中间目标teltel:10.35.8.17上具有本地管理员,因此您可以添加端口转发规则,以将请求发送到最终/第三个服务器secdev:10.35.8.23。

可以快速使用netsh撕掉一条线并添加规则。

netsh interface portproxy add v4tov4 listenport=5446 listenaddress=10.35.8.17 connectport=5985 connectaddress=10.35.8.23

因此,bizintel正在侦听端口5446,并将转发5446的请求转发到secdev端口5985(又名WinRM)。

然后在Windows防火墙上打一个洞,这也可以使用快速的netsh单行程序完成。

netsh advfirewall firewall add rule name=fwd dir=in action=allow protocol=TCP localport=5446

现在建立会话,它将把我们转发到secdev。

winrs.exe

使用winrs.exe时,Portforwarding WinRM请求似乎也可以工作。如果您知道正在监视PowerShell,那么这可能是一个更好的选择。下面的命令将“ secdev”作为主机名的结果。

winrs -r:http://bizintel:5446 -u:ta\redsuit -p:2600leet hostname

像Invoke-Command一样,它可以很容易地编写脚本,因此攻击者可以简单地将系统命令作为参数发出。通用批处理脚本示例winrm.bat:

笔记
如果您正在阅读TheSprawl实验室范围内的此书并杀死他们,则用户redsuit的密码不是2600leet,如上所示le

OpenSSH

此方法需要在中介盒(也称为bizintel)上安装OpenSSH。可以完全通过CLI完成Windows版OpenSSH的安装,完全不需要花费很多时间,而且它也不会标记为恶意软件!

当然,在某些情况下,这可能不可行,太麻烦或可能是OpSec的一般风险。

此方法在跳箱设置中特别有用-可以访问否则无法访问的网络。建立SSH连接后,用户/攻击者可以根据需要针对分段网络触发尽可能多的New-PSSession,而不会引发双跳问题。

当配置为在OpenSSH中使用密码身份验证(不是密钥或Kerberos)时,登录类型为8,即网络明文登录。这并不意味着您的密码是明文发送的,实际上是通过SSH加密的。到达后,它会通过其身份验证包将其加密为未加密的明文,以供您会话,以便进一步请求多汁的TGT!

这使中间服务器可以代表您请求并获取TGT,以将其本地存储在中间服务器上。然后,您的会话可以使用此TGT对其他服务器进行身份验证(PS远程)。

OpenSSH安装方案

从github下载最新的OpenSSH Release zip到您的攻击框中,然后将其移到上方(或直接将其下载到跳转框中)。

将zip解压缩到您想要的位置。然后,运行安装脚本-Install-sshd.ps1

最后,只需添加防火墙规则以打开端口22。验证已安装SSH服务,然后启动它们。这两个服务都需要运行才能使SSH正常工作。

如果收到连接重置错误,请更新权限以允许“所有人:在OpenSSH根目录上读取并执行”。

icacls.exe "C:\Users\redsuit\Documents\ssh\OpenSSH-Win64" /grant Everyone:RX /T

现在将它们放在一起。

检测恶意使用

除了拥有一个用于监视Powershell活动的系统之外,您还可以在本地或远程检查一些配置,这些配置可能指向恶意的双跳用法(或其他安全问题)。

检测端口转发

使用netsh.exe进行快速本地检查以列出所有转发的端口。默认情况下,不应转发任何端口。

netsh interface portproxy show all

否则,请通过PS远程处理进行远程检查-也可以编写脚本以涵盖整个域。

Invoke-Command -ComputerName bizintel -Credential ta\redsuit -ScriptBlock {netsh interface portproxy show all
}

如果整个域都禁用了WinRM,但是您仍然想远程检查转发的端口,则可以使用wmic.exe

wmic /node:bizintel /user:ta\redsuit /password:2600leet process call create 'cmd.exe /c netsh interface portproxy show all'

CredSSP

凭据安全支持提供程序是另一种明显不安全的方法。多年来,启用CredSSP一直是各种论坛上提到的解决方案。从Microsoft:

“ CredSSP身份验证将用户凭据从本地计算机委派给远程计算机。这种做法增加了远程操作的安全风险。如果远程计算机受到威胁,则在将凭据传递给它时,可以使用凭据来控制网络会话。”

如果发现在生产系统,敏感网络等上启用了CredSSP,建议将其禁用。快速检查CredSSP状态的方法是运行Get-WSManCredSSP。如果启用了WinRM,则可以远程执行。

Invoke-Command -ComputerName bizintel -Credential ta\redsuit -ScriptBlock {Get-WSManCredSSP
}

检测服务器委派

另一个值得检查的配置是Kerberos委派。如前所述,配置受约束/不受约束的委托是Microsoft提供的解决双跳问题的解决方案。

攻击者不仅需要本地管理员来配置kerberos计算机委派,因此,如果发现恶意委派设置,则可能会遇到更大的问题。

您可以使用PowerView模块快速发现不受约束(坏!)或受约束的委托的主机。

Get-DomainComputer -Unconstrained
Get-DomainComputer -TrustedToAuth

*笔记
了解您的网络。仅仅因为这些命令和模块可能会拉回许多结果,并不意味着它们已被恶意配置。

概括*

请记住,如果您管理Windows网络,请确保遵循MS最佳实践指导,而不要遵循此帖子。

如果您发现这篇文章很有用,并且希望获得一些远程实验室动手操作,请确保签出可用范围。如果您特别想练习WinRM / PS远程处理,则可以在TheSprawl实验室范围的最终域中启用它-包括本文中讨论的teltel和secev。尽管有所建议,但不建议初学者使用TheSprawl。

Kerberos双跳变通办法相关推荐

  1. form表单提交数据不让跳转办法

    form表单提交数据不让跳转办法 应用场景: 1.弹出层 2.需要连续提交多条记录的情况 3.页面多个存在提交事件,需要局部提交情况 方法一:加个return false,阻止表单跳转 <for ...

  2. Kerberos 域委派攻击之非约束性委派

    CSDN文章自动迁移自博客 在Windows 2000 Server 首次发布 Active Directory 时,Microsoft 必须提供一种简单的机制来支持用户通过 Kerberos 向 W ...

  3. springmvc请求返回一个字符_response 返回 带双引号 的字符串解决办法 springmvc

    引用自:https://blog.csdn.net/zhaoya_huangqing/article/details/48036839 一.在组成SQL语句并发送命令时完全按照Python中的样式去传 ...

  4. 初学react实现路由跳转_如何使用React构建模因制作者:初学者指南

    初学react实现路由跳转 by Avanthika Meenakshi 通过Avanthika Meenakshi 如何使用React构建模因制作者:初学者指南 (How to build a me ...

  5. kerberos验证_SQL Server中的服务主体名称和Kerberos身份验证概述

    kerberos验证 This article gives an overview of Service Principal Name (SPN) for using the Kerberos aut ...

  6. [4750G] Ubuntu硬件优化篇——引导修复双显卡及屏幕亮度调节设置 bumblebee

    http://acer.it168.com/forum.php?mod=viewthread&tid=2508916&page=1&extra=#pid25257797 引导修 ...

  7. 台电tbook10s删除安卓系统_台电Tbook10S双系统 使用操作教程

    本帖最后由 无效的sim卡 于 2016-12-21 10:05 编辑 完整图文介绍链接:请点击 台电平板交流QQ群 546263572 一.Win10首次开机有设置步骤,建议先跳过Wifi连接,进入 ...

  8. 计算机双一流a水平大学,教育部公布:全国双一流A类名单出炉,36所大学上榜,你的大学在内吗...

    今后国家认可的好大学.好专业的标准很明确,就是"双一流"建设高校.高考招生录取,将只强调"双一流",不会再提及985/211. 双一流是世界一流大学和一流学科建 ...

  9. java kerberos认证 过期_定位Kerberos 配置常见问题

    定位Kerberos配置过程中的问题,可尝试如下步骤,也可学习逗点云的<Kerberos调试系列>课程: 1.使用Kerberos Tray或Kerberos List确认有尝试连接的服务 ...

最新文章

  1. 配置scp在Linux或Unix之间传输文件无需密码
  2. 03005_SQL查询语句
  3. iToken----开发前准备
  4. vue --- 使用中央事件总线(bus)实现跨组件通信
  5. 数据库sql课程设计_SQL和数据库-初学者完整课程
  6. Android Service 详解一:概述
  7. 在package.json中使用git URL依赖分支或标记?
  8. bzoj 2660: [Beijing wc2012]最多的方案【dp】
  9. adb工具包使用介绍 adb工具包安装使用方法
  10. 论文写作中插入公式间距变大怎么办?
  11. 常用第三方支付和聚合支付介绍
  12. linux解决依赖性问题
  13. kali无法获取ip地址的解决方法
  14. POJ - 2187 Beauty Contest (求距离最远点对-凸包+旋转卡壳/枚举 (旋转卡壳学习))
  15. APP逆向案例之(二)对加固APP进行分析和破解
  16. 利用Max ,Break,AO贴图
  17. [DAY003]考研数学极限的计算知识点与题目总结(三)
  18. 我远行,故我在——海陀行点滴感受
  19. 可观测性-Metrics-Kafka监控
  20. 实用epub阅读器分享

热门文章

  1. 机器学习之乳腺癌预测
  2. 【数据库查询表结构】
  3. 查询MySQL数据库中所有表的结构
  4. web程序安装说明书
  5. 如何去掉a标签的下划线及伪类样式
  6. datastage配置jdbc_Datastage 11.5新功能介绍----Hive Connector
  7. Tekton实践篇-Tekton和Argocd的梦幻联动
  8. python中的arange函数,Python中的arange是什么?和range有什么不同?
  9. 深圳随手记(随手科技)面经(offer)
  10. android 首页广告位,Android 使用 ViewPager循环广告位的实现