知识总结:
信息收集
网络资产 :域名 ,IP ,端口 ,承载的系统平台 ,企业的app ,公众号 ,小程序 。内网的网络设备 安全设备
搜集
公司地址、公司新闻动态、公司组织架构等相关信息
重要人员信息、包括联系电话、邮箱地址等
敏感目录、弱口令、操作系统类型、数据库类型、漏洞等关键数据
机密文档/网络拓扑等敏感信息
URL(Uniform Resource Locator)是统一资源定位符的缩写,简称网址。它用于指定网络上资源的位置和访问方式,包含了资源的协议、主机名、路径等信息,可以唯一标识互联网上的资源
DNS解析过程:
递归查询
本机向本地域名服务器发出一次查询请求,就静待最终的结果。如果本地域名服务器无法解析,自己会以DNS客户机的身份向其它域名服务器查询,直到得到最终的IP地址告诉本机。
迭代查询
本地域名服务器向根域名服务器查询,根域名服务器告诉它下一步到哪里去查询,然后它再去查,每次它都是以客户机的身份去各个服务器查询。
缓存查询
为了提高DNS的查询效率,并减轻根域名服务器的负荷和减少因特网上的DNS查询报文数量,在域名服务器中广泛地使用了高速缓存。高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录。
由于域名到IP地址的映射关系并不是永久不变,为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器并删除超过合理时间的项
绕过CDN查找主机真实IP的方法。
查询历史DNS记录
查看 IP 与 域名绑定的历史记录,可能会存在使用 CDN 前的记录,相关查询网站有:
https://dnsdb.io/zh-cn/ ###DNS查询
https://x.threatbook.cn/ ###微步在线
http://toolbar.netcraft.com/site_report?url= ###在线域名信息查询
http://viewdns.info/ ###DNS、IP等查询
https://tools.ipip.net/cdn.php ###CDN查询IP
子域名查询
由于目标服务可能在主站上做好了相应的CDN,但是由于种种原因例如部署费用过高,或者对二级域名不上心等,所以导致二级域名没有部署到CDN,这时我们可以从这个方面入手进行查询。利用子域名搜集工具等搜集到足够的子域名后,便可以对通过子域名进行真实IP的搜集。
1)微步在线(https://x.threatbook.cn/)
微步在线功能强大,只需输入要查找的域名(如baidu.com),点击子域名选项就可以查找它的子域名了,但是免费用户查询次数有限。如图:
2)Dnsdb查询法。(https://dnsdb.io/zh-cn/)
只需输入baidu.com type:A就能收集百度的子域名和ip了。如图:
3)各种子域名扫描器
网络空间引擎搜索法
常见的有以前的钟馗之眼,shodan,fofa搜索。以fofa为例,只需输入:title:“网站的title关键字”或者body:“网站的body特征”就可以找出fofa收录的有这些关键字的ip域名,很多时候能获取网站的真实ip。
国外主机解析域名
大部分 CDN 厂商因为各种原因只做了国内的线路,而针对国外的线路可能几乎没有,此时我们使用国外的DNS查询,很可能获取到真实IP。
国外多PING测试工具:
https://asm.ca.com/zh_cn/ping.php
http://host-tracker.com/
http://www.webpagetest.org/
https://dnscheck.pingdom.com/
网站邮件头信息
比如说,邮箱注册,邮箱找回密码、RSS邮件订阅等功能场景,通过网站给自己发送邮件,从而让目标主动暴露他们的真实的IP,查看邮件头信息,获取到网站的真实IP。
通过 SSL 证书
证书颁发机构 (CA) 必须将他们发布的每个 SSL/TLS 证书发布到公共日志中,SSL/TLS 证书通常包含域名、子域名和电子邮件地址。因此可以利用 SSL/TLS 证书来发现目标站点的真实 IP 地址。
CDN 运营商在给服务器提供保护的同时,也会与其服务器进行加密通信(ssl),这时当服务器的 443 端口接入域名时也会在 443 端口暴露其证书,我们通过证书比对便可发现网站的真实 IP 地址。
SSL证书搜索引擎:
https://censys.io/ipv4?q=github.com
网站漏洞查找
1)目标敏感文件泄露,例如:phpinfo之类的探针、GitHub信息泄露等。
2)XSS盲打,命令执行反弹shell,SSRF等。
3)无论是用社工还是其他手段,拿到了目标网站管理员在CDN的账号,从而在从CDN的配置中找到网站的真实IP。
扫描全网
通过Zmap、masscan等工具对整个互联网发起扫描,针对扫描结果进行关键字查找,获取网站真实IP。
子域名收集的方式:
被动子域名收集的方式:
信息泄露
抓包分析获取,如一些静态资源的请求、一些APP或者小程序接口、邮件服务器等等
搜索引擎
常用的搜索引擎有Google和百度
网络空间测绘引擎
常见的空间测绘引擎:
Shodan
Zoomeye
Fofa
证书透明
证书
当通过HTTPS访问web时,网站向浏览器提供数字证书,此证书用于识别网站的主机名,由证书颁发机构(CA,Certificate Authority)颁发。
证书透明
证书透明(CT)是证书颁发机构(CA)必须将其发布的每个SSL/TLS证书发布到公共日志的项目。SSL/TLS证书通常包含域名,子域名和电子邮件地址等信息。
第三方DNS服务
如VirusTotal运行DNS复制功能,通过存储用户访问URL时执行的DNS解析来构建数据库。
AS 号码查询
查找ASN
基于IP查找:[asn.cymru.com/cgi-bin/who…]
基于域名查找:[bgp.he.net/]
SAN 收集
SAN(Subject Alternative Name) 是 SSL 标准 x509 中定义的一个扩展。使用了 SAN 字段的 SSL 证书,可以扩展此证书支持的域名,使得一个证书可以支持多个不同域名的解析。
允许在安全证书中使用 subjectAltName 字段将多种值与证书关联,这些值被称为主题备用名称。名称可包括:IP地址、DNS名称等。
主动收集子域名的方式:
字典枚举
使用子域名爆破工具如Sublist3r、Amass、Subfinder、Assetfinder
等,枚举目标组织的子域名。这些工具使用字典或其他方法生成可能的子域名列表,然后对列表中的每个子域名进行DNS
解析来确定是否存在。
DNS缓存
DNS历史记录查询是一种用于收集子域名信息的方法,通过查询过去DNS解析记录的服务,可以查找目标组织过去使用过的子域名,有时还可以找到已经被删除的但仍然解析到目标组织的子域名。
插件安装
Nmap全端口扫描(用搭建的pikachu靶场)
半连接扫描(SYN扫描)
原理及特点:
扫描主机在完成TCP的前两次握手后便断开连接,若服务器发来ACK包,则说明该端口开启,若为RST包(Reset)则反之;
优点:因为没有完全建立起TCP连接,所以有一定的隐蔽性,很少会被服务器的系统日志记录;
缺点:构造SYN包需要较高的操作系统用户权限。
跳过主机存活检测扫描使用常见
跳过主机存活检测扫描通常是指在网络渗透测试或安全审计中,为了提高效率或者避免触发防御机制,直接假设目标主机在线并开始执行进一步的漏洞探测或信息收集操作,而不过于关注是否真的能够成功连接到该主机。这种做法可能会加快扫描速度,但也增加了潜在误报的风险,因为未确认目标的实际可达性。如果不小心跳过了实际不可达的主机,后续依赖网络通信的操作可能会失败。
扫描步骤:
靶场的地址为本地地址 ip 127.0.0.1
打开nmap输入nmap -p 0-65535 127.0.0.1命令进行全端口扫描,可以看到端口打开情况和端口进行的服务
dirmap目录探测工具实践(使用搭建的pikachu靶场)
dirmap每次扫描条数可能不一样的原因
-
网络环境变化:网络环境是动态的,目标主机的网络状态(例如,开放的端口、运行的服务)可能会随时间而变化。此外,网络本身的稳定性、带宽利用率、网络拥堵等因素也会影响扫描结果。
-
目标主机状态变化:如果目标主机在不同的扫描时刻有不同的响应状态(如开机、关机、重启等),或者有防火墙、IDS(入侵检测系统)等安全设备的干预,这也会导致每次扫描的结果不同。
-
扫描配置和参数:使用 Dirmap 进行扫描时,不同的扫描参数和配置选项(如扫描深度、并发数、超时设置等)会对结果产生影响。如果每次扫描使用的参数不同,结果自然也会有所不同。
-
扫描工具的内部机制:某些扫描工具在执行扫描任务时可能采用随机或概率性的策略来选择扫描的端口或服务,这种设计也可能导致每次扫描结果的不一致。
步骤
打开靶场后在dirmap工具文件夹下执行命令 python .\dirmap.py -i http://127.0.0.1/ -lcf 对网站进行目录探测
结果输出值output文件夹下
高级功能
-
多目标扫描:
- Dirmap 允许用户一次性输入多个目标(IP 地址、IP 地址范围、子网等),并能并发地扫描这些目标。
-
端口扫描:
- 自动检测开放端口,并尝试识别运行在这些端口上的服务。
-
目录枚举:
- 通过使用预定义的路径列表或自定义路径列表来检查目标上可能存在的敏感文件或目录。
-
漏洞扫描:
- 集成了基本的漏洞扫描功能,可以检测一些已知的易受攻击点。
-
结果过滤和排序:
- 用户可以根据需要对扫描结果进行过滤和排序,例如按服务类型、响应时间或安全级别。
-
自动化脚本:
- 支持使用脚本自动化扫描任务,以及扫描过程中的决策支持,如自动扩展扫描范围或调整扫描强度。
-
结果输出和报告:
- 提供多种格式的报告输出,包括文本、CSV、XML 等,便于进行进一步的分析和整合。
-
集成API:
- 提供API支持,可以将Dirmap集成到其他安全框架或自动化工具链中。
-
用户界面和可用性:
- 尽管 Dirmap 可以通过命令行界面操作,一些版本或衍生工具可能提供图形用户界面(GUI),使得操作更为直观。
-
定制和扩展:
- 用户可以根据需要定制扫描策略和技术,扩展工具的功能,比如添加特定的测试或检查模块。
Fscan实践(使用搭建的pikachu靶场)
步骤
在fscan文件夹下执行fscan.exe -h 127.0.0.1 扫描靶场的所有TCP端口,并列出开放的端口和运行的服务,扫描出了本机用户名 网卡的IP地址和mac地址