0x00 背景
看到这个漏洞https://blog.doyensec.com/2018/05/24/electron-win-protocol-handler-bug-bypass.html的时候,里面提了一句chrome的–host-rules参数,这个参数很厉害,如果你按如下方式启动chrome:/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --user-data-dir=1 --host-rules='MAP * www.google.com'
等于是把所有网站都重定向到www.google.com,这时你访问任何一个网站,都会返回谷歌的网站,最厉害的是,chrome不会显示证书错误.那么如果我们是用dns spoofing来实现重定向,chrome会不会显示ssl证书错误呢?
0x01 dns spoofing
首先安装dnsmasq:brew install dnsmasq
sudo cp $(brew list dnsmasq | grep /homebrew.mxcl.dnsmasq.plist$) /Library/LaunchDaemons/
sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
然后在/usr/local/etc/dnsmasq.conf里写入以下项:server=8.8.8.8
cname=www.mydomain.com,www.google.com
并在/etc/hosts/里加入:172.217.25.68 www.google.com
172.217.25.68
为www.google.com原本的地址。注意这一步是必须的,否则dnsmasq的cname设置不会生效。重启一下dnsmasq,
sudo launchctl stop homebrew.mxcl.dnsmasq
sudo launchctl start homebrew.mxcl.dnsmasq
确认dnsmasq成功运行了:sudo nmap -sU localhost -p 53
这时我们就可以dig一下:$ dig www.mydomain.com
; <<>> DiG 9.10.6 <<>> www.
mydomain
.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27575
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.
mydomain
.com. IN A
;; ANSWER SECTION:
www.
mydomain
.com. 0 IN CNAME www.google.com.
www.google.com. 0 IN A 172.217.25.68
看到www.mydomain
.com被成功重定向到www.google.com。接下来我们还要将网络的dns服务器设置为本机127.0.0.1,这个在mac上的network中很容易设置,就不多说了。设置完后我们正常打开chrome,访问www.mydomain
.com,可以看到证书是无效的.这说明了chrome的host-rules非常强力,不是一般dns spoofing所可比拟的。
No comments:
Post a Comment