1、DNS解析详细步骤
用户在浏览器中输入要访问的域名(例如,www.163.com)。接着浏览器询问操作系统DNS解析器域名(www.163.com)对应的IP地址。操作系统中的DNS解析器收到请求后开始检查本地DNS缓存,如果之前已经解析过该域名且缓存未过期,将直接返回缓存中的IP地址,跳过后续步骤。
如果本地DNS缓存中没有找到对应的IP地址,操作系统的DNS解析器将发送一个DNS查询请求给配置的本地DNS服务器,本地DNS服务器接收到DNS查询请求后,首先检查自身的DNS缓存,如果有对应的IP地址缓存,将直接返回给操作系统的DNS解析器。
如果本地DNS服务器的缓存中没有找到对应的IP地址,它将向根域名服务器发送一个递归查询请求,询问它关于该域名的信息。根域名服务器收到递归查询请求后,根据请求中的域名后缀(例如,.com)提供对应的顶级域名服务器的IP地址给本地DNS服务器。
本地DNS服务器收到根域名服务器的响应后,再次向顶级域名服务器发送一个递归查询请求,询问它关于该域名的信息。顶级域名服务器收到递归查询请求后,根据请求中的域名提供权威域名服务器的IP地址给本地DNS服务器。本地DNS服务器收到顶级域名服务器的响应后,再次向权威域名服务器发送一个递归查询请求,询问它关于该域名的信息。权威域名服务器收到递归查询请求后,查询自身的资源记录,找到与请求匹配的域名记录(例如,A记录、CNAME记录等),并将IP地址作为响应返回给本地DNS服务器。本地DNS服务器收到权威域名服务器的响应后,将响应中的IP地址存储到本地DNS缓存,并将该IP地址作为响应返回给操作系统的DNS解析器。操作系统的DNS解析器将收到的IP地址返回给浏览器。浏览器使用收到的IP地址与服务器建立TCP/IP连接,发起HTTP请求,最终访问到目标网站
2、绕过CDN查找主机真实IP的方法
1.判断cdn
超级ping
这里使用http://ping.chinaz.com/
工具,输入目标域名,看返回ip是否一致,若为多个则使用了cdn
nslookup
命令:nslookup [domain]
这里用百度举例,可看到返回多个ip,证明有cdn
360quake
有一键去除cdn功能(只能去掉可以识别的cdn,无法百分百去除,仍需自己判断)
2.绕过cdn
1.查询历史dns记录
查看IP与域名历史记录,可能会有使用cdn前的记录
查询网站:
https://x.threatbook.cn/ ###微步在线
http://viewdns.info/ ###DNS、IP等查询
https://tools.ipip.net/cdn.php ###CDN查询IP
2.查询子域名
有的公司可能只给主域名买了cdn,而访问量相对小的子域名并没有买,可以通过子域名ip判断目标真实ip(有一些静态文件同理)
子域名搜集网站:
https://searchdns.netcraft.com/
https://quake.360.net/quake/#/index
也可以使用子域名挖掘机等工具爆破
3.国外ip访问
有的 CDN 厂商只做了国内的线路,而针对国外的线路可能几乎没有,此时我们使用国外的DNS查询,通过一些冷门地区进行ping,很可能获取到真实IP
常用测试网站:
https://asm.ca.com/zh_cn/ping.php
http://host-tracker.com/
http://www.webpagetest.org/
https://dnscheck.pingdom.com/
3、子域名信息收集常用手段
1.在线网站
360quake
https://quake.360.net/quake/#/index
这里以百度为例domain="baidu.com"
搜索结果
netcraft
https://searchdns.netcraft.com/
同样以百度为例
2.爆破工具
layer子域名挖掘机
如下,输入域名即可开始爆破
4、Nmap全端口扫描
1.正常使用
nmap ip #正常扫描目标
nmap ip/24 #扫描目标所在的c段
nmap -p port ip #扫描目标固定端口(端口可以是一个或指定一段,如80-100,是扫描80端口到100端口)
nmap -A ip #全扫描,耗时间,详细
这里扫描自己的主机举例,可看到开放的端口
2.其他
syn半开扫描
nmap -sS ip
正常的扫描流程会经历tcp三次握手,而半开扫描只会进行第一次请求(根据请求端口是否回应判断),对于服务端返回的请求直接终止连接,所以会更快,且不会在目标系统日志中留下完整连接记录,但该异常可能会引起网站管理员注意
跳过主机存活扫描
nmap -Pn ip
正常扫描流程是先确定目标主机是否开放再判断端口,该命令假定所有指定的目标主机都是活跃的,并直接进行端口扫描或其他指定的扫描操作,而不需要首先进行主机发现,该选项可能会增加扫描的误报率,但如果一个较大范围ip内的大部分主机活跃,该选项可以明显提高扫描的效率
适用场景
确定目标主机开放;需要对整个ip段进行扫描
5、dirmap目录探测工具实践
1.基本使用
查看帮助:python dirmap.py -h
这里对主机下pikachu靶场进行目录扫描
python dirmap.py -i 192.168.44.1/pikachu -lcf
结果如下:
注:在扫描过程中可能会发现dirmap扫描出结果不同,可能的原因
1.网络问题:由于网络卡顿扫描某项时导致超时,未扫描出
2.线程问题:线程设置不同可能会导致结果不同
2.进阶使用
python dirmap.py -i http://example.com/ -lcf -f pass.txt
//-f 指定密码
python dirmap.py -i http://example.com/ -lcf -t 40
//-t 指定线程,默认线程32
python dirmap.py -i https://example.com -lcf --no-progress --exclude-status 404
//排除404状态码
python3 dirmap.py -i https://example.com -lcf --proxy-server 127.0.0.1:8080
//使用代理服务器
6、Fscan实践
fscan:一款内网综合扫描工具,支持主机存活探测、端口扫描、服务爆破等功能。用户可以通过下载exe文件或安装Go环境来使用,执行命令行操作进行网络扫描和漏洞检测。工具包含多种扫描模式和自定义选项,如添加代理、指定扫描端口等
命令:
fscan.exe -h 172.20.10.4/24 //基本扫描
fscan.exe -h 172.20.10.4/24 -p 80,443,3306 //指定端口扫描
fscan.exe -h 172.20.10.4/24 -o result.txt //保存结果到文件
fscan.exe -h 172.20.10.4/24 -proxy 127.0.0.1:8080 //使用代理
fscan.exe -h 172.20.10.4/24 -t 1000 //指定线程数
fscan.exe -h 172.20.10.4/24 -np //禁用Ping探测
这里扫描自己主机所在网段为例(分别是自己主机和虚拟机ip)
注:之前fscan在扫描时总是卡住,后面发现可能是在尝试爆破虚拟机开启的ssh服务密码,如上指定端口就没卡住了
7、插件安装成功截图
火狐插件wappalyzer和findsomething
wappalyzer:分析网站指纹
findsomething:爬取网站中所含网址,个人资料等信息