-
Sophos UTM利用分析——清除Last WebAdmin Sessions记录
0x00 前言 对于Sophos UTM设备,在web管理页面中,Last WebAdmin Sessions会记录用户每次登录的信息,本文仅在技术研究的角度介绍清除指定Last WebAdmin Sessions记录的方法,记录研究细节。 0x01 简介 本文将要介绍以下内容: 研究过程 实现方法 0x02 Last WebAdmin Sessions简介 在web管理页面中,选中Management后会显示Last WebAdmin Sessions记录,如下图 记录包括以下内容: User:登录用户名 Start:登录时间 State:退出时间 IP address:登录IP Changelog:修改的配置 对于Changelog,点击Show,会显示修改的配置,如下图 默认配置下,Last WebAdmin Sessions会显示最近的20条记录 0x03 研究过程 1.尝试修改/var/confd/var/storage/cfg 在上篇文章《Sophos UTM利用分析——导出配置文件》提到,/var/confd/var/storage/cfg存储Sophos UTM的配置信息,所以猜测通过修改/var/confd/var/storage/cfg文件可以实现Last WebAdmin Sessions记录的清除 /var/confd/var/storage/cfg的文件格式为Perl Storable files,这里使用StorableEdit来编辑文件 向Sophos UTM上传文件storableedit-1.5.pl,执行命令: ./storableedit-1.5.pl cfg 结果如下图 解析出的文件结构同使用SophosUTM_ConfigParser.py导出的结果一致 查看配置信息,命令如下: cd...
-
渗透基础——获得域用户的登录信息
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,...
-
Sophos UTM利用分析——导出配置文件
0x00 前言 对于Sophos UTM设备,介绍利用方法的资料很少,本文将要介绍从零研究导出配置文件的过程,记录细节,开源利用脚本。 0x01 简介 本文将要介绍以下内容: Sophos UTM测试环境搭建 导出配置文件的研究过程 开源脚本 0x02 Sophos UTM测试环境搭建 1.下载镜像 下载页面:https://www.sophos.com/en-us/support/downloads/utm-downloads 这里选择版本9.711-5.1,分别有以下两个镜像文件: ssi-9.711-5.1.iso,需要在Sophos设备上安装,如果直接在VM中安装,会提示"No appliance hardware has been detected" on appliance hardware asg-9.711-5.1.iso,可在VM中安装 测试环境使用VMware搭建,所以下载asg-9.711-5.1.iso 2.安装镜像 配置好后等待系统重启,访问配置页面:https://<ip>:4444/ 设置admin account password,作为登录配置页面的用户名和口令 3.配置 需要填入License 4.开启ssh登录 进入配置页面后,依次选择Management->System Settings->Shell Access,分别设置root用户和loginuser用户的口令 如下图 5.允许root用户口令登录ssh sed -i "s/PermitRootLogin no/PermitRootLogin yes /g" /etc/ssh/sshd_config /var/mdw/scripts/sshd restart...
-
渗透基础——远程从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用户...
-
渗透基础——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...