信息收集(1):概述
前期信息收集
信息收集是指通过各种方式获取所需要的信息
信息包括目标站点ip、中间件、脚本语言、端口、邮箱等,包括资产收集但不限于资产收集
信息收集的意义
- 渗透测试成功的保障
- 更多的暴露面
- 更大的可能性
信息收集的分类
-
主动信息收集
通过直接对网站进行操作、扫描等,这种是有网络流量经过目标服务器的信息收集方式
-
被动信息收集
基于公开的渠道,如搜索引擎,在不与目标交互的情况下获取信息,并尽量避免留下痕迹
需要收集的信息
- 服务器信息(端口、服务、真实ip)
- 网站信息(网站架构[操作系统、中间件、数据库、编程语言]、指纹信息、WAF、敏感目录、敏感文件、源码泄露、旁站、C段)
- 域名信息(whois、 备案信息、子域名)
- 管理员信息(姓名、职务、生日、联系电话、邮件地址)
- 以上均是包括但不限于
域名信息收集
whois查询
通过whois查询,我们可以收集到域名的ip及其所有者的信息
可以通过域名注册商、站长工具、命令行查询等等方式查询到whois
域名备案信息
在中国大陆解析网站都需要备案,备案具有网站的很多信息,同样的我们也可以通过站长工具进行查询
注册人、邮箱反查
通过whois获取注册人和邮箱,再通过注册人和邮箱反查域名
缺点是很多公司都是dns解析的运营商注册的,并不能很好的获取到信息
子域名收集
通过搜索子域名,找到主域名的其他子网站,由于主网站往往是防御做最好的,因此可以作为寻找突破口的作用
-
google hacking
这是Google提供的一个信息搜集作用的语法,具体语法可以参考:
详解GOOGLE HACK语法 - 知乎 (zhihu.com)
最简单的用法就是:
site:域名
,可以找到该域名的子域名 -
第三方web接口查询
DNSdumpster.com - dns recon and research, find and lookup dns records
-
网络空间安全搜索引擎
网络空间测绘,网络空间安全搜索引擎,网络空间搜索引擎,安全态势感知 - FOFA网络空间测绘系统
首页 - 网络空间测绘,网络安全,漏洞分析,动态测绘,钟馗之眼,时空测绘,赛博测绘 - ZoomEye(“钟馗之眼”)网络空间搜索引擎
这种搜索引擎跟普通搜索引擎的区别在于,这种搜索引擎会一直对公网进行扫描,可以通过这种引擎,用被动收集信息,达到一定的主动收集方式的效果,缺点是这种引擎一般都是收费的
-
ssl证书查询
https://developers.facebook.com/tools/ct/search/
可以查询到https协议的网站的信息
-
js文件发现子域名
可以通过一些自动化工具来发现子域名
-
借助各种工具
IP信息收集
-
ip反查域名
如果渗透目标为虚拟主机,那么通过IP反查到的域名信息很有价值,因为一台物理服如果渗透目标为虚拟主机,那么通过IP反查到的域名信息很有价值,因为一台物理服务器上面可能运行多个虚拟主机。这些虚拟主机有不同的域名,但通常共用一个IP地务器上面可能运行多个虚拟主机.这些虚拟主机有不同的域名,但通常共用一个IP地址。如果你知道有哪些网站共用这台服务器,就有可能通过此台服务器上其他网站的漏洞获取服务器控制权,进而迂回获取渗透目标的权限,这种技术也称为“旁注"漏洞获取服务器控制权,进而迂回获取渗透目标的权限,这种技术也称为**“旁注”**
-
域名查询ip
-
判断与绕过CDN
由于CDN会导致我们在查询域名对应IP时,查询到的是CDN,因此我们需要一些方法去判断和绕过CDN以获得真实IP
-
多地ping
多地ping可以查看对应ip是否唯一
-
国外访问
通过国外访问的方式,有些网站设置CDN可能没有把国外的访问包含进去
-
查询子域名的IP
由于CDN收费高,很多站长仅只对主站或者流量大的子站做了CDN,而很多小旁站子站点和主站常常是在同一台服务器或者同一个C段内,因此可以通过这种方式辅助查找网站真实IP
-
查看phpinfo文件
如果是使用Apache HTTP Server的网站,其会内置一个phpinfo.php文件,通过访问这个文件,可以在内部找到一个参数
SERVER_ADDR
,其保存了服务器的真实地址或者内部地址不常用,因为大部分网站管理员都会自行删除该文件使其不暴露
-
Mx记录邮件服务
缺陷:需要web服务器和邮件服务器在同一ip或同一c段
-
网络空间搜索引擎
-
查询历史DNS记录
ViewDNS.info - Your one source for DNS related tools!
iP地址查询–手机号码查询归属地 | 邮政编码查询 | iP地址归属地查询 | 身份证号码验证在线查询网 (ip138.com)
这是一个非常实用的方式!
-
-
C段存活主机探测
-
Nmap
1
2nmap -sP www.XXX.com/24
nmap -sP 192.168.1.* -
各种扫描器
-
端口信息收集
端口类型:
- 周知端口:众所周知的端口号,一般都用于固定分配给常用的服务,范围:0-1023
- 动态端口:一般不固定分配某种服务,范围:49152-65535
- 注册端口:用于分配给用户进程或程序,范围:1024-49151
Nmap
一款开源的网络探测和安全审查的工具
功能介绍
- 主机发现
- 端口发现
- 服务发现
- 检测操作系统,硬件地址,以及软件版本
- 检测脆弱性漏洞
端口状态
基础用法
下面是一个经典的nmap扫描
1 | nmap -A -T4 192.168.1.1 |
-A:启用一个全面的扫描
-T4:时序选择,有T0-T5不同的六种选项,可以指定不同的速度,速度为0-5递增,但网络带宽需求增加,T5是牺牲准确度来提升速度,扫描国内网站常用为T4
目标指定的方式:
- 单一主机扫描:192.168.1.1
- 子网扫描:192.168.1.1/24
- 多主机扫描:192.168.1.1 192.168.100.1
- 主机范围扫描:192.168.1.1-100
- IP列表扫描:-iL list.txt
- 除了指定IP以外的子网主机:192.168.1.1/24 --exclude 192.168.1.1
- 除了指定文件中的IP的子网主机:192.168.1.1/24 --excludefile list.txt
- 特定端口扫描:nmap -p 80,21,23 192.168.1.1
一些常用的参数:
-sS:SYN扫描,半开放扫描。打开一个不完整的TCP连接,也就是不需要三次握手。优点是不需要产生任何会话,目标主机也不会记录该扫描,扫描速度快,效率高。缺点是需要最高权限执行
-sA:ACK扫描
-sP:ICMP扫描,通过PING扫描
-sT:TCP扫描,通过完整的TCP连接扫描
-Pn:扫描前不进行ping
-iL:导入扫描列表
-v/sV:探测版本,可能会减缓扫描速度
-oG 文件名:按照nmap的格式输出文件
-O:探测操作系统版本
–script:指定脚本进行漏洞扫描