一念Jeff LiWriting · zhipeng.li中文

Forty Years of Phrack, Part II

Phrack杂志四十年(二)

From the E911 document that set off Operation Sundevil, Knight Lightning's arrest and issue 31's defiant declaration that "Phrack will never die," through the crackdown years when the scene shifted from phone phreaking to TCP/IP, to Aleph One's landmark stack-smashing paper, the debut of nmap and the NT Rootkit, this is the story of how Phrack rose from the ashes of the storm and went from underground newsletter to a technical journal on every security researcher's desk. Along the way, I recall the nights I stayed up clearing challenge levels with that article as my guide.

上篇讲到,从1985年11月创办到1989年12月,四年零一个月的时间里,两位创办人带领下的Phrack杂志发行了30期,除了中间有大半年的时间去上大学作为Freshman忙于适应大学的生活,平均一个月多点儿发行一期,基本上是个月刊。这一阶段,Phrack杂志确立了风格、地位和影响力,成为了黑客文化的圣经。黑客们以在杂志上发表文章为傲,扬名立万。

起源于80年代文字界面的BBS,Phrack杂志文章的文本风格——纯文本,硬回车、空格排版、混杂ASCII Art和leet speak(黑客英语)成为特色和传统,一直保持到40年后的今天。这一点都不奇怪,凡是玩过终端登录文本界面的bbs人都知道,在bbs上发文章,格式只能是这样。在后来Web界面的论坛上,这种风格依然是主流,如果你那时候看过alert7/warning3他们的文章就知道。近十多年来,Phrack杂志技术文章的内容深度更像学术论文,作者也不乏博士、研究员的学院派和正规军,但仍然延续文本传统,比其他学术期刊上TeX/LeTeX排版的布满公示和图表的论文,风格上大相径庭。每一期和每一篇文章似乎提醒着读者Phrack的古老起源。

1990年:Operation Sundevil的惊雷与Phrack的涅槃

30期过去,一切往后看起来非常美好,一切回看起来又早有预兆。

第24期(1989年5月10日,文件5/11) 发布的BellSouth 的 E911 系统内部文件,描述其管理和维护流程,为后面发生的事情埋下了雷,而第23期(1989年1月5日文件10/12 )发布的Big Brother Online,则更早地显示了不详的预兆 。(PS,上一部分提到的23期的文章有误,应该是这篇)。

1990年5月的一天,美国秘密服务局发起了代号为“Operation Sundevil”的行动,一场席卷全美的黑客镇压风暴拉开帷幕。这次行动的目标是打击计算机黑客和电话诈骗,执法人员突袭了全国多个城市,逮捕了数十名涉嫌非法入侵的黑客。而这场风暴的中心人物之一,竟是Phrack杂志的联合创始人Knight Lightning(克雷格·奈多夫)。

事情的起因要追溯到1989年。Knight Lightning在Phrack第24期中,发表了一份从贝尔南方公司窃取的E911应急系统文档。这种事情可以说是十多年后成立且名声大噪一时wikileads的先驱,而这个文件的发表以及后来因为这份文档引起的风波,当时还是一个小黑客的阿桑奇应该都看在眼里了。E911这份文档详细描述了电话系统的紧急服务流程,在Knight Lightning看来,这不过是黑客探索精神的一次展示。然而,执法部门却将其视为威胁国家安全的“电子炸弹”。1990年,Knight Lightning被捕,面临电子诈骗等多项指控,Phrack杂志也因此被推上风口浪尖。一时间,杂志停刊,黑客社区人心惶惶,仿佛那座象征自由与知识的灯塔,在风雨中摇摇欲坠。

国内也曾经有类似的时期。我一直觉得,如果尺度把握得不好,可能适得其反。正如Phrack 7中的黑客宣言里说的那样,年轻的黑客们只是好奇,而他们把好奇心用在可能造成伤害的黑客攻击行为上,正是因为遭受了不公正的对待。如果继续用同样的手法,结果不会好。网络和信息系统的脆弱性靠打击黑客是掩盖不了的,只能造成安全的假象,只会延缓改进的步伐,面临真正(比如来自国际上)的攻击时,只会措手不及,甚至在毫不知情的情况下被渗透。

但黑客的精神从不轻易屈服。就在“Operation Sundevil”行动后的第20天,1990年5月28日,Phrack第31期横空出世。新编辑Crimson Death接过重担,以一篇掷地有声的前言宣告:“Phrack绝不会死!”这一期不仅标志着杂志的重生,更成为黑客社区不屈意志的象征。第31期和第32期连续刊载了《Phrack意外事件》新闻,详细披露了“Operation Sundevil”的前因后果,澄清谣言,提振士气。尽管黑客文化在这场镇压中被迫转入地下,Phrack却如同一面旗帜,依然迎风飘扬,成为社群的信息阵地和历史见证。

