信息收集
信息收集的意义
信息收集对于渗透测试前期来说是非常重要的。正所谓,知己知彼百战不殆,信息收集是渗透测试成功的保障,只有我们掌握了目标网站或目标主机足够多的信息之后,才能更好地进行渗透测试。
- 信息收集的方式可以分为两种:主动和被动。
主动信息收集
通过直接访问网站,在网站上进行操作,对网站进行扫描等。这种是有网络流量经过目标服务器的信息收集方式。
被动信息收集
基于公开的渠道,比如搜索引擎等,在不与目标系统直接交互的情况下获取信息,并且尽量避免留下痕迹。
这两种方式各有优势,主动信息收集你能获取更多的信息,但是目痕迹较为明显,容易被溯源。被动信息收集因为不是针对网站进行特定的扫描,所以一般来说收集的信息会相对较少,但是你的行动并不会被目标主机发现。所以我们要灵活运用不同的收集方式,才能保证信息收集的完整性。
网站信息收集
操作系统
服务器常用的操作系统基本上只有两种:windows
和linux
,不过在企业服务器中linux系统占大多数,常用的判断方法有三种
ping
判断,windows
的TTL值一般为128,Linux
则为64。所以TTL大于100的一般为windows
,几十的一般为linux
,但是,通过TTL值来判断服务器类型也不是百分之百准确的,有部分windows
服务器的TTL值也是几十,而且有的服务器禁止ping
,无法通过该方式探测
nmap
扫描,可以通过 -O 或者 -A 参数来扫描操作系统,优点就是可以扫描到具体的操作系统版本,缺点就是扫描痕迹明显,容易被发现
windows
大小写不敏感,linux
则区分大小写,也可以把这个作为判断操作系统的依据,我们在访问的时候可以尝试把路径部分改成大写,然后去访问,看能否请求成功。
网站服务/容器类型
网站常用的web服务器有:Apache
、Nginx
、Tomcat
、IIS
。知道了web服务器是哪种类型后,我们还要探测web服务器具体的版本。比如Ngnix
版本<0.83会有解析漏洞 ,IIS6.0会有文件名解析漏洞、IIS7.0会有畸形解析漏洞等。不同的web服务器版本,存在着不同漏洞。
脚本类型
网站常见的脚本类型:php
、Jsp
、Asp
、Aspx
、python
。
根据网站URL来判断
利用google
判断, site:xxx filetype:php
利用wappalyzer
插件插件来判断
数据库类型
常见的数据库类型
Mysql
是一个关系型数据库管理系统,由瑞典MySQL AB
公司开发,目前属于Oracle
旗下产品。MySQL
是最流行的关系型数据库管理系统,在 WEB
应用方面MySQL是最好的应用软件之一,MySQL
数据库大部分是php
的页面。默认端口是 3306
Sql Server
是由Microsoft
开发和推广的关系数据库管理系统(DBMS
),是一个比较大型的数据库。端口号为 1433 。数据库后缀名 .mdf
Access
全名是Microsoft Office Access
,是由微软发布的关联式数据库管理系统。小型数据库,当数据库达到100M左右的时候性能就会下降。数据库后缀名:.mdb 一般是asp的网页文件用access
数据库
Oracle
又名Oracle RDBMS
,或简称Oracle
。是甲骨文公司的一款关系数据库管理系统。常用于比较大的网站。默认端口是 1521
常见搭配:
ASP 和 ASPX:ACCESS、SQL Server + win
PHP:MySQL + win/linux、PostgreSQL + linux
JSP:Oracle、MySQL + win/linux
CMS识别
常见CMS:dedecms
(织梦)、Discuz
、phpcms
等。
敏感目录,后台
常见目录类型
-
后台目录:弱口令,万能密码,爆破
-
备份文件:获取数据库信息,甚至是网站源码
-
上传目录:截断、上传图片马等
-
mysql管理接口:弱口令、爆破,万能密码,然后获得数据库信息
-
安装页面 :可以二次安装进而绕过
-
phpinfo:会把你配置的各种信息暴露出来
-
编辑器:fck、ke等