跳至主要内容

人手一份核武器 - Hacking Team 泄露(开源)资料导览手册


原文来自乌云,备份地址

0x00 序


事先声明本人并不是全栈安全工程师,仅仅是移动安全小菜一枚,所以对泄漏资料的分析难免会有疏忽或着错误,望各位围观的大侠手下留情。
首先来看安全界元老对Hacking Team(以下简称HT)被黑这个事件的看法:
@tombkeeper: Stuxnet 让公众知道:“原来真有这种事”,Snowden 让公众知道:“原来这种事这么多”,Hacking Team 让公众知道:“原来这种事都正经当买卖干了”。
@赵武在路上: 2011年的时候,HBGray被黑,很多人没有意识到意味着什么,因为跟国家安全相关。这两天Hacking team被黑,大家也没有意识到意味着什么。这次包括了客户清单和0day,但我更关注的是RCS的代码,以前行业内都是粗糙到不行的demo,工程化公开的很少,这次会让行业内的技术往前推进几年,尤其是黑产。
可以说这次事件和斯诺登事件的影响力是不相上下的,但HT被黑不光光是让公众知道有这回事,随之而来还有整整415G的泄漏资料!里面有Flash 0day, Windows字体0day, iOS enterprise backdoor app, Android selinux exploit, WP8 trojan等等核武级的漏洞和工具。那么废话不多说,我们这就开始导览之旅。
enter image description here

0x01 总览


因为所有文件加起来的大小整整有415.77G。光下载就得好久好久。还好有人把整个镜像放了一份在网上。有兴趣的同学可以直接去查看:http://ht.transparencytoolkit.org/。据说之所以这么大是因为里面有很多的邮件。但你不用担心你的小水管,有好人整理了一个只有1.3G的精华版。在这里我也提供一个百度网盘下载:http://pan.baidu.com/s/1i3lHQRF 。在下载完完整版之前,我们就先拿精华版解解馋吧。
里面的数据大概是这样的:
enter image description here
“HACKING TEAM PASSWORDS AND TWEETS.pdf” 里主要保存了Christian Pozzi这个人经常去的网站的账号以及密码以及twitter的截图。估计他就是那个被黑了电脑的人了,因为这个人的电脑被黑,连带着HT内网git服务器,知识库,邮件服务器的数据全部都被dump下来了。
enter image description here
Hacking Team Saudi Arabia Training.pdf里面数据貌似不全,通过提纲来开看主要是介绍了如何安装和使用RCS (Remote Control System)系统。不得不说HT最牛的东西就是他们的RCS系统了,他们公司实现了全平台的RCS系统(包括windows phone)。我们可以看一下他们系统的截图:
enter image description here
各种监控信息详细到令人发指。不知道有多少人被这样监控着。
gitosis-admin-master.zip里保存了git服务器上成员的public key以及每个人负责的项目,通过”gitosis.conf”就可以大概知道哪个项目是谁在做了。比如placidi这个成员主要做android相关的项目。Naga, daniele, zeno, diego, ivan这几个人组要做fuzzer。Matteo, zeno, daniele这几个主要做病毒查杀检测。
enter image description here
所以接下来的章节我们也会按照他们的分组来进行分别讲解。

0x02 Android


