????????从原理上来说,社会工程学是通过分析攻击对象的心理弱点、利用人类的本能反应以及人的好奇、贪婪等心理特征进行的,使用诸如假冒、欺骗、引诱等多种手段来达成攻击目标的一种攻击手段。
????????其实,社会工程学攻击蕴涵了各式各样的灵活构思和变化因素。无论何时何地,在需要套取所需要的信息或是操纵对方之前,攻击的实施者都必须掌握大量的相关知识基础、花费时间去从事资料的收集和整理,并进行必要的沟通工作。
????????现代社会工程学攻击(简称“社工”)通常以交谈、欺骗、假冒或伪装等方式开始,从合法用户那里套取用户的敏感信息,比如系统配置、密码或其他有助于进一步攻击的有用信息,然后再利用此类信息结合黑客技术实施攻击。这一点也是和传统技术性攻击进行系统识别、漏洞分析和利用、甚至暴力破解等方式之间的最大区别。从这个层面来讲,社会工程学攻击主要是对人的利用,有时甚至是对人性优点的利用,比如利用人的善意同情心。
????????涉及的信息搜集来源包括目标公司和个人网站、个人简历、搜索引擎、Whois查询、公共服务、社交媒体、公开报告等。而在社会工程学攻击过程中,还会应用一些非传统的信息搜集技术,包括:
??????? 行业专家可以提供有关一个领域的具体情报信息,如果这个行业是比较标准化的,那么这些情报数据对于社会工程师找出目标公司的漏洞也是非常有帮助的。
????????在目标公司的雇员们经常出没的一些活动或场所中,与他们进行寒暄套词,也是社会工程师诱导出有用信息的一种途径。与目标公司雇员接近,提供了与他们对话、窃听甚至克隆RFID卡的机会。
????????垃圾搜寻(Dumpster Diving)是社会工程师最经典的一种信息收集途径。目标公司的雇员们往往会直接丢弃一些文件、便贴纸、信件、CD甚至报废设备,这让社会工程师可以从目标公司附近的垃圾桶或提供服务的垃圾回收公司处,搜寻到包含目标公司信息或具有利用价值的丢弃物品。
????????如果你在交谈对话中看起来让人不舒服或者表现不自然,那么你的目标会很快结束对话,而你将一无所获。要让你的语言、形体姿势、表达方式体现出自信与淡定,这样才不会让交谈对象观察到你不自然的一面,从而丧失实施成功诱导的机会。
????????你必须要对你与目标交流的话题有所了解,但是又不能假装自己在对方擅长的领域中无所不知,否则会被轻易地看出破绽。
????????虽然诱导的目标是从交谈对象那里获取信息,但是又不能让它成为你的关注焦点。那样的话,你的目的性会很明显,并很可能被识别出来。可以给予对象某些信息,这样他潜意识会有一种希望回报的感觉。如果你已经套到一些有用信息,就要适可而止,而不能变得贪婪索要更多,这样可能引起目标的警觉。
比如夸耀目标的职责的重要性、出色的工作能力、高超的技术水平等,而这种阿谀奉承经常会让目标在沾沾自喜的同时放松警惕,从而接受交谈。
这种技巧甚至比起溜须拍马更加有用,因为它可以让目标在初始交谈上扩展出进一步的联系,甚至让目标接受从攻击者发来的软件,或是更进一步讨论目标公司的内部信息。
虽然这样做看起来会适得其反,但是这种技巧却被证明是比想象中更强力的社会工程学利器,往往能够从目标那里诱导出真实的事实。这是因为人们与生俱来就会有一种无法容忍错误观点的本性。
人的道德本性中强调义务对等。社会工程师会利用这点,在交谈中提供一些信息,通常会让目标回应相同价值的信息。
如果你已经知道这些信息了,那么和你讨论又有什么风险呢?社会工程师就是利用人们的这一想法,提供已经搜集和套取的信息假装自己已经全部知晓,在不经意间就让目标泄露其他信息,并进一步建立他知晓全部信息的假象,以获取更多。
这是一个人所共知但有时却很难抵御的攻击技巧。
????????在进行诱导的时候,社会工程师往往采用问答的方式尝试套取信息。而问答又分为开放式问答、封闭式问答、诱导性问答和假设性问答等多种类型,合理地在不同阶段使用恰当类型的问答,将有助于社会工程师成功进行诱导。
????????无法只用“是”或“否”来回答的问题,需要回应一些细节信息,使用开放式问答通常可以从目标那里挖掘出细节信息。
????????回答比较确定,通常不会超过一种可能性,这类问答不能获取细节信息,但是可以用于引导目标。
????????组合了开放式与封闭式问答的某些方面,期望诱导出一些开放的回答信息,但隐藏了导向期望答案的暗示。这类问答可以引导目标在回答问话时提供你所期望的一些具体信息。
????????在提问中假设目标已经知晓某种信息,比如问目标另一位公司雇员在哪个部门时,是假设目标认识这位公司雇员,这可以通过目标的回应来确定他对这位雇员的熟悉程度。
要想实施一次成功的诱导会话,社会工程师在对话初期应该采用一些闲聊式的开放式问答,使用这些问答来搜集关于目标的一些情报﹔然后在必要的时候,使用几个封闭式问答来引导目标进入你想要开始实施社会工程学的状态﹔情况允许时,进入一些具有高度导向性的诱导性问答,以尝试获取你想要的具体信息。而假设性问答则需要在一些特殊情况下才能使用,只有当社会工程师掌握一些真实情况时,才可以利用这些信息,作为诱饵信息或是假装自己已经知晓具体信息,从目标那套取真正期望获取的情报。
1)研究功课做得越充分,成功的概率越大。这一点已经强调许多次了,在此不赘述了。
2)发挥你的个人兴趣或专长,将有助于提升成功的可能性。社会工程学攻击在最后一击上看似非常简单,但是在此之前如何说服目标让他相信你才是最艰难的过程。如果你宣称自己在某个主题上知识渊博,这当然有助于你更快地博取信任,但是如果你在一无所知的领域上忽悠对方,可能很快就会被揭穿。因此,在你设计的托辞中包含你具有个人兴趣或专长的主题,会让你可以在实施过程中充满自信游刃有余。当然有些时候托辞所涉及的某些主题是足够简单的,因此你可以通过阅读一些网站内容或者书籍,来快速建立起对这一主题的知识掌握。作为一位社会工程师,平时凭着个人兴趣对各个领域的研究学习,也是非常重要的,这有助于在你实施托辞时提供更多的选择。
3)练习方言口音与表达。在通常情况下,使用与目标相同的方言,假冒成目标的老乡会大大拉近双方距离,从而让你的托辞更容易被接受。然而在中国,有着太多种各式各样的方言与地方口音,能够掌握多少种方言口音则取决于个人的语言天赋、学习能力与毅力。即便你无法掌握某种方言,仅仅学习某个地区所使用的一些特殊表达方式,也能够让你的社会工程学托辞与众不同。
4)充分利用电话进行社会工程学。近些年,互联网已经取代电话,成为了实施社会工程学攻击的主要渠道,由于这种变化,许多社会工程师不再投入足够精力到使用电话上,这让他们无法获得真正的成功。因为互联网天然具有的虚拟特性,使得在互联网上实施社会工程学的难度更大一些,而通过电话可以进行直接的人际沟通,可以让优秀的社会工程师更好地掌控社会工程学的实施过程,以提高成功概率。此外,社会工程师在电话系统上也像在互联网一样,可以“伪造”几乎任何事情,比如呼叫方信息,利用传统电话黑客技巧在线伪造卡服务,都可以轻易地让社会工程师伪造目标电话上显示的呼叫方电话号码。当社会工程师规划一次电话社会工程学时,他的想法可能会产生一些变化,因为使用互联网看起来会更容易一些。但是值得注意的是,你应该在规划电话社会工程学时,投入相同程度的精力,进行相同程度的研究与信息搜集,最重要的是需要相同程度的实践。
5)口托辞设计得越简单,成功概率越大。“越简单越好”的哲学在托辞设计中同样适用,如果托辞中包含太多繁文缛节,会在具体实施时由于忘记某个细节而造成失败。设计的故事要尽量简单,这会帮助建立可信性。
6)让托辞看起来很自然。社会工程师在设计托辞时可以记录下几点概要,不建议编制一个完整的对话脚本。记录概要通常允许社会工程师更加灵活地进行应变,而完整对话脚本会让社会工程师听起来过于机械指令化。另外,社会工程师也需要对托辞涉及的主题拥有个人兴趣和理解,如果每次目标在问你问题时,你都是支支吾吾现场考虑发挥,那么将大大损害你的可信度。
7)口向目标提供一个合乎逻辑的结论,让社会工程学攻击过程有始有终。作为一位社会工程师,当你离开与目标的对话时,无论你是否需要操纵他进行进一步的动作,也无论你是否已经从目标那搞到了你想要的信息,你都需要给目标提供一个结论,来让目标觉得这一对话是正常的。
“我想在这次交互过程中获取什么?”你不仅仅需要在脑袋中有一个明确的目标,甚至还需要把它写下来。在设置目标之后,你还需要问自己:“我怎么知道我已经达成了目标?”当你明确地知道你想要得到什么,以及达成目标的预示迹象之后,你就能清晰地定义出你所需采取的攻击路径。
这需要你取得目标的关注,并能够了解他的一些潜在意识,这样你才能够与他建立起信任关系。掌握与人搭关系的技能可以改变你与人相处的方式,而在社会工程学场景中,它将改变你的整个方法学。
要对你自己与你的环境保持感知,注意到你的目标以及你自己的一些表情状态,这将告诉你实施的心理操纵是否在朝着正确方向发展。
一位优秀的社会工程师要能够随机应变,在必要的时候调整他达成目标的方法。这并不与事先做好规划冲突矛盾,而是说明凡事不能太过死板,当事情并没有像规划的那样发展时,你可以进行灵活修正,来确保不偏离目标。
这并不是让你坐禅修行,而只是让你能够理解自己的情绪。情绪实际上控制着你所做得任何事情,也同样控制着你的目标所做的所有事情。理解你自己的情绪,认知自我,将帮助你打好成为一名优秀社会工程师的基础。
在这些基本原则的指导之下,社会工程师发展出来的心理操纵基本战术有如下八种:
在这些基本原则的指导之下,社会工程师发展出来的心理操纵基本战术有如下八种:(1)利用报答意识
在社会工程学场景中,义务感紧密关联于报答意识,但并不局限于此。义务感在针对客服人员时是一个很常用的攻击技巧。你可以利用巧妙的恭维来使用义务感,比如恭维电话客服人员的声音甜美,并随后提出一个小小的请求。
在社会工程学场景中,经常在人类的相互交换本性中使用。人的大脑中看起来像是有一个内建机制,使得人们总是愿意做“别人对你做的事情”。社会工程师可以使用这一“拿什么交换什么”的原则,当然金牌销售、谈判专家也是精于此道。一位成功的渗透测试师可以使用或者滥用这一人类本能的癖好,不仅仅抵御别人加之于身的心理操纵,还能够尝试完全掌控局面。
饥饿式营销是最常见也最有效的销售策略之一,就是利用人们在面临饥饿感时的本能反应。而在社会工程学场景中,饥饿感也经常被应用于在决策时创建一种紧迫感,而这种紧迫感经常会造成对目标决策过程的操纵,使得社会工程师能够控制提供给目标的信息。在应用时,通常将饥饿感与权威配合使用,这让社会工程学攻击变得尤为致命。
人们更意愿听从他们所认为权威的方向指引与建议。权威性在用于影响他人方面是一个非常强大的工具。社会工程师只要结合搜集到的一点点信息,编造一个缘由,就可以充分利用一个权威的托辞,来达成他的攻击目标。
人们非常看重他人的言行一致性,也希望自己的行为能够保持一致性。承诺与一致性可以成为非常强大的心理影响因素,让绝大多数人执行动作、提供信息,或者泄露秘密。如果一位社会工程师可以让目标承诺完成某件小事情,那么通常情况下,让这个承诺升级成一系列的大动作也并不是件难事。
从众是一种心理学现象,是发生在当人们无法自己决定合适的行为时,他们往往会轻易地假定别人做的或者说的就是恰当的,从而跟随别人做出相同的行为。作为社会工程师,利用目标的从众心理也可以是一种致命武器,通过向目标提供信息说明数量众多的其他人(特别是一些角色模范)已经采取同样的动作,来向目标提示响应请求的合规性,从而激励目标采纳这一行为。