1.APT案例分析:一个基于Meterpreter和Windows代理的码分攻击事件
2.走进Windows中的提权行为
3.红队最喜欢的18 种优秀的网络安全渗透工具
APT案例分析:一个基于Meterpreter和Windows代理的攻击事件
前言
在深入研究此APT攻击案例前,需先了解测试环境。码分我对其进行了定制化的码分模拟APT攻击,发现可以上传HTTPS返回类型的码分Meterpreter后门至只可通过代理访问的公司Windows网络中。最初,码分我并未确定此情况是码分建站修改源码否存在漏洞或对APT攻击的影响。因此,码分我需要确保代理环境的码分正确性。
在详细分析后,码分我们使用的码分Meterpreter模块(windows/meterpreter/reverse_https)并未成功。以下介绍攻击过程分析:
攻击过程分析
为解决此问题,码分我修改了Meterpreter攻击载荷代码,码分并在被攻击靶机中测试。码分此过程需要产生HTTPS类型或使用其他Meterpreter后门源码。码分例如,码分可通过shellter或任何受信任软件如putty.exe生成简单后门,或使用powershell生成web协议模块的Meterpreter后门。
靶机中执行后门软件并监听后门程序,观察连接情况。下图展示了攻击机中在端口执行的侦听,连接后未执行命令。
攻击机已反向连接回我们的侦听机器,获得一个Meterpreter shell。然而,此shell无法执行任何命令,会话随即结束。从高层次来看,后门成功执行第一阶段,通过代理反弹至攻击者机器,但在第二阶段注入过程中可能出错,导致命令执行失败及会话中断。
我手动创建PEM证书,配置监听器,防cc源码页面比较浏览器上观察的指纹与创建的证书指纹,确认证书传输过程未被替换。这促使我继续寻找问题所在。
嗅探网络流量以了解第二阶段发生的情况。下图展示了靶机与代理服务器间的TCP流量通信。
流量显示靶机(.x.x.)与代理服务器(.x.x.:)间的通信,包括靶机发送至攻击机(.x.x.x:)的安全连接请求。NTLM身份验证与响应表明握手成功。
在部署Meterpreter第一部分无误后,问题出在第二部分,即攻击载荷与msf侦听之间的通信。继续分析网络流量以找到答案。
下图展示了第一阶段攻击载荷与msf侦听之间的通信,以及靶机不使用代理直接与攻击机进行通信的情况。
分析显示,在使用代理时,Meterpreter会话中断,原因在于第二阶段的后门载荷无法返回到msf的侦听中。下载Meterpreter源代码,查找问题根本原因。
在Meterpreter源代码中,存在使用WinHTTP Windows API的逻辑实现。调试源代码,修改DEBUGTRACE预处理常量,以便在运行过程中提供调试信息。
通过运行后门并在靶机上运行DebugView工具,获取调试信息。信息显示,后门尝试使用AutoDetect代理设置,但未获得代理地址,请求发送失败。
分析源代码后发现,网页jsp项目源码问题出在处理Windows代理设置的代码块。修改代码以考虑通过DHCP或DNS获取代理。重新运行后门,发现使用Auto detect时,Meterpreter能执行命令。
总结与建议
在某些情况下,我们可能遇到工具无法正常工作的问题。解决方法包括使用其他方法进行攻击或修复问题。修复了生成的dll代码后,我们可以在特定企业环境中进行攻击。然而,修复代码是否被msf采纳尚不可知,但此经验适用于遇到类似问题时的修复方法。
我们了解到Windows代理配置有特定顺序,一旦获取代理设置,无论其是否有效,系统都会使用它。此外,IE与火狐浏览器在系统代理设置下表现出不同行为。在某些情况下,即使代理无法工作,也不会使用其他配置。
编写代码测试代理配置是否允许进入网络,可以增加APT攻击成功的机会。然而,应考虑到特殊环境的限制,管理员通常不会在测试环境中使用此类设置。
最终结论是,确保APT攻击方案的连接成功可能性与IE相似,即可在大多数环境中成功执行攻击。如果IE能访问网络,APT攻击同样能成功。指标 源码 陈功率
走进Windows中的提权行为
深入探讨Windows提权行为,本文聚焦于GetSystem过程及其在ATT&CK框架中的对应项,T - Access Token Manipulation,不涉及UAC bypass。文中选择命名管道提权和访问令牌窃取作为演示实例。
以经典的meterpreter中getsystem命令为例,其源代码揭示了工作原理和前置条件,核心在于利用ImpersonateNamedPipeClient API,通过命名管道的服务端进程模仿客户端进程的访问令牌,获取SYSTEM权限。
理解该API的具体说明及调用前提(SeImpersonatePrivilege权限)有助于深入分析。源代码拆解了实现步骤,从创建命名管道、创建服务、启动服务并连接管道,到调用API完成提权,直至删除服务,整个过程均有详细描述。
命名管道提权的复现和日志验证过程展示了系统监控工具在检测和理解攻击行为中的关键作用。通过sysmon等工具,可以跟踪从创建命名管道到服务创建、启动、连接管道、完成提权直至服务删除的每一个环节。
访问令牌窃取技术同样依赖于Windows API,如ImpersonateLoggedOnUser、DuplicateTokenEx等,实现途径包含获取目标进程的句柄、访问令牌,复制令牌并创建新进程。本文提供代码示例及测试时的注意事项,强调实际操作的矢量绘图软件源码重要性。
结合日志分析,利用sysmon的ProcessAccess类日志,可以定位到OpenProcess、OpenProcessToken、DuplicateTokenEx等关键操作。通过关联分析,即使API调用不在sysmon能力范围内,也能追踪到攻击行为的全貌。
做好威胁检测需对攻击和防御知识有深入理解,sysmon日志记录和Windows API调用分析是关键。缺乏这些知识会限制检测能力。从原理出发,结合自上而下的分析和自下而上的分析,是理解攻击行为的正确方法。
红队最喜欢的 种优秀的网络安全渗透工具
Bishop labs用了两期博客,前后各总结了9个红队工具,共计个红队使用的优秀渗透工具,其博客文章也提及,这份清单不是决定性的,也仅用于参考。创建者: @IAmMandatory
用途:允许 谷歌 Chrome 浏览器将受害者的浏览器变成测试代理。
优点: CursedChrome 可以很容易地在红队参与期间模拟恶意浏览器扩展。用来劫持 Chrome 浏览器,绕过大多数 2FA 或其他可能存在的安全保护,并利用 cookie 来访问任何基于网络的目标。
创建者: @symbolcrash1
用途: Universal Loader 是一个 Golang 库,可以跨多个平台(Linux、Windows 和 OSX)从内存中加载共享库,而无需CGO。
优点: Universal Loader 可以用在新的 Apple M1 芯片上,值得一提的是,这个 Golang 库没有使用 memfd,这使它成为第一个这样做的 Golang Linux 加载器。由于这两个原因,Universal Loader 是一个相当令人印象深刻的红队工具。
创建者: QSecure Labs
用途: Overlord 是一个基于 Python 的控制台命令行界面,用于自动化红队基础设施。
优点: 在红队参与期间能够根据需要快速启动安全基础设施非常重要,该工具可以节省大量时间,然后可以将这些时间用于进行一些实际的黑客攻击。
创作者: @LittleJoeTables和@rkervell
用途: Sliver是一个用 Golang 编写的跨平台通用植入框架。
优点: 这个工具是两位 Bishop Fox 研究人员的创意,所以我们的偏见可能会表现出来。类似于商业工具Cobalt Strike。使 Sliver 值得注意的是诸如使用每个二进制混淆的动态代码生成、多个和可扩展的出口协议以及支持多个操作员同时控制植入物等功能。此外,它易于使用且运行速度快。
创作者: @tillson_
用途: 使用 Githound 来定位暴露的 API 密钥和其他围绕 GitHub 浮动的敏感信息。该工具通过模式匹配、提交 历史 搜索和“独特的结果评分系统”工作。
优点: 像 Githound 这样的秘密窃取工具并不少见,但这并没有使这个工具(或其他类似工具)的价值降低。Githound 的一些可能用例包括检测暴露的客户 API 密钥以及员工 API 令牌。如果您进行漏洞赏金,此工具可用于添加书签 - 有些人报告说,由于它,因此获得了数千美元的赏金。
创作者: @browninfosecguy
用途: 这个工具的名字说明了一切,在 PowerShell 中轻松地为 Microsoft Active Directory 设置实验室。
优点: 速度很快,效果很好。可以使用此工具来确保您针对 Active Directory 使用的任何漏洞利用都已完善,然后再将其引入客户端环境。对于只想更轻松地测试 Active Directory 的渗透测试员来说非常有用。
创建者: Microsoft Azure 红队
用途: 可以使用 Stormspotter 更好地可视化 Azure 攻击面;此工具可帮助您绘制 Azure 和 Azure Active Directory 对象。
优点: 类似渗透测试工具BloodHound概念类似,只是该工具是为 Azure 环境设计的。对于任何蓝色或紫色团队成员来说,从防御的角度来看,Stormspotter 也非常有用。
创建者: @Void_Sec
用途: ECG 实际上是一种商业工具。该工具是静态源代码扫描器,能够分析和检测 TCL/ADP 源代码中真实和复杂的安全漏洞。
优点: ECG是一种强大的工具,可以填补令人惊讶的空白。正如 VoidSec 在他们的官方文章中所指出的,TCL代码相当普遍;所以能够彻底分析漏洞可能会非常有帮助。没有很多其他工具可以满足这种独特的需求,无论是商业的还是其他的。
创建者: @TryCatchHCF
用途: 可以使用 DumpsterFire 构建“时间触发的分布式”安全事件来测试红队进攻和蓝队防守。
优点: DumpsterFire 将传统桌面练习提升到一个新的水平,它还使用自动化来在参与期间有效地进行多任务处理(并避开一些更乏味的事情)。DumpsterFire 允许的定制程度令人印象深刻;可以真正定制模拟安全事件来满足独一无二的情况。
.GhostPack
创建者: SpecterOps ( @SpecterOps )
用途: 借助强大的后开发工具集 GhostPack,可以做各种事情;可以攻击 KeePass 2.X 数据库、复制锁定的文件、篡改 Active Directory 证书等。
优点: GhostPack 是一种满足黑客需求的“一站式商店”。包含的 个工具包括非常有用的 Rubeus、Seatbelt 和 SharpUp。Rubeus 是一个 C# 工具集,直接与 Active Directory 环境中的 Kerberos 协议交互,允许直接与 Kerberos 属性(例如票证和常规身份验证)进行通信,然后可以利用这些属性在网络中移动。Seatbelt 是一个 C# 项目,可用于面向安全的主机“安全检查”,而 SharpUp 是一个 C# 工具,可识别本地权限提升路径。这些工具被无数红队和网络渗透测试员使用。
创作者: Benjamin Delpy ( @gentilkiwi )
用途: Mimikatz 可以从 Windows 环境中提取密码和其他凭据。是一种非常流行的渗透测试工具,已经存在了十多年。但 Mimikatz 会定期维护和更新,以确保仍然是最前沿的工具
优点: 将 Mimikatz 视为网络渗透测试的瑞士军刀。带有几个内置工具,对 Kerberoasting、密码转储很有用,你能想到的,Mimikatz 都可以做到。而且 Mimikatz 不仅适用于那里的进攻性安全专业人员——防御性安全团队也可以从中受益(如果你发现自己处于紫色团队场景中,这也是个好兆头)。
创建者: Metasploit 项目 ( @metasploit ),由 Rapid7 与开源社区合作运营
用途: Metasploit 可以说是世界领先的渗透测试框架,由 HD Moore 于 年创建。Metasploit 包括用于渗透测试几乎每个阶段的模块,这有助于其普及。包括约 个后利用模块,可用于捕获击键、收集网络信息、显示操作系统环境变量等。
优点: Metasploit 后开发模块非常庞大,有一个模块最突出——Meterpreter 有效载荷。Meterpreter 允许 探索 目标系统并执行代码,并且由于它通过内存 DLL 注入工作,因此不必冒险留下任何操作证据。Metasploit 后开发功能也非常通用,具有适用于 Windows、Linux 和 OS X 的模块。
创作者: 阿德里安·沃尔默( @mr_mitm )
用途: 此后利用工具旨在绕过端点检测和应用程序阻止列表。
优点: 可以使用 PowerHub 传输文件,而不会在测试环境中发出任何安全保护警报,这将使下一次渗透测试更加顺畅和轻松。使用此工具领先于 Windows Defender。
创建者: LOLBAS 项目和亚利桑那州安全工程与研究小组
用途: LOLBAS 是一个字典,用于在 Windows 机器上使用二进制文件查找可能的权限提升路径。LLOLBAS 是与 LOLBAS 协同工作的摄取器。摄取器会在 Windows 机器上的 LOLBAS 列表中查找所有二进制文件,因此无需猜测或对列表进行排序以查找它们(这可能很乏味)。
优点: LOLBAS 项目可搜索机器上可能的权限提升路径,而 LLOLBAS 允许针对特定机器定制这些路径。结合这两个工具,(几乎)在参与中势不可挡。作为一个额外的好处,如果出现需要它们的情况,可以方便地使用离线工具。
创作者: @nil0x
用途: PHPSploit 充当功能齐全的 C2 框架,通过单行 PHP 后门在 Web 服务器上静默地持久化。
优点: PHPSploit 是非安全参与时手头上的一项了不起的工具——高效、用户友好且运行安静。正如其 GitHub 描述所述,PHPSploit 是“由偏执狂,为偏执狂设计的”。
创作者: 塞瓦加斯
用途: 可以使用 swap_digger 在后期开发或取证期间自动进行 Linux 交换分析。
优点: 在 Linux 交换空间中可以找到各种各样的好东西,从密码和电子邮件地址到 GPG 私钥。Swap_digger 可以梳理这些交换空间并找到高影响力的奖杯,这将使评估更加成功。
创建者: RedCode 实验室
用途: Bashark 是一个后开发工具包,顾名思义,是用编程语言 Bash 编写的。这是一个可以产生巨大结果的简单脚本。
优点: Bashark 工作快速而隐蔽,允许通过创建 Bash 函数来添加新命令,并清除在目标环境中使用脚本后可能留下的任何痕迹。
创作者: AlessandroZ
用途: 使用 BeRoot 项目查找可用于在 Windows、Linux 和 OS X 环境中提升权限的常见错误配置。
优点: 识别常见的错误配置是在网络中立足的最可靠方法之一,因此找到这些错误配置的速度越快越好。BeRoot 项目在这方面提供了极大的帮助。
本文,旨在介绍一些红队工具,供大家了解和参考研究之用,不建议任何人利用网络技术从事非法工作,破坏他人计算机等行为。渗透有风险,入坑需谨慎。法网恢恢,疏而不漏。请正确理解渗透含义,正确利用渗透技术,做网络安全服务的践行者。