8、Web安全测试-信息收集
域名信息
信息收集
在进行安全测试之前,最重要的一步就是信息收集。可谓知己知彼百战不殆。
应该收集哪些信息呢?
- 其实最主要的就是服务器的配置信息和网站的信息,其中包括网站注册人、目标网站系统、目标服务器系统、目标网站相关子域名、目标服务器所开放的端口和服务器存放网站等。可以说,只要是与目标网站相关联的信息,我们都应该尽量去搜集
收集域名信息
- 收集对应IP地址
- 收集子域名信息
- 注册人信息反查
收集对应IP地址
为什么收集IP信息
- 一个域名对应多个IP,打算做哪台系统的渗透测试,需要先知道其IP地址
怎样收集IP信息
- ping
- nslookup(域名解析)
- 一些工具网站:site.ip138.com
收集子域名信息
什么是子域名
- 子域名,是顶级域名(一级域名或父域名)的下一级
为什么搜集子域名
- 子域名探测可以帮我们发现渗透测试中更多的服务,这将增加发现漏洞的可能性
- 查找一些用户较少,被人遗忘的子域名,其上运行的应用程序可能会使我们发现关键漏洞
- 通常,同一组织的不同域名/应用程序中存在相同的漏洞
怎样收集子域名
在搜索栏输入 site:baidu.com
地址栏中点击锁状的图标查看证书,详细信息使用者备用名称
相关工具
- layer
- subDomainsBrute
whois注册人信息查询
为什么要查询注册人信息
- 查看其注册网站的相关信息
怎样查询注册人信息
- 根据已知域名反查,分析出此域名的注册人、邮箱和电话等
- 使用工具:爱站网、站长工具
- http://whois.chinaz.com/
搜集Web信息
关键字 |
说明 |
site |
把搜索范围规定在特定的站点中 |
intext |
正文中存在关键字的网页 |
intitle |
标题中存在关键字的网页 |
inurl |
URL存在关键字的网页 |
filetype |
搜索指定文件类型 |
例如:搜索存在敏感信息的网站
- site:指定域名
- intext:Powered by Discuz //正文中存在关键字的网页
- intitle:系统登录 //标题中存在关键字的网页
- inurl:eweb.editor //URL存在关键字的网页
- intitle:软件测试 filetype:pdf
查询网页标题中含有“软件测试”,并且为文件的类型为pdf
敏感目录
什么是敏感目录
- 可以被黑客利用的目录,如:后台目录,上传目录等等
收集哪些敏感目录
- robots.txt
- 后台目录
- 安装包
- 上传目录
- mysql管理接口
扫描敏感目录可以使用工具
- 御剑
- DirBuster等
端口扫描
常见端口
为什么扫描端口
- 逐个对一段端口或指定的端口进行扫描。通过扫描结果可以知道一台计算机上都提供了哪些服务,然后就可以通过所提供的这些服务的己知漏洞就可进行攻击
怎样扫描端口
- 使用工具:Nmap,portscan,ntscan,telnet
Nmap
- Nmap,也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包。
- nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并推断计算机运行哪个操作系统。另外,它也用于评估网络系统安全。
- 如今,Nmap更是增加了许多实用的插件,可以用来检测SQL注入、网页爬行、数据库密码检测等,号称“扫描之王”
Nmap 初体验
- 安装
- 配置环境变量,把nmap.exe的目录配置到环境变量Path中
Nmap启动
命令方式
- cmd---zenmap
图形方式启动
- 安装目录下,双击zenmap.exe
- 双击桌面图标
Nmap扫描方式
- TCP connect()端口扫描(-sT参数)
- TCP同步(SYN)端口扫描(-sS参数)
- UDP端口扫描(-sU参数)
- Ping扫描(-sP参数)
Nmap扫描——TCP Connect扫描
普通扫描方法,这种扫描方法的特点
- 扫描速度快,准确性高,对操作者没有权限上的要求
- 容易被防火墙和防入侵系统发现
运行原理
- 通过建立TCP的三次握手连接进行信息的传递
- Client端发送SYN(synchronous建立联机) ;
- Server端返回SYN/ACK,表明端口开放
- Client端返回ACK (acknowledgement 确认) ,表明连接已建立
- Client端主动断开连接
SYN扫描(TCP同步扫描-sS)
这是秘密的扫描方式之一,在Client和Server端,没有形成3次握手,所以没有建立一个正常的TCP连接,因此不被防火墙和日志所记录,一般不会在目标主机上留下任何痕迹,但是这种扫描需要管理员权限
UDP端口扫描(-sU参数)
UDP端口扫描
- 对于UDP来说,不存在监听这个概念,因为它是无连接不可靠的协议,发送数据包过去以后,通常也不会有任何的对等回应
- UDP端口扫描主要是检测是否存在ICMP端口不可达数据包。若该数据包出现,则说明对方这一端口上没有程序在监听,或者说该端口不存在漏洞,否则就说明该端口上有程序在监听,或者说存在漏洞
Ping扫描(-sP参数)
- Ping扫描可以检测网络上哪些主机正在运行。通过向你指定的网络内的每个IP地址发送ICMP echo请求数据包,如果主机正在运行就会作出响应。但是一些站点例如:microsoft.com阻塞ICMP echo请求数据包
- 选项在默认情况下, Ping扫描会同时发送一个ICMP回声请求和一个TCP报文到80端口
注意,nmap在任何情况下都会进行ping扫描,只有目标主机处于运行状态,才会进行后续的扫描。如果你只是想知道目标主机是否运行,而不想进行其它扫描,才会用到这个选项。
探测主机信息
基本的命令格式: Nmap [Scan Type(s)][options] {target}
扫描指定IP所开放的端口
- nmap -sS -p 1-65535 -v 10.7.10.7
扫描www.baidu.com C段存活主机
- nmap –sP www.baidu.com/24
指定端口扫描
- nmap –p 80,1433,22,1521 www.baidu.com
探测主机操作系统
- nmap –O 10.7.10.7
全面系统探测
- nmap –v –A 10.7.10.7
穿透防火墙进行扫描
- nmap –Pn –A 10.7.10.7
Nmap脚本引擎
安装目录下存在Script文件夹,在Script文件夹中存在许多以.nse后缀结尾的文本文件,即Nmap自带的脚本引擎
扫描Web敏感目录
- nmap –p 80 -script=http-enum.nse www.baidu.com
使用所有脚本进行扫描
- nmap –script all 127.0.0.1
使用通配符扫描
- nmap –script “http-*” 127.0.0.1
- 使用所有以http- 开头的脚本扫描
旁站C段
- 旁站:同服务器其他站点
- C段:同一网段其他服务器
- 对于防护比较强的主站,通常是很难挖掘到漏洞的,这时需要查看该站点的旁站,通过探测旁站的漏洞进行利用,从而拿下主站的权限。
- 当网站不存在旁站时,就需要进行C段探测(有些网站买断了相邻的几个IP做为分站,如果拿到分站的管理员敏感信息,如密码之类的,可以尝试对主站进行撞库),通过拿下C段中服务器进行ARP欺骗达到劫持域名的效果
- 可借助的工具
旁站查询:https://dns.aizhan.com
C段查询: nmap -p 80,443,8080 -Pn 211.69.130.0/24
工具:WebRobot
整站分析
- 服务器的操作系统
- 网站容器
- 脚本类型
- 数据库类型
查看操作系统类型
通过ping来探测,Windows的TTL值都是一般是128,Linux则是64。所以大于100的一般是Windows,而几十的一般是Linux。
Nmap的-O参数
- nmap –O 10.7.10.7
网站容器(Apache/Nginx/Tomcat/IIS)
- 抓包,看响应包中 server信息
- 云悉WEB资产梳理: www.yunsee.cn
- 工具whatweb
分析脚本类型(php/jsp/asp/aspx)
- url后加 /index.php 或index.asp 或index.jsp
- 通过爬虫工具爬取网站目录判断网站脚本类型
数据库类型(Mysql/Oracle/Accees/SQL server)
- SQL Server默认端口号1433
- Mysql默认端口3306
- Oracle默认端口1521