下面一张图比较详细的介绍了渗透测试中的信息收集,看过许多 freebuf 大牛写的文章,今天也给大家分享一些自己的经验(也就一小白,错误的地方各位牛牛多多指正)。
信息收集对于渗透测试可以说是重中之重,正所谓“知己知彼,百战不殆”。所以我们的信息收集也是一样,收集的信息自然也是越多越好,这里有个文章http://www.doc88.com/p-7784047461299.html,这里的PTES渗透测试执行标准(诸葛建伟翻译)中信息收集也是占到了差不多60%的样子,可见渗透测试中信息收集的重要,废话不多说进入正题。
首先是whois信息,whois(读作“Who is”,非缩写)是用来查询域名的IP以及所有者 等信息的传输协议。简单说,whois就是一个用来查询域名 是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、 域名注册商)。至于这个的查询也是说比较简单的,比如站长之家,爱站网等等都提供了whois的查询,下面这就是一张典型的站长之家的 whois 查询
这是我自己的有些地方打码了,我们可以看到注册人信息,邮箱等等这样我们可以进行邮箱反查域名,爆破邮箱,社工,域名劫持等等,总的来说这也就是个网站的身份证那样的作用,至于起到的作用就看你如何发挥了,上面也只是提供一些思路而已。下面是DNS相关的信息收集,在这之前我们需要首先明白dns的解析过程、
就是所谓的“.”,其实任何网址(比如www.baidu.com)的完整形式最后都有一个点,即www.baidu.com.。一般我们在浏览器里输入时会省略后面的点,而这也已经成为了习惯。
域名是分级的,域名解析也是分级的,当本地DNS服务器没有存储我们要查找域名的IP地址时,之后解析的第一步就是向根域名(.)DNS服务器发出域名解析请求。
根域服务器只是具有13个IP地址,但机器数量却不是13台。
因为这些IP地址借助了任播的技术,所以我们可以在全球设立这些IP的镜像站点,你访问到的这个IP并不是唯一的那台主机。
kali linux也是提供了一个 dig 命令来查看相关信息
如果需要查看具体网站的直接dig+指定站点就ok、
根域下来就是顶级域或者叫一级域。
有两种划分方式,一种互联网刚兴起时的按照行业性质划分的com.,net. 等,一种是按国家划分的如 cn.,jp.等。
每个域都会有域名服务器,也叫权威域名服务器。
Baidu.com就是一个顶级域名,而www.baidu.com 却不是顶级域名,他是在 baidu.com 这个域里的一叫做www的主机。
一级域之后还有二级域,三级域,只要我买了一个顶级域,并且我搭建了自己BIND服务器(或者其他软件搭建的)注册到互联网中,那么我就可以随意在前面多加几个域了(当然长度是有限制的)。
比如a.www.baidu.com,在这个网址中, www.baidu.com 变成了一个二级域而不是一台主机,主机名是a
提供域名解析的服务器,上面的记录类型可以是A(address)记录,NS 记录( nameserver),MX( mail ), CNAME等。
又称IP指向,用户可以在此设置子域名并指向到自己的目标主机地址上,从而实现通过域名找到服务器。说明:· 指向的目标主机地址类型只能使用 IP地址;
1) 泛域名解析即将该域名所有未指定的子域名都指向一个空间。在“主机名”中填入*,“类型”为 A ,“ IP地址/ 主机名”中填入 web 服务器的 IP地址,点击“新增”按钮即可。
2)负载均衡的实现:负载均衡(Server Load Balancing , SLB) 是指在一系列资源上面动态地分布网络负载。负载均衡可以减少网络拥塞,提高整体网络性能,提高自愈性,并确保企业关键性应用的可用性。当相同子域名有多个目标地址时,表示轮循,可以达到负载均衡的目的,但需要虚拟主机服务商支持。
通常称别名指向。您可以为一个主机设置别名。比如设置test.mydomain.com,用来指向一个主机 www.rddns.com 那么以后就可以用test.mydomain.com来代替访问 www.rddns.com 了。
CNAME的目标主机地址只能使用主机名,不能使用IP地址; · 主机名前不能有任何其他前缀,如:http://等是不被允许的;
A记录优先于CNAME记录。即如果一个主机地址同时存在 A 记录和CNAME记录,则CNAME 记录不生效
邮件交换记录。用于将以该域名为结尾的电子邮件指向对应的邮件服务器以进行处理。如:用户所用的邮件是以域名mydomain.com为结尾的,则需要在管理界面中添加该域名的 MX 记录来处理所有有@mydomain.com结尾的邮件。
MX记录可以使用主机名或IP地址;
MX记录可以通过设置优先级实现主辅服务器设置,“优先级”中的数字越小表示级别越高。也可以使用相同优先级达到负载均衡的目的;
如果在“主机名”中填入子域名则此MX记录只对该子域名生效。
当域名的MX记录有多个目标地址且优先级相同时,表示轮循,可以达到负载均衡的目的
解析服务器记录。用来表明由哪台服务器对该域名进行解析。这里的NS记录只对子域名生效。
例如用户希望由12.34.56.78这台服务器解析news.mydomain.com ,则需要设置 news.mydomain.com的NS记录。
说明:·“优先级”中的数字越小表示级别越高; ·“IP 地址/主机名”中既可以填写IP 地址,也可以填写像 ns.mydomain.com 这样的主机地址,但必须保证该主机地址有效。
将news.mydomain.com的NS 记录指向到 ns.mydomain.com,在设置NS 记录的同时还需要设置ns.mydomain.com 的指向,
否则NS记录将无法正常解析;·NS 记录优先于 A记录。即,如果一个主机地址同时存在NS 记录和A 记录,则 A记录不生效。这里的 NS记录只对子域名生效。
1) 负载均衡服务器负载均衡(Server Load Balancing ,SLB) 是指在一系列资源上面智能地分布网络负载。负载均衡可以减少网络拥塞,提高整体网络性能,提高自愈性,并确保企业关键性应用的可用性。当相同子域有多个目标地址,或域名的MX 记录有多个目标地址且优先级相同时,表示轮循,可以达到负载均衡的目的,但需要虚拟主机和邮箱服务商支持。
2) TTL值TTL值全称是“生存时间( Time To Live)” ,简单的说它表示DNS记录在 DNS服务器上缓存时间
使用 Dig 来查看迭代查询的过程。
当然你也有可能遇到域传送漏洞
如何高效的进行子域名收集
这里也有几个在线的网站
shodan https://www.shodan.io/
shadan(傻蛋 联网设备搜索系统) https://www.oshadan.com/
ZoomEy https://www.zoomeye.org/
github上也有不少自动化的工具
例如Fierce,当然也有著名的 Layer子域名挖掘机
在几千个域名中使用nmap找到一个薄弱点
绕过CDN查看网站真实IP的一些办法 (参考lovesec公众号的)
1、验证是否存在CDN最简单的办法
通过在线的多地ping,通过每个地区ping的结果得到IP
看这些IP是否一致,如果都是一样的,极大可能不存在cdn,但不绝对
如果这些IP大多都不太一样或者规律性很强,可以尝试查询这些IP的归属地,判断是否存在CDN
2、验证IP和域名是否真实对应最简单的办法
修改本地hosts文件,强行将域名与IP解析对应
然后访问域名查看页面是否变化
1、ping
假设如下存在cdn
➜ ~ ping www.sysorem.xyz
PING 539b1c6d114eec86.360safedns.com (221.204.14.177): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
可以尝试➜ ~ ping sysorem.xyz
很多厂商可能让www使用cdn,空域名不使用CDN缓存。
所以直接ping sysorem.xyz可能就能得到真实IP
2、分站域名
很多网站主站的访问量会比较大。所以往往主站都是挂了CDN的
但是分站就不一定了,毕竟CDN要钱,而且也不便宜
所以可能一些分站就没有挂CDN,所以有时候可以尝试通过查看分站IP
可能是同个IP或者同个站都是没准的。Zoomeye.org, shodan.io ,fofa.so,微步在线,是我们不错的选择,使用api效果更佳
3、国外访问
国内的CDN往往只会针对国内用户访问加速
所以国外就不一定了。因此通过国外代理访问就能查看真实IP了
或者通过国外的DNS解析,可能就能得到真实的IP
当然还有邮件、ddos、社工等等
这里当然非我们的nmap莫属了,号称四十分钟扫描全网啊
这个主要是主机系统的识别,网站程序的识别,cms等等
bt5下的whatweb、nmap、windows下的御剑等等都是不错的工具,网站的roboxt.txt文件有时也会有不一样的效果
还有破晓团队的在线识别http://whoweb.secbug.org/
敏感信息泄露
phpinfo文件泄露
.ht、.svn、.git、网站源码文件信息泄露等等
基本也就这些了,希望对大家有用,O(∩_∩)O哈哈哈~
(参考文章https://xianzhi.aliyun.com/forum/read/451.html )
*本文作者:冷瘠薄,转载请注明来组FreeBuf
这些评论亮了