core-android-audiocapture-master.zip主要是利用Collin Mulliner提供的hook框架来hook mediaserver从而进行语音和通话监听。”Pack”文件夹里保存了最后编译完成的程序。而”references”文件夹里几乎都是Collin Mulliner论文的ppt,并且整个项目就是在 https://github.com/crmulliner/adbi这个项目上改的。截取下来的音频并不是 wav格式,还需要使用”decoder”文件夹下的工具进行解密,看样子作者除了电话监听,还成功测试了wechat, whatsapp, skype等应用的语音截获。
enter image description here
core-android-market-master.zip应该是用来向Google Play上传监控应用的项目。虽然说Google Play检测系统,但对于这种用于APT攻击的malware是毫无作用的。在\core-android-market-master\doc\readme.txt中还保存HT开发者账号的用户名和密码。但是当笔者准备尝试登录的时候,发现密码已经在几个小时前被修改了。
enter image description here
core-android-master.zip就是HT的RCS系统源码了。除去一些编译用的gradle文件,所有的源码都保存在” \core-android-master\RCSAndroid”目录下,通过这个RCS app除了可以做到基本信息监控外,还可以获取所有主流社交应用的信息。
enter image description here
在应用加固方面,这个RCS app除了使用了DexGuard进行混淆,还有虚拟机检测功能。根据开发日志,这个项目貌似还使用很多0day的trick对应用进行混淆。非常值得以后慢慢研究。 接下来就是重头戏root了,主要代码都在\core-android-master\RCSAndroid\jni 这个目录下, 上来就能看到” exploit_list.c”这个霸气的文件,里面可以调用各种exp来获取root权限:
enter image description here
除此之外,core-android-master\RCSAndroid\jni\selinux_exploit还有绕过 selinux enforcing模式的exploit。
core-android-native-master.zip中有更加详细的root项目代码和说明,在”legacy_native”文件夹中: Suidext中包含了所有的shell。Local2root中包含了<=4.1版本的root exp。在”selinux_native”文件夹中,”Put_user_exploit”: 包含了 put_user calls的exp。”Kernel_waiter_exploit”包含了towelroot的exp。Suidext包含了新的shell。使用” build.sh”编译完后的exp都在”bin”目录下(这些exp是可以干掉android 5.0 selinux的)。其他的文件请参考目录下的README.txt。因为是意大利语,请使用Google自行翻译一下。

0x03 iOS & Mac OS


1 “core-ios-master.zip”里面的” core”文件夹中保存了RCS的主要代码。主要是利用dylib注入对用户输入,GPS,屏幕等信息进行监控。
enter image description here
”ios-newsstand-app”文件夹应该是另一个ios应用的源码。看代码大概是替换ios系统的输入法,然后进行键盘记录,大概是用来攻击没有越狱的机器吧。”Keybreak”文件夹是用来破解手机锁屏密码的,里面有lockdownd remote exploit的源码。”ios-install-win32”和” ios-install-osx”文件夹里是windows和mac os下来给iPhone或者iPad装应用的工具。此外HT还拥有一个iOS enterprise帐号可以用来发布enpublic app: “UID=DE9J4B8GTF, CN=iPhone Distribution: HT srl, OU=DE9J4B8GTF, O=HT srl, C=IT”。关于enpublic app的危害,可以参考我之前的文章或论文。
2 “vector-ipa-master.zip”里面应该是另一个ios木马的源码,这个木马并不是应用,貌似是一个底层网络代理,可以用来监控或者控制系统的网络流量。
3 “core-macos-master.zip”的”core-macos-master\core”的文件夹中保存了mac os RCS的源码,其实就是mac os木马了,和windows的木马非常相似。

0x04 Windows Phone & symbian & blackberry


core-winphone-master.zip是Windows Phone的RCS木马。据说在WP设备上实现“激活追踪”是利用了系统中的一个0day,允许第三方代码程序像受信任程序一样执行。该RCS还可以获取联系人、日历、通话、地理位置、短信、传感器状态状态等信息。程序ID为:11B69356-6C6D-475D-8655-D29B240D96C8
enter image description here
core-blackberry-master.zipcore-symbian-master.zip分别是黑莓和塞班的RCS系统。

0x05 Fuzzer


  1. fuzzer-windows-master.zip主要保存了windows下的fuzzer源码。里面有针对IE和字体的Fuzzer测试系统。
  2. fuzzer-android-master.zip主要保存了android下的fuzzer源码。里面有针对jpg,sms和system call的Fuzzer测试系统。Trinity主要是用来做system call fuzzer的,比如说binder使用的ioctl()系统调用。
enter image description here

0x06病毒查杀检测


test-av-master.zip是第一代产品。test-av2-master.zip是第二代产品。HT给他们起名叫AVMonitor。这个系统主要使用来做查杀检测,用来保证自己的产品可以通过检测。test-av2-master.zip\test-av2-master\doc\AVTEST Box.xlsx保存了他们使用的杀毒软件的列表和序列号。
enter image description here
在”test-av2-master\doc\whiteboard”文件夹中甚至有他们开会的白板照。
enter image description here

0x07 Exploit & 0day


