Good in study, attitude and health

  • 渗透基础——获得域用户的登录信息

    0x00 前言 在域渗透中,获得了域控制器权限后,需要获得域用户的登录信息,包括域用户登录的IP地址和登录时间。通常使用的方法是查看域控制器的登录日志(Eventid=4624)。然而,人工从登录日志(Eventid=4624)中筛选出域用户登录的IP地址和登录时间需要耗费大量时间,不仅无效数据多,而且需要多次判断,所以我们需要编写程序来实现这个功能。 在实际使用过程中,为了能够适配多种环境,还需要支持本地和多种协议的远程登录。于是本文将要分享我的实现方法,开源两个工具,记录细节。 0x01 简介 本文将要介绍以下内容: 通过EventLogSession实现 通过WMI实现 开源代码 0x02 通过EventLogSession实现 通过查询资料发现,通过EventLogSession不仅支持解析本地日志内容,还支持通过RPC远程解析日志,下面介绍关于EventLogSession的开发细节 1.输出Eventid=4624的日志内容 C Sharp实现代码: using System; using System.Diagnostics.Eventing.Reader; namespace Test1 { class Program { static void Main(string[] args) { var session = new EventLogSession(); string LogName = "Security"; string XPathQuery = "*[System/EventID=4624]"; EventLogQuery eventLogQuery = new EventLogQuery(LogName, PathType.LogName,...

  • 渗透基础——远程从lsass.exe进程导出凭据

    0x00 前言 在之前文章《渗透基础——从lsass.exe进程导出凭据》介绍了本地导出凭据的方法,而在渗透测试中,经常遇到的情况是需要远程导出凭据,本文将要介绍远程导出凭据的思路和方法,记录细节 0x01 简介 本文将要介绍以下内容: 思路 实现方法 lsassy介绍 0x02 思路 在远程导出凭据时,需要考虑以下几点: (1)需要实现远程命令执行,关于远程命令执行,可以参考之前的文章《在远程系统上执行程序的技术整理》 (2)由于保护措施的限制,不同环境需要不同的导出方法 (3)远程导出lsass进程的dump文件后,通常会选择将dump文件复制到本地,解析得到口令hash,而有的时候lsass进程的dump文件很大,所以需要考虑传输文件的效率 (4)对于多个系统,重复劳动太多,效率不高 综合以上几点,我们需要一个方便快捷的方法:支持多种导出方法,能够直接解析出口令hash,操作自动化以提高效率 这里可以使用开源工具Lsassy,地址为:https://github.com/Hackndo/lsassy 0x03 lsassy介绍 1.安装使用 安装命令: pip install lsassy 测试命令: lsassy -u Administrator -p Password1 192.168.1.1 在输出上,使用termcolor添加了颜色显示,在默认Windows cmd下无法正常显示颜色,会导致显示格式不友好,存在一些乱码 为了解决Windows下格式乱码的问题,可以修改<Python>\lib\site-packages\lsassy\logger.py,代码如下: import logging import os import sys class LsassyFormatter(logging.Formatter): def __init__(self): logging.Formatter.__init__(self, '%(bullet)s %(threadName)s %(message)s', None)...

  • 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用户...

  • 渗透基础——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...