三分钟学会渗透测试——信息收集
Posted sganyua
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三分钟学会渗透测试——信息收集相关的知识,希望对你有一定的参考价值。
什么是信息收集
信息收集主要是收集服务器的配置信息和网站的敏感信息,主要包括域名信息、子域名信息、目标网站信息、目标网站真实IP、目录文件、开放端口和服务、中间件信息等等。在进行渗透测试之前,第一步也是非常关键的一步就是对目标进行信息收集,我们尽可能收集关于目标的信息,这将会大大提高发现漏洞的概率。
信息收集大致分类
第一类:主动信息收集。通过直接访问、扫描网站
第二类:被动信息收集。利用第三方的服务对目标进行访问了解,比例:谷歌搜索、Shodan搜索等等
Whois
在进行网站注册的时候,需要申请域名,申请之后这些注册的信息将会保存到相关的域名数据库服务器中,并且这些域名信息经常是公开的,任何人都可以查询。
Whois就是一个用于查询域名是否已经被注册,如果以及注册,可以查询相关信息的数据库(注册人姓名、注册人的E-mail、电话号、注册机构、通信地址、邮编、注册有效时间、失效时间查询等等),然后利用谷歌的语法搜索,搜索出关于域名的很多信息。
1)利用网站
网站查询:https://www.yougetsignal.com
2)利用kali下自带的whois
kali下的whois+域名
子域名探测
子域名也称二级域名,当进行渗透测试的时候,一些目标网站的规模比较大,主站会进行重点防御,安全性强,下手难度高。通过子域名探测,可以对目标网站下发现更多的域或子域,大大提高漏洞发现的概率,再通过这些子域,接近真正的目标。除了不太现实的手动探测外,一般使用工具进行挖掘,如Layer,subDomainsBrute,K8PortScan
一.工具
1)Layer子域名挖掘工具
直接输入域名,选择要扫描的端口,设置线程即可,而且图形化界面使用起来简单快捷
2)subDomainsBrute lijiejie
基本命令python subDomainsBrute.py baidu.com
扫描完成之后,在M:\\子域名检测lijiejie\\subDomainsBrute-master\\tmp下存放着扫描到的子域名
3)scanport
二.语法搜索
利用谷歌的语法搜索子域名
谷歌常用语法及其说明
关键字 | 说明 | 举例 |
site | 限制搜索范围的域名 | site:edu.cn |
inurl | URL中存在关键字的网页 | Inurl:ganyu |
intext | 搜索网页<body>部分的关键字 | Intext:ganyu |
filetype | 搜索文件的特定后缀或者扩展名 | filetype:txt |
intitle | 搜索网页标题的关键字 | intitle:ganyu |
link | 返回所有与baidu.com做链接的URL | link:baidu.com |
info | 查找指定站点的一些基本信息 | Info:baidu |
CDN绕过
什么是CDN?
CDN全称是Content Delivery Network(内容分发网络),用处是将源站内容分发存储至各个节点,当用户需求源站资源时,只需取得距用户最近的一个节点,获取所需内容,大大提高了用户访问时的响应速度,解决因分布距离、带宽大小、服务器性能带来的访问延迟问题,其实就是将内容缓存在终端用户附近。
举个例子,当用户点击网站的一个URL时,DNS会根据点击的这个URL去寻求IP地址解析,如果网站开启了CDN服务,会由CDN专用DNS服务器去处理这个IP,然后将CDN的全局负载均衡设备IP地址返回用户。用户根据给的IP,访问全局负载均衡,负载均衡按照用户的URL,选择一台举例用户最近缓存服务器,将这台服务器的IP告诉用户,用户向缓存服务器发起请求,最后将资源传输给用户终端。
所以如果信息收集目标开启了CDN服务,虽然可以直接ping域名,但是得到的并非真正的IP,只是距离我们最近一台目标节点的CND服务器IP,所以使得我们无法或者真实的IP地址。
一.判断是否开启了CDN绕过
1)在不同的地方ping同一个域名【有时候ping出的ip不唯一但是固定的几个,可能未使用CDN而使用的是双线。】
2)利用在线网站进行多地区ping http://ping.chinaz.com/
3)利用在线nslookup查询,如果查询多次发现返还的IP不同,说明开启
二.绕过CDN,寻求真实IP
1)利用国外在线网站ping(利用国内CDN往往只是对国内用户进行访问加速的原理)
2)利用御剑CDN逆向IP查询(简洁高效)
3)利用一台国外主机进行ping
端口探测
在渗透测试中,对端口信息的收集极为重要,服务器开了几个端口,端口后面的服务是什么,这些都是十分关键的信息。一个IP地址标识了一台主机,而一台主机可以提供多种服务,如web服务、ftp服务、SMTP 服务等。但是如果说IP地址与主机提供的服务是一对多的关系的话呢,光靠IP地址是不行的,这时就需要端口号进行区分。就好比一栋房子,我们得知道有哪些窗户是打开或是闭合的,从哪里入手,因此端口探测就显得尤为关键。
除了手动探测外,最常见的就是利用Nmap扫描、Zmap或者御剑进行扫描。
Namp的基本使用
主要作用
目标探测:探测目标主机
端口探测:探测目标开放端口
版本探测:探测目标主机的网络服务,名称及版本号等等
脚本检测:漏洞扫描、检测病毒,入侵扫描等等
可以支持编写探测脚本或运行
同时可以进行c段嗅探,每个IP有ABCD四个段,举个例子,192.168.0.1,A段就是192,B段是168,C段是0,D段是1,而C段嗅探的意思就是专注于C段中0,对D段的1-255进行嗅探,然后获取敏感信息。
基本命令
1.【扫描单个ip地址】nmap 127.0.0.1
2.【扫描多个ip】nmap 127.0.0.1 127.0.0.1
3.【扫描指定的ip范围】nmap 127.0.0.1-2
4.【扫描整个d段】nmap 127.0.0.1/24
5.【扫描文件内的所有目标地址】nmap -iL M:\\1.txt
6.【扫描除了127.0.0.1以外的地址】nmap 127.0.0.1/24 -exclude 127.0.0.1
7.【扫描除了M:\\1.txt以外的地址】nmap 127.0.0.1/24 -exclude M:\\1.txt
8.【扫描目标的20、21、22端口】nmap 127.0.0.1 -p 21,22,23
9.【对目标地址进行路由跟踪】nmap --traceroute 127.0.0.1
10.【扫描目标地址所在c段的在线状况】nmap -sP 127.0.0.1
11.【目标地址的操作系统的指纹识别】nmap -O 127.0.0.1
12.【服务器版本探测】nmap -sV 127.0.0.1
13.【探测防火墙状态】nmap -sF -T4 127.0.0.1
一些常见的端口号:
21端口 | FTP 文件传输服务 |
22端口 | SSH 远程连接服务 |
23端口 | TELNET 终端仿真服务 |
25端口 | SMTP 简单邮件传输服务 |
53端口 | DNS 域名解析服务 |
80端口 | HTTP 超文本传输服务 |
110端口 | POP3 |
443端口 | HTTPS 加密的超文本传输服务 |
1080端口 | SOCKS代理协议服务器 |
1521端口 | Oracle数据库 |
3306端口 | mysql数据库端口 |
5432端口 | PostgreSQL数据库端口 |
6379端口 | Redis数据库端口 |
8080端口 | TCP服务端默认端口 |
8888端口 | nginx服务器的端口 |
9200端口 | Elasticsearch服务器端口 |
27017端口 | mongoDB数据库默认端口 |
22122端口 | fastdfs服务器默认端口 |
目录扫描
扫描目标站点的目录,寻找敏感信息【如目录名、文件(phpinfo.php、readme.php)、后台(admin.php)、robots.txt(告诉网络搜索引擎漫游器,此网站中的哪些内容是应该或者不应该被搜索引擎的漫游器获取的)、备份文件等(.bak .zip www.rar)】。
利用工具
1)御剑
输入域名,加入字典,选择线程和超时时间,点击开始。同时御剑还可以用于SQL注入检测,各种加密解密,cdn逆向ip查询,查询目标主机的信息
2)Dirsearch
基本命令:python dirsearch.py -e * -u www.baidu.com
指纹识别
通常来说指纹识别就是人的手指末端正面皮肤上凹凸不平的纹路,纹路规律的排列形成特有的独一无二的的指纹。这里讲的指纹识别其实就是网站cms指纹识别,计算机操作系统以及web容器的指纹识别。
常见指纹工具:御剑web指纹识别、轻量级web指纹识别、whatweb等
常见网站信息识别网站:
以上是关于三分钟学会渗透测试——信息收集的主要内容,如果未能解决你的问题,请参考以下文章