Knight Lightning的案件最终因证据不足撤诉,但这场风波催生了一个更大的变革。电子前哨基金会(EFF)应运而生,致力于捍卫黑客的言论自由和合法权益。Knight Lightning后来转而投身法律研究,成为网络法律的先驱,而Phrack则在风雨中站稳了脚跟,开始了新的征程。

镇压时代与内容转型

“Operation Sundevil”只是黑客镇压时代的开端。1992年,美国的黑客社区再次迎来震荡。两个传奇黑客帮派——Legion of Doom(LOD)和Masters of Deception(MOD)之间的争斗,以MOD主要成员的被捕告终。Phiber Optik等著名黑客被判刑,标志着1980年代自由黑客时代的终结。然而,Phrack并未沉默。它通过“Phrack World News”栏目,持续报道这些事件,记录黑客被捕与审判的点点滴滴,既是警示,也是凝聚社区共识的纽带。这些报道后来成为EFF等组织倡导黑客权利的重要素材。

在这段低潮期,Phrack的内容开始悄然转型。曾经以电话系统黑客(Phreaking)为主的杂志,逐渐将目光投向了新兴的计算机安全领域。1990年代初,互联网的雏形正在形成,黑客们手中的工具从调制解调器转向了TCP/IP协议栈。Phrack敏锐地捕捉到这一变化,成为黑客们探索新世界的指南针。

进入1994年,互联网的兴起改变了世界,也改变了Phrack。随着主流安全行业的形成,杂志的发行频率一度下降,有时甚至每年仅1-2期,读者们不禁担忧,这本传奇刊物是否会就此淡出历史舞台。然而,命运总是青睐那些不甘沉寂的人。1996年,一群新生代黑客加入编辑团队,Route、Voyager等名字开始出现在Phrack的页面上,杂志迎来了新的生机。

栈溢出名篇横空出世

1996年11月,第49期如同一颗重磅炸弹,震撼了整个黑客社区。

这一期中,Aleph One(Elias Levy)发表了《Smashing The Stack For Fun And Profit》。文章开头说:“Over the last few months there has been a large increase of buffer overflow vulnerabilities being both discovered and exploited. Examples…sendmail…This paper attempts to explain what buffer overflows are, and how their exploits work. Basic knowledge of assembly is required.” “在过去几个月中,大量缓冲区溢出漏洞被发现并被利用。例如syslog、sendmail等。本文试图解释缓冲区溢出是什么,以及溢出是如何被利用的。需要读者具备基本的汇编知识。”

Aleph One系统讲解了栈缓冲区溢出漏洞的原理、利用方法和示例代码,是第一篇使复杂漏洞大众化的教程 。文章开篇指出:“近年来缓冲区溢出漏洞大量被发现和利用……本文尝试解释什么是缓冲区溢出,以及其利用方式” 。“我们假定读者具备基本汇编知识……并将以Intel x86架构和Linux系统为范例” 。接着作者从进程内存布局讲起,详细介绍了栈区、函数调用惯例、返回地址等背景,再通过示例程序演示如何向栈缓冲写入超长数据覆盖返回地址,并跳转执行Shellcode。文章分步骤剖析了shellcode编写、地址定位等关键技巧,并提供了一个功能完整的漏洞利用程序。

Aleph One以清晰易懂的语言将传统上需要黑客多年经验的知识传授给读者:“本文旨在探索并展示如何在内存中安置恶意代码并劫持执行流程” 。正因如此,文章发表后反响巨大,黑客圈和安全行业纷纷学习研究。由此催生了许多后续成果:漏洞利用技术成为安全研究显学,防御方则开发了栈保护等机制 。可以说,《Smashing The Stack》开启了软件安全的新纪元,其重要性不亚于《黑客宣言》之于文化层面。

Aleph One本人也因这篇文章奠定了在安全界的地位。25年后人们回顾时感慨:“它可能是对行业影响最大的文章,直接促成了防御技术如栈金丝雀的诞生” 。文章中的示例程序和思路至今仍被作为教学案例使用。总而言之,《Smashing The Stack》以深入浅出的方式普及了栈溢出漏洞的攻击原理,被奉为每位安全从业者的必读经典,在黑客技术传播史上具有无法取代的地位。

甚至,这篇文章的篇名都成为了经典,后来者纷纷模仿。比如Phrack 59的Handling Interrupt Descriptor Table for fun and profit, Phrack 60的Smashing The Kernel Stack For Fun And Profit,Phrack 63的Hacking Grub for fun and profit, Phrack 67的Hacking the mind for fun and profit,Phrack 68的Similarities for Fun & Profit等等。Phrack之外,类似的用法就更多了,Hacking for fun and profit为题的论文、播客、YouTube频道,还有Hacking Monitoring for Fun and Profit,Hacking APIs for Fun & Profit等等不一而足,彰显了Phrack杂志和Alepha One这一名篇的影响力。

