第二天内容介绍
DNS解析详细步骤
1. 客户端查询
当用户在浏览器中输入一个URL时,客户端(通常是用户的电脑或移动设备上的应用程序)会向其配置的DNS服务器发起请求,以获取该URL对应的IP地址。
2. DNS服务器查找
DNS服务器首先会在其缓存中查找是否有记录匹配所请求的域名。如果找到了,它会立即返回结果给客户端,这称为“缓存命中”。如果没有找到,则DNS服务器会代表客户端进行递归查询。这意味着DNS服务器会负责完成整个查询过程,并将最终结果返回给客户端。
3. 根DNS服务器
如果DNS服务器没有缓存记录,它会从根DNS服务器开始查询。根DNS服务器包含了顶级域(TLD)服务器的信息。根DNS服务器会返回一个或多个TLD服务器的IP地址给DNS服务器。
4. 顶级域(TLD)服务器
随后DNS服务器会向其中一个TLD服务器发送请求。TLD服务器会返回权威DNS服务器的信息,即负责管理请求域名的具体DNS服务器的IP地址。
5. 权威DNS服务器
DNS服务器会向权威DNS服务器发送请求。随后,权威DNS服务器会返回请求域名的IP地址。
6. 返回结果
一旦DNS服务器获得了IP地址,它会把这个信息返回给最初发起请求的客户端。
7. 缓存结果
DNS服务器会将查询的结果缓存一段时间,这样如果其他客户端请求同一个域名,它可以更快地提供答案而无需重复查询过程。
绕过CDN查找主机真实IP的方法
参考文章:“怎么绕过CDN查找真实IP_绕过cdn找到真实ip-CSDN博客”、
“【CDN绕过篇】部署CDN的网站如何找真实IP_viewdns.info-CSDN博客”
方法一、DNS历史解析记录
首先,使用全球ping查看该域名是否存在CDN:
然后,可以用微步在线X情报社区-威胁情报查询_威胁分析平台_开放社区 (threatbook.com)
来查看部署CDN前的解析记录。
方法二:网站根域或子域查找真实IP
大多数CDN服务基于流量计费,因此一些网站管理员仅对关键业务启用CDN服务。同时,有时人们会遗漏对“根域”配置CDN。鉴于此,我们可以通过收集尽可能多的子域名来尝试获取真实IP地址。这里可以使用在线查询工具子域名查询 - 站长工具 (chinaz.com)。
也可以使用在线域名批量解析ip地址查询- 在线工具 (bugscaner.com)
方法三、国外dns获取真实IP
例如,可以进入WHOIS Search, Domain Name, Website, and IP Tools - Who.is:
方法四、扫描全网
可以利用Zmap工具“https://github.com/zmap/zmap”对整个互联网发起扫描,针对扫描结果进行关键字查找,获取网站真实IP
方法五、利用SSL证书寻找真实IP
证书颁发机构(CA)必须将他们发布的每个SSL/TLS证书发布到公共日志中,SSL/TLS证书通常包含域名、子域名和电子邮件地址。因此SSL/TLS证书成为了攻击者的切入点。
可以用“Hosts Search - Censys”获取网站SSL证书的HASH。再结合Censys利用Censys搜索网站的SSL证书及HASH,在https://crt.sh上查找目标网站SSL证书的HASH。最后用Censys搜索该HASH即可得到真实IP地址:
方法六、网站邮件头信息
例如,通过邮箱注册,邮箱找回密码、RSS邮件订阅等功能场景,通过网站给自己发送邮件,从而让目标主动暴露他们的真实的IP,查看邮件头信息,获取到网站的真实IP。
方法七、配置不当导致绕过
在配置CDN的时候,需要指定域名、端口等信息,有时候小小的配置细节就容易导致CDN防护被绕过。例如:为了方便用户访问,我们常常将www.test.com 和 test.com 解析到同一个站点,而CDN只配置了www.test.com,通过访问test.com,就可以绕过 CDN 了。
方法八、获取banner
获取目标站点的banner,在全网搜索引擎搜索,也可以使用AQUATONE,在Shodan上搜索相同指纹站点。可以通过互联网络信息中心的IP数据,筛选目标地区IP,遍历Web服务的banner用来对比CDN站的banner,可以确定源IP。
子域名信息收集常用手段
方法一、利用 nslookup 工具进行域名查询
在cmd中输入“nslookup”,再输入要解析的网址,即可进行域名查询:
方法二、使用subDomainsBrute 爆破
首先,在kali中输入“git clone https://github.com/lijiejie/subDomainsBrute.git”,如下图所示:
随后,输入“cd subDomainsBrute”,进入“subDomainsBrute”,并输入“pip install dnspython gevent”,下载“dnspython gevent”:
安装完成后,即可用“python subDomainBrute.py 网址”进行子域名信息收集,这里是以“www.baidu.com”为例,如下图所示:
方法三、WHOIS查询
WHOIS是一个标准的互联网协议,可用于收集网络注册信息、注册域名﹑IP地址等信息。简单来说,WHOIS就是一个用于查询域名是否已被注册及注册域名详细信息的数据库(如域名所有人、域名注册商),下面用“域名信息查询 - 腾讯云”:
方法四、域名信息反查
方法五、SSL
证书查询
可以用“crt.sh | Certificate Search”来查询SSL证书查询:
Nmap全端口扫描
首先,通过“ipconfig”了解本机的IP地址:
然后,在kali中输入指令“nmap -p- XXX”进行全端口扫描:
SYN半开扫描的原理
SYN半开扫描(也称为SYN扫描或TCP SYN扫描)是一种常见的网络扫描技术,用于确定远程主机上特定端口的状态(开放、关闭或过滤)。这种扫描方法利用了TCP协议的三次握手机制来避免建立完整的连接,从而减少了扫描的可见性和系统负载。下面是SYN半开扫描的原理:
1、TCP三次握手
在正常的TCP连接建立过程中,客户端和服务器之间需要进行三次握手:
①客户端发送SYN:客户端向服务器发送一个SYN(同步)数据包,表示希望建立连接。
②服务器发送SYN+ACK:如果服务器接受连接请求,则回复一个SYN+ACK(同步+确认)数据包。
③客户端发送ACK:客户端再发送一个ACK(确认)数据包,完成三次握手,连接建立。
2、SYN半开扫描的步骤
①客户端发送SYN:扫描程序(客户端)向目标主机的特定端口发送一个SYN数据包,表示希望建立连接。
②等待响应:扫描程序等待目标主机的响应。
如果端口开放,目标主机将发送一个SYN+ACK数据包。
如果端口关闭,目标主机将发送一个RST(复位)数据包。
如果端口被防火墙过滤,则可能不会收到任何响应。
③处理响应:
端口开放:如果收到SYN+ACK数据包,表明端口开放。
端口关闭:如果收到RST数据包,表明端口关闭。
端口过滤:如果没有收到任何响应,表明端口可能被过滤或防火墙阻止了响应。
清理连接:为了避免建立完整的连接,扫描程序发送一个RST数据包,终止连接尝试。
3、原理总结
隐蔽性:SYN半开扫描不需要完成三次握手,因此减少了扫描的可见性。
效率:相比于完整的连接建立,SYN半开扫描更快,因为只需要发送和接收少量的数据包。
绕过防火墙:某些防火墙可能允许SYN数据包通过,但阻止ACK数据包。SYN半开扫描可以绕过这类防火墙。
跳过主机存活检测扫描
跳过主机存活检测扫描(也称为无存活检测扫描或-OFF扫描)是指在网络扫描中跳过初始的主机存活检测阶段,直接进行端口扫描的一种技术。这种扫描方式主要用于减少扫描的可见性,尤其是在对目标主机进行隐蔽扫描时更为有用。
1、主机存活检测的作用
在常规的网络扫描中,扫描工具(如nmap
)通常会先进行主机存活检测,以确定目标主机是否在线。存活检测可以通过多种方式进行,例如发送ICMP Echo Request(Ping)数据包、TCP SYN数据包或其他类型的探测数据包。这一步骤有助于减少扫描的时间和资源消耗,避免不必要的端口扫描。
2、跳过主机存活检测扫描的原理
在跳过主机存活检测扫描中,扫描工具直接跳过存活检测阶段,直接进行端口扫描。这种方式可能会导致扫描工具扫描一些实际上并不在线的主机,从而增加扫描的时间和资源消耗。但这种方式也有助于减少扫描的可见性,因为存活检测通常会发送一些容易被检测到的数据包。
3、使用nmap
进行跳过主机存活检测扫描
在nmap
中,可以通过-sn
选项来执行存活检测,而跳过存活检测则可以使用-Pn
选项。
dirmap目录探测工具实践
在github中下载dirmap,然后输入指令“python dirmap.py -i http://127.0.0.1:8888/ -lcf”即可对端口进行扫描,如图:
Fscan实践
同理,下载完成后,输入“.\fscan -h 127.0.0.1”进行扫描,如图:
插件安装成功截图展示
Wappalyzer插件
FindSomething插件
信息泄露分类及利用方式总结
信息泄露是指敏感或私密信息意外或非授权地暴露给未经授权的人或实体。信息泄露可能涉及各种类型的数据,从个人身份信息到企业内部文档。下面是信息泄露的一些常见分类及其可能的利用方式的总结:
1. 敏感文档泄露
类型:内部文档、设计图、源代码、财务报告等。
利用方式:
①竞争对手分析:竞争对手可能利用泄露的文档来获取竞争优势。
②黑客攻击:黑客可能会利用泄露的设计图或源代码中的漏洞来进行攻击。
③信息战:政府机构或政治团体可能利用泄露的信息来进行宣传或破坏对手的信誉。
2. 用户凭证泄露
类型:用户名、密码、API密钥等。
利用方式:
①密码重用攻击:攻击者可能使用泄露的凭证尝试登录其他网站或服务。
②社会工程攻击:利用泄露的信息进行诈骗或获取更多敏感信息。
③身份盗窃:利用泄露的凭证进行非法活动或冒充他人。
3. 个人身份信息泄露
类型:姓名、地址、电话号码、电子邮件地址、社会保障号等。
利用方式:
①骚扰或欺诈:攻击者可能利用这些信息进行骚扰电话或电子邮件欺诈。
②身份盗窃:盗取个人信息以申请信用卡、贷款等。
③钓鱼攻击:通过伪造的网站或邮件诱骗用户提供更多的个人信息。
4. 机密通信泄露
类型:电子邮件、聊天记录、会议记录等。
利用方式:
①商业间谍活动:竞争对手可能利用泄露的通信信息来获取商业秘密。
②泄露敏感信息:敏感信息的泄露可能导致信任危机或法律问题。
③社交媒体传播:恶意人士可能将泄露的通信发布到社交媒体上以损害个人或组织的声誉。
5. 数据库泄露
类型:数据库备份文件、SQL查询结果等。
利用方式:
①数据挖掘:攻击者可能分析泄露的数据以获取有价值的商业情报。
②数据篡改:修改泄露的数据以造成混乱或损失。
③数据恢复勒索:威胁要公开数据除非支付赎金。
6. Web服务器配置泄露
类型:服务器配置文件、错误页面、开发注释等。
利用方式:
①漏洞利用:利用配置错误或默认设置中的漏洞进行攻击。
②社工攻击:利用服务器配置中的信息进行社会工程学攻击。
③服务器接管:利用泄露的配置信息接管服务器。
7. 证书和密钥泄露
类型:SSL/TLS证书、API密钥、加密密钥等。
利用方式:
①中间人攻击:利用泄露的证书进行中间人攻击。
②API滥用:利用泄露的API密钥进行未经授权的操作。
③加密数据解密:利用泄露的加密密钥解密敏感数据。
8. 系统日志泄露
类型:系统日志、应用程序日志等。
利用方式:
①网络侦察:利用日志中的信息进行网络侦察。
②攻击痕迹清除:删除日志以掩盖攻击痕迹。
③日志分析:分析日志以发现潜在的安全漏洞。
9. 物理文件泄露
类型:纸质文档、存储介质等。
利用方式:
①文档分析:利用泄露的纸质文档获取敏感信息。
②数据恢复:从废弃的存储介质中恢复数据。
③物理安全威胁:利用物理文件中的信息进行物理入侵。