黑客社会工程学攻击

 2019-06-18    3164  

作者:张中南
链接:https://www.zhihu.com/question/26113526/answer/78645177
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

社会工程是个很大的话题,这篇文章只考虑其中一个点——私人信息获取。

知乎上应该有很多学生程序员,希望能有所帮助。


由于因特网的高速发展,很多赶上浪潮的人来不及顾忌无意中很多私人信息暴露到了网络上,成为社会工程者主要搜集的信息。也会有人不以为然,觉得自己平淡无奇,被拿了数据也没多大用。这里就要引出社会工程的两个主要攻击方法,技术手段和伪造中间人做跳板。两种方法相辅相成,最终的目的是掌握被攻击者能暴露出的最多的信息。

接下来是一次社会工程的基本流程。

首先必须掌握某个被攻击人的基础数据,比如名字,QQ,生辰籍贯等。然后利用技术手段通过这些原始数据掌握到关于被攻击人或是与被攻击人共同经历过某段时间的中间人,一个掌握数据的社会工程师在第二个阶段就基本能获取到需要的所有信息,就避免了第三步伪造中间人。第三步作为对第二步的错误信息筛选和更多信息的获取作为跳板,通过伪造成被攻击者认识的人套取他的消息,这里的前提就是对中间人也要有所熟悉,所以一般社会工程中,中间人会不只一个,但是最终的指向都是认识被攻击者但是关系不是很亲近的人。

下面针对这三个步骤依次讲解


基础数据的获取

首先要明白为什么攻击,社会工程是个灰色地段,不小心就会触犯到火线。我知道大多数人看这篇文章只是为了想搭讪偶然在饭堂看到的妹子,当然,这是可以的,不过连当面搭讪了解的勇气都没有又谈何社会工程呢?社会工程是作为搭讪的强化而不是初始化,技术可以没有,道德底线一定要有。

言归正传,基础数据可以是偶然在群里见到的一个爆照的妹子,也可以是在食堂刚搭讪问到qq号的学姐,当然,也可以是报刊杂志随处可见的公共人物名字。但是光靠个名字想很快有突破一般是很难的,下面有个参照表,是常用基础数据列表,获取到的数据覆盖表30%以上,拿到私密信息的概率就很大了。

  • 真实名字

  • 出生日期

  • 身份证号

  • 籍贯

  • QQ号

  • 不大众化的网络昵称

  • 就读的大学

  • 就读的高中

  • 学号

  • 你认识的他的朋友圈子的人

  • 共同朋友的资料

基础数据拿到后,就开始进行技术手段强化了。


技术手段

通过基础数据获取更多信息的方法非常多,一下几种按照难易程度不等,评判的条件是得到的基础数据的类型,根据基础数据类型的不同选用不同的方法。


搜索引擎搜索

搜索引擎收录了网络上大多数的网页,如果被攻击人在这些网页上留下过记录或者被网站主动纪录在网页上,就容易得到附带的一些数据,可以验证基础数据的正确性,也可以添加到基础数据中以获得更多数据


直接搜索

这是获取数据最简单方法,也是获得数据比较多的办法,下面是一些模式,模式可以组合,也可以很容易的自己发现新模式应用。


模式1-1:搜索qq号

该模式主要针对次腾讯时代的群体,主要对象为学生。

通过搜索QQ号获取留过QQ号的被攻击人百度贴吧,搜搜问问个人页。根据喜爱的贴吧得到兴趣爱好,初中、高中、大学信息,喜欢的公共人物,言语习惯,简单的性格分析等。当然,这是在理想状态下,百度贴吧有个功能能隐藏个人状态,如果用户的网络昵称不大众化,可以尝试全吧搜索这个昵称,能得到一些回帖发帖信息。


模式1-2:搜索不大众化的网络昵称

评判大众化与不大众化没有一个完全的标准,全都是靠个人判断,不过一个昵称叫做“我的小苹果”的被攻击者你还有兴趣在数以千万计的信息中去筛选包含他的信息的页面么。一些不大众化的昵称示例如下:

  • racingX

  • oa414

  • cherry_wang

大多数使用网络的人有两个坏习惯

  • 昵称在所有网站都一样

  • 所有的密码都一样

可以原谅,每个人或多或少都有点念旧或是懒~

通过搜索不大众化的昵称,再通过基础数据筛选判断应该属于被攻击者的页面,得到一些动态和信息,每次获取完数据后都要和已有数据进行对比,去掉虚假数据和不属于被攻击者的数据


模式1-3:搜索姓名或学号

这个主要针对在校或刚离校两年内的在校大学生,需要知道在读的学校,名字或学号任意。建议使用搜索引擎:必应,不要使用百度

