又到了会棍博主流水账的时间。
去年简单介绍了一下法国的安全会议 Hexacon,似乎是国内最早宣传这个会议的博主?在现场还意外遇到了本号的读者,有点没回过神……
场地和去年依旧保持熟悉的配方——蓬尼阿尔宫旧贸易中心。
会议前有一个插曲。一位培训讲师从阿布扎比机场转机,随身行李携带的 Android 设备和用于调试的线缆,在安检直接被扣了。理由是线太多。
不靠谱的推测,大体是跟中东不久前的事件有关系,机场安检加码了。
除了主场之外,现场还设置了“闪电议题”(Lightning Talk)环节,讲一一段五分钟内的内容。形式大概或多或少有参考 MOSEC 的 BaijiuCon?去年这个环节被安排在茶点附近一个小区域,估计是觉得效果不好,今年换回了和主题演讲一样的讲台。
另一个新颖的环节是“CTF 速通”(Speedrun)。
为防止不小心违反当地的隐私相关法律法规,人脸一律处理成法制节目。
只接受个人现场报名,题目难度不大,但是要求众目睽睽之下直播解题。在这里我想 at 一些大佬……
水泄不通的现场不由得让我联想起上学时班上有人用投影直播打红警的场面。比赛大概从晚饭后持续到将近午夜,冠军抱走了一台游戏机。酸葡萄的我听说这款主机要过时了,道德与法治 6 都带不动。
目前议题材料放出来的不多,洗稿一下充字数。
先来填一下上一篇 0x41con 的坑。上一篇推文提到一个关于 frida 在非越狱 iOS 下的官方使用教程会公开会议材料,但直到现在也没发。下个月在巴塞罗那有 radare2 的会议,这个议题会再讲一次,所以应该是等这个讲完之后再放啦。
https://rada.re/con/2024/
Proxying to Kernel : Streaming vulnerabilities from the Windows Kernel
这一篇演讲来自 Angelboy 大佬,在 devcore 的官网上有繁体中文的博客分享,可以直接移步原文:
https://devco.re/blog/2024/08/23/streaming-vulnerabilities-from-windows-kernel-proxying-to-kernel-part1/
https://devco.re/blog/2024/10/05/streaming-vulnerabilities-from-windows-kernel-proxying-to-kernel-part2/
博主对 Windows 没有什么研究,然后据说🍊神本人会看这个公众号,就不瞎解读贻(台)笑大方了。
有趣(唯一能看明白)的一点内容是 Windows 漏洞利用上的一个新思路。
作者发现 ntoskrnl.exe 用全局变量用来表示特定权限对应的标志位的下标索引,例如 SeDebugPrivilege 对应的全局变量值是 0x14,在 OpenProcess 检查是否具有对应权限时就会比对第 0x14 个 bit。而这个索引值只会随系统初始化一次(应该是个 static 变量?),保存在可写的内存。
议题的漏洞实现的原语是(有条件的)任意内存地址自增。只要把这个变量自增魔改成 0x17,对应 SeChangeNotifyPrivilege,就相当于把调试特权送给了大部分具有这个普通特权的进程——不单 exploit,大家好才是真的好。
Exploiting File Writes in Hardened Environments - From HTTP Request to ROP Chain in Node.js
这篇也有作者的博客释出。
https://www.sonarsource.com/blog/why-code-security-matters-even-in-hardened-environments/
议题针对一个有趣的场景,在 node.js 应用的上传应用中找到了任意路径写入的 bug(可控的 fs.writeFile),但环境的文件系统除了上传目录之外全部只读,如何获得代码执行权限?
nodejs 基于 libuv 实现事件循环,内部基于管道实现通信。通过文件写入的 bug,结合 Linux 下 procfs 的特性可以构造路径写入这个管道。libuv 会将其中的二进制数据读出,直接当作 uv__signal_msg_t 结构体处理。
typedef struct {
uv_signal_t* handle;
int signum;
} uv__signal_msg_t;
struct uv_signal_s {
UV_HANDLE_FIELDS
uv_signal_cb signal_cb;
int signum;
// [...]
uv_signal_cb 是一个函数回调指针,那么读者到这就应该明白发生了什么事了。只要构造好结构,就能通过写入管道来控制程序执行流。作者发现这个版本的 nodejs 为了性能没有开启随机化,省去了信息泄露的步骤,一步到位进入 ROP 环节。
此前 h1 上有另一个研究员将这个思路报告给 nodejs,可以绕过 nodejs 的进程内“沙盒”特性(https://nodejs.org/api/permissions.html)。不过官方认为这不算安全边界。
https://hackerone.com/reports/2260337
议题的剩余部分还解决了如何构造符合 UTF8 编码要求的 ROP 链等问题。
这个场景通过脚本运行时的底层机制把一个受限制的 Web 安全漏洞利用了起来,相当有意思。
然后不知怎的一写 js 的内容就会联想起一位先哲的话,本公众号唯一珍藏表情包
最后是彩蛋。
今年日冕物质喷射现象非常活跃,五月一场极光大爆发让人印象深刻,正好发生在 OffensiveCon 第一天晚上。在 Hexacon 前几天又开始有可能的极光预报,让我一度怀疑是不是混进了神仙,怎么一开会就闹极光。
其实今年中纬度地区观测到极光已经好几次了。
会议结束几天后,今年排名第二的大爆发虽然迟到,但没有缺席。昨晚屁颠屁颠跑去郊区追到了。
甚至半夜失眠起来看窗外,夸张到可以直接家盖着被子肉眼看。