vector-exploit-master.zip文件又是第二波高潮的开始,首先在里面你可以找到两个flash的exp: 一个是Flash的0day : ActionScript ByteArray Buffer Use After Free,另一个是Nicolas Joly在Pwn2Own 2015大赛中使用的CVE-2015-0349。为了在IE和Chrome上绕过其沙盒机制完全控制用户系统,Hacking Team还利用了一个Windows中的内核驱动: Adobe Font Driver(atmfd.dll)中存在的一处字体0day漏洞,实现权限提升并绕过沙盒机制。该0day漏洞可以用于WindowsXP~Windows 8.1系统,X86和X64平台都受影响。数字公司已经在很多人种子还没下完的时候就写出了分析报告:http://drops.wooyun.org/papers/6968,有兴趣的读者可以前去围观。
enter image description here
除了flash的两个exp和font 0day外,在vector-exploit-master\src\ht-webkit-Android4-src目录下还有一个Android Browser exploit,在用android brower浏览一个网页后就可以在目标机器上安装上目标apk。该漏洞会影响Android 4.0.到4.3.版本的手机。粗略看了一下源码,利用过程十分复杂,exp的利用至少有四个stage,还用到了information leak,heap spray等技术。PS:在vector-exploit-master\src\ht-webkit-Android4-src\docs中有公司开会的时候拍的exp图解。
enter image description here
enter image description here

0x08 其他


  1. GeoTrust-master Signing Keys.zip 保存了HT的GeoTrust证书。
  2. http://ht.transparencytoolkit.org/audio/ 里有大量的录音。
  3. HT在自己家的产品中留下了SQL后门,方便他们随时查询。http://ht.transparencytoolkit.org/rcs-dev%5cshare/HOME/ALoR/htdocs/conf.php
  4. 虚拟机保护壳VMProtect Professional的很多正版key泄漏
    https://ht.transparencytoolkit.org/rcs-dev%5cshare/HOME/ALoR/VMProtect.key https://ht.transparencytoolkit.org/rcs-dev%5cshare/HOME/Ivan/vmprotect/

0x09 八卦


Phineas Fisher号称自己黑了gamma和HT。HT的twitter还转发了这条消息。。。
enter image description here
2 HT的密码都特别简单,不被黑才怪。
enter image description here
http://ht.transparencytoolkit.org/c.pozzi/Desktop/you.txt 你懂的。。。(from @youstar)
enter image description here

0x0a 未完待续


由于泄漏的资料实在太过庞大,本文还有很多的内容没有覆盖到。因此我们在随后的几天还会继续跟进这个事件,并更新我们的文章,欢迎大家回来继续阅读。

0x0b 更新2015.7.10


1 HT泄漏中大家最关心的就是Flash 0day了,通过这个0day黑客可以让用户在浏览一个网页后就被黑客远程控制。这里我们给出一个POC(概念验证)网页供大家测试:http://zhengmin1989.com/HT/index.htm 该网页并不会安装恶意程序到你的电脑,但是会执行calc.exe命令唤起计算器程序。当然黑客也可以把计算器程序换成别的恶意程序或者直接执行del .等恶意指令,所以如果你弹出计算器了话赶紧去安装补丁吧!另外不要以为自己用的非主流的浏览器就不会中招,这些非主流的浏览器内核都是直接用主流浏览器的开源框架,只是换了个壳罢了。比如说这个115浏览器,该弹的一样会弹啊。
enter image description here
2 另外Windows中的内核驱动Adobe Font Driver(atmfd.dll)中存在的字体0day漏洞也有demo。可以在http://zhengmin1989.com/HT/32bitwin81.zip下载,本人已经在win8上测试成功了。
enter image description here
3 为了方便大家分析HT的项目源码,有人将HT的git服务器上传到了github并且对每个项目进行了一些简单说明,并且还在持续更新:https://github.com/hackedteam?tab=repositories 但说明都是英文版的,如果想要看中文版可以参考绿盟科技在drops发表的《简要分析Hacking Team 远程控制系统》: http://drops.wooyun.org/papers/7025
4 之前提过泄漏资料中绝大多数内容是邮件,Wikileaks已经把泄漏的所有邮件都放在他们的在线数据库中了,可以非常方便的进行搜索。地址是:https://wikileaks.org/hackingteam/emails/ 里面可以搜到很多劲爆邮件,比如HT在NSA的后门等。
enter image description here
5 在泄露的资料中可以找到HT的客户名单,甚至包括美国的FBI,一共有41,871,712 欧元生意: https://ht.transparencytoolkit.org/Amministrazione/01%20-%20CLIENTI/5%20-%20Analisi%20Fatturato/2015/02%20-%20Client%20Overview%202015/Client%20Overview_list_20150603.xlsx
enter image description here


Popular posts from 产品随想的博客

