在进行安全测试之前,最重要的一步就是信息探测:
在搜集目标资料时应该搜集哪些资料呢?其实最主要的就是服务器的配置信息和网站的信息,其中包括网站注册人、目标网站系统、目标服务器系统、目标网站相关子域名、目标服务器所开放的端口和服务器存放网站等。可以说,只要是与目标网站相关联的信息,我们都应该去收集
google hack
我们以baidu.com为例,进行百度的子域名查询:
site:baidu.com
google hack 并没有太多技术含量(真的嘛!!)其实只是根据Google提供的语法来进行信息查询
案例分析:
“intitle:管理登陆 filetype:php”这句话的意思为查询网页标题含有“管理登陆”,并且为php类型的网站
“intext:Powered by Discuz” 如果攻击者拥有Discuz漏洞,并且配合Google来寻找Discuz住居,那么后果是相当严重的
google不是万能的1,它只能查询出蜘蛛爬行过的网页,如果一些敏感目录不允许蜘蛛爬行,则可以写在网站根目录robots.txt中。虽然这样不会被蜘蛛爬行到,但是攻击者可以直接访问robots.txt
nmap扫描器
案例一、扫描指定IP所开放的端口
nmap -sS -p 1-65535 -v 192.168.1.13
表示使用半开扫描,指定端口为1-65535,并且显示扫描过程
案例二、扫描www.xxser.com C段存活主机
nmap -sP www.xxser.com/24
案例三、指定端口扫描
nmap -p 80,1433,22,1521 www.xxser.com
案例四、探测主机操作系统
nmap -o www.xxser.com
案例五、全面的系统探测
nmap -v -A www.xxser.com
注:nmap默认扫描主机1000个高危端口,若需要全面检测端口,则需要加入 “-p 1-65535”
案例六、穿透防火墙进行扫描
www.2cto.com是禁止使用ping的,Nmap的一些常用选项无法再起作用,这是可以用“-Pn”参数
nmap -Pn -A www.2cto.com
nmap不仅用于端口扫描,服务探测,还有强大的脚本引擎,利用nmap script可以快速探测服务器
在nmap安装目录下存在script文件夹,在script文件夹中存在许多以“.nse”后缀结尾的文本文件,即nmap自带的脚本引擎
使用nmap脚本引擎时,只需要添加命令“--script=脚本名称”。nmap script有400种之多下面介绍最常使用的脚本,如需了解更多,请参照http://nmap.org/nsedoc
案例一、扫描web敏感目录
nmap -p 80 --script=http-enum.nse www.xxser.com
案例二、扫描sql注入
nmap -p 80 --script=sql-injection.nse www.xxser.com
案例三、使用所有脚本进行扫描
nmap --script all 127.0.0.1
注意:此命令非常耗时,最好把记录保存在文档中
案例四、使用通配符扫描
nmap --script "http-*" 127.0.0.1,表示使用所有以http-开头的脚本扫描,值得注意的时,脚本的参数必须用双引号引起来,以保护从shell的通配符
nmap也可以用来检测主机是否存在漏洞和密码暴力破解等。更多的扫描方式请参照http://nmap.org/book/nse-usage.html中的内容
指纹识别
指纹识别具有终身不变性,唯一性和方便性,所以已成为生物特征识别的代名词。此处的指纹识别并非一些门禁指纹识别、财务指纹识别、汽车指纹识别等,而是针对计算机或计算机系统的某些服务的指纹识别
计算机指纹识别的识别过程与常见的指纹识别是相通的,比如,某CMS存在一种特征,在根目录下会存在“dxs.txt”,这个特征就相当于这个CMS的指纹,再碰到其他网站时也存在此特征,此时就可以快速识别这一CMS,故叫做指纹识别
计算机的指纹识别不仅针对于网站CMS的指纹识别,还有针对于服务器操作系统的指纹识别和对web容器的指纹识别等
例如Nmap -O命令可以识别服务器操作系统的指纹,但识别并不是万能的,很多时候时无法正确识别的
有指纹识别就有指纹伪造,但比较少见。一些端口所提供的具体服务也可以使用Nmap -A来识别
在渗透过程中,针对网站系统和web容器的指纹识别是非常有必要的,比如,识别出了网站的系统,可以去查询该系统的相关漏洞,如果有相关漏洞,接下来的操作就比较轻松
在之前对网站操作系统识别只能靠经验,比如,用暴力才接服务器资源时,猜到了存在资源“wp-admin/login.php”,有经验的渗透测试人员一眼就可以看出这是wordpress程序,但是时间久了,接触的系统越来越多,难免有些遗忘
随着指纹识别技术的发展,慢慢兴起了一些小工具,比如御剑的指纹识别,可以快速识别国内的一些主流CMS(仅仅是国内的)
指纹识别最重要的就是特征库,对web容器的识别也不例外,比如AppPrint是一款web容器识别工具,可以对单个IP、域名或IP段进行Tomcat、WebLogic、IIS等web容器进行识别
虽然在HTTP请求中可通过Server头来获取web容器的信息,但是可以直接伪造,AppPrint目录下的signatures.txt中