一般学校教务处都会把包含学生一些信息的文件放到网站上公示,包括评奖评优,贫困补助,考试信息和新闻报道等很多信息。使用搜索引擎的站点内搜索功能,把搜索范围缩小到被攻击者所在的学校,信息筛选也就是区分几个重名的人而已,而直接在搜索引擎搜索名字,如果不是非常特殊或是在网络上有一定影响力的人,信息筛选难度会非常非常大。

之所以建议用必应而不是百度是因为必应支持搜索站点内的office文档内的信息,很多教务公示都是在单独的xls文件内,百度搜索不到。

这里还有个小技巧,可以直接把学号放在搜索引擎上搜索,尤其是谷歌,有的学校会有通过学号查询姓名的接口,通过谷歌能得到全校所有人的姓名学号校园卡号的信息,不妨一试。


通过人人网搜索

这条主要针对在校大学生、高中生。很多大学社团在招新的时候会通过人人网拉关注,大多数人就是在这个时候才把丢了好多年的人人网捡起来的,然后更新个人信息,一般人人网上都是真实名字,所以如果知道了名字,是很容易搜索出人人上面的信息的。


模式2-1 筛选

人人上同名同姓的有很多,即使做足了筛选可能还是无法定位具体的被攻击者,这是个看运气的活。

根据第一步得到的信息,搜索人名,筛选通过籍贯、学校和生日来筛选,不过大多数人来不及更新资料或是根本没填写学校的信息,所以主要还是靠籍贯做查询,生日做定位。如果籍贯和生日没得到,但是得到了身份证号码,查询起来就很容易了,下面说一下身份证号的格式

前6位代表上户机关所在地,也就是被攻击者出生的地点,中8位代表出生年份和具体日期,格式为‘年年年年月月日日’,最后几位没多大用,唯一有用的是倒数第二位(两种格式的身份证号都适用),倒数第二位代表性别,奇数为男,偶数为女。


模式2-2 向第三步发展

人人网相比qq空间等私密空间,得到被攻击者照片的可能性更大,并且可以很轻易找出ta的同乡或校友,这对于第三步来说是个很好的基础,选择一个私密信息暴露得多,和被攻击者关系又不是很亲密的人作为跳板可以很轻易的套出被攻击者的话。


通过其他社交网络搜索

这条主要适用于有一定专业技能的在校大学生或从事互联网技术工作的人。

大多数专业人员在专业相关网路上会有个人的贡献或是讨论,可以筛选得到一些很私密的内容。


模式3-1 github搜索

主要针对计算机专业的已工作人士和一些冒尖的大学生

github是全球最大的开源协同和代码托管平台,首先在上面搜索被攻击者常用的非大众化昵称,道理和之前一样,人都有点念旧和懒。如果有github账户,在个人主页里就会显示出他的公有代码仓库和他对哪些开源项目有过贡献。主要关注他的代码仓库和他的个人资料。

个人资料里有所在地,邮箱等信息(可以人为设置为隐藏)

首先看他的代码,计算机界有句老话“码如其人”。丰富的文档,层次分明的架构,安装部署文档等一应具全,那就不用看了,一般是找不出什么信息来的,对于这种老手,常常把会暴露自己的信息隐藏掉不上传,要关注的是把github作为个人代码仓库使用的人。尤其是对于j2ee开发者,大多数j2ee开发者使用maven来管理代码仓库,但是maven仓库一般搭建在公司内网,github使用git,因为对git的不熟悉没有设置忽略上传列表,很多核心文件如数据库配置等就会落入攻击者之手,至于为什么明知有风险还是会把商业代码长传到github而且设置为公有,其一是github私有仓库是收费的,其二我想是为了骗star增加自己在开源社区的影响力吧,虽然事实说明这种出了代码什么文档都没有的项目得不到几个star~

请看示例一


模式3-2 v2ex搜索

主要针对对互联网感冒的人和移动互联网的已工作人士

还是搜索非大众化昵称得到账号,然后看发帖回帖纪录。


硬技术手段(核心)

之前的几种模式无外乎都是搜索,是完全不违法,更谈不上灰色的方式,如果只是想入门社会工程学前面三类模式足够了。当然,想要再深入一些,被攻击者不局限于人,甚至部门,公司的时候,就的靠硬技术手段了。

不记得哪位先辈说过一句话“只要是有人的地方,就会犯错”,这句话在社团、公司这种老板一个人管不了全部的地方最容易出现,刚才提到的模式3-1就是这种,把公司私有的源代码为了一点蝇头小利(可能连蝇头小利都没有)放到外网,也希望在阅读的各位大大引以为戒,请看示例二。


开发者的逻辑错误

很多学校的网站因为不好统一学生做身份验证和密码修改,需要学生使用身份证号或身份证后6位登录系统,因为网站体验差,不知道该在哪里改密码,或是学生根本不知道有这个高校网站群,于是信息被使用了也不知道。