产品随想 | 陪读《乔布斯传》:1-17章

乔布斯经典照片集 坐在麗莎電腦旁。他說:「毕加索曾說:「好的藝術家懂得模仿,佛大的藝術家善於偷取。」因此,窃取偉大的點子沒有什麼好羞耻的。 與蓋茲在電話中達成協議:「比爾,謝謝你支持蘋果。因為你的支持,世界將變得更美好。」 1997年蘋果在波士頓舉行的麥金塔世界大會,蓋茲透過衛星連線在巨大的螢幕上出現。質伯斯說:「我真是笨死了,竟然讓蓋兹以這種方式現身。他讓我看起來好沙小。」 ──时刻自省 前言 The people who are crazy enough to think they can change the world are the ones who do. 只有那些瘋狂到以為自己可以改變世界的人, 才能改變這個世界。 這麼些年來,賈伯斯說起話來的認真與專注態度,著實打動不少人。我們一直保持連絡,即使在他被逐出蘋果之後,我們還有來往。每次他有新產品要推出時,像 NeXT 電腦或皮克斯 (Pixar)的電影,他就會來找我。他常帶我去曼哈頓下城一家壽司店用餐,講起他的產品,渾身散發出光和熱,眉飛色舞的說這是他登峰造極之作。我喜歡這個人。 ──对自己产品深深的爱 他的堅持教我疑惑。人人都知道賈伯斯不道餘力捍衛隱私, 而且我不知道他是否看過我寫的任何一本傳記。我還是不敢立刻答應,只說或許再等等。然而到了 2009年,我接到他太太蘿琳. 鮑威爾打來的電話。她直截了當說:「如果你還想為史帝夫寫傳,最好趕快動筆。」這是他第二次因病向公司請長假。我坦言他早在2004 年得知自己罹患胰臟癌的時候就曾主動邀我寫傳,但我當時對他罹癌的事一無所知。蘿琳解釋說,他們盡量保密,因此當時根本沒幾個人知道。他是在動手術的前夕打電話給我的。 ──和Make Something Wonderful对照起来看 他還說,自從他回到蘋果重新掌權,這十二年來是他創造新產品的高峰期,但他還有更重要的目標,也就是效法惠普的惠立和普克(David Packard),締造一家創新動力無限的公司,進而超越惠普。 ──苹果公司才是乔布斯最得意的产品 他說:「我一直認為,自己是個偏向人文的孩子,但我也喜歡電子的東西。後來,我讀到寶麗來(Polaroid)創辦人蘭德 (Edwin Land)曾說過,一個人能站在人文和科學的交會口,兼容贯通,才是真正的人才。在那當下,我决定要當這樣的人。」他似乎在暗示我,這可以做為傳...

零碎思考 | 關於LLM的閱讀筆記

  通向AGI之路:大型语言模型(LLM)技术精要   https://zhuanlan.zhihu.com/p/597586623 拆解追溯 GPT-3.5 各项能力的起源   https://yaofu.notion.site/GPT-3-5-360081d91ec245f29029d37b54573756 清晰明瞭 A Closer Look at Large Language Models Emergent Abilities   https://yaofu.notion.site/A-Closer-Look-at-Large-Language-Models-Emergent-Abilities-493876b55df5479d80686f68a1abd72f 試圖說明LLM的涌現能力] 如何利用GPT-4打造高效智能信息收集神器   https://lpcv.org/fwc/a/MzU0MDk3NTUxMA==/2247483868/1 學習思路 GPT-4编码教程,如何用AI构建和宣传我的Midjourney网站增强插件   https://op7418.zhubai.love/posts/2254193381183922176 AUTOMATIC1111 GUI: A Beginner’s Guide   https://stable-diffusion-art.com/automatic1111/ 其實就是AI界的雲渲染,挺有意思的 Midjourney还是Stable Diffusion: 你应该选哪个?   https://zhuanlan.zhihu.com/p/617157677 看到作者下方的“註冊會計師”,中國太卷了 树莓派4B刷OpenWrt做路由器的经验+踩坑   https://zhuanlan.zhihu.com/p/451788328 關注其中的坑點 doc.openwrt.cc   https://doc.openwrt.cc/

产品随想 | 周刊 第63期:中国城市化的历史思考

