信息收集
- WEB 信息收集(探测),主要时掌握 WEB 服务的方方面面,实现渗透入侵前的准备工作
- 内容包括:操作系统版本、服务器类型、数据库类型、WEB 容器、WEB 语言、域名信息、网站目录等
- 涉及搜索引擎、网站扫描、域名遍历、指纹识别等
通过 DNS 和 IP 地址挖掘目标网络信息
-
whois 域名注册信息查询
whois 是一个用来查询域名注册信息数据库的工具,一般的域名 注册信息会包含域名所有者、服务商、管理员邮件地址、域名注册日期和过期日期等。也可以通过一些查询网站进行查询,如站长之家
查询格式:
whois host
Tips: host 可以是域名或 IP,如果是域名,务必使用顶级域名
-
查询 DNS 解析信息
使用 nslookup 或 dig 进行 DNS 解析查询,dig 包含在软件 dnsutils 中。
nslookup 会得到 DNS 解析服务器保存在 Cache 中的非权威应答,而 dig 会从指定域名的官方 DNS 服务器上查询到精确的权威解答
使用 nslookup 进入交互页面后可以通过
set type=xx
来设置查询的类型,常用类型有 A (IPv4 地址记录)、MX (邮件转发服务)、 CNAME (域名绑定记录)、 NS (域名解析服务器记录)、 AAAA (IPv6 地址记录)使用 dig 则可以指定查询要使用的 DNS 解析服务器,同时会触发指定的 DNS 解析服务器会向官方权威 DNS 服务器进行一次递归查询,以获取权威解答。 基本使用方法为
dig @DNS<解析服务器> <待查询域名> [q-type]
其中q-type
是指定查询类型。使用不同的 DNS 解析服务器,发现目标网站的 IP 地址列表,来确定服务器集群范围(对某些 CDN 站点也有可能发现源 IP)。 -
IP2Location 地理位置查询
通过确定 IP 地址的真实物理位置,判断目标是公司资产还是个人资产,可使用网站 Geo-IP 查询。根据结果中提供的经纬度,在 Google 地图中查询
-
子域名查询
对目标地址的顶级域名进行子域名的查询,大型网站中某个往往有多个子域名站点,防护难免力有不逮。子域名的查询可以使用工具、Google 语法、子域名查询网站
-
IP2Domain 反查域名
目标域名对应的服务器上可能搭建有多个网站,通过反差域名,找出同一服务器上的多个虚拟主机。如果其他虚拟主机存在漏洞,则可以迂回获取目标网站的权限,即「旁注」
通过搜索引擎进行信息搜集
Google Hack
Google Hacking 技术是指:Google 搜索引擎的高级语法,搭配一些敏感的字符串。搜索可能存在漏洞的站点或目标可能存在的漏洞。exploit-db 的 Google Hacking 数据库上有大量的模板
下面列举几个常用的关键字:
site:
:主要用于收集子域名和跟此域名相关的信息filetype:
:搜索指定文件类型inurl:
:搜索 URL 中包含指定字符的网页,一般用来寻找可能存在的注入点intitle:
:搜索标题中包含指定字符的网页,一般用来寻找登陆点或管理后台intext:
:搜索网站正文中包含指定字符的网页,例如搜索特定 CMS 搭建的网站-keyword
:强制结果中不出现此关键字*keyword
:模糊搜索,强制结果中包含此关键字"keyword"
:强制结果中出现此关键字
Tips: google 语法不仅用于 Google 搜索。如果想利用工具自动化检测,需申请搜索引擎的 API ,但一般都有次数限制,大量使用需进行购买
Shodan Hack
https://www.shodan.io
是由 Web 工程师 John Matherly 编写,被称为“最可怕的搜索引擎”,可以扫描一切网络设备,包括 Web 服务器、防火墙、路由器、交换机、摄像头、打印机等
- 按 IP 扫描
- 按协议或服务搜索:如
http
、product:"Apache httpd"
。还可以指定版本version:"7.5"
- 基于关键字搜索:更具 banner 信息(设备指纹)来搜索,如
default password
、FTP anon successfull
- 根据国家代码或城市名进行搜索:
country:"country_code"
、city:Beijing
- 根据域名信息进行搜索:
hostname:.org
、hostname:baidu.com
- 根据操作系统信息进行搜索:
os:Windows 7 or 8.1
- 根据网段搜索:
net:xxx.xxx.xxx.xxx
、200 ok net:xxx.xxx.xxx.xxx
- 根据端口进行搜索:
port:22
ZoomEye
https://www.zoomeye.org
钟馗之眼由知道创宇出品,类似于撒旦搜索,但更侧重于 Web 服务,撒旦搜索更侧重于主机
其他方式
- 网站目录结构探测:手工测试目标网站下是否存在一些常见的目录,如后台管理的 admin、login、cms 等等。或者是否存在备份文件或其他不应存在的文件。是否能直接读取配置文件等。也可以使用工具,如 Metasploit 中的
burte_dirs
、dir_listing
、dir_scanner
等辅助模块,这些事通过暴力猜解的方式进行爆破Tips: 很多网站根目录存在 robots.txt 文件,此文件用于告诉爬虫不允许爬取的目录,而这些目录就是渗透测试应当重点关注的目录
- 敏感文件的探测:结合上面提到的 Google 语法对目标站点中是否存在各种备份文件、压缩文件、文档或其他敏感文件。也可以手工测试可能存在的文件
- 搜索网站中的 E-mail 地址: Metasploit 中的辅助模块
search_email_collector
可以有针对性的进行目标站点的邮件地址收集。此模块通过设置一个邮箱后缀(域名),然后在多个搜索引擎中进行查询分析使用此后缀的邮箱地址,而不仅仅是爬取目标站点上的邮箱地址。这些邮箱地址可用于社工、爆破、钓鱼等等
关于扫描的看法
一层扫描
对主机 IP 的识别,即将域名解析为对应的 IP,可以使用 ping、站长工具等
二层扫描
对目标主机的端口开放情况,端口对应的协议,开放的服务,以及服务的版本有一个大致的扫描判断
例如:nmap -vv -sV -O ip
对指定 IP 的操作系统和开放的服务的版本进行扫描并详细输出过程
三层扫描
利用脚本对目标开放的端口所对应的协议、服务进行漏洞的侦测
例如:
nmap --script=default ip
对指定 IP 使用默认的脚本扫描,等价于-sC
- 使用企业级安全工具进行扫描,如:Openvas/Nessus、AWVScanner、AppScan、HP Webinspect、JSky、Netsparker、
四层扫描
对目标主机或域名的深入挖掘,如子网、同网段主机、同 IP 域名、同域名 IP
例如:使用recon-ng对网站的深入挖掘