DNS解析详细过程
- 用户在浏览器中输入域名,触发域名解析请求。
- 用户的计算机向本地DNS服务器发送域名解析请求。本地DNS服务器通常由用户的ISP(Internet ServiceProvider)提供。
- 本地DNS服务器在本地缓存中查找域名对应的IP地址。如果找到,直接返回IP地址给用户的计算机。这个步骤可以避免向其他DNS服务器发送请求,提高解析速度。
- 如果本地DNS服务器未能在缓存中找到域名对应的IP地址,则向根域名服务器发送请求。根域名服务器是互联网上最顶级的域名服务器,负责管理顶级域名的解析。
- 根域名服务器返回给本地DNS服务器一个顶级域名服务器的地址。
- 本地DNS服务器向顶级域名服务器发送请求,请求解析域名的IP地址。
- 顶级域名服务器将域名的权威服务器(即负责该域名的注册和管理的服务器)的地址返回给本地DNS服务器。
- 本地DNS服务器向权威服务器发送请求,请求解析域名的IP地址。
- 权威服务器将域名的IP地址返回给本地DNS服务器。
- 本地DNS服务器将IP地址保存到本地缓存中,以便下次用户请求该域名时可以直接返回IP地址,而不需要再次向权威服务器发送请求。同时,本地DNS服务器将IP地址返回给用户的计算机。
- 用户的计算机使用返回的IP地址与目标服务器建立连接,完成网页加载或其他网络服务。
绕过CDN查找主机真实IP地址的方法
- DNS历史解析记录
查询域名的历史解析记录,有可能会找到网站使用CDN前的解析记录,从而获取真实ip - 查找子域名
一些子域名站点可能没有加入CDN,但它与主站在同一个C段内,此时可以通过查找子域名来查找真实IP - 网站邮件头信息
在邮箱注册,邮箱找回密码,RSS邮件订阅功能登场景下,通过网站给自己发送邮件,查看邮件头信息,有可能获取到网站的真实IP - 网络空间安全引擎搜索
通过关键字或网站域名进行搜索,找出被收录的IP
推荐的引擎:Fofa,钟馗之眼,Quake等 - 利用SSL证书寻找真实IP
证书颁发机构需要将他们发布的每个SSL/TLS证书发布到公共日志中,SSL/TLS证书通常包含域名、子域名和电子邮件地址。
搜索地址:https://search.censys.io/search?resource=hosts - 国外主机解析域名
大部分 CDN 厂商因为各种原因只做了国内的线路,而针对国外的线路可能几乎没有,此时我们使用国外的DNS查询,很可能获取到真实IP。 - 扫描全网
通过Zmap、masscan等工具对整个互联网发起扫描,针对扫描结果进行关键字查找,获取网站真实IP。 - 配置不当导致绕过
在配置CDN的时候,需要指定域名、端口等信息,有时候小小的配置细节就容易导致CDN防护被绕过。
为了方便用户访问,我们常常将www.test.com 和 test.com 解析到同一个站点,而CDN只配置了www.test.com,通过访问test.com,就可以绕过 CDN 了;站点同时支持http和https访问,CDN只配置 https协议,那么这时访问http就可以轻易绕过。 - 当服务器使用F5 LTM做负载均衡时,通过对set-cookie关键字的解码真实ip也可被获取
例如:Set-Cookie: BIGipServerpool_8.29_8030=487098378.24095.0000,先把第一小节的十进制数即487098378取出来,然后将其转为十六进制数1d08880a,接着从后至前,以此取四位数出来,也就是0a.88.08.1d,最后依次把他们转为十进制数10.136.8.29,也就是最后的真实ip。
子域名信息收集常用手段
- 搜索引擎查询:利用Google、Bing等搜索引擎,通过特定的搜索语法(如"site:"指令)来限制搜索结果,从而获取子域名信息。
- 备案查询:通过工信部ICP备案系统等官方备案网站,通过主域名查备案,获得域名所属公司名称,再搜索该公司名称以获取其所有注册域名。
- 企业信息查询平台:使用天眼查、爱企查等企业信息查询平台,通过查看股权穿透图来查找子公司,并收集其子公司的域名2。
- Whois查询:通过Whois网站进行查询,利用同一公司的域名可能使用同一邮箱注册的信息进行反查,从而找到关联的子域名2。
- 证书透明度查询:利用证书透明度查询网站,如crt.sh、Censys等,通过查询TLS证书中包含的域名信息来收集子域名2。
- 在线子域名查询网站:使用专门的子域名查询网站,如SecurityTrails、IP138等,输入域名即可获取子域名列表23。
- 威胁情报平台:利用ThreatBook、VirusTotal等威胁情报平台收集目标组织的子域名信息2。
- DNS域传送漏洞:利用DNS域传送漏洞进行子域名的收集,这是一种技术手段,但需要谨慎使用,以避免违反法律法规
Nmap全端口扫描
使用-p参数指定端口1-65532,-vv参数输出详细信息,这里我将本机的防火墙关掉了,所以扫出的端口很多
SYN半开扫描
SYN扫描作为默认的也是最受欢迎的扫描选项。 它执行得很快,在一个没有入侵防火墙的快速网络上,每秒钟可以扫描数千个 端口。 SYN扫描相对来说不张扬,不易被注意到,因为它从来不完成TCP连接。 它也不像Fin/Null/Xmas,Maimon和Idle扫描依赖于特定平台,而可以应对任何兼容的 TCP协议栈。 它还可以明确可靠地区分open(开放的), closed(关闭的),和filtered(被过滤的) 状态。SYN扫描也被称为半开扫描,因为它不打开一个完全的TCP连接。它发送一个SYN报文, 就像您真的要打开一个连接,然后等待响应。
SYN:
TCP:
通过对比可以很明显的发现对相同的主机执行全端口扫描,SYN扫描的时间比TCP扫描的时间少得多
跳过主机存活检测扫描
-Pn 参数即告诉namp在扫描时不做主机存活检测,默认主机存活,可以在某些场景下提高扫描速度
这里说扫描将会降速,但是当你是运维人员,你很确定主机的存活的情况下,使用-Pn参数会加快扫描的速度
dirmap目录探测工具实践
简单使用
-i 参数指定目标
-lcf 加载配置文件
发现条目数是1928
dirmap对于同一网站每次扫描的条目数可能不一样,原因与网站数据的动态变化和Dirmap自身的处理机制有关。
dirmap高级应用
-lcf是加载配置文件,我们自然可以更改配置文件中的配置,默认的配置文件是软件目录下的dirmap.conf文件
关于这些配置参数的含义,文件中都有英文注释,也可以在软件目录下的readme.md文件中查看中文解释
这里我们将conf.crawl_mode 设置成0,默认是1,
再次跑一下dirmap,与之前的结果进行对比(注意要先清空之前的结果,因为dirmap会根据指定的目标生成目标,txt文件,允许重复扫描,结果会自动去重)
可以很明显的看到,缺少了诸如vul路径这些结果,这是因为在刚刚的配置文件中我们将conf.crawl_mode的值设置为了0,关闭了爬虫模式
Fscan实践
简介
一款内网综合扫描⼯具,方便⼀键自动化、全方位漏扫扫描。 支持主机存活探测、端口扫描、常见服务的爆破、ms17010、redis批量写公钥、计划任务反弹 shell、读取win网卡信息、web指纹识别、web漏洞扫描、netbios探测、域控识别等功能。
使用
-h 指定目标target
在不指定其他参数的情况下,默认使用全部模块,具体的参数含义可以查阅软件目录下的README.md文档,也可以在https://github.com/shadow1ng/fscan查看