渗透测试之信息收集(Web安全攻防渗透测试实战指南第1章)
收集域名信息
获得对象域名之后,需要收集域名的注册信息,包括该域名的DNS服务器信息和注册人的联系方式等。
whois查询
对于中小型站点而言,域名所有人往往就是管理员,因此得到注册人的姓名和邮箱信息对测试个人站点非常有用。
还有一些在线whois网站:
- 爱站工具网: https://whois.aizhan.com/
- 站长之家: http://whois.chinaz.com/
- VirusTotal: https://www.virustotal.com/gui/home/
备案信息查询
备案主要针对国内网站,网站搭建在其他国家则不需要备案。常见的网站有以下两个:
- ICP备案查询网: http://beianbeian.com
- 天眼查: https://www.tianyancha.com/
收集敏感信息
利用Google hacking
关键字 | 说明 |
site | 指定域名 |
inurl | URL中存在指定关键字的网页 |
intext | 网页正文中的关键字 |
filetype | 指定文件类型 |
intitle | 网页标题中的关键字 |
link | link:baidu.com即表示返回所有和baidu.com做了链接的url |
info | 查找指定站点的一些基本信息 |
cache | 搜索google中关于某些内容的缓存 |
eg:搜索一些学校后台管理的网页
site:edu.cn intext:后台管理
还可以利用google搜索收集数据库文件、SQL注入、配置信息、源代码泄露、未授权访问和robots.txt等信息、
还可以通过Burp Suite的Repeater功能获取一些服务器的信息、
还可以通过在GitHub上查找相关信息。
还可以通过乌云漏洞表查询历史漏洞信息: http://wooyun.2xss.cc/bugs.php 乌云已经无了,现在存在的都是别人搭建的一些镜像网站
还有一些社工库: http://site3.sjk.space/sfz.php
收集子域名信息
对于baidu.com域来说, www.baidu.com tieba.baidu.com zhidao.baidu.com 都是其子域名
主域都是重点防护区域,子域相对薄弱
子域名检测工具
主要有Layer子域名挖掘机、K8、wydomain、Sublist3r、dnsmaper、subDomainsBrute、Maltego CE等。
Layer子域名挖掘机界面包含域名、解析IP、CDN列表、Web服务器和网站状态。目前存在5.0更新版和4.X纪念版,主要区别是5.0增加了多层子域名遍历功能。
https://www.cnblogs.com/guojia000/p/11393502.html 这里面有下载地址
subDomainBrute可以递归地发现三级域名、四级域名、、、执行该工具的命令
python subDomainsbrute.py xxxx.com
搜索引擎枚举
google语法: site:baidu.com
第三方聚合应用枚举
很多第三方服务汇聚了大量的DNS数据集,可通过他们检索某些给定域名的子域名。
https://dnsdumpster.com/
证书透明度公开日志枚举
证书透明度(Certificate Transparency,CT)是证书授权机构(CA)的一个项目,证书授权机构会将每个SSL/TLS证书发布到公共日志中。一个SSL/TLS证书通常包含域名、子域名和邮件地址。
查找某个域名所属证书的最简单方法就是使用搜索引擎搜索引擎搜索一些公开的CT日志。
https://crt.sh/
https://censys.io/ipv4
还有一些在线网站查找子域名:
https://phpinfo.me/domain
收集常用端口信息
由开放端口得知开放的服务
常用工具:Nmap、Masscan、ZMap、御剑告诉TCP端口扫描工具
常见端口 & 说明 & 攻击方向
端口号 | 端口说明 | 攻击方向 |
21、22、69 | ftp、tftp文件传输协议 | 允许匿名的上传下载、爆破和嗅探操作 |
2049 | nfs服务 | 配置不当 |
139 | samba服务 | 爆破、未授权访问、远程代码执行 |
389 | Ldap目录访问协议 | 注入、允许匿名访问、弱口令 |
端口号 | 端口说明 | 攻击方向 |
22 | SSH远程连接 | 爆破、SSH隧道及内网代理转发、文件传输 |
23 | telnet远程连接 | 爆破、嗅探、弱口令 |
3389 | RDP远程桌面连接 | Shift后门(winserver2003以下)、爆破 |
5900 | VNC | 弱口令爆破 |
5632 | PyAnywhere | 抓密码、代码执行 |
端口号 | 端口说明 | 攻击方向 |
80、443、8080(Tomcat) | 常见的web服务端口 | 对应服务器版本漏洞 |
7001、7002 | WebLogic控制台 | Java反序列化、弱口令 |
8080、8089 | Jboss、Resin、Jetty、Jenkins | 反序列化、控制台弱口令 |
9090 | WebSphere控制台 | Java反序列化、弱口令 |
4848 | GlassFish控制台 | 弱口令 |
1352 | Lotus domino邮件服务 | 弱口令、信息泄露、爆破 |
10000 | Webmin-Web控制板 | 弱口令 |
端口号 | 端口说明 | 攻击方向 |
3306 | mysql | 注入、提权、爆破 |
1433 | MSSQL | 注入、提权、SA弱口令、爆破 |
1521 | Oracle | TNS爆破、注入、反弹Shell |
5432 | PostgreSQL | 爆破、注入、弱口令 |
27017、27018 | MongoDB | 爆破、未授权访问 |
6379 | redis | 未授权访问、弱口令 |
5000 |
SysBase/DB2 |
爆破、注入 |
端口号 | 端口说明 | 攻击方向 |
25 | SMTP邮件服务 | 邮件伪造 |
110 | POP3协议 | 爆破、嗅探 |
143 | IMAP协议 | 爆破 |
端口号 | 端口说明 | 攻击方向 |
53 | DNS域名系统 | 允许区域传送、DNS劫持、缓存投毒、欺骗 |
67、68 | DHCP服务 | 劫持、投毒 |
161 | SNMP服务 | 爆破、搜集目标内网信息 |
端口号 | 端口说明 | 攻击方向 |
2181 | Zoomkeeper服务 | 未授权访问 |
8069 | Zabbix服务 | 远程访问、SQL注入 |
9200、9300 | Elasticsearch | 远程执行 |
11211 | Memcache | 未授权访问 |
512、513、514 | Linux Rexec | 爆破、Rlogin登录 |
873 | Rsync | 匿名访问、文件上传 |
3690 | Svn | Svn泄露、未授权访问 |
50000 | SAP Management console | 远程执行 |
指纹识别
网站CMS指纹识别、计算机操作系统及Web系统的指纹识别
应用程序一般在html、 js、 css等 文件中多多少少会包含些特征码, 比如WordPress在robots.txt中会包含wp-admin、首页index.php中会包含generator=wordpress 3.xx,这个特征就是这个CMS的指纹,那么当碰到其他网站也存在此特征时,就可以快速识别出该CMS,所以叫作指纹识别。
在渗透测试中,对目标服务器进行指纹识别是相当有必要的,因为只有识别出相应的Web容器或者CMS,才能查找与其相关的漏洞,然后才能进行相应的渗透操作。
CMS (Content Management System)又称整站系统或文章系统。在2004年以前,如果想进行网站内容管理,基本上都靠手工维护,但在信息爆炸的时代,完全靠手工完成会相当痛苦。所以就出现了CMS,开发者只要给客户一个软件包, 客户自己安装配置好,就可以定期更新数据来维护网站,节省了大量的人力和物力。常见的CMS有Dedecms (织梦)、Discuz、 PHPWEB、 PHPWind、PHPCMS、ECShop、Dvbbs、 SiteWeaver、 ASPCMS、 帝国、z-Blog、WordPress等。
代表工具有御剑Web指纹识别、WhatWeb、WebRobo、 椰树、轻量WEB指纹识别等,可以快速识别一些主流CMS。
除了这些,还有一些在线识别网站:
- https://www.whatweb.net/
- http://whatweb.bugscanner.com/look
- https://www.yunsee.cn/cms
查找真实IP
如果目标服务器不存在CDN,那么真实IP好找得一批
CDN干嘛的?
CDN即内容分发网络,主要解决因传输距离和不同运营商节点造成的网络速度性能低下的问题。说得简单点,就是一组在不同运营商之间的对接节点 上的高速缓存服务器,把用户经常访问的静态数据资源(例如静态的html、css、 js图片等文件)直接缓存到节点服务器上,当用户再次请求时,会直接分发到在离用户近的节点服务器上响应给用户,当用户有实际数据交互时才会从远程Web服务器上响应,这样可以大大提高网站的响应速度及用户体验。
所以如果渗透目标购买了CDN服务,可以直接ping目标的域名,但得到的并非真正的目标Web服务器,只是离我们最近的一台目标节点的CDN服务器,这就导致了我们没法直接得到目标的真实IP段范围。
判断目标是否使用了CDN
通常会通过ping目标主域,观察域名的解析情况,以此判断是否使用了cdn、
还可以利用网站 https://www.17ce.com/ 上进行全国多地区的ping服务器操作,然后对比每个地区ping出的IP结果,查看这些IP是否一致,如果都是一样的,极有可能不存在CDN。如果IP大多不太一样或者规律性很强, 可以尝试查询这些IP的归属地,判断是否存在CDN。
绕过CDN寻找真实IP
在确认了目标确实用了CDN以后,就需要绕过CDN寻找目标的真实IP,下面介绍一些常规的方法。
- 内部邮箱源。一般的邮件系统都在内部,没有经过CDN的解析,通过目标网站用户注册或者RSS订阅功能,查看邮件、寻找邮件头中的邮件服务器域名IP, ping这个邮件服务器的域名,就可以获得目标的真实IP (注意,必须是目标自己的邮件服务器,第三方或公共邮件服务器是没有用的)。
- 扫描网站测试文件,如phpinfo、test等,从而找到目标的真实IP。
- 分站域名。很多网站主站的访问量会比较大,所以主站都是挂CDN的,但是分站可能没有挂CDN,可以通过tping 级域名获取分站IP, 可能会出现分站和主站不是同一个IP但在同一个C段下面的情况,从而能判断出目标的真实IP段。
- 国外访问。国内的CDN往往只对国内用户的访问加速,而国外的CDN就不一定了。因此,通过国外在线代理网站App Synthetic Monitor (https://asm.ca.com/en/ping.php)访问,可能会得到真实的IP。
- 查询域名的解析记录。也许目标很久以前并没有用过CDN,所以可以通过网站NETCRAFT (https://www.netcraft.com/) 来观察域名的IP历史记录,也可以大致分析出目标的真实IP段。
- 如果目标网站有自己的App,可以尝试利用Fiddler或Burp Suite抓取App的请求,从里面找到目标的真实IP。
- 绕过CloudFlare CDN查找真实IP。现在很多网站都使用CloudFlare提供的CDN服务,在确定了目标网站使用CDN后,可以先尝试通过在线网站CloudFlareWatch (http://ww1.crimeflare.us/#box) 对CloudFlare客户网站进行真实IP查询。
获取获取的IP
找到目标的真实IP以后,如何验证其真实性呢?如果是Web,最简单的验证方法是直接尝试用IP访问,看看响应的页面是不是和访问域名返回的一样;或者在目标段比较大的情况下,借助类似Masscan的工具批扫描对应IP段中所有开了80、443、8080端口的IP,然后逐个尝试IP访问,观察响应结果是否为目标站点。
收集敏感目录文件
在渗透测试中,探测Web目录结构和隐藏的敏感文件是一个必不可少的环节,从中可以获取网站的后台管理页面、文件上传界面,甚至可能扫描出网站的源代码。
针对网站目录的扫描主要有DirBuster、御剑后台扫描珍藏版、wwwscan、Spinder.py (轻量级快速单文件月录后台扫描)、Sensitivefilescan (轻量级快速单文件目录后台扫描)、Weakfilescan (轻量级快速单文件目录后台扫描)等工具。
社会工程学
社会工程学在渗透测试中起着不小的作用,利用社会工程学,攻击者可以从一名员工的口中挖掘出本应该是秘密的信息。
假设攻击者对一家公司进行渗透测试,正在收集目标的真实IP阶段,此时就可以利用收集到的这家公司的某位销售人员的电子邮箱。首先,给这位销售人员发送邮件,假装对某个产品很感兴趣,显然销售人员会回复邮件。这样攻击者就可以通过分析邮件头来收集这家公司的真实IP地址及内部电子邮件服务器的相关信息。
通过进一步地应用社会工程学,假设现在已经收集了目标人物的邮箱、QQ、电话号码、姓名,以及域名服务商,也通过爆破或者撞库的方法获取邮箱的密码,这时就可以冒充目标人物要求客服人员协助重置域管理密码,甚至技术人员会帮着重置密码,从而使攻击者拿下域管理控制台,然后做域劫持。
除此以外,还可以利用"社工库"查询想要得到的信息,如下图所示,社工库是用社会工程学进行攻击时积累的各方数据的结构化数据库。这个数据库里有大量信息,甚至可以找到每个人的各种行为记录。利用收集到的邮箱,可以在社工库中找到已经泄露的密码,其实还可以通过搜索引擎搜索到社交账号等信息,然后通过利用社交和社会工程学得到的信息构造密码字典,对目标用户的邮箱和OA账号进行爆破或者撞库。
渗透测试之信息收集(Web安全攻防渗透测试实战指南第1章)的更多相关文章
- 《Web安全攻防 渗透测试实战指南》 学习笔记(一)
Web安全攻防 渗透测试实战指南 学习笔记 (一) 第一章 信息收集 在信息收集中,最重要是收集服务器的配置信息和网站敏感信息(域名及子域名信息目标网站系统.CMS指纹.目标网站真实I ...
- 《Web安全攻防 渗透测试实战指南 》 学习笔记 (五)
Web安全攻防 渗透测试实战指南 学习笔记 (五) 第四章 Web安全原理解析 (一) (一)SQL注入的原理 1.web应用程序对用户输入数据的合法性没有判断. 2.参数用户可控:前端传给 ...
- 《Web安全攻防 渗透测试实战指南》 学习笔记 (四)
Web安全攻防 渗透测试实战指南 学习笔记 (四) Nmap Network Mapper 是一款开放源代码的网 ...
- 《Web安全攻防 渗透测试实战指南 》 学习笔记 (三)
Web安全攻防 渗透测试实战指南 学习笔记 (三) burp suite详解 是一款集成化渗透测试工 ...
- 《Web安全攻防 渗透测试实战指南》 学习笔记 (二)
Web安全攻防 渗透测试实战指南 学习笔记 (二) 第二章 漏洞环境及实践
- web渗透系列--信息收集
信息收集对于渗透测试前期来说是非常重要的,因为只有我们掌握了目标网站或目标主机足够多的信息之后,我们才能更好地对其进行漏洞检测.正所谓,知己知彼百战百胜! 信息收集的方式可以分为两种:主动和被动. 主 ...
- Meterpreter后渗透之信息收集
在获得目标的Meterpreter shell后 进行信息收集是后渗透工作的基础 记录一下关于meterpreter 信息收集的使用 环境: kali linux 192.168.190.141 xp ...
- 内网渗透----windows信息收集整理
一.基础信息收集 1.信息收集类型 操作系统版本.内核.架构 是否在虚拟化环境中,已安装的程序.补丁 网络配置及连接 防火墙设置 用户信息.历史纪录(浏览器.登陆密码) 共享信息.敏感文件.缓存信息. ...
- 内网渗透----Linux信息收集整理
一.基础信息收集 1.查看系统类型 cat /etc/issue cat /etc/*-release cat /etc/lsb-release cat /etc/redhat-release 2.内 ...
随机推荐
- android 数据绑定(4)实用特性及疑惑:使用控件、格式化@string/xxx、对象传递、双向数据绑定
1.在布局内使用其它控件 1.1 效果 箭头所指3个控件的内容随输入框内容而变化. 1.2 示例代码 <?xml version="1.0" encoding="u ...
- Unity图文混排
http://blog.csdn.net/akof1314/article/details/49028279 http://blog.csdn.net/akof1314/article/details ...
- Postman发送POST请求到Spring Boot的正确姿势
最近用Spring Boot搭建了一些restful api,写起来真的很爽.但是当用Postman测试一些POST请求的接口的时候却遇到一些问题,上网冲浪查了一堆博客资料,发现都讲得不清不楚,于是记 ...
- [BUUOJ记录] [BJDCTF 2nd]文件探测
感觉算是这次比赛里面综合性很强的一道题了,主要考察SSRF.PHP伪协议包含.挖掘逻辑漏洞和一个小tirck.委屈的是第一天晚上就做到了最后一步,想到了SESSION置空即可绕过,但是最后读Flag姿 ...
- oracle数据库备份 -九五小庞
oracle数据库备份
- vue 多代理
多代理就要建立多个axios实例对象 vueconfig devServer: { open: true, host: "localhost", // host: "10 ...
- 小程序开发-开发模式下关闭http域名校验
小程序开发模式去掉域名校验 我们在开发小程序的时候如果用到其他网络地址,在小程序运行时调试器会输出 : http://www.example.com 不在以下 request 合法域名列表中,请参考文 ...
- 剑指 Offer 55 - II. 平衡二叉树
题目描述 输入一棵二叉树的根节点,判断该树是不是平衡二叉树.如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树. 示例1: 给定二叉树 [3,9,20,null,null,1 ...
- SQL分词器1.10版
处理SQL及分词效果: select * from ( select rownum as rn,tb1.stuid,tb1.summary from ( select stuid,sum(score) ...
- Kubernetes 服务部署最佳实践(二) ——如何提高服务可用性
引言 上一篇文章我们围绕如何合理利用资源的主题做了一些最佳实践的分享,这一次我们就如何提高服务可用性的主题来展开探讨. 怎样提高我们部署服务的可用性呢?K8S 设计本身就考虑到了各种故障的可能性,并提 ...