在这里,我会详细介绍攻击者如何查找源站IP,以及如何保护你的源IP不被找到。

知己知彼方能百战不殆。

本篇会持续更新。

攻击篇

本篇以攻击者的角度,让你了解为什么你的源站会被泄露。

同时,跟着本篇一起,将攻击目标改成你自己的网站,查看是否已经泄露。

DNS泄露源IP

DNS相关的问题非常多,究其原因还是对方没有套CDN。

我们可以使用如下方式:

一、历史DNS解析查询

使用如下网站提供的服务,可以查找一些域名在套CDN之前,已经解析并且传播的DNS解析记录。

已中招防范方法:换IP吧。

二、使用网络空间测绘引擎抓取

通俗一点的讲,这些就是一个不停歇的爬虫程序,不断地扫描全网开放端口、SSL证书、DNS解析记录等信息,然后收录其中。

通用简单查询语法:

ip="IP地址"
cert.subject="域名"
domain="域名"

三、邮件服务器设置不当。

查询MX记录获取源站IP。

使用在线DNS查找工具,查找MX记录,如果配置不当,就会显示你的IP地址。

IP泄露域名

一、IP可直接访问导致泄露。

这个很好理解,在初次建站,绑定域名前,你的IP端口如果时直接可以访问的,并且在这段时间内,被fofa收录了,那么恭喜你,源站泄露了。

寻找方法也很简单。

  • 搜索引擎直接搜索网站标题、域名。

  • 测绘引擎直接搜索网站标题、域名。

  • 全网扫描有可能扫出来(验证方法:你可以直接访问你的IP:你的网站端口)。

二、ip的SSL证书泄露源站源站域名。

当你的网站设置了默认站点,即所有未设置的域名访问全都重定向到目标站点。而这个站点是你本机部署的站点时,访问https://ip:443。

此时,浏览器就会提示:与此站点的连接不安全此网站的证书无效。

而你点击证书,你会发现,他会出现你为该IP申请的域名证书。

而这些信息,也会被一些网站收录。

例如:

防御篇

在攻击篇中,你的网站是否已经泄露了呢?
那么,下次再建站,一定要注意这些方面啦。

首先,如果已经中招,那么我首先推荐更换IP。

或者使用高防服务器。

最后坐着等死。

DNS泄露防护

开启CDN

推荐使用cloudflare,在DNS记录中开启小黄云。

使用防火墙规则屏蔽所有非CDN IP的流量。

IP泄露防护

最开始建站的时候就要开启CDN防护,关闭IP对外访问。

后续也不要让你的IP可以直接访问。

IP证书泄露

新的教程

新建一个站点,例如default.com,域名什么的都无所谓。

重点是将其设置为默认站点,然后在其配置中设置,让无论谁访问都返回444。

server {
    listen 80 default_server;
    listen 443 ssl http2 default_server;
    server_name default.host;
    # 无论是谁都断开连接。
    return 444;
}

不要启用SSL,这样别人访问ip:443就无法访问了。

旧的教程(有点多此一举)

新建一个站点,域名随便填写。

为其设置一个假的自签名证书。

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/default.key -out /etc/nginx/ssl/default.crt

将其设置为默认站点,并且让其返回444;

server {
    listen 80 default_server;
    listen 443 ssl http2 default_server;
    server_name default.host;
    # 配置伪造的SSL证书。
    ssl_certificate     /etc/nginx/ssl/default.crt;
    ssl_certificate_key /etc/nginx/ssl/default.key;

    return 444;
}

概括:创建一个默认站点,配置一个假的证书(可以浏览器搜索SSL证书在线生成)

当然,有不少小伙伴是使用面板搭建的,那么,根据以下步骤一键复制吧(以1panel面板为例)。

一、添加自定义证书。

证书:

-----BEGIN CERTIFICATE-----
MIIDnTCCAoWgAwIBAgIICN0meTm2thgwDQYJKoZIhvcNAQELBQAwgYoxCzAJBgNV
BAYTAkNOMRMwEQYDVQQDDApleGFtcGxlLmNuMRAwDgYDVQQKDAdDb21wYW55MREw
DwYDVQQLDAhEaXZpc2lvbjEOMAwGA1UECAwFQW5IdWkxDjAMBgNVBAcMBUhlRmVp
MSEwHwYJKoZIhvcNAQkBFhJleGFtcGxlQGV4YW1wbGUuY24wIBcNNzAwMTAxMDAw
MDAwWhgPOTk5OTEyMzEyMzU5NTlaMIGPMQswCQYDVQQGEwJDTjEUMBIGA1UEAwwL
Ki5hc29yZC5vcmcxEjAQBgNVBAoMCXZjTkFRa0JGaDETMBEGA1UECwwKTDg3dWd3
RFFZSjESMBAGA1UECAwJNFlXMXdiR1V1MRMwEQYDVQQHDAp2Y05BUWtCRmdBMRgw
FgYJKoZIhvcNAQkBFglGdGNHeGxRR1YwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
ggEKAoIBAQCmWANJpbIphMoALf5useEurAFHIJHcY8v+vANhNk9CsRYm/K0nKkdQ
RhLlsxl5CnfF8lkPqxnDGuTAo20NpsFoes2vgqdR7tF1hfGfWCBsHDZlfRoWoAJh
qhNEbyO5yDjJERYF1dlIaeupHKMsaNK1XernaF3m5Sub/uVLz4U18fhd+wbT4Ct+
XWe6+QIgA3h/5fIlgBNAg76YpgJh2yGzCYqvL7sSWbxVptXbnpdKoPrPxGkLtSq7
XIZHYS/inbg7Khn6sm75aBzOZ+JOt3IDe86DNzp9wqQhnMkHjBro/cjhabYt2uBr
+SKJk3u0eIWkGFoRP19x/l/nQ7xJwvPrAgMBAAEwDQYJKoZIhvcNAQELBQADggEB
AHE1B9SC+oqqFl7Ut3b4OX28HSDMn65ZA4+k7iFij2Wr4AtUZdjobA12cIWLxZxf
6wmFeE1/HmMkiGg7o7SlK/l2qUz4+TcNefx6CrDzt53JOdLjqQEShMuY8/UYRHYR
6fO5P0KGfpDUUG9Xjvb7UoTFyTABKiD+TrJTyAlecEfJLQsnaz/3jjTsOdyl0fA4
zcQT0Fbfyg0texyNKl43CU44XQCuM390UAhScgLik2NE2vsD3MzRmscCtfgcTZkA
ofg2W64mxyrPekbsIctky6+qqM5tssZZ06WpDnUBUiKbrEhHWSLCTlJ1QFIPfOs7
r+GtSO+3JkdVR/PhgpRnfRs=
-----END CERTIFICATE-----

私钥:

-----BEGIN RSA PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCmWANJpbIphMoA
Lf5useEurAFHIJHcY8v+vANhNk9CsRYm/K0nKkdQRhLlsxl5CnfF8lkPqxnDGuTA
o20NpsFoes2vgqdR7tF1hfGfWCBsHDZlfRoWoAJhqhNEbyO5yDjJERYF1dlIaeup
HKMsaNK1XernaF3m5Sub/uVLz4U18fhd+wbT4Ct+XWe6+QIgA3h/5fIlgBNAg76Y
pgJh2yGzCYqvL7sSWbxVptXbnpdKoPrPxGkLtSq7XIZHYS/inbg7Khn6sm75aBzO
Z+JOt3IDe86DNzp9wqQhnMkHjBro/cjhabYt2uBr+SKJk3u0eIWkGFoRP19x/l/n
Q7xJwvPrAgMBAAECggEADTeuHzJ+2yS1hlkhP/t7aKF7QoMYg/ocEgQvgpB1sNdw
aq2mNpf57at7weu+yOrnhH+Syxdt5x5icdoqhqyq7pnfcSRBFlYTJ7L6dY5jmSOO
wPa1VXnmZotEl6n7HT6HIJbueI07BDGCa8AeSR+VKpspWLTmzTuFgRI6dxEoxRXx
FfTGVcrfkXSNq1aWIWGVVU4dcrqFwZMRYEnkIFNNPhPkhVoEdyTvXX5oIK5HRowi
KdFBzHBh0VFtsCItiS57bHh8YwiR+xWBMSwZ3cuZ2C0h/q/5mWcrS2jdNrtOtvmf
6equYSm/wqlYISij4rdXoQlmUkWA/v4uuksvF45qhQKBgQD7cIC2IcrGBDS4EGYe
rtTQ2kj/EMqVOB89IcSd1uVqhtTxnVNypl0KoovCmRFkkTW1fcU/OHSkdHC4x+yj
5YUkAmt3+UfbsPyrN0znzVHgiRxnGf9S+c467jXj4bOscTSU+szbbT0lQgDTzgef
ptlEjYaNIC5pcyNy/mIDajJ+DwKBgQCpXGOpq/PzMF0uzI4lZERsEhY9MnO94v2X
i1FbyB5E4cVR2YV5vuy3ersJFF7XsFQ0VoX6hhY1uABToKUPLb0i72DE4i1lKdGC
trmwc4K8319rjJ1uEm5wysgtKY5TXe+NirQkR1UZ5j9BaP5gFD9Z2Joj31pLVlON
imzmPG1IZQKBgAI9lmgJFQ1+rBmXy9EqLatOxqe/No7t2RlqW54sdA7m9K7SgBPd
d6bInAY35vfGc3wSitdtYVy1zOtYnLs5KF6RxvNivUkv4pCEBaNrKPefQSmKCcRr
hXLw/HnzYO6Ac7+AHKM37fuPAwLgKyE5E2aQ/En1p3Q5Gm/D5IuzPo/xAoGBAIsI
XoTGteDZvlWR9ct6cbUqb/lTNrMW6koDRAoN0dOIaH1WDf4xH5FMfsjoYSe+CJJi
yWAtvYPiBtqgUYCRcuiADTfz2YJn/yfIq83QNe6pjWL0L7VSCjosLoLsz3te7S6M
RHBX4uP9Ican09O6K3utlnSGglDAkJzsm5Oy3aAFAoGAXvVXaLU+7E0HbTIYXWUo
2W2Ti1/u3ymIDdIE10PUlBTHRbQ+5BKCfe6Aq1vre1cyytmVUBQVPeomNAPgIlss
F0KLnjy9o3ktC+rAEkty4jEbdCV8t7ErbfdWjzwIkLnduid7P6iUUq70o/T0rnyn
wern9fAy7FjKaLSmXKpnAlQ=
-----END RSA PRIVATE KEY-----

二、创建网站

三、设置为默认站点。

四、添加SSL证书。

点击你新建的域名,进入管理页面。

五、修改配置文件,让其返回444。

在配置文件的server中的随便一行,添加

return 444;

即可

关于DDOS

如果说,真被盯上了,对方花大手笔,发动大规模DDOS,给你免费的CF盾(CDN)穿了。

那么,解决方法有几个:

  • 开启CDN的waf,一般的CDN都支持waf(CF也有五条免费WAF规则,足够了),开启js质询(即无感的人机验证),狠心一点可以开手动人机验证(比较影响用户体验。

  • 高防CDN,反正就是对方花钱D你,你花钱防御。

  • 多主机waf与多节点负载均衡,将用户请求均匀地分配到多个服务器上,这样能够很大程度减轻服务器压力,避免穿盾流量或者未缓存流量导致服务器宕机。

  • 防火墙过滤可疑流量,限制单IP一段时间内的访问速率。

  • 进行流量清洗。

  • 拔线关机()。