原创 Jeffery1st 2025-03-08 00:38 美国
Phrack的纯文本还将传承那份探索与自由的黑客精神。正如第31期所言:“无论名为何物,Phrack承载的是我们的黑客历史和初心。”这盏灯塔的光芒,将永远照亮技术世界的每一个角落。
同年,主编Route在第56期后宣布暂停发行,Phrack进入第一次休眠。网站一度无法访问,社区中传言四起:“Phrack是否就此消失?”2000年10月,有读者在Slashdot发帖感叹:“这个黑客传统的消逝令人惋惜。”
然而,Phrack的生命力远超想象。2001年8月,在荷兰HAL黑客大会上,志愿者接管编辑部,第57期以硬拷贝形式发布,杂志正式复活。这次休眠与复活,仿佛凤凰涅槃,让Phrack以更坚韧的姿态迎接新世纪。
进入21世纪,Phrack迎来了新的发展阶段。2001年复活后,杂志的内容更加专业化,涵盖了移动安全、网络应用漏洞和新兴技术等领域。智能手机的普及让移动安全成为热点,Phrack刊登了多篇关于移动操作系统漏洞的文章,例如分析iOS和Android的内核弱点。Web 2.0的兴起则带来了网络应用漏洞的激增,杂志紧跟潮流,探讨XSS、SQL注入等新威胁。
2002年,第59期和第60期成为这一阶段的亮点。2002年7月28日的第59期中,Tyler Durden发表了《Bypassing PaX ASLR Protection》,挑战当时最先进的Linux内核保护技术ASLR。PaX是Linux内核的一个补丁,提供了地址空间布局随机化(ASLR)和禁止可执行内存页等保护 。ASLR通过随机化栈、堆、库等基址,使攻击者难以猜测确切内存地址。该技术在2001年前后引入,被认为极大提高了漏洞利用难度。Tyler Durden(以电影《搏击俱乐部》角色命名)在文章中详细研究了PaX ASLR的实现和弱点。他的目录精细而丰富,包括分页机制、PaX原理、ASLR在栈/库/可执行文件的细节,以及PaX近期改进 。引言总结了PaX的工作方式:“PaX通过底层分页机制防止注入代码执行,并使重用libc攻击变得困难” 。同时指出早期Openwall补丁的随机化曾被Nergal的return-to-plt技巧绕过,PaX团队随后通过重定位可执行模块的办法弥补了不足 。由此引出一个问题:PaX ASLR真的高枕无忧了吗? Durden通过分析认为,32位体系结构的地址空间有限,ASLR的随机熵不够,可被强力猜测。同时,如果存在信息泄露辅助,也可使ASLR失效。文章第二节列举了ASLR的弱点,包括部分地址覆盖(覆盖返回地址低2字节,只需猜测剩余字节) ,以及利用格式化字符串信息泄露来推测地址等 。第三节,作者以实例演示如何逐步达成漏洞利用:首先通过gdb跟踪了解全局流程,然后利用printf泄露来获取libc基址偏移,再计算函数和参数的绝对地址 。最终,他成功将任意命令注入受PaX保护的系统中。文章中甚至提供了针对启用ASLR和SegvGuard情况下的成功利用代码。作者总结该攻击需要的条件,如找到可利用的栈溢出和可泄露信息的函数,并讨论了PaX的额外防护SegvGuard对攻击的影响及应对 。这篇论文证明了:32位ASLR并非牢不可破,巧妙结合内存泄露和偏移猜测仍可绕过 。这一发现后来也被学术界认可(如Shacham等人在2004年的论文)。可以说,Tyler Durden首开先河,将复杂的ASLR绕过技术在黑客社区进行了分享和讨论。由于作者以匿名投稿,且内容深刻,有传闻认为“Tyler Durden”实为PaX作者pageexec本人用化名自我挑战,不论真相如何,文章的质量有目共睹。它促使PaX进一步改进(PaX团队后来引入更强随机化和64位支持),同时推动漏洞利用者发展出Return-Oriented Programming等新技巧。此文标志着漏洞攻防进入“信息泄露+地址随机化绕过”的新时代,也体现了Phrack上黑客与安全开发者的“隔空交锋”。整篇文章深入浅出,逻辑缜密,充分展现了黑客们面对强大防御时的不懈探索精神。
原文摘录: “PaX…takes advantage of the processor lowlevel paging mechanism in order to detect injected code execution. It also make return into libc exploits very hard to accomplish… It hooks two OS mechanisms: refuse code execution on writable pages, randomize mmap()ed library base address to make return into libc harder.”“PaX…利用处理器底层分页机制来检测注入代码的执行。它也使返回libc的利用变得非常困难……PaX钩住了两个操作系统机制:禁止在可写页面执行代码,将mmap()映射的库基地址随机化以使返回libc攻击更困难。”
在同一期,the grugq发表了《Defeating Forensic Analysis on Unix》。这篇长文开创性地系统讨论了反取证(Anti-Forensics)理念与实践,是黑客从进攻转向隐藏痕迹、防御追踪的代表作。作者the grugq是知名黑客,反取证领域的先驱人物。他在文中首先定义:“反取证:通过清除或隐藏证据来削弱取证调查效果的行为” 。随着计算机取证成为执法部门和企业应急的重要手段,黑客也开始研发对抗措施。文章指出,当时信息安全圈对取证的兴趣大增,然而对反取证的讨论“出奇地少” 。为此,作者撰文弥补这一空白,提出了一系列针对Unix文件系统取证的反制策略 。文章分为理论和实践两部分。理论上,grugq简述了Unix文件系统原理和数字取证基础,让读者理解inode、目录项、已删除文件残留等概念 。随后进入实践层面,他贡献了两个自主开发的工具:“runefs”和“The Defiler’s Toolkit (TDT)”。Runefs工具演示了如何在ext2文件系统上创建隐藏空间,不被传统取证工具发现 。TDT包括Necrofile和Klismafile两大利器:Necrofile能够粉碎已删除文件的inode元数据,使取证工具(如The Coroner’s Toolkit, TCT)的icat命令无法还原被删文件 ;Klismafile则清除已删除文件的目录项,使fls等无法列出删除记录 。文章通过列举TCT工具输出对比,证明了其反取证方法的有效性:被处理后的磁盘,取证工具仅看到“non-existant data(不存在的数据)” 。在总结中,作者强调这些策略不是为了协助犯罪,而是为了让安全从业者认识到取证工具的局限。他呼吁改进文件系统设计和取证技术来应对反取证威胁。事实证明,grugq的呼吁非常具有前瞻性。几年后,商业取证软件开始引入更底层的分析手段;同时执法部门也关注到磁盘加密、数据残留消除等反取证问题。对黑客圈而言,这篇文章标志着技术全面化:不仅要会攻防系统,也要懂痕迹藏匿与调查对抗。它把古老的黑客箴言“离开时抹掉自己的足迹”提升到方法论高度。文章发布后,grugq的工具代码在地下广为流传,一度给数字取证带来挑战。甚至连美军情报机构都关注到了相关技术,反取证概念被纳入信息战范畴。可以说,grugq开启了一个新的研究领域,他也因而被称为“反取证教父”。总而言之,《Defeating Forensic Analysis on Unix》在黑客技术版图中占有一席之地:它提醒人们安全不止于攻防应用本身,取证与反取证是攻防之外的第三战场。Phrack通过刊载此文,把地下黑客思维再次领先业界半步,为后来兴盛的对抗取证研究埋下了种子。
原文摘录: “Anti-forensics: the removal, or hiding, of evidence in an attempt to mitigate the effectiveness of a forensics investigation… despite the increased interest in forensics… there is surprisingly little discussion of anti-forensics. This article presents anti-forensic strategies to defeat digital forensic analysis on Unix file systems.”“反取证:通过消除或隐藏证据以削弱取证调查效果的行为……尽管信息安全业界对取证分析的兴趣与日俱增,但令人惊讶的是,关于反取证的讨论却非常少。本文提出了针对Unix文件系统的反取证策略,以击败数字取证分析。”
2002年12月28日发行的Phrack 60也有两篇必须介绍的文章。
《Burning The Bridge: Cisco IOS exploits》作者 FX of Phenoelit(Felix Lindner)。这是首批深入Cisco路由器操作系统(IOS)漏洞的技术文章之一。当时Cisco设备在互联网上无处不在,但相关安全研究鲜有公开。FX以思科IOS TFTP服务器溢出漏洞为切入点,引导读者踏入“路由器漏洞乐园” 。文章前言幽默地写道:“本文带领读者进入有趣的Cisco路由设备漏洞乐园。这并非终极宝典,只是我们研究结果的反映” 。作者首先说明IOS中绝大多数溢出是堆溢出而非栈溢出,因为IOS很少使用栈缓冲 。他引用Cisco官方数据称:“约85%的IOS软件问题直接或间接源于内存破坏” 。接着FX重点分析一个实例漏洞:IOS 11.1–11.3版的TFTP GET请求文件名长度过长可导致路由器崩溃 。虽然这些IOS版本已老旧,作者仍希望通过这个例子说明IOS漏洞利用的独特难点和方法 。文章详细介绍了IOS的内存布局、日志信息格式(如崩溃信息中“%SYS-3-OVERRUN: Block overrun at … red zone 41414141”) 。FX演示如何根据这些输出识别堆溢出,并推测溢出内容。然后通过修改IOS内存堆块和管理结构,实现代码执行。由于IOS缺乏shellcode执行环境,作者采用“ret2RETN表”(返回printf技术)泄露内存,进而计算偏移 。最终,他成功编写出一个利用此TFTP漏洞获取路由器交互shell的攻击代码,并附在文末。文章创新之处还在于提出了通用性思考:FX总结道,IOS中的漏洞彼此差异大,需要具体分析;但他的方法具备可推广性,“请读者使用你喜欢的Cisco IOS漏洞尝试本文的方法” 。这等于向社区发出号召,鼓励更多人投入路由器安全研究。事实证明,该文发表后,Cisco安全逐渐引起重视,后来出现了专门的IOS Rootkit(如“JISO”)研究。FX本人作为Phenoelit黑客组织领导,凭借此文确立了Cisco安全专家地位。他后来在Black Hat等会议多次演讲Cisco攻击手段。总的来说,《Burning The Bridge》打开了网络基础设施黑盒的大门,让黑客不再局限于服务器和PC,把目光投向路由器/交换机等高价值目标。对行业而言,它提醒厂家补课,Cisco公司随后发布补丁加强了IOS内存检查,也推动了嵌入式设备安全的兴起。文章标题“烧桥”寓意深刻:意指攻破路由器等于切断网络之桥梁,其影响往往比攻陷单台服务器更大。可见黑客视野的拓展和技术的深入,正是通过这类文章在Phrack中薪火相传的。
原文摘录: “This article is to introduce the reader into the fun land of exploiting a routing device made by Cisco Systems. It is not the final word on this topic and merely reflects our research results.” “本文旨在引领读者进入利用Cisco路由设备漏洞的有趣领域。它并非此话题的最终权威,只是反映了我们的研究成果。”
同一期上的《Basic Integer Overflows》作者blexim。在缓冲区溢出、格式化字符串漏洞之后,整数溢出(整数上溢/下溢)逐渐成为新兴的漏洞类型。blexim的这篇文章堪称对整数溢出漏洞的第一次系统梳理和科普,引发了安全社区对整数类漏洞的重视。作者首先解释了基本概念:“整数是能表示无小数部分实数的变量。计算机中整数有固定位宽,超出最大值就会发生溢出” 。他用简明易懂的语言介绍二进制补码、符号位(MSB)在表示负数中的作用,澄清了有符号整数和无符号整数的区别 。然后文章进入主题:什么是整数溢出,为什么会有危险?作者指出:“整数有固定大小(在本文假设32位),当试图存储超出最大值的数时,就发生了整数溢出” 。根据C标准,这种溢出会导致未定义行为,通常编译器忽略它,从而产生错误结果 。整数溢出往往不能被直接检测,这就带来了风险:“尤其当这个计算结果用于分配缓冲区大小或数组索引时” 。换言之,如果攻击者控制了某个长度参数,使其发生上溢变成很小的值,程序可能会分配过小缓冲区或绕过边界检查,从而造成后续的缓冲区溢出。这是一种间接利用:整数溢出本身不改写内存,但它可以导致逻辑错误,引出更严重的问题。blexim接着分类介绍两大类整数漏洞:整数上溢(Overflow)和整数符号错误(Signedness Error)。他提供了大量简易C代码片段,演示诸如short len; len = user_input_length; char buf[100]; if(len < 100) copy(buf, input, len);之类的情形中,如何通过提供极大len值使其溢出为小值,从而绕过长度检查导致缓冲区拷贝溢出 。又例如符号错误:函数期待无符号,但传入了负数导致判断逻辑失效。文章在解释每种情况后,都展示了简明的攻击思路和修复建议,是当时难得的全面教程。这篇文章的影响在于指出了传统安全审计容易忽视的盲点。在此之前,开发者往往只重视缓冲区边界,对整数运算安全考虑不足。blexim的工作让整数溢出进入大众视野。果不其然,自2002年起,Windows和Linux内核中曝出多起整数溢出漏洞(如著名的TCP/IP整数溢出),攻击者利用类似思路取得了提权。安全行业也开始将整数溢出纳入代码审计checklist。这可以说是Phrack推动行业进步的典型案例之一:地下黑客率先研究并传播的新漏洞类型,后来被主流所接受并极大改进了安全实践。从风格上看,本篇文章通俗易懂又不失深度,被誉为“关于整数漏洞的经典入门读物”。它体现了Phrack在第三阶段致力于将复杂理论平民化的宗旨,也充分展现了作者scut扎实的计算机基础功底和教学能力。
原文摘录: “In this paper I’m going to describe two classes of programming bugs which can sometimes allow a malicious user to modify the execution path of an affected process. Both of these classes of bug work by causing variables to contain unexpected values, and so are not as ‘direct’ as classes which overwrite memory, e.g. buffer overflows or format strings.”“本文将描述两类编程错误,这两类错误有时可使恶意用户修改受影响进程的执行路径。这两类漏洞都是通过导致变量包含非预期值来起作用的,因此不像覆盖内存的漏洞(如缓冲区溢出或格式化字符串)那样‘直接’。”
2005年,Phrack迎来一个重要节点。第63期被宣布将是“最终期”,并在DEF CON 13和荷兰What The Hack大会上以精装本限量发行。
然而,印刷过程却充满波折——原计划负责印刷的公司因内容敏感拒绝合作,两位亚利桑那大学的学生临危受命,自行打印并装订了100多本精装杂志,及时送抵会场。这些带有序列编号的硬拷贝,成为黑客文化的珍贵遗物,也象征着Phrack一个时代的落幕。
休眠两年后,2007年5月,一个自称“失落的黑客圈(TCLH)”的新编辑团队接棒,第64期上线,宣告Phrack重启。此后,Phrack进入不定期出版模式,每一期的发布都成为黑客圈的盛事。2008年和2009年,TCLH推出了第65期和第66期。2010年,原核心成员回归,第67期问世,但进度一再推迟,直到2011年底第68期才发布。
2016年,第69期在沉寂四年后发布,国外媒体评价:“Phrack数十年屹立不倒。”这一期中,fG!的《Revisiting Mac OS X Kernel Rootkits》探讨了Mac OS X内核rootkit的创建与检测,延续了Phrack对系统安全的深耕。
2021年第70期,xerub的《The Bear in the Arena》则从个人视角回顾了黑客社区的伦理与挑战,增添了文化反思的维度。如今的Phrack已经吸引了来自Google Project Zero、卡巴斯基实验室等顶尖机构的研究人员,内容深度和专业性进一步提升。例如,Adam Donenfeld的《Viewer Discretion Advised: (De)coding an iOS Kernel Vulnerability》分析了iOS内核漏洞,saelo的《Attacking JavaScript Engines》研究了JavaScript引擎的弱点。这些文章不仅技术含量高,还反映了黑客社区对新兴技术的敏锐洞察。
2024年初,第71期面世,也发行了硬拷贝。
这一期里LMS的《Bypassing CET & BTI With Functional Oriented Programming》展示了如何绕过CPU级别的安全功能,体现了Phrack对前沿技术的持续关注。编辑团队还宣布,2025年夏天将推出第72期,以庆祝杂志创刊40周年。这一次,Phrack不仅是对过去的致敬,更是对未来的承诺。
这些技术文章篇篇重磅,然而我大都没有仔细看过,所以就不硬着头皮介绍了。
从1990年的风雨飘摇,到2000年的技术巅峰,再到如今的一脚踏入学术殿堂,Phrack见证了黑客社区从地下走向公开,从电话黑客到计算机安全,再到移动和新兴技术的深入探索。它不仅是一本技术刊物,更是一部活生生的历史,记录了黑客们用代码与智慧对抗权威、追求自由的每一步足迹。
未来,Phrack的纯文本还将传承那份探索与自由的黑客精神。正如第31期所言:“无论名为何物,Phrack承载的是我们的黑客历史和初心。”这盏灯塔的光芒,将永远照亮技术世界的每一个角落。
阅读原文
跳转微信打开