数字命名的系列文章的第 6 篇,记录一下本年度我干过的最有趣的一件事情,属于我自己的 "GeekPwn".

真的不是 GeekPwn 硬广,不过之前 GeekPwn 大会时我的 RSS 天天被刷屏,看得我心驰神往,所以既然没机会参加,为什么不自己搞一个呢?


我就直入主题吧:本学期开学以来,我社进入了(我认为的)困境之中.上一届初三社员流失(因为毕业了),开学期间招新不力*,我本人进入高二时间更加紧张,另一位社长潜水搞竞赛去了,诸多问题造成了这样一个堪忧的局面:绝大多数社员是初一,初二学生,没有高一社员,社团越发冷清,而且除我之外全是小白,我一直致力于营造的技术交流氛围仍是一纸空谈(因为大家都没什么好交流的).迫切之处在于,按照惯例本学期末我将卸去社长一职,到时候这个严重低龄化,毫无新生力量的社团会成什么样子可想而知.

开学期间招新不力*:好吧,一直以来在招新这方面我就有些奇怪的想法,比如一定要设置门槛,一定要低调,一定要招到高一社员.(到现在为止)我并不认为这样的指导思想有什么错误,但在国内这样一所中学之内想要靠这样的方式招到大量的"高质量"社员,恐怕不太现实.("高质量"大概是指对我社的主题"黑客技术"有了解与研究,并不含褒贬义)(←考虑到我的社员可能会看到这篇文章,我的措辞得注意政治正确tieba_smilies50)因此本学期开学时我搞了一张堪称"怪异"的海报,大概像这样:

poster-compress

同时,得益于我的制杖(使用 RGB 色域;打印尺寸仅为 30cm*50cm)和打印店的制杖(感人至深的偏色,比如底部的灰黑色打出来成紫红色, WTF?), 实际效果比上面这张图还要差.所以,理所当然的,我们并没有招到什么人.估计我做海报的时候太执着"把海报弄成入社考核"这种奇怪的想法了,要想看懂这幅海报都不是一件容易的事(要么就招不到人,要么就招到"高质量"社员,毕竟我也没法忍受整个社团全是小白的尴尬了).不过这并不完全是我的错,如果看海报的人都是黑客技术爱好者,他们看到 xkcd 的神来之笔一定会蜂拥报名的.大概应该是这样.

虽然如此,我还是让一名初二的社员担任了副社长(以 H 代指).这位 H 虽然在技术水平方面不容乐观,但好在有学习精神.当时我几乎也是抱着破罐子破摔的心态,反正再过一学期这破社就关我屌事了,到时候接班人怎么搞也懒得管了.不过正如同年龄段的许多人一样, H 显然没有找对方向:他买了一本谈 Windows 黑客技术方面的书,对,没错,"xxx从入门到精通"这种味道,看到书名我还不敢妄下定论,但在我翻阅后我敢断定这书在亚马逊上的评分不会超过两颗星.此外他有一个 U 盘,里面全是各型各色的国产黑客软件,估计是从什么奇怪的论坛上下载的"大合集"一类的东西.好吧,我承认我对 Windows 下的国产黑客软件有一些偏见,但如果想真正弄明白原理而不是追求"好用"和装 B (讲道理那些黑客软件真的 low 得不行,毫无 B 格可言),花点时间琢磨一款 Linux 下的命令行式黑客工具才对.(上边这些话我没对 H 说,毕竟他还这么小,以鼓励为主嘛)

H 倒确实是有危机感,每次活动都催我招新(毕竟下学期这个烂摊子就甩给他了).我对这个社团仍然存在的责任感也让我觉得,确实不能这么下去. H 说可以重新弄张海报,我算是同意了;他又说应该做个宣传视频放在校园电视台上播,还要让我进各班宣传,我就 WTF 了.冰菓里折木被小千拉着去做各种有意义的事情时那种疲于奔命,生无可恋的心情,我算是感同身受了.跟 H 道别之后我就想,妈的,把老子日了我也不去校园电视台投广告,更 tm 不要说进班宣传.

但我们观点一致之处在于,我们都发现海报并不能招来多少人,至少我做的海报是这样.

那段时间我用 Kindle 读 RSS, 看到了关于 GeekPwn 大会的各种报道.而最终推动我做出决定的,是这篇文章:如何用 kwetza 给安卓应用加后门.