我对这篇文章的记忆应该是1998/1999年了。那时Sunxm博士他们搞了一个攻击实验室,后来在院士的建议下改名为积极防御实验室。他们搭建了一个实验环境,可以让大家来做攻击。有很多关卡,一关比一关难,很好玩。好像是倒数第二关是一个缓冲区溢出的问题,当时我就翻出了知道但没仔细读的这篇文章,照着文章现学现用,直到天亮了才过了这一关,然后赶快去上班。说起来,这应该是最早的网络安全CTF了吧。

话说,Aleph One发表这篇文章的时候是Bugtraq的管理员。他在1996年早些时候开始负责bugtraq之后,懂技术又认真负责,而且坚持原则披露安全问题,Bugtraq的影响力逐渐扩大。在更早的1995年,Aleph One在Bugtraq上看到一篇文章讲Buffer Overflow,作者是Mudge。所以,1996年Prack 49的这一名篇,实际上受到了Mudge的影响。如果再向上追溯的话,按Mudge自己的说法,他是从Solaris操作系统排错手册《PANIC》中学到的,Solaris 是BSD系的UNIX。最早的缓冲区溢出攻击,是1988年的莫里斯蠕虫,蠕虫作者的父亲Bob Morris是UNIX和C语言发明者Ken Thompson和Dennis Ritchie的同事。

Aleph One这篇文章迅速成为经典,推动了漏洞修复技术的发展,例如栈保护机制的诞生。从此,Phrack不再只是地下黑客的通讯录,而是安全专业人士也研读的技术期刊。

nmap首次亮相

1991年9月1号Phrack 51上,Fyodor发表了《The Art of Port Scanning》。这是nmap这款著名的端口扫描工具的第一次亮相,全部源码都附在这篇文章里。nmap现已成为网络安全工具箱中必不可少的基础工具之一,出现在黑客帝国中的那一幕堪称经典,应该不用多介绍。值得一提的是,2000年后的某一年,nmap.org上评选了年度十大网络安全工具,vertex的lids入选。对,就是小四scz的名篇《你尽力了吗》和本文的上一篇中提到的那位。

在Route等主编带领下,Phrack杂志进入了技术的高峰期。1997年第51期,杂志介绍了ICMP隧道“Loki”隐蔽通信技术,这一创新让黑客们在网络中如幽灵般穿梭。1998年第54期则聚焦TCP/IP协议的弱点,探讨如何利用这些漏洞发起攻击。Route本人也发表了多篇开创性文章,例如《Libnet参考手册》,为网络封包构造提供了实用工具。这些内容吸引了全球安全研究者的目光,Phrack的影响力达到了新的高度。

第55期的两篇名作

1999年9月9日发行的Phrack 55也是非常重要的一期。《A Real NT Rootkit》和《Frame Pointer Overwriting》都发表在这一期。

《A Real NT Rootkit》 作者Greg Hoglund,是Windows平台早期最重要的Rootkit技术文章之一。Rootkit指在系统中隐藏后门和篡改安全机制的一套程序 。当时市面上已有后门工具(如Back Orifice、NetBus),但作者Hoglund直言:“那些远程控制程序不算真正的Rootkit,它们只是业余版的PC-Anywhere” 。文章开篇先定义Rootkit:“Rootkit是一组通过修改现有执行路径、破坏可信计算基完整性的程序” 。换言之,Rootkit与普通后门不同,它潜伏于操作系统内部,通过补丁和木马技术实现隐藏。随后Hoglund具体阐述了Rootkit能做什么,例如:“Rootkit可以在特定用户登录时关闭审计日志”“可以植入万能密码后门” 等。他强调Rootkit是修改系统本身,“区别于PC Anywhere这样的应用层远控” 。文中最引人注目的是作者提供了一个4字节的Windows NT内核补丁,可以取消整个域的安全限制 !他解释说,将NT内核中的安全引用监视器函数改几个字节,就能让任意用户获得管理员权限。如果攻击者能在主域控制器上应用此补丁且不被察觉,那么整个域的安全性将荡然无存 。这个大胆的想法在当时引起轰动——它证明了微软NT系统也能被植入Rootkit级别的后门。Hoglund继续讨论了NT安全机制和参考监视器原理,铺垫理论背景 。文章最后附上了他编写的Rootkit工具代码,包括隐藏已删除文件痕迹(Necrofile)和清除日志(Klismafile)的功能,实现了反取证。这些工具后来整合为著名的“Defiler’s Toolkit” 。可以说,本篇文章奠定了Windows下Rootkit研究的基础。Greg Hoglund凭此成为Rootkit领域的权威人物(后来写了《Exploiting Software》等书)。它对业界的影响还体现在促使安全厂商加强内核完整性防护(如微软在Win2003引入PatchGuard思想的前身)。从文化层面看,这篇文章开启了黑客对抗取证和安全产品的新思路:与其直接攻击系统,不如潜伏修改系统本身,让一切看似正常实则全面失守。时至今日,Rootkit已是家喻户晓的名词,而Phrack上的这篇文章正是其里程碑之一。它让地下黑客技术向Windows领域延伸,填补了当时安全研究的空白,也警示了Windows安全的脆弱性。

