文章目录
- 一、目录扫描
- 1.1 目录扫描的原因
- 1.2 目录扫描方法
- 二、指纹识别
- 2.1 系统指纹识别
- 2.2 中间件指纹识别
- 2.3 web程序指纹识别
- 2.4 防火墙指纹识别
- 2.5 其他工具使用
- 三、Google Hacking
- 3.1 逻辑运算符
- 3.2 基本语法
- 3.3 相关案例
一、目录扫描
1.1 目录扫描的原因
- 寻找网站后台管理
- 寻找未授权界面
- 寻找网站更多隐藏信息
1.2 目录扫描方法
- robots.txt
Robots协议”网络爬虫排除协议“,网站通过Robots协议告诉搜索引擎哪些界面可以抓取,哪些页面不能抓取。同时也记录网站所具有的基本目录。 - 搜索引擎
搜索引擎会爬取网站下目录,并且不会触碰网站任何防御设备。语法:site:sangfor.com.cn
。 - 爆破
爆破通过字典匹配
网站是否返回相应正确状态码,然后列出存在的目录。爆破可能会出发网站防火墙拦截规则,造成IP封禁。
爆破工具:dirb、dirbuster、御剑。
二、指纹识别
2.1 系统指纹识别
方法一:通过TCP/IP数据包发到目标主机,由于每个操作系统类型对于处理TCP/IP数据包都不相同,所以可以通过之间的差别判断操作系统类型。识别方法:nmap -sS -Pn -O <ip地址>
。
-sS
:进行TCP SYN扫描。
-Pn
:不进行Ping扫描。
-O
:操作系统侦测。
nmap识别操作系统指纹必须使用端口,所以不允许添加-sn
参数(不进行Ping扫描)。
方法二:端口服务识别,命令:nmap -sS -sV <ip地址>
每个操作系统都有特有的服务和端口,如:
- windows桌面连接使用3389 RDP协议;
- 445端口 windows的smb开启端口;
- iis 80端口。
2.2 中间件指纹识别
(1)通过http返回消息提取server字段
(2)通过端口服探测中间件
常用端口:Tomcat、Jboss 8080,weblogic 7001
(3)通过构造错误界面返回信息查看中间件
主要构造不存在的路径和畸形数据。
2.3 web程序指纹识别
(1)开发语言
- 后缀名识别:
.asp、.php、.jsp
。如果无法通过后缀名识别,可以通过抓包查看与后台交互点,如登录、查询。 - http返回请求头 x-Powered-By
- cookie:PHPSESSIONID ->php,JSPSESSIONID ->jsp,ASPSESSIONIDAASTCACQ ->asp。
(2)开发框架
- php的thinkphp框架识别方法特定ico图标
- Action后缀 90%为
struts2
或者webwork
- do后缀 50%为
spring mvc
- url后缀 /action/xxx 70%
struts2
- Vm后缀 90%
VelocityViewServlet
- JSF后缀 99%
java Server Faces
(3)第三组件
一般包括流量统计、文件编辑器、模板引擎,识别方法:一般目录扫描,识别工具:
- FCKeditor
- CKEditor
(4)CMS程序
- 特定文件夹:
dede/
、admin/admin_Login.aspx
- Powered by ****
- 网站favicon图标
(5)数据库
- 常规判断
asp对应sql server,php对应mysql,,jsp对应oracle。
- 网站错误信息
- 端口服务
1433对应sql sqever,3306对应mysql,1512对应oracle。
在线探测工具:Wappalyzer
、云悉
2.4 防火墙指纹识别
识别方法:nmap -p 80 --script http-waf-fingerprint <ip地址>
2.5 其他工具使用
1、Nmap工具
命令一:nmap -sS -sV <ip>
,使用TCP SYN的方式,扫描目标主机上常规端口运行的服务版本。
-sS
:指定使用TCP SYN的方式对目标主机进行扫描;
-sV
:扫描默认1000个端口的服务情况和端口开放情况。
命令二:nmap -p 80 --script http-waf-fingerprint <ip>
,对80端口进行waf探测。
实验环境中未部署waf,所以无waf相关信息显示,下图为实际环境中测试,探测到waf设备的信息
2、Wafw00f工具
(1)下载该工具
wafw00f
命令三:Wafw00f http://192.168.0.85
(IP地址需根据目标靶机实际情况,进行修改,或者输入目标域名)
实验环境中未部署waf,所以无waf相关信息显示,下图为实际环境中测试,探测到waf设备的信息
3、使用Maltego进行情报收集
-
kali中自带
maltego
社区版,直接在命令行中启动;
-
安装
CaseFile Entities
和Farsight DNSDB
插件。配置Transform Hub,因为使用社区版,我们仅选择Free字样的模块,将鼠标移动到模块上,会自动出现install,点击后将开始自行安装。
Farsight DNSDB
插件主要用于DNS相关信息查询(软件自带的dns查询可能失效,可用该插件实现dns信息查询)。
-
收集目标信息。本次我们的目标是一个域名,所以按下图中的步骤选择
footprint L3
。
工具会新建一个画板,在正中会出现我们设定目标域名为根节点,右下角显示查询进度,随着进度条,会实时将收集到的信息同根节点进行关联,拓扑会自动生长。
为了增加信息收集的效率,可以在图标上点击鼠标右键,选择对应查询的类别,比如查询DNS信息,使用【DNSDB】插件。第一次使用DNSDB插件时,会弹出一个对话框,勾选“接受”,然后点击“run”即可。
该工具在查询过程中,会因使用的插件不同,可能会找到同根节点相关的域名信息,可能不属于根节点真正的域名信息,maltego会给出选项目,让使用者进行选择。
探测完成后,会看到以下拓扑结构的画图,相互的层级关系一目了然。
三、Google Hacking
3.1 逻辑运算符
+
:强制搜索其后的一个单词
-
:把某字忽略
~
:同义词
.
:通配符,可代表多个字母
”“
:精确查询
| 或者OR
:只要符合多个关键词中的任意一个,结果就予以显示
3.2 基本语法
- intext:key,搜索网页中带有关键字的页面。
- Allintext:key,功能与intext类似,但是可以接多个关键字。
- intitle:key,搜索网页标题中是否有需要的文字。
- Allintitle:key,功能与intext类型,可以接多个关键字。
- cache:url,查看指定URL快照。
- filetype:xxx,搜索指定类型文件。
- info:xxx,搜索输入URL的摘要信息和其他相关信息,不能与其他关键字混用。
- inurl:xxx,搜索输入字符是否存在URL中,可以与site结合找后台。
- site:xxx,搜索指定网站或者子域名。
- related:URL,搜索与该URL相关的页面。
3.3 相关案例
(1)site:特定网站搜索,可以寻找子域名、域名、端口
(2)site:URL,filetype:html 搜索与该域名相关的html文件
(3)site:URL intitle:登录,搜索与该域名有关的且网页标题中含有登录这一关键词的网页
(4)site:URL inurl:/login 搜索与该域名有关的且URL中有/login的网页
(5)site:x.x.x.* C段快速探测
goolge语法收集网站