Products 李志 · BB   https://github.com/turkyden/lizhi-app 开箱即用,一个珍藏了李志音乐作品集的在线播放器 作者的描述很有意思:我们不能失去信仰~ Watt Toolkit 🧰 (原名 Steam++)   https://github.com/BeyondDimension/SteamTools 「Watt Toolkit」是一个开源跨平台的多功能游戏工具箱,此工具的大部分功能都是需要您下载安装 Steam 才能使用。 语雀为什么没被钉钉吃掉,跟支付宝又是什么关系?   https://www.xiaoyuzhoufm.com/episode/62ed2b1d226f5c1fa0d58357 乱翻书播客推荐 Behind the Curtain   https://www.quiverquant.com/sources/behind-the-curtain/ 我们正在结合我们一直在收集的关于公司游说、国会股票交易和拟议立法的数据,以便让您跟踪华盛顿特区幕后发生的事情您可以使用此工具查看哪些法案正在被国会审议了哪些上市公司正在就这些法案进行游说,以及哪些国会议员交易了这些公司的股票。 民主非常需要这样的信息透明 脑洞大开,给自行车装上倒车雷达和行车记录仪   https://sspai.com/post/73521 佳明-骑行雷达尾灯 Varia RCT 715,非常喜欢,但真的好贵.....3K+ RMB Health 体检报告出现高尿酸,你该如何在饮食方面控制风险?   https://sspai.com/post/73031 Citizenship Consciousness & Privacy 张鸣:中国城市化的历史思考 2019 09 04   https://www.youtube.com/watch?v=rRcPssCkXeI 内核论点是:城市化最重要的有私有产权的商人 这个创作者也值得关注 Run 日本移居指南   https://guoyu.mirror.xyz/bPaDKAcrhJGUbaXu9BWDcdD-F46gBFATTvf_qwZ9Bso 添加加Run模块,润 A Programmer's Guid...

产品随想 | 周刊 第86期:Next Generation of AI

  gerev   https://github.com/GerevAI/gerev AI-powered enterprise search engine 聚合了Confluence,Slack,Jira等非常多的平台,还是很不错的 假如有个定位在C端的产品,能让用户自己来定义来源,就更好了,maybe是alist的思路(精准搜索已经被everything承接了) Dalai   https://github.com/cocktailpeanut/dalai Run LLaMA and Alpaca on your computer. 对计算机硬件的要求,并不高 Chatbox   https://github.com/Bin-Huang/chatbox Your Ultimate Copilot on the Desktop. Chatbox is a desktop app for GPT-4 / GPT-3.5 (OpenAI API) that supports Windows, Mac & Linux. Tune-A-Video   https://github.com/showlab/Tune-A-Video Tune-A-Video: One-Shot Tuning of Image Diffusion Models for Text-to-Video Generation Given a video-text pair as input, our method, Tune-A-Video, fine-tunes a pre-trained text-to-image diffusion model for text-to-video generation. Diffusion的本质是模仿和乐高式的重新拼接 Jensen Huang — NVIDIA's CEO on the Next Generation of AI and MLOps   https://wandb.ai/wandb_fc/gradient-dissent/reports/Jensen-Huang-NVIDIA-s-CEO-on-the-Next-Generation-of-AI-and-MLOps--Vmlldz...

产品随想 | 周刊 第115期:2024.5.16 Great libraries build communities

Loop   https://github.com/MrKai77/Loop Loop is a macOS app that simplifies window management for you! 我的电视 my-tv   https://github.com/lizongying/my-tv 我的电视 电视直播软件,安装即可使用 When we think about this technology, we need to put human dignity, human well-being—human jobs—in the center of consideration. ————Fei-Fei Li Author Talks: Dr. Fei-Fei Li sees ‘worlds’ of possibilities in a multidisciplinary approach to AI   https://www.mckinsey.com/featured-insights/mckinsey-on-books/author-talks-dr-fei-fei-li-sees-worlds-of-possibilities-in-a-multidisciplinary-approach-to-ai Randy Ubillos   https://apple.fandom.com/wiki/Randy_Ubillos Randall Hayes "Randy" Ubillos is the original software engineer behind Adobe Premiere and Final Cut Pro. 影响全球视频制作的男人, Reminders MenuBar   https://github.com/DamascenoRafael/reminders-menubar Simple macOS menu bar application to view and interact with reminders. Developed with SwiftUI and using Apple Reminders as a source. Bad libraries build colle...

关于建筑实习的经验贴

