• 服务指纹识别


    指纹识别是什么?

    指纹是指网站CMS指纹识别、计算机操作系统以及web容器的指纹识别等。
    应用程序一般在html、js、css等文件中包含一些特征码,这些特征码就是所谓的指纹。当碰到其他网站也存在次特征时,就可以快速识别出该程序,所以叫做指纹识别。

    指纹识别的目的

    知道对方使用的CMS(是自己开发还是开源的,有什么端口,中间件,IP,服务器存放地址),二级域名,敏感信息等

    常见指纹检测的对象

    1、CMS信息:比如大汉CMS、织梦、帝国CMS、phpcms、ecshop等;
    2、前端技术:比如HTML5、jquery、bootstrap、pure、ace等;
    3、Web服务器:比如Apache、lighttpd, Nginx, IIS等;
    4、应用服务器:比如Tomcat、Jboss、weblogic、websphere等;
    5、开发语言:比如PHP、Java、Ruby、Python、C#等;
    6、操作系统信息:比如linux、win2k8、win7、kali、centos等;
    7、CDN信息:是否使用CDN,如cloudflare、360cdn、365cyd、yunjiasu等;
    8、WAF信息:是否使用waf,如Topsec、Jiasule、Yundun等;
    9、IP及域名信息:IP和域名注册信息、服务商信息等; 
    10、端口信息:有些软件或平台还会探测服务器开放的常见端口。
    

    常见指纹识别方式

    特定文件的MD5

    一些网站的特定图片文件、js文件、CSS等静态文件,如favicon.ico、css、logo.ico、js等文件一般不会修改,通过爬虫对这些文件进行抓取并比对md5值,如果和规则库中的Md5一致则说明是同一CMS。这种方式速度比较快,误报率相对低一些,但也不排除有些二次开发的CMS会修改这些文件。获得通用文件的哈希值,然后进行对比。
    favicon.ico 就是在浏览器的最左侧显示一个网站的 LOGO 小图标,这个图标是放在根目录下的,一般都是以 favicon.ico 命名

    eg:Discuz官网favicon.ico,左侧显示的是网站LOGO

    自己搭建Discuz论坛favicon.ico,如下图所示:

    二者favicon.ico的MD5值对比一致,通过该hash值可以判断出为discuz论坛

    正常页面或错误网页中包含的关键字

    先访问首页或特定页面如robots.txt等,通过正则的方式去匹配某些关键字,如Powered by Discuz、dedecms等。或者可以构造错误页面,根据报错信息来判断使用的CMS或者中间件信息,比较常见的如tomcat的报错页面。
    Discuz页面返回banner信息:Powered by Discuz

    请求头信息的关键字匹配

    根据网站response返回头信息进行关键字匹配,whatweb和Wappalyzer就是通过banner信息来快速识别指纹,之前fofa的web指纹库很多都是使用的这种方法,效率非常高,基本请求一次就可以,但搜集这些规则可能会耗时很长。而且这些banner信息有些很容易被改掉。根据response header一般有以下几种识别方式:
    1、查看http响应报头的X-Powered-By字段来识别,X-Powered-By:PHP/7.1.8

    X-Powered-By:anyu.qianxin.com

    2、根据Cookies来进行判断,比如一些waf会在返回头中包含一些信息,如360wzws、Safedog、yunsuo等;

    3、根据header中的Server信息来判断,如DVRDVS-Webs、yunjiasu-nginx、Mod_Security、nginx-wallarm等;

    URL中包含的关键字

    通过规则库去探测是否有相应目录,或者根据爬虫结果对链接url进行分析,或者对robots.txt文件中目录进行检测等等方式,通过url地址来判别是否使用了某CMS,比如wordpress默认存在wp-includes和wp-admin目录,织梦默认管理后台为dede目录,solr平台可能使用/solr目录,weblogic可能使用wls-wsat目录等。

    eg:discuz默认后台页面,admin.php
    http://10.211.55.8/Discuz_X3.4_SC_UTF8_20191201/upload/admin.php

    robots.txt 显示banner信息:Discuz! X3

    开发语言的识别

    web开发语言一般常见的有PHP、jsp、aspx、asp等,常见的识别方式有:

    1、通过爬虫获取动态链接进行直接判断是比较简便的方法。asp判别规则如下<a[^>]*?href=(‘|”)[^http][^>]*?.asp(?|#|1),其他语言可替换相应asp即可。
    2、通过X-Powered-By进行识别,比较常见的有X-Powered-By: ASP.NET或者X-Powered-By: PHP/7.1.8
    3、通过Set-Cookie进行识别,这种方法比较常见也很快捷,比如Set-Cookie中包含PHPSSIONID说明是php、包含JSESSIONID说明是java、包含ASP.NET_SessionId说明是aspx等。
    

    常见指纹识别工具

    在线网址

    Bugscaner: http://whatweb.bugscaner.com/look/
    云悉指纹: http://www.yunsee.cn/figer.html
    whatweb: http://whatweb.net/
    waf识别:https://github.com/EnableSecurity/wafw00f
    CDN识别:https://raw.githubusercontent.com/3xp10it/mytools/master/xcdn.py
    

    Bugscaner在线cms识别工具

    本地识别工具

    御剑Web指纹识别程序

    Wappalyzer

    Wappalyzer(集成在浏览器或可单独)

    Nmap

    telnet

    乌云漏洞库查询CMS

    识别出banner信息,可以从网站CMS漏洞库查询该CMS漏洞历史版本

    我们欠生活一个努力!
  • 相关阅读:
    electron 整合 serialport
    javascript 中字符串转化utf8字节数组, 然后在将字节数组转化十六进制字符串
    linux 之 非root用户安装mysql5.7.27
    linux(CentOS7) 之 zookeeper 下载及安装
    linux(CentOS7) 之 ntp时间同步配置步骤
    linux(CentOS7) 之 克隆虚拟机并配置网络(固定ip)
    linux(CentOS7) 之 MySQL 5.7.30 下载及安装
    linux(CentOS7) 之 jdk1.8 下载及安装
    Vue.prototype定义原型属性或方法
    Map接口中的常用方法
  • 原文地址:https://www.cnblogs.com/lalalaxiaoyuren/p/14486167.html
Copyright © 2020-2023  润新知