半期考试前一个周末,在洗澡时,我杂乱的思路终于拼接到了一起:搞一个社团活动开放日,让大家都来看,然后由我演示利用 kwetza.py, Metasploit 等工具入侵 Android 手机,窃取数据,窃听通讯,盗取微信聊天记录(盗取微信聊天记录也是受在 RSS 里看到的一篇文章的启发),然后煽动气氛,吸引大家入社.我考虑了一下可行性,很低.首先下周要半期考试(事实证明我根本就是在作死),其次整个流程中会涉及到大量我不会或不熟悉的技术,变数太大,很多东西要现学现卖,而且那时候我对 Metasploit 的整个攻击流程一无所知,无法判断自己会踩中多少坑,会浪费掉多少时间;也无法判断这样的开放活动是否受欢迎,能否有可观的回报.

但是呢,我的决定是,干!

这种刺激的事情,一辈子他妈的能有多少机会?反正也是任期内的最后一段时间了,为什么不留下点能让自己回味的事情呢?

之后的一个周,我把我的计划告诉了 H, 他很也兴奋,(并且终于不再提校园电视台和进班宣传了).我告诉他之后我会花很多时间准备,这段时间里的社团活动由他主持.

于是我就投入到了一个多月的长跑之中.现在想来,真是唏嘘不已,我活到现在经历过的最疯狂的一个月开始了.

接着又看到了另一篇重要的文章: ettercap 局域网内 DNS 欺骗.这下思路终于清晰了,最重要的几个步骤在技术上都是可行的.我要做的大致是利用 metasploit, kwetza, adb, DNS 劫持等技术入侵三星 Galaxy Note 智能手机,并控制摄像头,窃取照片,短信,联系人,微信聊天记录.(当然, adb 不是黑客工具,事实上我也没用它).

思路清晰了就动手吧.实际上当时我的 Fedora 系统还处于挂掉的状态(毕竟小白鼠,我的主分区用的是 Btrfs, 挂了).花了点时间修复好之后才能进入系统.然后 dnf update ,又花了不少时间.然后我要安装 Metasploit 才行.好啦,第一个坑就在这里.

Metasploit 官网上给了三个下载选项, Community, Express 和 Pro. 后两者是收费的,我自然选择免费的 Community 版本.然后叫我填写一些基本信息,卧槽,填得我快吐了,因为网络太辣鸡,填好的表单提交不过去,然而不提交就不让下载.在我苦苦挣扎于填写表单之际,我也发现了一些问题:妈的,这玩意好像有图形界面?网上的教程全 tm 是命令行啊.最终我发现了惊人的真相,在这三个版本之外还存在一个 Metasploit Framework, 是开源软件,纯命令行,可能因为不是商业性质的产品,在官网上几乎没有注明,但这玩意才是我真正需要的.按照 GitHub 上的指引我终于安装好了.

然后是 kwetza. 依赖于 Apktool 和 beautifulsoup. 后者需要用 pip 安装,恕我直言,真的难用得要死. kwetza 这玩意大概是业余爱好者写的吧,看起来用法很简单,结果第一次尝试就把我坑了:如果操作的 .apk 文件与 kwetza.py 脚本不在同一目录下就会出错,我擦.然后又报错.这玩意玄妙的一点在于它只会告诉你哪个函数出了错,具体到哪一行哪一列则没说 (Python 的锅).我试着读了读它的源代码,问题大概出在 jarsigner 上.奇怪了,我的系统自带了 OpenJDK 1.8, 怎么会呢?最终我的解决方法是,重新安装 Oracle JDK, 这样就好了.但还是觉得奇怪, jarsigner 难道不是自由软件?

在最初的设想中,我会用 kwetza 将恶意代码注入到 QQ 轻聊版中.当时没考虑这么多,直接把后续的钓鱼下载站都做好了(我准备 DNS 劫持酷安,用带病毒的 QQ 轻聊版安装包换掉原版,为此我仿制了 QQ 轻聊版的酷安下载页).结果发现死活不成功,问题好像在 Apktool 反编译的过程中.我试着用 Apktool 直接反编译,好呀, Fedora 直接弹警告,磁盘可用空间为 0 字节.好呀,腾讯爸爸,你比较厉害.我猜测, QQ 轻聊版(以及其它疼讯的 Android 应用)有混淆加密的措施,导致了 Apktool 反编译失败,而磁盘空间瞬间耗尽估计是 Btrfs 的 bug (我说什么来着?毕竟小白鼠).有趣之处在于,如果在系统弹警告之后不采取补救措施,而是直接重启的话 (Windows 用户的习惯),连系统都没法启动了.我这么干过一次,好在有惊无险,用应急的 LiveUSB 启动,然后删掉反编译出错的 apk 文件,再重启进 Fedora 就好了.

