机文章

TabShell 利用分析——执行 cmd 命令并获得返回结果 千万粉丝女网红哭诉被公司老板性骚扰?结局反转苹果 iOS16.5更新续航缩水,仅两款 iPhone 未受负面影响GPT之于SaaS,没有

 

6月的1天,新的1天,快来看看小编今天的文章吧!

0x00 前言利用 TabShell 可以使用普通用户逃避沙箱并在 Exchange Powershell 中执行任意 cmd 命令,本文将要介绍利用 TabShell 执行 cmd 命令并获得返回结果的方法,分享通过 Python 编写脚本的细节。

0x01 简介本文将要介绍以下内容:执行 cmd 命令并获得返回结果的方法Python 实现0x02 执行 cmd 命令并获得返回结果的方法testanull 公开了1个利用的 POC,地址如下:https://gist.github.com/testanull/518871a2e2057caa2bc9c6ae6634103e

为了能够支持更多的命令,POC 需要做简单修改,细节如下:某些命令无法执行,例如 netstat -ano 或者 systeminfo解决方法:去掉命令:$ps.WaitForExit ( ) 执行 cmd 命令并获得返回结果的方法有以下两种:

1. 使用 Powershell 连接 Exchange 服务器,实现 TabShellPowershell 命令示例:需要注意以下问题:需要域内主机上执行需要 fqdn,没有支持 IP连接 url 可以选择 http 或 https

认证方式可以选择 Basic 或 Kerberos2. 通过 SSRF 漏洞调用 Exchange Powershell,实现 TabShell这里需要通过 Flask 建立本地代理服务器,方法可参考之前的文章《ProxyShell 利用分析 3 ——添加用户和文件写入》

0x03 Python 实现这里需要考虑两部分,1种是通过 SSRF 漏洞调用 Exchange Powershell 实现 TabShell 的 Python 实现,另1种是通过 Powershell Session 实现 TabShell 的 Python 实现,后者比前者需要额外考虑通信数据的编码和解码,具体细节如下:

1. 通过 SSRF 漏洞调用 Exchange Powershell 实现 TabShell 的 Python 实现为了分析中央的通信数据,抓取明文数据的方法可参考上1篇文章《渗透技巧—— Exchange Powershell 的 Python 实现》中的 0x04,在 Flask 中输出中央的通信数据

关键代码示例:通过分析中央的通信数据,我们可以总结出以下通信过程: ( 1 ) creationXml初始化,构造原始数据 ( 2 ) ReceiveData循环多次执行,返回结果中包含 "RunspaceState" 作为结束符

( 3 ) 执行命令 ;../../../../Windows/Microsoft.NET/assembly/GAC_MSIL/Microsoft.PowerShell.Commands.Utility/v4.0_3.0.0.0__31bf3856ad364e35/Microsoft.PowerShell.Commands.Utility.dllInvoke-Expression

在返回数据中获得 CommandId ( 4 ) 读取输出结果通过 CommandId 读取命令执行结果 ( 5 ) 执行命令 $ExecutionContext.SessionState.LanguageMode=FullLanguage

( 6 ) 读取输出结果 ( 7 ) 执行命令并获得返回结果依次执行以下命令:在返回数据中获得 CommandId,并通过 CommandId 读取命令执行结果,这些命令的格式相同,发送数据的格式如下: ( 8 ) 执行命令并获得最终返回结果

发送数据的格式同 ( 7 ) 1致,执行的命令为: $Out,在返回数据中获得 CommandId,并通过 CommandId 读取最终的命令执行结果,提取执行结果的示例代码:2. 通过 Powershell Session 实现 TabShell 的 Python 实现

这里可以借鉴上1篇文章《渗透技巧—— Exchange Powershell 的 Python 实现》得出的经验:二者通信过程1致,只是通过 Powershell Session 实现 TabShell 的 Python 实现需要额外考虑通信数据的编码和解码

通信数据的编码和解码可参考上1篇文章《渗透技巧—— Exchange Powershell 的 Python 实现》中的 0x03数据的编码和解码示例代码如下:完整代码的输出结果如下图0x04 小结本文介绍了利用 TabShell 执行 cmd 命令并获得返回结果的方法,改进 POC,分享通过 Python 编写脚本的细节。

这是我对生活的1次思考,希望这篇文章能给你带来1丝启发和感悟。喜欢的小伙伴记得关注收藏点赞哦!"

为您推荐

TabShell 利用分析——执行 cmd 命令并获得返回结果 千万粉丝女网红哭诉被公司老板性骚扰?结局反转苹果 iOS16.5更新续航缩水,仅两款 iPhone 未受负面影响GPT之于SaaS,没有

TabShell 利用分析——执行 cmd 命令并获得返回结果 千万粉丝女网红哭诉被公司老板性骚扰?结局反转苹果 iOS16.5更新续航缩水,仅两款 iPhone 未受负面影响GPT之于SaaS,没有

0x00 前言利用 TabShell 可以使用普通用户逃避沙箱并在 Exchange Powershell 中执行任意 cmd 命令,本文将要...

2023-06-08 栏目:编程控
最近发表

当前非电脑浏览器正常宽度,请使用移动设备访问本站!