信息收集(CISP-PTE笔记)
CISP-PTE信息收集
PTE测试—>风险评估
基于信息收集—>发现漏洞—>利用漏洞—>补救建议
信息收集:
hacker为了更加有效的实施攻击而在攻击前或攻击过程中对目标的所有探测活动,缩小攻击范围,了解安全架构,描绘网络拓扑,建立信息数据库
1)主动收集(直接收集,有交互)
枚举的内容:NETBIOS枚举,SNMP枚举,Unix/Linux枚举,LDAP枚举,NTP枚举,SMTP枚举,DNS枚举
方法:nmap,hping ,nc,zenmap ,appscan,wpscan,vwas,指纹识别(唯一性),社会工程学
得到:内核版本,端口范围,服务版本
2)被动收集(间接方式收集,无交互收集)
方法:第三方收集 whois收集,钟馗之眼,shaodan,社工库,暗网
得到:名字电话 email,间接
社工欺骗
信息收集的内容
网络信息,系统信息,组织信息
网络信息
域名,网段,网络协议,控制访问策略,TCP/UDP协议,内部网站,用户名,VPN接入点,系统信息运行的IDS监听策略。模拟、数字电话号码,认证机制系统评估措施防火墙等安全设施
系统信息
系统标识banner,站点目录,测试/临时文件,路由表,系统架构,站点目录,SNMP信息,系统用户名,密码
组织信息
员工信息,组织网站,公司地址,电话号码,邮箱, HTML代码中的注释,实行的安全策略,发布的新闻,与组织相关的web服务
whois信息收集
域名详细信息,域名所有者的联系方式,域名服务器网络IP地址范围,域名创建时间,过期记录,最近更新记录
通过Whois信息可以绘制组织详细的网络拓扑图,收集可以用来进行社会工程学的个人信息,收集其他内网信息
DNS查询
nslookup
dig
端口扫描 — nmap(图形化Zenmap)
nmap可以拿到较为详细的信息,探测网络上的主机(主机探测),探测目标主机的开放端口(端口探测),探测目标主机的操作系统及网络设备的硬件特性(系统检测),探测目标主机的网络服务名称及版本号(版本检测)
nmap典型作用
通过对设备或者防火墙的探测来审计它的安全性,探测目标主机所开放的端口,网络存储,网络映射,维护和资产管理,通过识别新的服务器审计网络的安全性,探测网络上的主机
namp常用参数
-v详细模式
-p指定端口范围
-O操作系统识别
-A全面检测
-sV 探测端口服务器版本
-sA ACK扫描探测防火墙
-sP Ping扫描 快速扫描
-sS TCP SYN扫描半开放扫描 比较隐蔽
-sT TCP扫描 完全建立连接会在目标主机留下日志
-sU UDP扫描 确定端口开放
常用端口
端口 | 端口说明 | 危害 |
---|---|---|
21/22/69 | ftp/tftp | 允许匿名上传下载、爆破和嗅探 |
2049 | Nfs服务 | 配置不当 |
139 | Samba服务 | 爆破、未授权访问、远程代码执行 |
389 | Ldap服务 | 注入、允许匿名访问、弱口令远程连接 |
22 | Ssh远程连接 | 爆破、嗅探、弱口令 |
23 | telnet远程连 | 爆破、嗅探、弱口令 |
3389 | Rdp远程桌面 | 后门03以下版本、爆破5 |
5632 | PyAnywhere访问 | 抓密码、代码执行 |
5900 | VNC | 弱口令、爆破 |
指纹识别
组件是网络空间最小单元,Web应用程序、数据库、中间件等都属于组件。指纹是组件上能标识对象类型的一段特征信息,用来在渗透测试信息收集环节中快速识别目标服务。
互联网随时代的发展逐渐成熟,大批应用组件等产品在厂商的引导下走向互联网,这些应用程序因功能性、易用性被广大用户所采用。大部分应用组件存在足以说明当前服务名称和版本的特征,识别这些特征获取当前服务信息,从而进行一系列渗透测试工作。
发现指纹
代表工具:御剑指纹识别,whatweb,webrobo
在线网站查询CMS指纹:
BugScaner:http://whatweb.bugscaner.com/look/
云悉指纹:https://www.yunsee.cn/
whatweb:https://whatweb.net/
web架构
大多数 web 应用可以粗略划分为三个组件(component)
1、客户端,大多数情况下是浏览器。
2、服务端,Web 服务器接收客户端的HTTP请求并进行响应。另外,有时候 Web服务器只转发请求到应用服务器(Application Server),由应用服务器来处理请求。
3、后端存储,后端存储一般是DBMS,用于查询和存储数据。
所有组件都有不同行为,这些不同行为将影响漏洞的存在性和可利用性。所有组件(无论是客户端还是服务端)都有可能产生漏洞或者其他安全问题。
客户端技术
主流的客户端技术每天都在被大量互联网用户使用,包括HTML, JavaScript, Flash …他们常用的浏览器则是Chrome,Firefox, Opera,IE/Edge,Safari等。另外,包括Android应用的webview以及部分PC客户端应用(比如QQ或者某些游戏登陆器),也会引入一部分 web 客户端技术
服务端技术
在服务端,尽管使用任何技术的任何Web应用都有或多或少的潜在漏洞,但对于某些特定技术(如PHP,Struts2等)的网站,则相对更容易产生漏洞。简单划分的话服务端技术大概有以下几类。
1、Web服务器(Web Server),包括Apache, lighttpd, Nginx, IIS.
2、应用服务器(Application Server),包括Tomcat, Jboss, Oracle Application server .
3、编程语言,包括 PHP,Java, Ruby, Python, C#.对于后三种语言,一些常见的框架包括Ruby-on-Rails, .Net MVC, Django 等。
后端存储技术
对于大多数中小型网站,数据库和Web服务器是在同一台主机的。常见的后端存储技术包括:
1、关系型数据库,包括MySQL,Oracle,DB2,SQL Server, PostgreSQL,SQLite 等
2、NoSQL, 包括 MongoDB,CouchDB,Redis等
3、目录访问,包括openLDAP,Active Directory
web服务器指纹内容
目前常见的几种web应用指纹识别
1.特殊文件的md5值匹配
2.请求响应主体内容或头信息的关键字匹配
3.请求响应主体内容或头信息的正则匹配
4.基于Url关键字识别
5.基于TCP/IP请求协议识别服务指纹
不同应用组件的指纹识别方式有所不同,例如Web应用程序和数据库
手工检测应用指纹
HTTP分析,浏览网站关注HTML源码,网站页面后缀,favico.ico图标判断cms,robots.txt文件,刻意构造错误(看默认404),目录扫描
Wfuzz使用(查找web sever中隐藏的文件和路径 )
kali中自带字典文件路径:/usr/share/wfuzz/wordlist/general/
使用命令
wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt http://IP地址/FUZZ
Zoomeye(钟馗之眼)
(https://www.zoomeye.org/)
使用语法在网站上直接可以查看
shodan搜索
https://www.shodan.io/
建议去咸鱼几块钱买个学术会员
查找真实IP
如果目标服务器购买了CDN服务,通过ping目标域名得到的可能是目标服务器的CDN节点,导致我们无法获取真正的ip范围
通过www.17ce.com进行查询,不同归属地对同一个域名进行ping,如果地址都相同很可能就不存在CDN
在确认目标使用CDN后就需要绕过CDN寻找真实的ip
1)内部邮箱源
一般邮件系统企业内部没有经过CDN解析通过目标网站用户注册或者RSS订阅功能查看邮件、寻找邮件头中的邮件服务器域名ip,ping这个邮件服务 名可以获得真实ip(必须是目标服务器自己的邮件服务器)
2)扫描网站测试文件
如phpinfo、test等得到网站真实IP
3)分站域名
很多网站主站的访问量很多,都会使用CDN但是分站可能没有挂CDN,可以通过ping二级域名获取分站ip。可能会出现和主站不同的ip但是在同一个c段下的情况从而判断出目标真实的ip段
4)国外访问
国内的CDN往往只对国内用户访问加速,而国外的 CDN就不一定加速,可以通过国外在线代理网站,或者自己翻墙访问可能会得到真实ip查看域名对应的历史ip记录
收集敏感目录信息
探测web目录结构和隐藏的敏感信息文件是一个必不可少的环节,从中可以获取网站的后台管理界面、文件上传界面、甚至扫描出网站的源代码
针对网站目录的扫描工具有:
DirBuster、dirb,御剑后台扫描珍藏版、wwwscan、Spinder.py、 Sensitivefilescan、Weakfilescan等工具
DirBuster是OWASP基于JAVA编写的,专用于探测Web服务器的目录和隐藏文件。注意需要安装java运行环境-JRE(可以直接安装JDK)