试了国内几家大厂的其它几个应用,均以失败告终.这样就比较尴尬了.我原本还想在开放社团活动上狠狠地羞辱一下疼讯或者 360,这下看来不行了.然后我发现 WiFi 万能钥匙这个应用居然能够正常地反编译,大喜过望,装到手机上,打开,马上弹出来一个框,告诉我我安装的 WiFi 万能钥匙可能被篡改,叫我到 xxx 处下载最新官方版. wcnmlgb, 你他妈怎么知道自己被篡改了的?

kwetza 的作者是个歪果仁,我看了他写的教程,讲了如何用 kwetza 注入 Netflix 应用,感觉轻松随意,并无技术难关.然而我拿来注入几个国产应用,却总是失败.由此可见国内的这些厂商心机之深,戒备之严,远超国外同仁,令人叹为观止.

好吧,那我试试 Opera Mini 吧,这玩意肯定不是国产的.注入成功,装到手机上,也没发现自己被篡改了,于是大喜过望,启动 msfconsole. 但经过多次尝试,并不能连接上攻击目标.好吧,失败.

这确实是很尴尬的.我原本想的是,给大家普及一下 Android 应用权限方面的姿势,告诉大家这些国产流氓虽然要一大堆权限,却正好有利于我的入侵(因为病毒是注入到应用内的,这个应用的权限越多,病毒能干的事就越多).这下看来无法实现了.

我发现我的电脑上还保存着一个 wordpress.apk, 这其实是一年以前我第一次登上本社讲台时所用的(参见当时的记录:).我试着用它来承载病毒,终于成功了,泪流满面.

这时,我开始意识到历史的惊人相似.这次活动和那次活动相差一年(具体来说,是 11 个月整,我记得很清楚,那次活动是平安夜,而这次活动最终定在感恩节),对于我来说都有无比重要的意义,内容都是对 Android 智能设备的入侵(当然,这一次比那一次所使用的技术高到哪里去了),还都用到了同一个 wordpress.apk...

如前所述,我仿制的 QQ 轻聊版下载页业已完成,现在不得已重新仿制一个 WordPress 的下载页了.然后开始研究 DNS 劫持.此前我的办法是用 dnsmasq 在本地建立一个 DNS 服务器,然后进路由器后台,把 DNS 改成本机 IP (感觉好羞耻,各位轻喷).然而现在我知道了 ettercap 这个大神器.好吧,猝不及防,又遇到一个大坑,参见我的上一篇文章:局域网内可以 ping 通但不能访问网页的解决办法.

Metasploit Framework 确实不错, payload 无比强大,偷拍,偷文件,偷短信,玩得不亦乐乎.唯一不完美的是它的 shell 功能(相当于远程连接到攻击目标的 Shell 交互中,类似 SSH). 它没有提示符(所以一行命令有没有执行结束都不知道,这在复制/窃取大文件时是很可怕的),不支持 Tab 补全,上下方向键也不能用,无比痛苦.而且如果攻击目标没有 busybox 的话 shell 就是个残废(当然我可以借助 MSF 的 upload 功能给它装一个上去).还有一个问题是偷拍的画质差如狗,而且照片永远是横着的(专业颈椎病治疗tieba_smilies18).

