Good in study, attitude and health

  • MailEnable开发指南

    0x00 前言 MailEnable提供端到端的解决方案,用于提供安全的电子邮件和协作服务。引用自官方网站的说法:最近的一项独立调查报告称MailEnable是世界上最受欢迎的Windows邮件服务器平台。 对于MailEnable的开发者API,我在官方网站上只找到了AJAX API的说明文档,所以本文将要尝试编写Python脚本,实现对MailEnable邮件的访问,记录开发细节,开源代码。 0x01 简介 本文将要介绍以下内容: 环境搭建 开发细节 开源代码MailEnableManage.py 0x02 环境搭建 1.安装 安装前需要安装IIS服务和.Net 3.5,否则无法正常配置Web访问 MailEnable下载地址:http://www.mailenable.com/download.asp 2.配置 启动MailEnableAdmin.msc,在MailEnable Management->Messaging Manager->Post Offices下配置邮件服务器信息 如下图 默认登录页面: http://mewebmail.localhost/mewebmail/Mondo/lang/sys/login.aspx 3.开启Web管理页面 参考资料: http://www.mailenable.com/kb/content/article.asp?ID=ME020132 启动MailEnableAdmin.msc,选择MailEnable Management->Servers->localhost->Services and Connectors->WebAdmin,右键单击并从弹出菜单中选择Properties,选择Configure...按钮,进行安装 如下图 启动MailEnableAdmin.msc,在MailEnable Management->Messaging Manager->Post Offices下选择已配置的Post Office,右键单击并从弹出菜单中选择Properties,切换到Web Admin标签,启用web administration 如下图 选择指定用户,将属性修改为管理员 默认管理页面: http://mewebmail.localhost/meadmin/Mondo/lang/sys/login.aspx 注: 如果忘记了用户的明文口令,可以查看默认安装路径C:\Program Files (x86)\Mail Enable\Config下的Auth.tab文件,其中保存有每个邮箱用户的明文口令 0x03...

  • 域渗透——利用DCSync导出域内所有用户hash的方法

    0x00 前言 在之前的文章《域渗透——DCSync》曾系统的整理过DCSync的利用方法,本文将要针对利用DCSync导出域内所有用户hash这一方法进行详细介绍,分析不同环境下的利用思路,给出防御建议。 0x01 简介 本文将要介绍以下内容: 利用条件 利用工具 利用思路 防御建议 0x02 利用条件 获得以下任一用户的权限: Administrators组内的用户 Domain Admins组内的用户 Enterprise Admins组内的用户 域控制器的计算机帐户 0x03 利用工具 1.C实现(mimikatz) 实现代码: https://github.com/gentilkiwi/mimikatz/blob/master/mimikatz/modules/lsadump/kuhl_m_lsadump_dc.c#L27 示例命令: (1)导出域内所有用户的hash mimikatz.exe "lsadump::dcsync /domain:test.com /all /csv" exit (2)导出域内administrator帐户的hash mimikatz.exe "lsadump::dcsync /domain:test.com /user:administrator /csv" exit 2.Python实现(secretsdump.py) 示例命令: python secretsdump.py test/Administrator:DomainAdmin123!@192.168.1.1 3.Powershell实现(MakeMeEnterpriseAdmin) 核心代码使用C Sharp实现,支持以下三个功能: 通过DCSync导出krbtgt用户的hash 使用krbtgt用户的hash生成Golden ticket...

  • 渗透技巧——通过命令行开启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...