信息收集
渗透测试的灵魂是信息收集
一个正常运行的网站,会有以下要素:
操作系统,框架、cms,接口,数据库,编程语言,服务器ip,域名,CDN,端口、协议,DNS
信息收集一般分为主动信息收集与被动信息收集。两者的区别在于是否与目标主机进行交互。一般来说,被动信息收集一般使用特殊的搜索引擎还有一些被动信息收集工具,尽可能减少和目标的交互,达到隐藏自身的目的。
对象
1.网站 :源码 robots文件 后台登录
2.服务器 :IP地址 服务器操作系统类型和版本 端口开放情况
3.管理员 :个人信息 手机号 社交账号 常用密码 敏感数字
IP查询
- 命令:ping ,nslookup
- 工具:站长之家
端口扫描
- nmap
- 御剑端口扫描
- shell、python脚本
whois查询
- 站长工具
- ip138
- 中国万网
- 爱站网
注册人、邮箱、电话通过google、或在线whois网站反查(很重要)
子域名查询
子域名探测可以帮助我们发现渗透测试中更多的服务,他们在安全评估范围内,从而也就增加了发现漏洞的机会。查找一些用户上较少,被人遗忘的子域名,其上运行的应用程序可能会使我们发现关键漏洞。通常,同一组织的不同域名/应用程序中存在相同的漏洞。如果在防御措施严密的情况下无法直接拿下主域,那么就可以采用迂回战术拿下子域,然后无限靠近主域。
- 谷歌语法:例如:site:sina.com
- Layer子域名挖掘机
- 第三方网站查询:http://tool.chinaz.com/subdomain,https://dnsdumpster.com/
- 证书透明度公开日志枚举:https://crt.sh/,http://censys.io/
- 其他途径:https://phpinfo.me/domain,http://dns.aizhan.com,https://x.threatbook.cn/
旁站C段查询
旁站信息:旁站是和目标网站在同一台服务器上的其它的网站,主站无法获取权限的情况下,旁站便可以作为攻击入口,然后再想办法跨到真正目标的站点目录中。
C段:C段是和目标机器ip处在同一个C段的其他机器;通过目标所在C段的其他任一台机器,想办法跨到我们的目标机器上。对于红蓝对抗和护网,C段扫描比较有意义。但是对于单独网站的渗透测试,C段扫描意义则不大。每个IP有ABCD四个段,举个例子,192.168.0.1,A段就是192,B段是168,C段是0,D段是1,而C段嗅探的意思就是拿下它同一C段中的其中一台服务器,也就是说是D段1-255中的一台服务器,然后利用工具嗅探拿下该服务器。
网站架构
网站系统类型识别方式
- windows不区分大小写,Linux区分大小写
- 通过ping,Windows的TTL值都是一般是128,Linux则是64。所以大于100的肯定是Windows,而几十的肯定是Linux。但也不完全准确,而且有的服务器禁止ping
- 判断目标网站服务器的具体版本的话,可以采用nmap扫描,-O和-A都能扫出来
数据库类型
- Access【小型数据库,免费】:全名是Microsoft Office Access,是由微软发布的关联式数据库管理系统。数据库后缀名:.mdb。一般是asp的网页文件用access数据库
- SQL Server【中型数据库,几千】:由Microsoft开发和推广的关系数据库管理系统(DBMS),端口号为1433。数据库后缀名 .mdf
- MySQL【中小型数据库,开源】:是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的应用软件之一,MySQL数据库大部分是php的页面。默认端口是3306
- Oracle【大型数据库,费用高】:又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。常用于比较大的网站。默认端口是1521
网站容器
web服务器类型:Apache、Nginx、Tomcat 、IIS。知道了web服务器是哪种类型后,我们还要探测web服务器具体的版本。比如Ngnix版本<0.83会有解析漏洞 ,IIS6.0会有文件名解析漏洞、IIS7.0会有畸形解析漏洞等。不同的web服务器版本,存在着不同漏洞。
网站开发语言
脚本类型:php/jsp/asp/aspx
判断方法:
1.可以根据网站URL来判断
2.site:xxx filetype:php
3.可以根据火狐浏览器的插件Wappalyzer来判断
网站指纹识别工具
识别出相应的Web容器或者CMS,就能查找与其相关的漏洞。常见的CMS有:WordPress、Dedecms、Discuz、PhpWeb、PhpWind、Dvbbs、PhpCMS、ECShop、、SiteWeaver、AspCMS、帝国、Z-Blog等。
- 御剑指纹识别
- 云悉在线指纹识别:http://www.yunsee.cn/finger.html
- WhatWeb工具:https://whatweb.net/
潮汐指纹:http://finger.tidesec.net - 火狐浏览器插件——Wappalyzer(强推)
确认web 服务器身份的最简单最基本的方式是利用netcat查看 HTTP 响应报头中的服务器字段
目录/敏感文件扫描
搜索网站目录下面的敏感文件,间接识别网站使用的框架或者内容管理系统
- 后台目录:弱口令,万能密码,爆破
- 安装包:获取数据库信息,甚至是网站源码
- 上传目录:截断、上传图片马等
- mysql管理接口:弱口令、爆破,万能密码,然后脱裤,甚至是拿到shell
- 安装页面 :可以二次安装进而绕过
- phpinfo:会把你配置的各种信息暴露出来
- 网站文本编辑器:fck、ke等
- iis短文件利用:条件比较苛刻 windows、apache等
- 测试文件
- 网站备份文件
提到了网站敏感目录就要注意robots.txt文件
robots.txt 文件是专门针对搜索引擎机器人robot 编写的一个纯文本文件。我们可以在这个文件中指定网站中不想被robot访问的目录。这样,我们网站的部分或全部内容就可以不被搜索引擎收录了,或者让搜索引擎只收录指定的内容。
因此我们可以利用robots.txt让Google的机器人访问不了我们网站上的重要文件,Google Hack的威胁也就不存在了。
假如robots.txt文件部分内容如下:
User-agent:*
Disallow: /data/
Disallow: /db/
Disallow: /admin/
Disallow: /manager/
其中“Disallow”参数后面的是禁止robot收录部分的路径,例如我们要让robot禁止收录网站目录下的“data”文件夹,只需要在Disallow参数后面加上 /data/ 即可。如果想增加其他目录,只需按此格式继续添加。文件编写完成后将其上传到网站的根目录,就可以让网站远离Google Hack了。
虽然robots文件目的是让搜索蜘蛛不想爬取想要保护的页面,但是如果我们知道了robots文件的内容的话,我们就可以知道目标网站那些文件夹不让访问,从侧面来说这些文件夹就是非常重要的了。
工具 :
- 御剑指纹识别
- 谷歌黑客语法
site:限制搜索范围的域名
inurl:限制搜索的url中必须存在的内容
intext:限制搜索的页面中必须存在的内容
intitle:限制搜索的页面的标题栏中的内容
filetype:限制搜索的文件类型
系统学习谷歌语法:https://www.exploit-db.com/
内容敏感信息泄露
搜索文件:
site:target filetype:doc/filetype:docx
site: target.com filetype:php
site: target.com filetype:aspx
寻找参数传参:
site: target.com inurl:.php?id=
site: target.com inurl:.php?user=
site: target.com inurl:.php?book=
寻找登录点:
site: target.com inurl:login.php
site: target.com intext: “login”
site: target.com inurl:portal.php
site: target.com inurl:register.php
寻找目录:
site: target.com intext: “index of /”
寻找重要的东西:
site: target.com filetype:txt
site: target.com inurl:.php.txt
site: target.com ext:txt
空间搜索引擎
- shadon
- 钟馗之眼
- fofa
CDN
CDN即内容分发网络,主要解决因传输距离和不同运营商节点造成的网络速度性能低下的问题。说的简单点,就是一组在不同运营商之间的对接点上的高速缓存服务器,把用户经常访问的静态数据资源直接缓存到节点服务器上,当用户再次请求时,会直接分发到离用户近的节点服务器上响应给用户,当用户有实际数据交互时才会从远程Web服务器上响应,这样可以大大提高网站的响应速度及用户体验。
CDN的优势:
- 提高用户访问速率,优化用户使用体验
- 隐藏真实服务器的IP
- 提供WAF功能,访问请求会先经过CDN节点的过滤,该过滤可对SQL注入、XSS、Webshell上传、命令注入、恶意扫描等攻击行为进行有效检测和拦截。CDN节点将认为无害的数据提交给真实的主机服务器。
几种访问方式的不同
- 传统访问:用户访问域名—>解析服务器IP—>访问目标主机
- 普通CDN:用户访问域名—>CDN节点—>真实服务器IP—>访问目标主机
- 带WAF的CDN:用户访问域名—>CDN节点(云WAF)—>真实服务器IP—>访问目标主机
因此,在渗透测试中,为了要知道网站服务器的真实IP,我们必须绕过CDN查找出网站的真实ip地址。
判断网站是否开启CDN
- 在不同的地区ping相同网址,如果得到不同的IP地址,则可以判断该网站开了CDN加速,即“就近原则”
- 使用在线工具直接查:http://ping.chinaz.com/
CDN是不便宜的,一般可能只会对主站或者流量大的子站点做了 CDN
WAF识别
Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护。WAF与常规防火墙的区别在于,WAF能够过滤特定Web应用程序的内容,而常规防火墙则充当服务器之间的安全门。
通过检查HTTP流量,它可以防止源自Web应用程序安全漏洞的攻击,例如SQL注入,跨站点脚本(XSS),文件包含和安全性错误配置。
WAF开发人员使用正则表达式、标签器、行为分析、信誉分析,机器学习。通常,所有这些技术一起使用。WAF还可以实现其他功能,DDoS保护、禁止攻击者的IP、监控可疑IP、添加安全标头(X-XSS-Protection,X-Frame-Options等)、向cookie添加http-only标志、实现HSTS机制和CSRF令牌。此外,一些WAF还为网站提供了JavaScrIPt客户端模块。
WAF一句话描述,就是解析HTTP请求(协议解析模块),规则检测(规则模块),做不同的防御动作(动作模块),并将防御过程(日志模块)记录下来。
主要分类:
- 硬件设备类:目前安全市场上,大多数的WAF都属于此类。它们以一个独立的硬件设备的形态存在,支持以多种方式(如透明桥接模式、旁路模式、反向代理等)部署到网络中为后端的Web应用提供安全防护。
相对于软件产品类的WAF,这类产品的优点是性能好、功能全面、支持多种模式部署等,但它的价格通常比较贵。国内的绿盟、安恒、启明星辰等厂商生产的WAF都属于此类 - 软件产品类:这种类型的WAF采用纯软件的方式实现,特点是安装简单,容易使用,成本低。但它的缺点也是显而易见的,因为它必须安装在Web应用服务器上,除了性能受到限制外,还可能会存在兼容性、安全等问题。这类WAF的代表有ModSecurity、Naxsi、网站安全狗等
- 基于云的WAF:随着云计算技术的快速发展,使得其于云的WAF实现成为可能。国内创新工场旗下的安全宝、360的网站宝是这类WAF的典型代表。它的优点是快速部署、零维护、成本低。对于中、小型的企业和个人站长是很有吸引力的。
WAF识别原理:WAF指纹是WAF开发人员使用不同的方法通知用户请求被阻止,因此,可以通过分析对攻击请求的响应来识别WAF。
工具:
- waf00f https://www.example.com
- nmap www.example.com –-script=http-waf-detect.nse -sn
- sqlmap -u "https://www.example.com" --identify-waf --batch
被动信息收集
一些补充
https://beian.miit.gov.cn/ // 域名备案查询(查找域名备案)
https://tool.chinaz.com/ //站长工具(对于IP,网站whois信息的检索)
https://www.tianyancha.com/ //天眼查(针对企业资产架构梳理,有没有子公司之类的)
https://fofa.info/ //FOFA网络空间搜索引擎(搜索网络空间资产。一个网站的端口、协议、中间件,都属于网络空间资产)
https://www.shodan.io/ //Shodan(额外还可以搜索到摄像头等物理设备)
https://hunter.qianxin.com/ //鹰图平台(搜索网络空间资产)
https://tools.verifyemailaddress.io/ //(验证邮箱真实性)
http://whatweb.bugscaner.com/look/ //CMS指纹
主动信息收集(工具与目标交互,以获取敏感数据)
1.快速端口扫描组合——masscan+nmap大法
masscan扫描开放端口,nmap扫描服务,堪称完美!yyds!!!
- masscan扫出开放的端口
masscan ip -p 1-65535 –rate=1000 —open-only
需要注意的是 –rate别太大容易被封ip,根据具体环境调节,越大越快
常见端口
21:文件传输 FTP
22:SSH弱口令
23:Telnet
25:电子邮件
53:DNS
67:DHCP
873:rsync 未授权访问漏洞
110:POP3
135:RPC
139:NetBIOS
443:HTTPS
445:SMB协议
3306:MySQL弱口令
3389:远程桌面
1521:Orale
1433:sql server
6379:redis未授权访问漏洞
常见的135、137、138 、139 、445,这几个端口经常爆发漏洞
- nmap扫描端口详情
nmap -p x,y,z (masscan扫出来的端口) -sC -sV -oA all_ports ip
2.扫描网站框架——Zaproxy(kali自带的一款针对web应用程序漏洞扫描的软件)
下载地址:https://www.zaproxy.org/download/
3.快速网络资产渗透集成化工具——- gorailgun 红队人员的最爱!
GitHub:https://github.com/lz520520/railgun
参考资料:
https://blog.csdn.net/d1996a/article/details/108640677
https://bbs.zkaq.cn/t/6685.html
http://blog.nsfocus.net/penetration-test-1/
https://bbs.zkaq.cn/t/4727.htm