注意:如果没有python基础,建议先学习python基础板块,学完基础再来安全进阶学习,否则可能会看不懂。
社工即“社会工程学”
什么是社会工程学?
社会工程学的概念最早是由著名黑客凯文・米特尼克在《欺骗的艺术》中提出的。
可以将其总结为: 社会工程学就是通过自然的、社会的和制度上的途径,利用人的心理弱点( 如人的本能反应、好奇心、信任、贪婪) 以及规则制度上的漏洞,在攻击者和被攻击者之间建立起信任关系,获得有价值的信息,最终可以通过未经用户授权的路径访问某些敏感数据和隐私数据。
相信大家对社工还是比较了解的,比如经常去查的某绑,也是社工的一种
简而言之,就是通过一切可以利用的手段获取对方关键或隐私信息。
那么获取到对方信息之后,下一步就是对信息的有效利用
1.你可以批量收集他人信息然后转手卖出
2.你也可以针对某个人或某个组织,尽可能多的收集他们的信息,有目标性的生成一个密码字典(社工字典),对他们的网站后台、社交平台的密码进行暴力破解
接下来就是实际操作,当你收集到某人的详细信息后,如何用代码生成社工字典~~~
不用说,第一步肯定要导入所需要的库和模块了,只需要一个模块即可哦~~
itertools是python的内置模块,又称“迭代器”
这里就不多介绍了,想深入了解itertools模块的可以访问官方文档:
https://docs.python.org/3/library/itertools.html
这里主要介绍itertools中用到的3个函数
itertools.permutation(iterable, r): 返回iterable中元素所有组合长度为r的项目序列,r省略则默认取iterable中项目的数量。
例如:intercools. Permutations(‘abc’,3), 从“ abc”中按顺序排列组合长度为3 进行输出,即abc,acb,bac,bca,cab,cba。
itertools.product(*iterables[, repeat]) :
可以获得多个循环器的笛卡儿积。
例如:product(“123″,”abc”),得到的结果是1a,1b,1c,2a,2b,2c,3a,3b,3c。
repeat(object[, times]) :
这个函数的作用就是重复元素,未指定 times 则会一直重复。
例如:repeat(100),即100,100,100……。
了解这个模块的3个函数后,接下来就是把你收集到的对方信息写到文本里,然后通过python读取文本里的内容
这里给出一个演示,表示已经收集到对方信息并写入文本了(xiaobai.txt)
当然,为了使生成的字典尽量包含所有可能的密码,也可以把网上常用的一些弱密码加进去
这里我就把网上常用的弱密码放在common.txt里了
首先看一下,当前目录还没有生成社工字典(如下图)
接下来,直接上代码~~
运行之后,就会在当前目录生成一个password.txt文件,里面就是生成的社工字典啦~~~
本篇就到这里了,代码基本每一步都有注释,也都能看懂