黑客网站入侵 编程 搭建 渗透 破解
3.67K subscribers
417 photos
13 links
Download Telegram
将我从沙盒中隔离出来 - 探索 CNG 密钥隔离的特权提升


最近几个月,微软修补了我报告的 CNG Key Isolation 服务漏洞,编号为 CVE-2023-28229 和 CVE-2023-36906,CVE-2023-28229 包含 6 个原因类似的释放后使用漏洞,而 CVE-2023-36906 是一个越界读取信息泄露漏洞。微软在评估状态中将其标记为“不太可能被利用”,但实际上,我利用这两个漏洞完成了利用

客户端可以指定要设置哪个属性,如果属性名为“使用上下文”,它将分配一个可由客户端控制大小的新缓冲区,并将“使用上下文”缓冲区存储到提供程序对象中,但是当我查看查询代码时,我注意到“使用上下文”应该是字符串类型,它将在 while 循环中遍历缓冲区,并在遇到空字符 [c] 时中断,然后将整个缓冲区返回给客户端。
当我将“使用上下文”属性设置为缓冲区中的非零内容时,将发生越界读取,实际上,此属性是一个很好的利用对象,因为缓冲区的大小和内容可以由客户端控制。
JavaScript 是网络上使用最广泛的编程语言之一,因此成为网络犯罪分子的主要目标。它的流行以及其客户端执行为各种攻击媒介创造了机会。在本文中,您将学习一些 JavaScript 基础知识,以识别和利用 Web 应用程序中的漏洞,例如跨站点脚本 (XSS)、跨站点请求伪造 (CSRF),以及一些其他常见安全漏洞
OWASP ZAP 预装在 Kali Linux 上,因此请确保在您的终端中使用其进行更新sudo apt update %% sudo apt upgrade。
从应用程序菜单或 zaproxy在终端中输入启动应用程序,并配置必要的设置,例如目标 URL 和代理设置(考虑使用FoxyProxy这样的插件来轻松更改代理)。
扫描目标Web应用程序:
点击“攻击”按钮或从“工具”菜单中选择“蜘蛛”选项,即可启动扫描。这将启动对 Web 应用程序的爬取并识别潜在漏洞的过程。
查看结果:
扫描完成后,OWASP ZAP 将在“警报”选项卡中显示已识别漏洞的列表。您可以单击每个警报以查看更多详细信息,例如漏洞类型、严重性(通过彩色标志轻松可视化)和简要说明。
手动测试漏洞
手动测试 Web 应用程序是否存在漏洞是确定是否存在漏洞的一种方法。最常见的手动测试涉及在输入或表单字段中使用 JavaScript 来查看命令是否会运行。还有许多其他类型的手动测试(OWASP 整理了 XSS 过滤器逃避备忘单),但这通常是涉及的第一步。

步骤 1:设置 DVWA
DVWA 也预装在 Kali Linux 中。如果你使用其他操作系统,请从其 GitHub 存储库下载,或sudo apt install dvwa在终端中使用。
通过运行托管应用程序的 Web 服务器启动 DVWA。
通过 Web 浏览器访问 DVWA,通常在http://localhost/dvwa。
使用提供的凭据登录或创建新帐户。
导航到“XSS”类别下的“反射型 XSS”部分。
第 2 步:识别漏洞
第一步是观察用户输入字段,因为这些是我们希望用于此类 XSS 攻击的元素。在开发者控制台中,检查易受攻击页面的源代码,以找到可能易受反射型 XSS 攻击的输入字段。
您已设置了一个简单的监听服务器来捕获 XSS 负载发送的数据。每当执行负载时,服务器日志都会显示接收到的数据,这正是我们现在要做的。您可以更改代码以捕获其他信息,例如 cookie、URL 等。

利用反射型XSS
现在,我们将演示一种利用反射型 XSS 漏洞捕获敏感用户输入(例如登录凭据)并将其发送到攻击者控制的服务器的高级技术。在本次演示中,我们将再次使用 DVWA。

步骤 1:导航到“反射型 XSS”部分
在您的网络浏览器中打开 DVWA,通常可以通过 访问http://localhost/dvwa。
使用提供的凭据登录或创建新帐户。
导航到“XSS”类别下的“反射型 XSS”部分。
步骤 2:制作有效载荷
现在,我们编写一个 JavaScript 有效负载,它在执行时会捕获用户在特定表单字段中输入的内容,并将其发送到您控制的服务器。
hook glbic的方法更多的只是用在用户态做阻拦,例如之前文章中通过LD_PRELOAD进行动态链接阻拦的方法如果通过sudo命令运行,或者使用syscall运行的时候就无法进行拦截

现在需要将我们的思维发散,在终端下实现whoami命令的时候,调用的其实是getuid()这个函数,所以我们要针对的是getuid

引入一个Liunx下一个非常特别的内核机制,eBPF。那么什么是eBPF。eBPF(Extended Berkeley Packet Filter) 是一种高效、灵活的 内核扩展 机制,允许开发者在 不修改内核代码 的情况下,在内核中 运行安全的自定义程序,用于 网络处理、安全监控、系统跟踪、性能优化 等,最关键的一个点是它不需要直接修改Linux相关的内核,保证了内核的安全,减少了系统崩溃的风险
设计流程
1. 进程监控(eBPF kprobe / tracepoint)

○ 监听 execve() / execveat() 系统调用,获取用户执行的命令。

○ 提取 命令参数(argv),解析高危行为。

2. 黑名单匹配

○ 预设 高危命令列表(如 rm -rf /*、dd if=/dev/zero、nc -e /bin/sh)。

○ 支持模式匹配(正则表达式匹配危险行为)。

3. 安全策略

○ 允许(Pass):普通命令执行不受影响。

○ 拦截(Block):如果检测到高危命令,则阻断执行。

○ 记录(Log):将日志存入 eBPF Map,供用户态程序分析。

4. 用户态交互

○ 用户态程序通过 eBPF Map 获取检测数据,发送 告警通知。

○ 支持 Syslog / SIEM / Webhook 进行日志采集与分析。
某luo数据包加密逆向
抓包发现,大部分请求包和返回包都加密了,但是发现做了frida检测
第一种是使用修改过特征的frida-server
这里使用的是florida-server
找到用于检测的库,在它检测之前nop掉检测函数或者是直接删了这个so库
运行后发现在进入了libmsaoaidsec库后发生进程终止,说明这个库里存在检测机制
进入这个app文件夹里删了这个库