慢慢整理实习的帖子,如果近期太阳能竞赛不占用太多时间的话,可以开始准备实习了 一.  给自己的问题   1. 你的设计风格是什么   2. 实习的目的 二. 事务所推荐   1. 墨臣,住宅(商业地产)做的很棒,项目管理做的比较好,但是相对来说公建项目比较少       如果希望接触多种类型项目的话考虑一下,多多了解这个事务所,赖军   2. 标准营造,张珂,重视方案设计的惊喜把控,重视图解,还有手工模型   3. 大舍,不浮夸,有自己的设计理念,效率高,唯一不加班公司 三. 学院派建筑师   1. 何镜堂事务所,缺点是周期长,待遇不高,风格单一,设计类型单一   2.  直向(新史家小学,方法上典型霍尔的风格,董功是霍尔弟子)       TAO迹(腾冲的那个博物馆不错)       山水秀(祝晓峰的风格很小清新,朱家角的房子)       业余       家琨(在符合本时代的建筑材料的运用上很有造诣,再生砖,鹿野苑....)       非常(张永和,作品说不出来有多好,但是又总觉得很精妙,二分宅) 四. 设计院   1. 商业建筑设计公司实习推荐  CCDI,DC,UA   2.  大连院,东北院,华东院,中建北京院   3. 不推荐同济院,因为挂靠的小公司很多,鱼龙混杂 五. 先锋派建筑师   1. UNStudio,项目比扎哈的脚踏实地而且思考深度高很多   2. BIG,设计的起源都是一个平淡朴实但是又很精妙的理由   3. 蓝天组   4. 国内事务所推荐  李虎(霍尔的合伙人)的open,侯梁(貌似的是玛雅,不知道用rhino和       GH),徐东昕,徐甜甜的DNA,徐卫国(感觉这老爷子在国内参数化设计界可以呼风唤       雨了)   5. 不推...

一些建筑类书刊

这是我在知乎上的一个回答,之前看到一个说法,就是越厉害的人不仅仅是吸收知识,即输入,同时也会最大化的输出,输出的方式我认为有很多,写书,写博客等等,我选择的输出方式是在知乎,豆瓣留下自己的足迹,博客是我的大本营,在这里mark一下我在知乎一个关于建筑书籍的回答

Markdown学习笔记

学习帖来自简书,这是我的笔记, 献给作者的Markdown新手指南 # 一级标题    #数量决定标题层级 - 文本    列表格式

产品随想 | 周刊 第99期:Organize the world's information and make it universally accessible and useful.

MIST   https://github.com/ninxsoft/Mist A Mac utility that automatically downloads macOS Firmwares / Installers. Google's mission is to organize the world's information and make it universally accessible and useful. Google策略是搜索来驱动世界信息 而字节是推荐来驱动世界信息,某个意义上来说,字节是Google的继承者 Reflecting on 18 years at Google   https://ln.hixie.ch/?start=1700627373&count=1 Google的吐槽,哈哈哈 The Little Kernel Embedded Operating System   https://github.com/littlekernel/lk The LK kernel is an SMP-aware kernel designed for small systems ported to a variety of platforms and cpu architectures. 在软件行业越久,就越对操作系统这颗皇冠,感到着迷 ArchiveOS   https://archiveos.org/ 致敬那些存在过的操作系统们 Travis Geiselbrecht   https://tkgeisel.com/ 世界级的操作系统工程师 每一个项目都赫赫有名 一生都在做操作系统 Hiddify-Next   https://github.com/hiddify/hiddify-next A multi-platform auto-client based on Sing-box that serves as a universal proxy tool-chain. This app offers a wide range of capabilities, which are listed below. It also supports a large number ...

《Becoming Steve Jobs》Chapter 13 Stanford

Steve was a natural performer who elevated business presentations to something close to high art. But what made him fidgety this day was the prospect of addressing the Stanford University graduating class of 2005. University president John Hennessy had broached the idea several months earlier, and after taking just a little time to think it over, Steve had said yes. He was offered speaking engagements constantly, and he always said no. In fact, he was asked to do so many commencement addresses that it became a running joke with Laurene and other friends who had college or graduate degrees: Steve said he’d accept one just to make an end run around them and get his PhD in a day, versus the years and years it had taken them. But in the end, saying no was simply a question of return on investment—conferences and public speaking seemed to offer a meager payoff compared to other things, like a dazzling MacWorld presentation, working on a great product, or being around his family. “If you loo...