回顾一下nmap
信息搜集指纹识别是指通过对目标系统的信息进行搜集和分析,来确定目标系统的类型、版本、操作系统、应用程序等信息的过程。其中,指纹识别是信息搜集的一种方法,通过对目标系统的响应数据进行分析,来确定目标系统的类型、版本、操作系统、应用程序等信息。常用的指纹识别工具有nmap、wappalyzer、whatweb等。
方法一:通过TCP/IP数据包发到目标主机,由于每个操作系统类型对于处理TCP/IP数据包都不相同,所以可以通过之间的差别判定操作系统类型。nmap识别操作系统指纹必须使用端口,所以不允许添加-sn参数。
方法二:通过对目标网站的页面内容进行分析,来确定目标网站所使用的Web应用程序、Web框架、Web服务器等信息。常用的工具有wappalyzer、whatweb等。
方法三:通过对目标网站的URL、表单、Cookie等进行分析,来确定目标网站所使用的Web应用程序、Web框架、Web服务器等信息。常用的工具有Burp Suite、OWASP ZAP等。
(1)使用工具nmap -O ip命令对目标主机进行识别,通过tcp/ip数据包发到目标主机,每个操作系统对处理tcp/ip包不同,通过差异来识别主机操作系统,还有其他工具
(2)通过端口扫描的方式来推测系统指纹,windows有特有的服务,比如3389端口RDP协议,445端口smb协议,80端口iis (3)如果目标主机有web端,可以在url后面的文件目录地方改大小写判断,一般windows对大小写不敏感,linux对大小写敏感,意味着如果输入大写后网页正常显示则大体能判断为windows系统
在命令行中输入:
whatweb
Usage: whatweb [options] <URLs>
whatweb 192.168.1.2/web **搜索命令**
加-A速度更快
加-v详细的输出
2.中间件指纹识别
(1)通过端口收集,常见的web中间件对应端口有,直接用nmap扫一扫
apache:80
nginx:80
tomcat:8080
jboss:8080
weblogic:7001
(2)看响应包的server字段,该字段是http服务器的安装信息,直接f12里的network选项重新请求页面会有响应包
3.web程序指纹识别
1.开发语言识别
(1)url目录文件后缀名识别
(2)http响应包x-powered-by字段,若被意识好的处理后就没有
(3)cookie:PHPSESSIONID->php,JSPSESSIONID->jsp ASPSESSIONIDAASTCACQ->asp
2.开发框架
开发框架一般可以理解为方便开发,给了你砖你只需要用砖盖房子,就不需要从零开始先造砖了,而框架也有漏洞,如果一个特别火的框架出现漏洞是毁灭性的问题
(1)php的thinkphp框架识别方法特定ico图标
(2)Action后缀90%几率struts.2或者webwork
(3)do后缀50%几率spring mvc
(4)url路径/action/xxx70%几率struts2
(5)form后缀60%几率spring mvc
(6)Vm后缀90%几率VelocityViewServlet
(7)jsf后缀99%几率Java Server Faces
一般用工具收集
3.第三方组件
包括流量统计、文件编辑器、模板引擎。识别方法:一般目录扫描。FCKeditor、CKEditor。
4.cms程序
cms可以理解为给一个毛坯房只需要装修,灵活性要比框架差很多,但是可以在短时间内完成建站
(1)一般通过特定文件夹识别:dede/、admin/admin_Login.aspx...
(2)展示页面的细节如Powered by **
(3)网站favicon图标
一部分考经验,用工具收集会方便很多
(4)御剑web指纹识别系统
5.数据库
(1)通过一些常用的语言和数据库的组合常规判断,asp->sql server,php->mysql,.jsp-oracle,其实也是经验
(2)网站错误信息
(3)端口服务,如:sql server:1443,mysql:3306,oracle:1521
写个文本文档,导入..txt,开始扫描。