Good in study, attitude and health

  • F5 BIG-IP漏洞调试环境搭建

    0x00 前言 本文记录从零开始搭建F5 BIG-IP漏洞调试环境的细节。 0x01 简介 本文将要介绍以下内容: F5 BIG-IP安装 F5 BIG-IP漏洞调试环境配置 常用知识 0x02 F5 BIG-IP安装 1.下载OVA文件 下载页面:https://downloads.f5.com/esd/productlines.jsp 下载前需要先注册用户并申请激活码,申请地址:http://www.f5.com/trial 2.安装 (1)在VMware Workstation中导入OVA文件 (2)设置用户名口令 导入虚拟机后,需要输入默认用户名(root)和默认口令(deault),接着需要重设root用户和admin用户的口令 (3)配置 输入ifconfig获得IP,访问https://<ip>,使用admin用户的凭据进行登录 在配置页面填入激活码 在配置页面可以配置开启ssh允许通过ssh登录 0x03 F5 BIG-IP漏洞调试环境配置 配置文件的定位参考《CVE-2022-1388 F5 BIG-IP iControl REST 处理进程分析与认证绕过漏洞复现》 1.定位java进程 查看进程: ps aux |grep java 如下图 定位进程pid 6324,jar包路径/usr/share/java/rest 查看pid 6324的进程信息: cd /proc/6324/cwd ll...

  • vRealize Operations Manager漏洞调试环境搭建

    0x00 前言 本文记录从零开始搭建vRealize Operations Manager漏洞调试环境的细节。 0x01 简介 本文将要介绍以下内容: vRealize Operations Manager安装 vRealize Operations Manager漏洞调试环境配置 常用知识 0x02 vRealize Operations Manager安装 参考资料: https://docs.vmware.com/cn/vRealize-Operations/8.6/com.vmware.vcom.vapp.doc/GUID-69F7FAD8-3152-4376-9171-2208D6C9FA3A.html 1.下载OVA文件 下载页面: https://my.vmware.com/group/vmware/patch 下载前需要先注册用户,之后选择需要的版本进行下载 选择产品vRealize Operations Manager,需要注意pak文件为升级包,这里选择ova文件进行下载,如下图 经过筛选,只有版本vROps-8.3.0-HF2带有ova文件,其他都是pak文件 2.安装 (1)在VMware Workstation中导入OVA文件 配置页面中选择Remote Collecto(Standard),如下图 等待OVA文件导入完成后,将会自动开机进行初始化,初始化完成后如下图 (2)配置 访问配置页面https://192.168.1.103/ 选择快速安装EXPRESS INSTALLATION 设置admin口令 3.设置root用户口令 在虚拟机中选择Login,输入root,设置root用户初始口令 4.启用远程登录 以root身份执行命令: service sshd start 5.开启远程调试功能 (1)查看所有服务的状态 systemctl...

  • 渗透基础——获得Exchange服务器的内网IP

    0x00 前言 在渗透测试中,为了搜集信息,常常需要从外网获得Exchange服务器的内网IP,公开资料显示msf的auxiliary/scanner/http/owa_iis_internal_ip插件支持这个功能,但是这个插件公开于2012年,已不再适用于Exchange 2013、2016和2019,本文将要介绍一种更为通用的方法,开源代码,记录细节。 0x01 简介 本文将要介绍以下内容: owa_iis_internal_ip插件介绍 更为通用的方法 Python开源代码 0x02 owa_iis_internal_ip插件介绍 msf的auxiliary/scanner/http/owa_iis_internal_ip插件支持探测Exchange服务器的内网IP,对应kali系统下的位置为:/usr/share/metasploit-framework/modules/auxiliary/scanner/http/owa_iis_internal_ip.rb github上的地址为:https://github.com/rapid7/metasploit-framework/blob/master/modules/auxiliary/scanner/http/owa_iis_internal_ip.rb 通过阅读源码,可以总结出实现原理: 设置HTTP协议为1.0并访问特定URL 在返回数据中,如果状态码为401,在Header中的"WWW-Authenticate"会包含内网IP 在返回数据中,如果状态码位于300和310之间,在Header中的"Location"会包含内网IP 在提取IP时,使用正则表达式(192\.168\.[0-9]{1,3}\.[0-9]{1,3}|10\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}|172\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}),这里存在bug:只能筛选出格式为"192.168.*.*"的内网IP 为了修复这个bug,可以将正则表达式修改为([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}|10\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}|172\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}) 注: 修改插件后需要执行命令reload_all来重新加载msf插件 修复上面的bug后,我在测试Exchange 2013、2016和2019时仍然无法获得准确的内网IP 0x03 更为通用的方法 这里给出一种基于owa_iis_internal_ip插件的方法,使用Python实现,适用范围更广 思路如下: 利用Python设置HTTP协议为1.0并访问特定URL,在报错结果中暴露出Exchange服务器的内网IP 需要细节如下: (1)Python设置HTTP协议为1.0 Python2: import requests import httplib httplib.HTTPConnection._http_vsn = 10 httplib.HTTPConnection._http_vsn_str = 'HTTP/1.0' Python3: import requests from http import client client.HTTPConnection._http_vsn=10...

  • VMware Workspace ONE Access调试分析——数据库口令的破解

    0x00 前言 在上篇文章《VMware Workspace ONE Access漏洞调试环境搭建》提到连接数据库的口令加密保存在文件/usr/local/horizon/conf/runtime-config.properties中,本文将要基于调试环境,分析加密流程,介绍详细的解密方法。 0x01 简介 本文将要介绍以下内容 加密流程 解密方法 数据库操作 0x02 加密流程 1.定位关键文件 经过一段时间的寻找,找到实现加密功能对应的文件为/opt/vmware/certproxy/lib/horizon-config-encrypter-0.15.jar 反编译获得加密的实现代码如下: public final String encrypt(byte[] data) { if (data != null && data.length != 0) { if (!this.getKeyMgmt().randomKeyEnabled() && !this.getKeyMgmt().customKeysAvailable()) { log.error("No custom encryption keys available, aborting encrypt."); return null; } else { Cipher...

  • VMware Workspace ONE Access漏洞调试环境搭建

    0x00 前言 本文记录从零开始搭建VMware Workspace ONE Access漏洞调试环境的细节。 0x01 简介 本文将要介绍以下内容: VMware Workspace ONE Access安装 VMware Workspace ONE Access漏洞调试环境配置 常用知识 0x02 VMware Workspace ONE Access安装 参考资料: https://docs.vmware.com/en/VMware-Workspace-ONE-Access/20.01/workspace_one_access_install.pdf 1.下载OVA文件 下载页面: https://customerconnect.vmware.com/downloads/search?query=workspace%20one%20access 下载前需要先注册用户,之后选择需要的版本进行下载 VMware Workspace ONE Access 21.08.0.1的下载页面:https://customerconnect.vmware.com/downloads/details?downloadGroup=WS1A_ONPREM_210801&productId=1269 下载文件identity-manager-21.08.0.1-19010796_OVF10.ova 2.安装 (1)在VMware Workstation中导入OVA文件 注: VMware Workstation版本需要大于14,否则报错提示无法导入 在安装页面设置Host Name,如果配置了DHCP,其他选项不用设置,我的配置指定了静态IP,配置如下图 等待OVA文件导入完成后,将会自动开机进行初始化,初始化完成后如下图 (2)配置 修改本机的hosts文件,将192.168.1.11指向workspaceone.test.com 访问配置页面https://workspaceone.test.com:8443 设置admin、root和sshuser用户的口令,口令需要包含大写字母、小写字母、数字和特殊字符 注: 我的测试结果显示,口令长度需要设置为14,否则无法登陆root和sshuser用户...

  • 渗透基础——Exchange版本探测和漏洞检测

    0x00 前言 Exchange的版本众多,历史漏洞数量也很多,因此需要通过程序实现版本探测和漏洞检测。本文将要介绍通过Python进行版本探测的两种方法,介绍漏洞检测的实现细节,开源代码。 0x01 简介 本文将要介绍以下内容: 实现思路 实现细节 开源代码 0x02 实现思路 1.版本识别 (1)获得精确版本(Build number) 访问EWS接口,在Response Headers中的X-OWA-Version可以获得精确版本,如下图 优点:精确版本(Build number)能够对应到具体的发布日期 缺点:方法不通用,部分旧的Exchange版本不支持 (2)获得粗略版本 访问OWA接口,在回显内容可以获得粗略版本,如下图 优点:方法通用 缺点:粗略版本无法对应到准确的发布日期,只能对应到一个区间 综上,在版本识别上,首先尝试获得精确版本,如果无法获得,再尝试获得粗略版本 获得版本号后,可以去官网查询对应的Exchange版本和发布日期,查询地址:https://docs.microsoft.com/en-us/exchange/new-features/build-numbers-and-release-dates?view=exchserver-2019 2.漏洞检测 Exchange的漏洞详情可通过访问https://msrc.microsoft.com/update-guide/vulnerability/<CVE>查看,例如: CVE-2020-0688对应的URL:https://msrc.microsoft.com/update-guide/vulnerability/CVE-2020-0688 在漏洞检测上,可以将补丁时间作为判定依据,如果识别到的Exchange版本发布日期低于某个补丁日期,那么判定该Exchange存在该补丁中描述的漏洞。 0x03 实现细节 1.版本识别 访问EWS接口获得版本的实现代码: url1 = "https://" + host + "/ews" req = requests.get(url1, headers = headers, verify=False) if "X-OWA-Version" in...

  • 渗透基础——WMIC的使用

    0x00 前言 WMI(Windows Management Instrumentation)是一种管理功能,提供了一个统一的环境来访问Windows系统组件,支持本地和远程访问。在之前的文章《WMI Attacks》、《WMI Backdoor》、《WMI Defense》和《Study Notes of WMI Persistence using wmic.exe》介绍过相关内容,本文将要在信息收集和横向移动的角度,分析wmic的常用方法,结合利用思路,给出防御建议。 0x01 简介 本文将要介绍以下内容: wbemtest用法 通过wmic查询主机信息 通过wmic修改注册表 通过wmic执行程序 本地和远程访问WMI服务 0x02 wbemtest用法 参考资料: https://docs.microsoft.com/en-us/mem/configmgr/develop/core/understand/introduction-to-wbemtest Windows系统默认安装,可以用于连接WMI命名空间,访问WMI服务 借助wbemtest,我们可以获得WMI完整的功能细节和使用方法 界面如下图 点击Connect...,输入WMI命名空间root\cimv2,连接到root\cimv2后,可进入主页面,如下图 常用功能示例如下: (1)Enum Classes… 枚举类,可以用来枚举所有的对象,查询每个类的定义 这里以查询Win32_Process对象为例: 依次选中Enum Classes... -> Recursive -> OK,选中Win32_Process,双击进入对象编辑器,如下图 Properities栏可以查看属性,例如这里有Handle,可以通过后文的Query...进行查询 Methods栏可以查看方法,例如这里有Create,可以通过后文的Execute Method...进行调用 (2)Query… 查询属性,需要输入WMI Query Language (WQL) 参考资料:...

  • 渗透基础——在Win7下运行csvde

    0x00 前言 在之前的文章《渗透基础——活动目录信息的获取2:Bypass AV》介绍了使用csvde获取活动目录信息的方法,优点是Windows Server系统自带,能够导出csv格式便于查看。但是在Win7系统下,默认不支持这个命令。 本文将要介绍在Win7下运行csvde的方法,提高适用范围。 0x01 简介 本文将要介绍以下内容: 背景知识 移植思路 实现方法 0x02 背景知识 参考资料: https://docs.microsoft.com/en-us/previous-versions/orphan-topics/ws.10/cc772704(v=ws.10)?redirectedfrom=MSDN https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/cc732101(v=ws.11) 1.csvde的依赖库 需要理清以下结构: Windows Server 2003,默认支持csvde Windows Server 2008及更高版本,需要开启Active Directory Domain Services (AD DS)或Active Directory Lightweight Directory Services (AD LDS)服务器角色 Windows XP Professional,需要安装Active Directory Application Mode (ADAM) Windows 7及更高版本,需要安装Remote Server Administration Tools (RSAT) 2.安装Remote...

  • Windows Communication Foundation开发指南2——禁用元数据发布

    0x00 前言 本文将要介绍在禁用元数据发布(MEX)时WCF开发的相关内容,给出文章《Abusing Insecure Windows Communication Foundation (WCF) Endpoints》的完整代码示例。 0x01 简介 本文将要介绍以下内容: 禁用MEX实现WCF 文章完整代码示例 0x02 禁用MEX实现WCF 禁用MEX时,需要根据服务端的代码手动编写客户端代码 本节采用命令行实现WCF的方式作为示例 开发工具:Visual Studio 2015 1.服务端编写 (1)新建项目 选择Visual C#->Console Application,名称为NBTServer (2)新建WCF服务 选择Add->New Item...,选择WCF Service,名称为Service1.cs (3)修改service1.cs 添加DoWork的实现代码,代码示例: namespace NTBServer { public class Service1 : IService1 { public void DoWork() { System.Diagnostics.Process.Start("calc.exe"); } } } (4)修改Program.cs...

  • Windows Communication Foundation开发指南1——启用元数据发布

    0x00 前言 Windows Communication Foundation (WCF)是用于在.NET Framework中构建面向服务的应用程序的框架。本文将要介绍WCF开发的相关内容,为后续介绍的内容作铺垫。 0x01 简介 本文将要介绍以下内容: 使用basicHttpBinding实现WCF 使用NetTcpBinding实现WCF 通过命令行实现WCF 通过IIS实现WCF 通过服务实现WCF 0x02 基础知识 参考资料: https://docs.microsoft.com/en-us/dotnet/framework/wcf/whats-wcf 常用的传输协议: HTTP,http://localhost:8080/ TCP,net.tcp://localhost:8080/ IPC,net.pipe://localhost/ 常用的Binding: BasicHttpBinding WSHttpBinding NetTcpBinding NetNamedPipeBinding 元数据发布(metadata exchange),简称MEX WCF默认禁用MEX,这样能够避免数据泄露 本着逐步深入的原则,本系列文章选择先介绍开启MEX的用法,这样能够提高客户端开发的效率,禁用MEX的用法将放在下篇文章进行介绍。 0x03 使用basicHttpBinding实现WCF 本节采用命令行实现WCF的方式作为示例 开发工具:Visual Studio 2015 1.服务端编写 (1)新建项目 选择Visual C#->Console Application,名称为basicHttpBindingWCFServer (2)新建WCF服务 选择Add->New Item...,选择WCF Service,名称为Service1.cs (3)修改service1.cs 添加DoWork的实现代码,代码示例: using...