Web安全攻防:01---信息收集(域名、备案、IP、端口、CMS、CND、敏感数据、社工库)

概念

  • 进行渗透测试之前, 最重要的一步就是信息收集
  • 信息收集的主要内容:最主要的就是收集服务器的配置信息和网站的敏感信息,其中包括域名及子域名信息、目标网站系统CMS指纹、目标网站真实IP、开放的端口等

一、收集域名信息

  • 知道目标的域名之后,我们要做的第一件事就是获取域名的注册信息,包括该域名的DNS服务器信息和注册人的联系信息等

Whois命令查询

  • whios的概念:Whois 是一个标准的互联网协议 可用于收集网络注册信息,注册的域名、 IP等信息
  • 原理:Whois 就是一个用于查询域名是否己被注册以及注册域名的详细信息的数据库(如域名所有人、域名注册商〉
  • 通过该命令可获取的重要信息:得到注册人的姓 名和 邮箱信息通常对测试个人站点非常有用,因为我们可以通过搜索引擎和社 交网络挖掘出域名所有人的很多信息。对中小站点而言,域名所有人往往就是管理员

Web安全攻防:01---信息收集(域名、备案、IP、端口、CMS、CND、敏感数据、社工库)_第1张图片

在线whois查询网站

  • 爱站工具网:https://whois.aizhan.com/
  • 站长之家:http://whois.chinaz.com/
  • VirusTotal:https://www.virustotal.com/

二、备案信息查询

  • 什么是备案?网站备案是根据国家法律法规规定,需要网站的所有者向国家有关部 门申请的 备案,这是国家信息产业部对网站的一种管理,为了防止在网上从事非法的网站经 营活动的发生
  • 注意:主要针对国内网站,如果网站搭建在其他国家,则不需要进行备案

常用的网站有以下两个

  • ICP备案查询网:http://www.beianbeian.com/
  • 天眼网:https://www.tianyancha.com/

三、收集敏感信息

①通过搜索引擎关键字进行收集

  • 可以通过搜索引擎构造特殊的关键宇语法来搜索互联网上的相关敏感信息。还可以用它来收集数据库文件、SQL注入、配置信息、源代码泄露、未授权访问和robots.txt等敏感信息

下面是浏览器的常用语法(Google、百度、雅虎等搜索引擎的语法都大同小异):

Site 指定域名
Inurl URL中存在关键字的网页
Intext 网页正文中的关键字
Filetype 指定文件类型
Intitie 网页标题中的关键字
link link:baidu.com 即表示返回所有和baidu.com做了链接的URL
Info 查找指定站点的一些基本信息
cache 搜索 Google 里关于某些内容的缓存
  • 演示案例:查找域名后缀是“baidu,com”的网站,网站中要含有关键词“李彦宏”

Web安全攻防:01---信息收集(域名、备案、IP、端口、CMS、CND、敏感数据、社工库)_第2张图片

②通过Burp Suite的Repeater功能

  • 同样可以获取一些服务器的信息 ,如运行的Server类型及版本、 PHP的版本信息等。 针对不同的Server,可以利用不同的漏洞 进行测试

Web安全攻防:01---信息收集(域名、备案、IP、端口、CMS、CND、敏感数据、社工库)_第3张图片

③其他收集方法

  • 也可以尝试在GitHub上寻找相关敏感信息,如数据库连接信息、邮箱密码、uc-key 、阿里的osskey,有时还可以找到泄露的源代码等
  • 乌云漏洞表查询历史漏洞信息:https://shuimugan.com/

四、子域名收集

  • 子域名也就是二级域名,是指顶级域名下的域名。 假设我们的目标网站规模比较大,直接从主域入手显然是很不理智的,因为对于这种规模的目标,一般其主域都是重点防护区域,所以不如先进入目标的某个子域,然后再想办法迂回接近真正的目标,这无疑是个比较好的选择

①利用子域名检测工具收集

用于子域名检测的工具主要有Layer子域名挖掘机(推荐)、 K8、wydomain、Sublist3r(推荐)、dnsmaper subDomainsBrute(推荐)、Maltego CE等

  • Layer子域名挖掘机:在域名对话框中直接输入域名就可以进行扫描,它的显示界面比较细致,有域名、解析IP、CDN列表、Web服务器和网站状态

Web安全攻防:01---信息收集(域名、备案、IP、端口、CMS、CND、敏感数据、社工库)_第4张图片

  • subDomainsBrute:用小字典递归地发现三级域名 、四级域名,甚至五级域名等不容易被探测到的域名
python subDomainsbrute.py xxx.com
  • Sublist3r:它能列举多种资源,如在Google、Yahoo、Bing、Baidu和Ask等搜索引擎中可查到的子域名,还可以列出Netcraft、VirusTota、ThreatCrow、DNSdumpster和Reverse DNS查到的子域名

②利用所搜引擎关键词搜索

  • 可以利用上面刚刚用到的所搜引擎关键词“site”来搜索与某域名相关的网页信息

Web安全攻防:01---信息收集(域名、备案、IP、端口、CMS、CND、敏感数据、社工库)_第5张图片

③通过第三方聚合应用枚举

  • 很多第三方服务汇聚了大量DNS数据集,可通过它们检索某个给定域名的子域 名。只需在其搜索栏中输入域名,就可检索到相关的域名信息

Web安全攻防:01---信息收集(域名、备案、IP、端口、CMS、CND、敏感数据、社工库)_第6张图片

④证书透明度公开日志枚举

  • 证书透明度(Certificate Transparency,CT ):是证书授权机构(CA)的 一项目, 证书授权机构会将每个SSL/TLS证书发布到公共日志中
  • 一 SSL/TLS 证书通常包含域名、子域名和邮件地址,这些也经常成为攻击者非常希望获得的有用信息

推荐使用以下网站:

  • crt.sh:http://scrt.sh/
  • censys:https://censys.io

⑤其他搜索子域名的网页和工具

  • DNSdumpster网页*:https://dnsdumpster.com/
  • 子域名爆破网站:https://phpinfo.me/domain
  • IP反查域名网站:https://dns.aizhan.com/
  • 工具:在线DNS侦查和搜索

五、端口收集

  • 通过扫描服务器开放的端口以及从该端口判断服务器上存在的服务,就可以对症下药,便于我们渗透目标服务器
  • 收集工具:Namp、无状态端口扫描工具Masscan、ZMap、御剑高速TCP端口扫描工具

Web安全攻防:01---信息收集(域名、备案、IP、端口、CMS、CND、敏感数据、社工库)_第7张图片

常见的端口及其说明如下

  • 文件共享服务端口
端口号 端口说明 攻击方向
21/22/69 Ftp/Tftp 文件传输协议 允许匿名的上传、下载、爆破和嗅探操作
2049 Nfs服务 配置不当
139 Smaba服务 爆破、未授权访问、远程代码执行
389 Ldap 目录访问协议 注入、允许匿名访问、弱口令
  • 远程连接服务端口
端口号 端口说明 攻击方向
22 SSH远程连接 爆破、 SSH隧道及内网代理转发、文件传输
23 Telnet远程连接 爆破、嗅探、弱口令
2289 Rdp 远程桌面连接 Shift(需要Windows Server 2003以下的系统)、爆破
5900 VNC 弱口令爆破
5632 PyAnywhere服务 抓密码、代码执行
  • Web应用服务端口
端口号 端口说明 攻击方向
80/443/8080 常见的Web服务端口 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 Zookeeper服务 未授权访问
8069 Zabbix 服务 远程执行、SQL注入
9200/9300 Elasticsearch服务 远程执行
11211 Memcache 服务 未授权访问
512/513/514 Linux Rexec服务 爆破、 Rlogin 登录
873 Rsync服务 匿名访问、 文件上传
3690 Svn 服务 Svn泄露、未授权访问
50000 SAP Management Console 远程执行

六、指纹识别(CMS)

  • 注意:指纹由于其终身不变性、唯一性和方便性,几乎己成为生物特征识别的代名词。而本节所讲的指纹与人类的指纹不是一个概念,而是指网站CMS指纹识别、计算机操作系统及We 容器的指纹识别等
  • 指纹识别概念:应用程序一般在html、css等文件中多多少少会包含一些特征码,比如WordPress在robots.txt 中会包含wp-admin、首页index.php中会包含generator=wordpress 3.xx。这 个特征就是这个CMS的指纹,那么当碰到其他网站也存在此特征时,就可以快速识 别出该CMS
  • CMS (Content Management System ):又称整站系统或文章系统。在2004年以前, 如果想进行网站内容管理,基本上都靠手工维护,但在信息爆炸的时代,完全靠手 工完成会相当痛苦。所以就出现了CMS ,开发者只要给客户一个软件包,客户自己 安装配置好,就可以定期更新数据来维护网站,节省了大量的人力和物力
  • 常见的CMS:Dedecms (织梦)、PHPWEB、PHPWind、PHPCMS、ECShop、Dvbbs、SiteWeaver、ASPCMS 、帝国、Z-Blog WordPress等
  • 代表工具:御剑Web 指纹识别、WhatWeb WebRobo 、椰树、轻量WEB指纹识别等可以快速识别一些主流CMS

Web安全攻防:01---信息收集(域名、备案、IP、端口、CMS、CND、敏感数据、社工库)_第8张图片

一些在线网站查询CMS指纹识别

  • BugScaner:http://whatweb.bugscaner.com/look/
  • 云悉指纹:http://www.yunsee.cn/finger.html
  • WhatWeb:https://whatweb.net/

七、绕过CDN寻找真实IP

  • 什么是CDN:CDN即内容分发网络,主要解决因传输距离和不同运营商节点造成的网络速度性能低下的问题。说得简单点,就是一组在不同运营商之间的对接节点上的高速缓 存服务器,把用户经常访问的静态数据资源(例如静态的html、css、js图片等文件〉 直接缓存到节点服务器上,当用户再次请求时,会直接分发到在离用户近的节点服 务器上响应给用户,当用户有实际数据交互时才会从远程Web服务器上响应,这样可以大大提高网站的响应速度及用户体验。
  • 如果渗透目标有CDN服务:可以直接ping目标的域名,但得到的并非真正的目标Web服务器,只是离我们最近的一台目标节点的CDN服务器, 这就导致了我们没法直接得到目标的真实IP段范围

观察渗透目标是否使用了CDN

  • 方式一:查看ping的真实对象与自己所输入的对象是否一致

  • 方式二:通过17CE网站(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 ,可以通过ping二级域名获取分站IP ,可能会出现分站和主站不是同一个IP但在同一个C段下面的情况,从而能判断出目标的真实IP段
  • 国外访问:国内的CDN往往只对国内用户的访问加速,而国外的CDN就不 一定了。因此,通过国外在线代理网站App Synthetic Monitor(https://asm.ca.com/en/ping.php)访问,可能会得到真实的IP

Web安全攻防:01---信息收集(域名、备案、IP、端口、CMS、CND、敏感数据、社工库)_第9张图片

  • 查询域名的解析记录:也许目标很久以前并没有用过CDN,所以可以通过网站NETCRAFT(https://www.netcraft.com/))来观察域名IP的历史记录,也可以大致分析出目标的真实IP段
  • 如果目标网站有自己的App ,可以尝试Fiddler或者Burp Suite抓取App的请求,从里面找到目标的真实IP
  • 绕过CloudFlare CDN查找真实IP:现在很多网站都使用CloudFlare提供的CDN服务,在确定了目标网站使用CDN后,可以先尝试通过在线网站CloudFlare Watch(http://www.crimeflare.us/)对CloudFlare客户网站进行真实IP查询

验证获取的IP

找到了真实IP之后,如何验证其真实性呢?

  • 最简单的验证方法是直接尝试用IP访问,看看响应的页面是不是和访问域名返回的一样
  • 或者在目标段比较大的情况下,借助类似Masscan的工具批扫描对应IP段中所有开了80、443、8080端口的 IP,然后逐个尝试IP访问,观察响应结果是否为目标站点

八、收集敏感目录文件

  • 概念:渗透测试中,探测Web目录结构和隐藏的敏感文件是一个必不可少的环节,从 中可以获取网站的后台管理页面、文件上传界面,甚至可能扫描出网站的源代码

常用的工具

  • DirBuster(下面介绍这种)
  • 御剑后台扫描珍藏版
  • wwwscan
  • Spinder.py(轻量级快速单文件目录后台扫描)
  • Sensitivefilescan(轻量级快速单文件 目录后台扫描)
  • Weakfilescan (轻量级快速单文件目录后台扫描)
  • 在线工具WebScan:http://www.webscan.cc/

DirBuster的使用

  • 软件介绍:DirBuster是OWASP开发的一款基于Java编写的、专门用于探视Web服务器的目录和隐藏文件。因为是 ava编写的,所以需要在Java运行环境(JRE)下安装

使用

  • Target URL输入框中输入要扫描的网址,扫描时将请求方法设置为“ Auto Switch CHEAD and GET) ”选项
  • 设置线程的数值,推荐在20-30之间。太大了容易引起系统死机
  • 选择扫描类型,如果使用个人字典扫描,则选择“List based brute force“”选项
  • 单击“Browse ”选择字典,可以选择工具自带的字典,也可以选择自己的字典
  • 在Select starting options 中选择“URL Fuzz”方式进行扫描。设置fuzzing时需要注意,,在URL to fuzz里输入“/{dir”。这里的{dir}是一个变量,用来代表字典中的每一行

Web安全攻防:01---信息收集(域名、备案、IP、端口、CMS、CND、敏感数据、社工库)_第10张图片

  • 备注:如果你扫描的目标是http://www.xxx.com/admin/,那么就要在URL to fyzz里填写 “/admin/{dir}”,意思是在“{dir}”的前后可以随意拼接你想要的目录或者后缀,例如输入“:/admin/{dir}.php”就表示扫描目录下的所有php文件

九、社会工程学

  • 概念:社会工程学在渗透测试中起着不小的作用,利用社会工程学,攻击者可以从一名员工的口中挖掘出本应该是秘密的信息
  • 应用场景:假设攻击者对一家公司进行渗透测试,正在收集目标的真实IP 阶段,此时就可以 利用收集到的这家公司的某位销售人员的电子邮箱。首先,给这位销售人员发送邮 件,假装对某个产品很感兴趣,显然销售人员会回复邮件。这样攻击者就可以通过 分析邮件头来收集这家公司的真实IP 地址及内部电子邮件服务器的相关信息。通过进 步地应用社会工程学,假设现在己经收集了目标人物的邮箱、 QQ 、电话号码、姓名,以及域名服务商, 也通过爆破或者撞库的方法获取邮箱的密码,这 时就可以冒充目标人物要求客服人员协助重置域管理密码,甚至技术人员会帮着重置密码,从而使攻击者拿下域管理控制台,然后做域劫持
  • 社工库:社工库 是用社会工程学进行攻击时积累的各方数据的结构化数据库。这个数据库里有大量信息,甚至可以找到每个人的各种行为记录。利用收集到的邮箱,可以在社工库中 找到己经泄露的密码,其实还可以通过搜索引擎搜索到社交账号等信息,然后通过 利用社交和社会工程学得到的信息构造密码字典,对目标用户的邮箱和OA账号进行 爆破或者撞库

Web安全攻防:01---信息收集(域名、备案、IP、端口、CMS、CND、敏感数据、社工库)_第11张图片

你可能感兴趣的:(Web安全攻防)