然后是窃取微信聊天记录.这方面其实已经有很多人研究过了,没有什么坑.顺便总结一下:
聊天记录数据库在 /data/data/com.tencent.mm/MicroMsg/*/EnMicroMsg.db
数据库密码可以这样计算 echo -n "$imei$uin" | md5sum | cut -c -7
获取其中的 IMEI, 可以在 Android 设备上执行 dumpsys iphonesubinfo
而 UIN 则在 /data/data/com.tencent.mm/shared_prefs/system_config_prefs.xml .

这期间的社团活动由 H 主持了两次.说实话,我很不满意.第一次(应该也是他第一次主持),我到得比较迟,结果发现一群人在那里群龙无首,而且旁边还有另外一个社团的人.我一脸懵逼,他们告诉我 H 有事来不了,然后把上文中我嗤之以鼻的那本 "xxx 从入门到精通"塞给我,说 H 叫我帮他讲这上面的东西.我操,这他妈什么态度,自己不来就算了,还叫我讲这些东西?这个时候另一个社团的社长又发话了,说今天没有衔接好,两个社的活动地点撞到了一起,不过 H 说了,把活动地点临时改到我所在班级的教室.劳资差点爆粗口,最开始提出把活动地点放到这里的就是 H, 现在撞车了,又临时改到别处?再说,社团只是社团,他有权使用我自己的班级的教室?我忍住没对这一群小朋友发作,告诉他们今天活动取消,然后把书扔到 H 的教室里,走了.他妈的这破社团自生自灭吧,劳资这么辛苦地准备还不是为了下学期 H 当社长时状况能比现在好,但他又是怎么做的?一点责任心都没有.无所谓了,反正这些社员都是小白,我撤了 H 的副社长就没有接班人了,那就这样吧,自生自灭.

然后是第二次.活动时间约一个小时, H 只讲了 15 分钟.内容呢?先打开盗版 Adobe Premiere 说下怎么导入文件,怎么调时间轴;然后说了下 ping 和 netstat 命令(他居然天真地认为,如果有人在 QQ 里给我发消息,我就可以在 netstat 里看到那人电脑的 IP 地址. WTF? 我倒是知道 10 年前的那些骗小白的书会这么写,但到了今天还有人信这个也真的是绝无仅有了);然后展示了一个 low 到爆炸的免费建站工具,在所见即所得的界面里拖了拖控件,于是告诉我们这就是搭建网站的方法,引起低龄社员的一阵躁动.你没法想象坐在下面的我听到这些是个什么样的表情,事实上在那黑暗的 15 分钟内我真的百感交集.唉,正如我所说的,等到下学期这个社就关我屌事了,自生自灭吧,留给我的最后一段时光,我只想做一些对得起自己的事情,以后回忆起来不会觉得有遗憾的事情.我做好我该做的,剩下的的那些,交给上帝手中的随机数生成器吧.

于是到了最后一个周末.

这个周末要做的事情有三件:把整个攻击流程拉通演练一遍;制造供窃取的隐私数据(攻击目标设备上干干净净,没照片没短信没联系人没微信聊天记录,为了演示,这些都要我"造"出来;制作海报,制作报名网页.

最刺激的一个周末.

之前听 Teahour.fm 的播客,许式伟谈到七牛云存储公司内部会经常举行讲座,由员工来讲解某一个技术问题.可以想象,在这样一家科技公司,作为普通员工要在众大牛面前讲好技术问题是不容易的.但我要做的比这更有挑战性:坐在下面听的人,大多数对于这个领域一无所知,我在讲台上成功地入侵了目标设备,很好,但毫无卵用;我必须要真的窃取出来点什么有意思的东西,他们才会觉得,哇好厉害.如果我讲演的对象是一群懂技术的人,我甚至只需要简单谈谈我的入侵思路就能达到很好的效果;然而事实上,我要做的比这多到哪里去了.我得努力让讲的内容连小白都能看懂,这 tm 是最操蛋的.

于是我开始制造隐私数据.自己给自己发短信,我还注册了两个微信账号,自己和自己聊天,胡编乱造地存了些联系人...(这些后文会具体说明)最尴尬的是照片.我觉得如果要营造气氛,得从攻击目标里偷出自拍,私房照这类刺激的东西.但哪里有呢?我想在网上下载几张自拍照,于是百度"自拍",然后我整个人都震惊了,搜索结果中几个成人网站赫然在目(有趣的是,现在已经找不到了).之后我想到,有的自拍应用有社区功能,可以去看看别人发的自拍照.几分钟之后我的手机上便出现了好几个"美颜相机"这样的应用,想想真 tm 恶心.后来我又打算去微博找图,照样没有合适的.

于是我自己做了一张图:camera-20161119190301

好啦,这就是我到时候要窃取的自拍照了.

然后是做海报.此前我专门找过素材,而且还找到一张很不错的配图, URL 是 https://laracasts.com/images/level-up.png, 但当时没有保存下来.等到我做海报时,打开这个 URL, 那张图片在眼前一闪而过,随即是一行小字: Redirecting to https://laracasts.com. 等等,发生了什么?之后自动跳转到了 https://laracasts.com, 眼前的一幕让我吃屎的心都有了: laracasts.com 彻底改版,跟我上次看到的完全是两个样子.也就是说,因为改版,原来那张图现在已经不存在了!我操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操!我这辈子都想不到我会栽到这个坑里,真是世事无常,猝不及防.考虑到这张图刚才还一闪而过,我怀疑它仍存在于浏览器缓存中,所以我找了一下,当然了,我没有找到.于是 Google 图片搜索 laracasts, 我 tm 还真的找到旧版网页的截图了,但没有我想要的那一张.在几乎绝望之际,我想起这个世界上还有一个神奇的网站叫 web.archive.org, 死马当活马医,我 tm 还真的找到了旧版 laracasts 的网页快照!我当时真的有种双膝跪地向 web.archive.org 顶礼膜拜的冲动.终于下载到了那张图片,再一次满面泪流.看了下快照的日期,那么大概就是说, laracasts 是在我做海报的前一天刚刚改版的,倒吸一口凉气,我这辈子都不可能再遇到这么巧妙的事情了.

这就是那张图:level-up

本来是打算用 GIMP 作图的,毕竟自由软件.然而我总结此前几次印海报的失败经验,决心使用 CMYK 色域.当然 GIMP 不支持 CMYK, 折腾了半天插件, 感觉也不是很完美.好吧,向 Adobe 黑恶势力低头.极其羞耻地下了个盗版 Photoshop CC, 出奇的小.当然了,我从没用过 PS, 也懒得学了,跟着感觉走嘛!最后做出来是这个样子(已转为 RGB 色域;点击可看大图):

event-poster-rgb我不得不说,(虽然我很菜),设计真的是一件很享受的事情,比整天对着一个黑框框敲命令舒服多了.

好吧,我的那些偏激的想法还在呢. H 叫我在海报上放点什么黑客的图片,真是 low 逼的想法,看看这个,配色清新,低调含蓄,不知道高到哪里去了.后来又有同学给我说文字的颜色太淡,辨识度低,不不不,这正是我想达到的效果.包括苛刻的报名条件:你没办法直接来找我报名,必须要进入我们的网站填表才行.这其实是一个筛选:1,配色淡以至于你注意不到这张海报?呵呵,这点观察能力都没有,想必在技术上也是高不到哪里去;2,你在学校不方便上网?呵呵,初中狗吧?从一定程度上说,这张海报就是入社考核.

对了,后来有个同学问我海报是谁做的,我说是我做的,他说感觉像是海报社的作品(我们学校有个海报社,里面都是大神),我的妈,过奖过奖.

然后是报名网站.我们社的网站是 WordPress 搭的,很方便,弄了个表单,简单修缮了下主页就好了.表单这里有个小坑, input  元素的宽度不能写死,不然在低版本的某些手机浏览器上会撑到屏幕外去.顺便搞了个 Google Analytics.

周末返校的时候我便带着印好的两张海报.照旧有偏色,不过没有过去那么严重.尺寸是 54cm*90cm, 挺合适的.贴出来就像这样(当时天已经黑了,而且手机成像质量实在太差,所以就拍成了这个卵样子):20161120_181916

是的,没有贴平,但贴成这样已经很不容易了.

20161125_181901_hdr

是的你没有猜错,海报也是我一个人去贴的.社长太厉害社员太辣鸡就是有这点不好,从活动策划,到技术研究,到宣传推广,到贴海报发假条,亲力亲为.不过也无所谓了.

然后在学校里抽了点时间做了 PPT (其实是 ODP, 我在 Linux 下肯定用 .odp 格式啊).再次体会到高桥流的舒服,效率高,有逼格,直奔主题,又不喧宾夺主.

周一,访问量为 3, 有 1 人提交了表单.与我设想中的大受欢迎差距较大,看来以纯线上方式进行报名在学校里还是并非很适合.不过有 1 个人提交了表单我也很兴奋啊,虽然事后发现那是自己人,初三升高一重新入社tieba_smilies25.

周二,上午遇到了高二的另一位社员,平时经常冷嘲热讽的,那天居然给我加油,说周四那天等我的好消息.一个多月来一直是一个人在战斗,现在终于有人告诉我他支持我,还是有点小感动.中午吃饭的时候遇到了潜水搞竞赛的另外一个社长(以 Y 代称).多日未见,和他谈笑风生,聊了聊今年 NOIP 的膜蛤题目.问他有没有兴趣周四来社团看看?他说随便.那天中午我看了下报名人数,不容乐观,活动在星期四,也就是说只有三天报名时间,现在已经过了一半,报名人数还根本没法见人.有点失落,毕竟准备了这么久,到时候教室里万一就只有十来个人,tieba_smilies35.唉,换一个角度想,因为毕业而暂时离开社团的社员回归了,一直潜水的 Y 也会来,我再过段时间就要离开了,就算没有多少社团外的人参加,把这次活动当成社团内的(对我来说可能是最后一次)团聚也挺好的.

那天晚上和 H 一起去签假条,我还是尽量乐观地估计了一下人数,再加上 H 说初中有十个左右同学直接找他报名,那么人数应该也不会太少.跟社联的妹子软磨硬泡,拿了一大把盖了章的空白假条.

周三,访问量 0, 表单提交数也为 0.我大概知道原因:我贴在食堂门口的那张海报之上突然间出现了两张学校的海报,把我的海报遮得严严实实.我此前设想过多种不利情况和预案,但这种情况真是我始料未及的.这个垃圾学校,社长大会上三令五申,不允许海报重叠着贴,自己呢?唉,无所谓了.

周三晚自习前,我回了趟寝室,不报任何希望地最后一遍确认报名人数.当我看到网站后台的数据的时候,几乎泪流满面,居然比上一次看到的人数高出不少.其实这些都是周二下午和晚上提交的,只是当时没有看到.而且,我的以海报作为入社考核的思想被证明是无比的正确:所有线上报名中,有 67% 是高一学生,而且几乎所有报名者都有编程基础/了解网络技术.是的,假如他们已经下定决心入社,那么这就意味着,我终于招到了不算少的"高质量"社员.而且我还招到了妹子,简直他妈的难以置信.当时我在寝室里,整个人都要沸腾了,双手合十向眼前的数据致以谢意.感觉一切付出都值得了.为这些报名者写好假条,我一路飞奔到教学区,怀着感激和虔诚发假条.没有经历过这几天的大起大落的人肯定没法理解我当时的心情.然后去找 H, 问他那边报名情况,卧槽,他给我说他那里总共签了二三十张假条,最后假条不够用还不得不一张假条几个人用.卧槽,真的是大起大落,几个小时前我还为屈指可数的人数唉声叹气,现在我已经开始担心座位够不够了.此前我做策划的时候定了一个人数上限,但觉得报名人数这么少,就没给 H 说,现在好了,参加的人数已经远超过当初的上限了.感人至深.

周三,夜晚,最后一次检查设备情况,然后照我的习惯,干正事之前,应该仔细地擦拭笔记本的屏幕,键盘,各个表面.一切都已经准备好了.

周四,感恩节. 11 个月前的这一天,我还记得,既紧张又激动,整个人都是战栗的.那天讲得也并不是很好,中途状况连连.然而到了今天,我已经从萌新变成社里的大佬了(误).接近中午的时候状态不太好,一直头疼,强迫自己去吃了午饭,回寝室洗冷水脸(冷的一 B) 让自己清醒,然后提起装着路由器,手机,各种线缆和笔记本的电脑包向教室走去.自己终究还是长大了,几乎没有一点慌乱和紧张.教室里已经有了不少人了.照例接了一杯热水喝了几口(说实话我很少喝热水),叫 H 帮忙维持秩序(有个副手还是挺好的),开始安放设备.在演示过程中不仅需要投射我的笔记本上的屏幕画面,也要投射目标手机的,所以不仅得把电脑连上 HDMI, 还要调试好投影仪,到时候根据情况在两个信号源之间切换.开始之前我看了一下,估计有五六十人参加,座位几乎坐满了.然后开始.

先是欢迎,然后是介绍我们社团,介绍今天演示的主要内容,介绍设备,给各位简单说了下我用的是什么系统以及 Linux 的特点,然后着重强调了攻击目标上已经安装了 360 全家桶,十足的安全.这里有一点欠妥之处,我介绍了自己,也介绍了 H, 但把 Y 忘掉了.说实话他虽然潜水了,但也对这个社团有很大贡献,我把他漏掉了真的很不应该.如果他看到这篇文章,我在这里向他道歉.然后是必要的几点说明.然后进入主题.其实就跟我过去在家里自己演练时的流程没有差别,不过我为了让各位听懂,还是加了些内容.比如介绍 Metasploit 和 kwetza 是个啥,分析 Metasploit 直接生成的病毒存在的缺点(不具有迷惑性,不免杀),让目标手机装上病毒的方法(分析了几种可行的思路),在演示 DNS 劫持的时候谈了谈上个月的 Dyn DDoS 事件,在演示劫持酷安的时候顺便安利了一下酷安(当时下边这么多人居然没一个人知道酷安的,我的妈,酷安也真是小众得可以),演示 kwetza 的时候我还是讲了下 Android 的权限机制,并表示了我对众多国产流氓的鄙夷(你猜我是怎么解释注入 WordPress 而不是 QQ 轻聊版的?这种装 B 的场合我怎么可能说我没法反编译 QQ, 对吧?我的解释是,这些国产流氓体积庞大无比,所以注入恶意代码太浪费时间,作为演示,我就用小巧的 WordPress 啦).

下载 WordPress 时我故意用的 360 浏览器,事实证明这玩意根本防不了钓鱼网站.装好后我特意拿 360 卫士扫描病毒,过了会 360 显示"扫描结束,没有发现安全威胁",全场沸腾.

然后就出状况了. WordPress 安装后发现无法与 Metasploit 连接.卧槽当时一下子就慌了,下面几十双眼睛盯着我,而且讲道理,这一步才是入侵的第一步.妈的居然就卡在这里了...病急乱投医,把手机重启了,退出 Metasploit 重新启动,还是不行.这个时候 Y 正在旁边奸笑着念叨着"身败名裂"之类的话(事后想起来觉得挺有意思的).一个小时的活动时间,之前没控制好时间,已经快过去一半了.不能再浪费时间了,我拿出数据线,直接把带病毒的安装包拷了进去(真 tm 耻辱).然后终于可以连接上了.

这件事我当天吃晚饭时才猛然想明白,自己犯了个弱智到不行的低级错误.我仿造酷安的网页文件中,有一个目录是存放供下载的 apk 文件的.此前这个目录下一直有一个 wordpress.apk 用于占位,我也每次都记得用带病毒的 apk 文件替换占位用的那个.结果那天我就忘了这一步.艹,蠢到家了.真不该放那个占位文件,不然浏览器报一个 404 我马上就知道问题在哪里了.关于这一点,下次活动时一定要向社员解释清楚,不然感觉这次入侵流程是有污点的.

然后就很好玩了.控制摄像头之后既可以偷拍也可以来个直播,现场气氛直接就高潮了.然后偷照片,偷文件,偷短信,偷通话记录,偷联系人.给大家看一下,我此前制造隐私数据的时候是何等的大开脑洞:

这是窃取的联系人(节选)

#11
Name	: 查水表的
Number	: 1989-06-04
Number	: 查水表的

#12
Name	: 长者专线
Number	: +1
Number	: 长者专线

#13
Name	: 长者专线.MAX!!!
Number	: +999999999999999999999999
Number	: 长者专线.MAX!!!

#14
Name	: 杨永信网瘾康复热线
Number	: 18079046693
Number	: 杨永信网瘾康复热线

(我后来才想起长着专线应该是 -1 才对...)

这是窃取的短信(应该从下往上读)

=====================
[+] SMS messages dump
=====================

Date: 2016-11-24 13:44:00 +0800
OS: Android 4.1.1 - Linux 3.0.31-499949 (armv7l)
Remote IP: 192.168.0.103
Remote Port: 50954

#1
Type	: Outgoing
Date	: 2016-11-19 21:57:15
Address	: 18113829738
Status	: NOT_RECEIVED
Message	: 呵呵

#2
Type	: Outgoing
Date	: 2016-11-19 21:42:03
Address	: 18113829738
Status	: NOT_RECEIVED
Message	: 我去洗澡了

#3
Type	: Outgoing
Date	: 2016-11-19 21:41:26
Address	: 18113829738
Status	: NOT_RECEIVED
Message	: 哦

#4
Type	: Outgoing
Date	: 2016-11-19 21:40:17
Address	: 18113829738
Status	: NOT_RECEIVED
Message	: 不棒怎么做你爸爸哦

#5
Type	: Outgoing
Date	: 2016-11-19 21:39:33
Address	: 18113829738
Status	: NOT_RECEIVED
Message	: 棒你麻痹

#6
Type	: Outgoing
Date	: 2016-11-19 21:39:09
Address	: 18113829738
Status	: NOT_RECEIVED
Message	: 老子最棒

#7
Type	: Outgoing
Date	: 2016-11-19 21:39:00
Address	: 18113829738
Status	: NOT_RECEIVED
Message	: 我本来就很棒

#8
Type	: Outgoing
Date	: 2016-11-19 21:38:41
Address	: 18113829738
Status	: NOT_RECEIVED
Message	: 一天不棒闷得慌

#9
Type	: Outgoing
Date	: 2016-11-19 21:38:05
Address	: 18113829738
Status	: NOT_RECEIVED
Message	: 是吗,那我们都好棒哦

#10
Type	: Outgoing
Date	: 2016-11-19 21:37:24
Address	: 18113829738
Status	: NOT_RECEIVED
Message	: 你也不赖哦

#11
Type	: Outgoing
Date	: 2016-11-19 21:37:16
Address	: 18113829738
Status	: NOT_RECEIVED
Message	: 我当然棒啦

#12
Type	: Outgoing
Date	: 2016-11-19 21:35:57
Address	: 18113829738
Status	: NOT_RECEIVED
Message	: 那你很棒哦

#13
Type	: Outgoing
Date	: 2016-11-19 21:27:46
Address	: 18113829738
Status	: NOT_RECEIVED
Message	: 当然啦

#14
Type	: Outgoing
Date	: 2016-11-19 21:27:35
Address	: 18113829738
Status	: NOT_RECEIVED
Message	: 你好啊

然后是微信聊天记录的窃取,数据库里的 message 表截图:2016-11-27-01-35-49-%e7%9a%84%e5%b1%8f%e5%b9%95%e6%88%aa%e5%9b%be

最后没多少时间了,演示了下把所有网站全都劫持过来是个什么样子.我准备了一张十分嘲讽的表情包图片,现场写了个 HTML, 劫持成功后在攻击目标上访问任何网页都只会看到那张图,十分有趣.

然后就结束了,让想要入社的同学去 H 那里登记,我开始收拾各种设备.终于结束了.

之前一直害怕讲的内容太无聊,气氛会很沉闷,实际上我多虑了,当时气氛非常活跃,可以看到很多参与者都感到非常的新奇和有趣.效果非常好.

其实还有好些内容迫于时间没讲,比如如何预防这种入侵,我还想讲一点社会工程学方面的东西,只能留到下次补充了.

对 Google Analytics 统计数据的进一步分析发现,所有线上报名者都用是的 Android 设备,且多为小米用户.

整个准备过程中,我不止一次感受到 Google Keep 的好用.这次活动涉及到的所有策划方案等等各种资料都是在 Keep 上写成的.

令我惊喜的是,本次活动参与者中有一位初一的同学,实在令人感叹后生可畏.我在远程 Shell 里打 su, 他马上问我是不是在提升权限;我把窃取出来的短信给大家看,他马上说这不是发给同一部手机的吗?(确实如此,短信看起来像是两个人对话,其实都是从目标机上发出的)我写 HTML 的时候,打了个<h2>Hacked by n.s.</h2> ,他马上问我那个 h2 是不是输出文字的.卧槽,这哥们的水平和天赋简直了.

说实话,招到这么多新社员,我对这个社团也有了信心.我目前的想法是,下学期继续任社长,但不再做技术方面的讲解,而是致力于技术交流氛围的营造.

后来慢慢开始觉得,整个过程中最有技术含量,最刺激,最好玩的部分并不是我周四在讲台上讲的那些东西,而是在此之前我所遭遇的无数困难和解决这些困难的过程.谢谢这个残酷而有趣的世界,虽然累如狗,但我真的很享受,很开心.

不管怎么说,我没有遗憾了.

以上.

2 thoughts on “

回复 不愿意透露姓名的Y 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注