Whois 可以查询域名是否被注册,以及注册域名的详细信息的数据库,其中可能会存在一些有用的信息,例如域名所有人、域名注册商、邮箱等。
搜索引擎通常会记录域名信息,可以通过 site: domain
的语法来查询。
网络中有相当多的第三方应用提供了子域的查询功能,下面有一些例子,更多的网站可以在 9.1 工具列表 中查找。
在网络中一个自治系统 (Autonomous System, AS) 是一个有权自主地决定在本系统中应采用何种路由协议的小型单位。这个网络单位可以是一个简单的网络也可以是一个由一个或多个普通的网络管理员来控制的网络群体,它是一个单独的可管理的网络单元 (例如一所大学,一个企业或者一个公司个体) 。
一个自治系统有时也被称为是一个路由选择域 (routing domain) 。一个自治系统将会分配一个全局的唯一的16位号码,这个号码被称为自治系统号 (ASN) 。因此可以通过ASN号来查找可能相关的IP,例如:
whois -h whois.radb.net -- '-i origin AS111111' | grep -Eo "([0-9.]+){4}/[0-9]+" | uniq
nmap --script targets-asn --script-args targets-asn.asn=15169
同一个企业/个人注册的多个域名通常具有一定的相关性,例如使用了同一个邮箱来注册、使用了同一个备案、同一个负责人来注册等,可以使用这种方式来查找关联的域名。一种操作步骤如下:
网站中有相当多的信息,网站本身、各项安全策略、设置等都可能暴露出一些信息。
网站本身的交互通常不囿于单个域名,会和其他子域交互。对于这种情况,可以通过爬取网站,收集站点中的其他子域信息。这些信息通常出现在JavaScript文件、资源文件链接等位置。
网站的安全策略如跨域策略、CSP规则等通常也包含相关域名的信息。有时候多个域名为了方便会使用同一个SSL/TLS证书,因此有时可通过证书来获取相关域名信息。
为了保证HTTPS证书不会被误发或伪造,CA会将证书记录到可公开验证、不可篡改且只能附加内容的日志中,任何感兴趣的相关方都可以查看由授权中心签发的所有证书。因此可以通过查询已授权证书的方式来获得相关域名。
DNS域传送 (zone transfer) 指的是冗余备份服务器使用来自主服务器的数据刷新自己的域 (zone) 数据库。这是为了防止主服务器因意外不可用时影响到整个域名的解析。
一般来说,域传送操作应该只允许可信的备用DNS服务器发起,但是如果错误配置了授权,那么任意用户都可以获得整个DNS服务器的域名信息。这种错误授权被称作是DNS域传送漏洞。
Passive DNS被动的从递归域名服务器记录来自不同域名服务器的响应,形成数据库。利用Passive DNS数据库可以知道域名曾绑定过哪些IP,IP曾关联到哪些域名,域名最早/最近出现的时间,为测试提供较大的帮助。Virustotal、passivetotal、CIRCL等网站都提供了Passive DNS数据库的查询。
泛解析是把 *.example.com 的所有A记录都解析到某个IP 地址上,在子域名枚举时需要处理这种情况以防生成大量无效的记录。
CNAME即Canonical name,又称alias,将域名指向另一个域名。其中可能包含其他关联业务的信息。很多网站使用的CDN加速功能利用了该记录。
MX记录即Mail Exchanger,记录了发送电子邮件时域名对应的服务器地址。可以用来寻找SMTP服务器信息。
NS (Name Server) 记录是域名服务器的记录,用来指定域名由哪个DNS服务器来进行解析。
SPF (Sender Policy Framework) 是为了防止垃圾邮件而提出来的一种DNS记录类型,是一种TXT类型的记录,用于登记某个域名拥有的用来外发邮件的所有IP地址。通过SPF记录可以获取相关的IP信息。
可通过多地ping的方式确定目标是否使用了CDN,常用的网站有 http://ping.chinaz.com/
https://asm.ca.com/en/ping.php
等。
使用了CDN的域名的父域或者子域名不一定使用了CDN,可以通过这种方式去查找对应的IP。
CDN可能是在网站上线一段时间后才上线的,可以通过查找域名解析记录的方式去查找真实IP。
通过社会工程学的方式进行邮件沟通,从邮件头中获取IP地址,IP地址可能是网站的真实IP或者是目标的出口IP。
在内网等不易用到以上技巧的环境,或者想监测新域名上线时,可以通过批量尝试的方式,找到有效的域名。
anonymous:anonymous
域传送漏洞
DNS劫持
DNS缓存投毒
DNS欺骗
SPF / DMARC Check
DDoS
DNS 隧道
net use \\192.168.1.1 /user:xxx\username password
showmount
http://docker.addr:2375/version
https://Kubernetes:10250/pods
http://es.addr:9200/_plugin/head/
http://es.addr:9200/_nodes
除了以上列出的可能出现的问题,暴露在公网上的服务若不是最新版,都可能存在已经公开的漏洞
扫描主机尝试使用三次握手与目标主机的某个端口建立正规的连接,若成功建立连接,则端口处于开放状态,反之处于关闭状态。
全扫描实现简单,且以较低的权限就可以进行该操作。但是在流量日志中会有大量明显的记录。
在半扫描中,仅发送SYN数据段,如果应答为RST,则端口处于关闭状态,若应答为SYN/ACK,则端口处于监听状态。不过这种方式需要较高的权限,而且部分防火墙已经开始对这种扫描方式做处理。
FIN扫描是向目标发送一个FIN数据包,如果是开放的端口,会返回RST数据包,关闭的端口则不会返回数据包,可以通过这种方式来判断端口是否打开。
这种方式并不在TCP三次握手的状态中,所以不会被记录,相对SYN扫描要更隐蔽一些。
Jenkins
未授权访问
Gitlab
对应版本CVE
Zabbix
权限设置不当
根据Cookie判断
根据CSS / 图片等资源的hash值判断
根据URL路由判断
根据网页中的关键字判断
根据响应头中的X-Powered-By
拿到一定信息后,通过拿到的目录名称,文件名称及文件扩展名了解网站开发人员的命名思路,确定其命名规则,推测出更多的目录及文件名
恰当地使用搜索引擎(Google/Bing/Yahoo/Baidu等)可以获取目标站点的较多信息。
site:www.hao123.com
返回此目标站点被搜索引擎抓取收录的所有内容
site:www.hao123.com keyword
site:www.hao123.com inurl:admin.php
link:www.hao123.com
related:www.hao123.com
intitle:“500 Internal Server Error” "server at"
inurl:“nph-proxy.cgi” "Start browsing"
除了以上的关键字,还有allintile / allinurl / allintext / inanchor / intext / filetype / info / numberange / cache等。
*
代表某一个单词+
表强制查询-
表排除对应关键字"
强调关键字搜索引擎的快照中也常包含一些关键信息,如程序报错信息可以会泄漏网站具体路径,或者一些快照中会保存一些测试用的测试信息,比如说某个网站在开发了后台功能模块的时候,还没给所有页面增加权限鉴别,此时被搜索引擎抓取了快照,即使后来网站增加了权限鉴别,但搜索引擎的快照中仍会保留这些信息。
另外也有专门的站点快照提供快照功能,如 Wayback Machine 和 Archive.org 等。
在Github中,可能会存在源码泄露、AccessKey泄露、密码、服务器配置泄露等情况,常见的搜索技巧有:
@example.com password/pass/pwd/secret/credentials/token
@example.com username/user/key/login/ftp/
@example.com config/ftp/smtp/pop
@example.com security_credentials/connetionstring
@example.com JDBC/ssh2_auth_password/send_keys
一些网站如天眼查等,可以提供企业关系挖掘、工商信息、商标专利、企业年报等信息查询,可以提供企业的较为细致的信息。
公司主站中会有业务方向、合作单位等信息。
针对人员的信息收集考虑对目标重要人员、组织架构、社会关系的收集和分析。其中重要人员主要指高管、系统管理员、运维、财务、人事、业务人员的个人电脑。
人员信息收集较容易的入口点是网站,网站中可能包含网站的开发、管理维护等人员的信息。从网站联系功能中和代码的注释信息中都可能得到的所有开发及维护人员的姓名和邮件地址及其他联系方式。
在获取这些信息后,可以在Github/Linkedin等社交、招聘网站中进一步查找这些人在互联网上发布的与目标站点有关的一切信息,分析并发现有用的信息。
此外,可以对获取到的邮箱进行密码爆破的操作,获取对应的密码。
基于之前收集到的信息,可以使用Office/CHM/RAR/EXE等文件制作钓鱼邮件发送至目标,进一步收集信息。
其中Office可以使用Office漏洞、宏、OLE对象、PPSX等方式构造利用文件。
Exe可以使用特殊的Unicode控制字符来构建容易混淆的文件名。
如果前期信息收集获取到了运维等人员的邮箱,可以使用运维人员的邮箱发送,如果未收集到相关的信息,可以使用伪造发送源的方式发送邮件。
公司的公众号、企业号、网站,员工的网盘、百度文库等可能会存在一些敏感信息,如VPN/堡垒机账号、TeamViewer账号、网络设备默认口令、服务器默认口令等。