1. 社会工程学简介
社会工程学(Social Engineering)是一种利用人的心理、行为习惯和社会关系来获取信息、影响决策或促使他人采取某种行动的方法。它常被用于网络安全领域,指攻击者通过操纵人的信任、恐惧、好奇心或疏忽,而不是单纯依靠技术漏洞来实施攻击。
“社会工程学黑客”就是将社会工程学运用到极致的这类人的总称,他们与我们所熟知的黑客不同,并不是利用渗透测试、代码审计、漏洞挖掘等技术对计算机本身造成攻击,而是一类非技术的人群,旨在利用人性的弱点造成实质性危害的一类人,比如:间谍、诈骗人员等。
1. 核心思想
社会工程学的核心不是“破解系统”,而是“影响人”。攻击者通常会研究目标的心理特点和行为模式,设计看似合理的交流场景,使受害者主动提供信息或执行操作。
例如:
冒充银行客服,诱导用户透露验证码;
假装公司同事,请求发送内部文件;
伪造紧急通知,让员工点击恶意链接。
2. 常见手段
钓鱼攻击(Phishing):通过邮件、短信、网页等方式伪装成可信来源,骗取账号、密码或其他敏感信息。
冒充身份(Pretexting):编造身份和故事,例如冒充技术支持人员、领导或合作伙伴。
诱惑攻击(Baiting):利用好奇心或利益诱导目标行动,例如提供“免费软件”或“免费资料”。
尾随进入(Tailgating):利用人的礼貌和信任,跟随授权人员进入受限区域。
信息收集(OSINT):通过公开信息(如社交媒体、公司网站等)分析目标,辅助实施欺骗。
3. 常利用的心理弱点
社会工程学攻击通常利用:
信任感:人们倾向相信看起来熟悉或权威的人;
紧迫感:例如“账户即将被冻结”;
恐惧心理:担心损失或受到惩罚;
好奇心理:想查看未知内容;
从众心理:认为别人都这么做,因此安全。
4. 防范方法
提高防范意识是抵御社会工程学攻击的关键:
不轻易泄露密码、验证码和个人信息;
对异常请求保持警惕,尤其是涉及资金或敏感资料的请求;
通过官方渠道核实身份;
不随意点击未知链接或打开陌生附件;
企业应加强员工安全培训,建立信息确认流程。
5. 正面应用
2社会工程学并不完全等同于犯罪。在合法领域,它也用于:
网络安全渗透测试:安全人员模拟攻击,发现组织弱点;
安全意识培训:帮助员工识别诈骗风险;
用户研究和社会行为研究:分析人与信息系统之间的互动。
- 心理学方面研究:主要研究人为什么会相信、为什么会服从、为什么会在压力下做出错误判断等问题。
2. 邮件钓鱼
SPF(Sender Policy Framework,发件人策略框架)是一种用于防止伪造发件人地址的电子邮件安全协议。它通过检查发送邮件的服务器是否被允许代表某个域名发送邮件,来降低垃圾邮件和钓鱼邮件风险。简单来说:SPF告诉收件方:“哪些邮件服务器有资格使用我的域名发送邮件。”
查询是否配置SPF的指令
CMD:nslookup -type=txt 邮箱域名
Linux终端:dig -t txt 邮箱域名
SPF协议是邮件的常用保护机制,所以要进行邮件伪造的话,我们要绕过这个协议。
SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)是一种用于发送电子邮件的网络协议,主要负责邮件从发送方到邮件服务器,以及邮件服务器之间的传递。简单理解:SMTP负责“把邮件送出去”,而不是负责“把邮件取回来”。
邮件发送和接受遵循SMTP协议(电子邮件传输协议),该协议不会验证发送者的身份,当邮件在两个不同的
SMTP邮件服务器中被传输时,有心者可以通过伪造来源,欺骗接收者的SMTP服务器。
当没有配置SPF时,也就是没有配置邮件保护机制的时候。邮件服务器就不会去验证发件人,就可以直接进行
伪造!
2.1 无SPF协议邮件伪造
2.1.1 方法一
下面是两个临时邮箱网站,这里作为为无SPF协议邮件接受者。
https://www.linshi-email.com/
临时邮箱、十分钟邮箱(10分钟)、临时邮、临时Email、快速注册Email、24Mail--查错网
下面以上面一个网站为例:
访问该网址,会有一个临时邮箱给你,如果不喜欢也可点击更换。
利用邮件发送工具发送,收件填写网站生成的随机邮箱,其他部分随便发挥,填写好后发送即可。
这边也是收到了伪造邮件。
2.1.2 方法二
用kali发送:
swaks --from jack@163.com --to 2xgf9q8er0@iwatermail.com --header "content-type:text/html" --header "subject:this is a note" --body hello,hacker! --ehlo 163.com参数简单说明:
--from 发送方
--to 接受方
--header "content-type:text/html" 邮件正文的格式类型
--header "subject:邮件标题" 邮件的标题
--ehlo 指定 SMTP 握手阶段发送的EHLO 命令中的主机名/域名
2.2 绕过SPF
2.2.1同形异义字攻击
通过将官方完整邮件ASCII 编码通过工具将其替换为西里尔字母(或者其他相近的符号),来造成肉眼看不出或不易看出的邮箱,来伪造官方邮箱,对受害者进行欺骗。
未混淆前:
SPF检测未通过。
混淆后,这里利用一个网站:Generate Fake Text - Homoglyph Generator & Text Obfuscator | MeFancy
混淆后直接跟原来看起来一模一样,很难辨别。
现在在收信箱了:
或者加后缀改字母
2.2.2 转发突破
注册一个正规邮箱(如QQ、Gmail、网易等),然后开启POP3转发功能,利用正规邮箱来转发我们要发的邮件。
POP3转发开启方法这里我用QQ邮箱展示,其他邮箱可自行用搜索引擎查询,这里建议用163邮箱。
- 打开并登录QQ邮箱网页版,点击右上角的设置。
- 然后点击账号与安全
- 然后点击安全设置,开启POP3服务。
- 完成相关验证后,就会生成一个授权码。
- 可以在设备管理这里查看登录状态和执行停用操作。
现在开始找一个模版:
你可以从你的邮箱里找一个官方发给你的邮件(如goole,github,淘宝,京东等等)。
导出eml文件后记得修改邮件头的Date字段,让其时间看起来合理。
swaks --from xxx@163.com --to xxx@qq.com -au xxx@163.com -ap 授权码 --server smtp.163.com -p 25 --data @2.eml
2.3 Gophish使用
工具包下载地址https://github.com/gophish/gophish/releases
这里以Windows为例:
将下载好的压缩包解压后,点击exe文件运行,在cmd中能查看登录名和密码,还有运行地址,访问登录即可。
- 配置发件人
- 测试,编辑好配置后,发送一封测试邮件,如果发送成功则配置成功
- 配置用户组(也就是收件人)
- 导入邮件模版
选择一份你邮箱中的邮件,然后导出eml文件,将里面的内容复制,然后点击import email将复制的内容粘贴进去,检查是否成功,ok后保存即可。
- 落地页(可选)可以将一些官方网页将其源码复制下来,然后用AI修改为gophish可使用的落地页,我这里用更好用的工具setoolkit来实现
打开kali终端,输入sudo su 提权,然后输入setoolkit,开启后:
输入1(社工攻击)
输入2(网站攻击向量)
输入3(凭证收集攻击)
我这里为了方便我输入1,使用内置模版,你也可以输入2网站克隆或3自定义导入。
这里我使用goole邮箱登录界面模版,输入的是2
访问一下,发现已经创建好了
配置 gophish战役,但这里好像要配置落地页才能发,那随便配置一下吧,反正也不影响。
ok,现在开始发送,显示email sent 说明已经发出一封钓鱼邮件了。
qq邮箱以及收到钓鱼邮件了
点击登录,输入用户名和密码,kali端收到数据,钓鱼完成。
2.4 文件捆绑
- 制作落地页
这里使用flash作为落地页,网址:https://www.flash.cn/
直接ctrl+s将该页面复制下来保存
然后进入该保存的文件夹
打开cmd
输入一下指令,开启http服务,就可以访问本地的8000端口看到刚刚复制的flash页面了
python -m http.server- 制作捆绑文件并修改下载链接的url
使用cs制作木马并下载官方的flash安装文件
利用资源修改器将木马伪装为flash安装包
- 将真正的flash安装包重命名为old.exe,修改过资源的木马文件重命名为flash安装包之前的名称
- 将这木马文件和flash安装包使用WinRAR进行捆绑
这里重命名为flash安装包名称,注意要有sfx文件后缀名,因为如果没有的话会捆绑失败,这个sfx文件后缀是通过勾选创建自解压格式压缩文件自带的,如果没有就去掉勾选在重新勾选就有了
使用高级中的自解压选项
添加一个解压路径,这里的话建议使用c盘文件夹(如:C:\Program Files、C:\Temp等),因为Windows系统都有,这是用于隐藏文件位置,免于被轻易发现。
添加解压后运行的文件路径,这里填绝对路径,exe文件之前的路径与解压路径一致
之后操作
完成后点击确定即可
为了再逼真一点,将自解压文件重命名为flash安装包名称:flashplayerpp_ax_install_cn_fc.exe
,这里注意命名为flashplayerpp_ax_install_cn_fc.exe的木马移到另外一个文件夹,避免文件名冲突
修改落地页源码中下载安装包的url
先在flash官网右键“立即下载”,复制链接地址
用编辑器打开之前复制的html
进入文本编辑器后,使用ctrl+F,使用替换,将刚刚复制的链接粘贴到查找目标,替换为使用你的捆绑文件的url,我这里使用的python开始的http服务,所以是:http://127.0.0.1:8000/flashplayerpp_ax_install_cn_fc.exe,最后点击全部替换即可。ok后保存退出
- 使用gophish发送钓鱼链接
使用刚刚之前创建的flash template,url为我的本地8000端口下的flash.html,ok后发送即可。
邮箱也是收到了好吧
- 验证部分
后面直接上操作,试一试行不行
最后木马上线:
ok也是一遍就过。
这里的话有些地方其实还可以优化,比如落地页界面,这里就要看各位的发散性思维和社工理解了。
over!
注意:本文所有操作均用本人邮箱完成,整个流程遵守网络安全法规,如需复现,请合法完成,遵守网络安全法规。
本人学习笔记,如有误,请各位博友提出。