模式4-1:网站群非对称共享用户授权

不是所有的非对称网站群都有这个问题,一下是一个真实的例子。南京某高校网站群有一下几个共享授权逻辑错误:

  • 通过学号姓名查询系统可以得到指定学号的拥有人。

  • 图书馆默认登陆账户为学号,默认密码为学号,完成学号->姓名认证后可以得到用户的身份证号。

  • 教务系统默认登陆密码为身份证号。

  • 智慧校园默认登陆密码为身份证号后6位,可以获取用户每天的消费记录。


模式4-2:开发者部署后用弱密码测试帐号测试过系统

这种情况可遇不可求,不过很多的情况下,不是开发者使用的测试帐号,而是使用者为了验证系统可靠创建的一个临时账号忘记删除。

得到一个网站,首先根据域名查询到机器的ip地址,然后通过windows远程桌面或是linux ssh尝试登陆,下面是一些弱密码的常见组合。

  • Windows:

    • 账户名:

      • Administrator

      • admin

      • anonymous(匿名账户,默认密码为空或是anonymous)



  • Linux:

    • 账户名:

      • root

      • admin

      • ***(视具体情况,可以是学校缩写,也可以是项目名称)



  • 弱密码:

    • 000000

    • admin

    • ***(视具体情况,可以是学校缩写,也可以是项目名称)



示例

示例1:通过某用户github得到数据库配置文件

由于隐私保护的必要,下面称被攻击者为bili。

4月的时候,bili应聘我当时所在的公司的j2ee开发工程师,我没写过j2ee,担心面试的时候被喷,于是根据bili简历上github地址查看他的代码,首先看他的项目,bili是个很会赚钱的人,在工作的时候还接外包项目,仓库里有他目前所在公司的后台代码,也有外包项目的代码,两个的数据库账号密码都是明文显示的,但是公司使用的是内网数据库,不对外网公开,也没继续深入了。然后连接了外包项目的数据库,外包项目运营的时间不长,才开始几天,没什么用户,然后看数据库结构,密码都是明文保存的,其中有他的测试账号,密码是3.141592,一般人的密码没有几个,尝试用这个登录他的邮箱(github里有),结果登录上了,以前的公司主要通过邮件进行交流,于是知道了开发进度,水平,管理能力等信息,然后在草稿箱里发现了一个草稿,看名字就知道全是宝——“各种密码”,然后看了京东,看了豆瓣,该了解的都了解了,虽然对两性生活有点不羁,但是技术水平和领导能力都是有的,于是很有底气的去面试了。


示例2:通过github通配搜索得到某B轮电商网站源代码

这是家专做游戏主播外卖店的电商,使用github通配搜索www.*.cn获得很多因为某颗耗子屎把公司代码传到外网的代码,其中看到一家前不久看直播的时候上的外卖店的域名,网站是用php写的,浏览一遍代码,架构得很不错,有心的人如果拿去随便改改样式就可以分羹了。我发现问题后并没有报告给乌云,因为这确实算不上是漏洞,直接微博给CEO私信了,两小时仓库就没了。


示例3:通过校园卡获取漂亮妹子所有信息

出于隐私保护,被攻击者化名“小语”,小语是外语学院大三的学生,长得特别漂亮。一次在食堂遇到她,变心生搭讪的想法,遂跟着她之后刷了校园卡,当然,刷的是最便宜的5毛钱的饭盒。回到寝室,打开抓到的一台校园卡消费信息的内网肉鸡,vpn时通过上述模式4-1获取到的学校一个老师账号,然后查询在我刷卡附近20秒内的所有交易,很快就根据消费窗口定位到了她,得到了照片、名字、身份证号码等数据。然后使用模式2-1得到高中的班级和照片,使用模式4-1登陆上她的图书馆,得到喜爱的图书,作者信息,通过冒用身份加入班级大群得到她qq号,开始就聊她喜欢的作家和关于她希望从事的翻译的一些事,算不上对答如流好歹也算是勾搭上了。想必这也是广大想学社会工程学的屌丝最终的目标吧。


-----------------------------------------

更新于2018年6月3日:

三年前的答案,很多内容已经随着时代变化不那么好用了。因为工作的关系,一直很忙,偶尔上知乎看看,3年来累积了大概200条私信,在这统一给你们道歉,抱歉我没回复。有网购被骗的,有怀疑女朋友出轨的,都非常的压抑。最开心的是一个哥么儿,私信我“给你这年轻人一个锻炼的机会,让你查个很难查的人”。


  •  标签:  

原文链接:https://www.ceacer.cn/?id=103

=========================================

https://www.ceacer.cn/ 为 “Ceacer 网安” 唯一官方服务平台,请勿相信其他任何渠道。