原文摘录: “First of all, programs such as Back Orifice and Netbus are NOT rootkits… A rootkit is a set of programs which PATCH and TROJAN existing execution paths within the system… In other words, a rootkit is something which inserts backdoors into existing programs, and breaks the existing security system.”“首先,像Back Orifice和NetBus这样的程序不是 rootkit……Rootkit 是一组通过补丁和木马修改系统中现有执行路径的程序……换言之,Rootkit会在现有程序中植入后门,破坏现有的安全体系。”

klog的《Frame Pointer Overwriting》刊于同一期。这篇文章提出了一种创新的漏洞利用技术,被称为“帧指针覆盖”或“帧指针重写”,拓展了当时的缓冲区溢出利用思路。在传统栈溢出中,往往通过覆盖函数返回地址来劫持执行流。而klog发现:即使只有1字节的溢出,也可尝试覆盖函数栈帧指针(Frame Pointer),继而间接控制执行路径。文章详细分析了x86函数调用栈帧结构,指出在使用基址指针寄存器(EBP)作为帧指针的系统中,如果栈上紧邻保存的EBP之后是可控缓冲区,则可能通过溢出最后1字节修改EBP值,从而影响函数返回地址的计算 。klog在文中构造了一个实例:漏洞函数func()的栈帧布局恰好使缓冲区末端溢出的1字节覆盖了保存的EBP最低字节 。接着作者展示如何利用这一字节的改动来调整返回地址指向Shellcode。通过精巧的调试和计算,他成功让程序在函数返回时跳转到选定地址,尽管只能改动返回地址的一部分。这一技巧需要非常严苛的条件,但klog的论证证明了“没有不可利用的漏洞,只有未想到的方法”。文末作者总结道:“虽然这种技术看似美妙,但限制条件苛刻,在实战中几乎难以重现。然而它向我们证明:不存在‘太小’的溢出或漏洞,任何缺陷都有可利用之处,只需找到方法” 。这一观点振奋了黑客们的思维。帧指针覆盖技术后来在一些CTF夺旗赛和学术研究中被提及,尽管实用案例罕见,但它拓宽了人们对漏洞利用的认知边界。klog的结论也常被引用,体现了黑客追求极致利用的精神:“再小的溢出也有可能带来大漏洞” 。总之,本篇文章在缓冲区溢出利用技术百花齐放的1999年独树一帜,展示了黑客的奇思妙想,为漏洞利用理论增添了新的维度。

原文摘录: “Conclusions could be drawn from this nearly impossible to exploit situation… it for sure proves us that there is no such thing as a big or small overflow, nor is there such thing as a big or small vulnerability. Any flaw is exploitable, all you need is to find out how.”“结论是:虽然这种场景几乎不可能实用利用……但它确实向我们证明了:不存在所谓大的或小的溢出,也没有所谓大的或小的漏洞。任何缺陷都是可利用的,你所需要做的只是找出方法。”

法律压力与第一次休眠

1998年,美国通过了《数字千年版权法》(DMCA),这给安全信息的自由传播带来了挑战。Phrack在第59期前言中尖锐批评道:“自由且未经删改的信息正变得稀缺,这种法律让所谓‘自由国家’的人民带上枷锁。”为了应对法律风险,编辑团队调整策略,先将杂志私下提供给作者和审稿人,再公开发布。这种灵活的应对,既保护了作者,也确保了知识的自由分享。

2000年,Phrack迎来了一次戏剧性的考验。西班牙黑客组织“Hispahack”利用PHP漏洞,成功入侵了Phrack的论坛服务器,窃取了用户密码文件。这起“以黑制黑”的轶事在黑客圈中传为笑谈,也提醒了Phrack团队加强自身安全。这次入侵并未对杂志内容造成长期破坏,但却成为Phrack从BBS时代全面过渡到互联网时代的标志。

同年,主编Route在第56期后宣布暂停发行,Phrack进入第一次休眠。网站一度无法访问,社区中传言四起:“Phrack是否就此消失?”2000年10月,有读者在Slashdot发帖感叹:“这个黑客传统的消逝令人惋惜。”

Originally published on the WeChat account 网安志异, 2025-03-07 · original

Comments

    No sign-in needed; comments appear right away.