信息收集

信息收集大致讲解

英文:446词 | 中文:6986字

Posted by YY——阳阳 on January 31, 2021

前言

  进行渗透测试之前,最重要的一步就是信息收集。在这个阶段,我们要尽可能地收集目标的信息。所谓“知己知彼,百战不殆”,我们越了解测试目标,测试的工作就越容易。

信息收集的方式可以分为两种:主动和被动。

主动信息收集:通过直接访问、扫描网站,这种流量将流经网站。

被动信息收集:利用第三方的服务对目标进行访问了解,比例:Google搜索、Shodan搜索等。

  没有一种方式是最完美的,每个方式都有自己的优势,主动方式,你能获取更多的信息,但是目标主机可能会记录你的操作记录。被动方式,你收集的信息会相对较少,但是你的行动并不会被目标主机发现。一般在一个渗透项目下,你需要有多次的信息收集,同时也要运用不同的收集方式,才能保证信息收集的完整性。

域名信息收集

域名

根域:由于 ICANN 管理着所有的顶级域名,所以它是最高一级的域名节点,被称为根域名(root domain)。在有些场合,www.example.com 被写成www.example.com. ,即最后还会多出一个点。这个点就是根域名。理论上,所有域名查询都必须先查询根域名,因为只有根域名才能告诉你,某个顶级域名由哪台服务器管理。事实上也确实如此,ICANN 维护着一张列表,里面记载着顶级域名和对应的托管商。比如,我要访问www.example.com, 就必须先询问 ICANN 的根域名列表,它会告诉我.com域名由 Verisign 托管,我必须去找 Verisign,它会告诉我example.com服务器在哪里。由于根域名列表很少变化,大多数 DNS 服务商都会提供它的缓存,所以根域名的查询事实上不是那么频繁。

顶级域(国家/地区域;组织域):顶级域名是指域名最右边的那个词。顶级域名又分为两类:一是国家和地区顶级域名,200多个国家都按照ISO3166国家代码分配了顶级域名,例如中国是.cn,日本是.jp等;二是国际顶级域名,例如表示工商企业的.com,表示网络提供商的.net,表示非盈利组织的.org等。

顶级域名后缀 实体代表 顶级域名后缀 实体代表
.net 网络服务机构 .mil 军事机构
.com 商业机构 .biz 商业机构
.rog 非营利性组织 .name 个人网站
.gov 政府机构 .info 信息提供
.edu 教育机构 .mobi 手机域名

二级域:二级域名是互联网DNS等级之中,处于顶级域名之下的域名。它是域名的倒数第二个部份,二级域名就是主域名分出来的域名。很多人都误把带www当成一级域名,把其他前缀的当成二级域名,是错误的。正确的域名划分为:.com 顶级域名(一级域名),sougou.com 二级域名,tieba.sougou .com 二级域名

DNS

  • 解析顺序(迭代查询、递归查询)

    记录

    BWYOO.png

    方式

  • whois查询

    1. 站长工具 http://whois.chinaz.com/
    2. 阿里云中国万网查询 https://whois.aliyun.com/
    3. Robtex DNS
    4. 询显示关于目标网站的全面的DNS信息 https://www.robtex.com/
    5. 站长工具爱站查询 https://whois.aizhan.com/
    6. 全球Whois查询 https://www.whois365.com/cn/
  • 备案信息查询

    1. ICP/IP地址/域名信息备案管理系统 http://beian.miit.gov.cn/publish/query/indexFirst.action
    2. ICP备案查询网 http://www.beianbeian.com/
    3. 备案吧吧 https://www.beian88.com/
    4. 天眼查 http://www.tianyancha.com
  • kali工具

    Dnsenum域名信息收集 Dnsrecon域名侦察

    Dnsenum <域名>
    Dnsenum –f 字典文件路径 –noreverse
    Dnsenum –t 1 缩短等待时间为不超过1秒
    -v 详细显示所有进度和所有错误消息
      
    Fierce-dns hackingarticles.in
      
    

    Fierce域名爆破

子域名信息收集

  • 原因:子域名枚举可以在测试范围内发现更多的额域或子域,这将增大漏洞发现得几率,有些隐藏的、被忽略的子域上运行的应用程序可能帮助我们发现重大的漏洞。

  • 方法:Google黑语法(site,inurl,intitle,intext) 搜索引擎(最可怕的搜索引擎shodan) 手动工具 在线工具(https://dnsdumpster.com/ www.virustotal.com 在线子域名爆破 https://phpinfo.me/domain/ IP反查绑定域名 http://dns.aizhan.com/ https://hackertarget.com/find-dns-host-records/ https://site.ip138.com)

站点信息收集

CMS指纹识别

  指纹:网站指纹是web服务组件在开发时留下的类型、版本等标记信息,包括Web服务器指纹、Web运用指纹及前端框架指纹等。 ***   CMS:CMS(内容管理系统)又称为整站系统或文章系统,用于网站内容管理。用户只需要下载对应的CMS软件包,就能部署搭建,并直接利用CMS。但是各种CMS都具有其独特的结构命名规则和特定的文件内容,因此可以利用这些内突来获取CMS站占的具休软件cMS与版本。

工具

  • 在线工具

    BugScaner: http://whatweb.bugscaner.com/look/

    潮汐指纹:http://finger.tidesec.net/

    能判断是否使用了CDN 云悉:http://www.yunsee.cn/info.html

    WhatWeb: https://whatweb.net/

    云悉指纹: http://www.yunsee.cn/finger.html )

  • kali

  • 纯手工 :根据HTTP响应头判断,重点关注X-Powered-By、cookie等字段;根据HTML 特征,重点关注 body、title、meta等标签的内容和属性。据特殊的class判断。HTML 中存在特定 class 属性的某些 div 标签,如<body class="ke-content">

敏感目录/文件收集/源码泄露

​  对网站进行目录扫描,探测web目录结构和隐藏文件是个非常重要的环节,从中可以获取网站的后台管理页面、文件上传界面、robots.txt,甚至可能扫描出备份文件从而得到网站的源代码。

​  有时候,针对某些安全做得很好的目标,直接通过技术层面是无法完成渗透测试的。

​  此时,便可以利用搜索引擎搜索目标暴露在互联网上的关联信息。 ​例如:数据库文件、SQL注入、服务配置信息,甚至是通过Git找到站点泄露源代码,以及Redis等未授权访问、Robots.txt等敏感信息,从而达到渗透目的。

工具

  • 御剑
  • Google hacking
  • dirsearch
  • GHDB谷歌黑客数据库(https://www.exploit-db.com/google-hacking-database/)

Google Hack常用语法:

  • site:可限制你搜索范围的域名
  • inurl:用于搜索网页上包含的URL,这个语法对寻找网页上的搜索,帮助之类的很有用
  • intext: 只搜索网页部分中包含的文字(也就是忽略了标题、URL等的文字)
  • filetype:搜索文件的后缀或者扩展名
  • intitle:限制你搜索的网页标题
  • link: 可以得到一个所有包含了某个指定URL的页面列表
  • info:查找指定站点的一些基本信息
  • cache:搜索Google里关于某些内容的缓存
    **查找后台地址**:site:域名 inurl:login|admin|manage|member|admin_login|login_admin|system|login|user|main|cms
    **查找文本内容**:site:域名 intext:管理|后台|登陆|用户名|密码|验证码|系统|帐号|admin|login|sys|managetem|password|username
    **查找可注入点**:site:域名 inurl:aspx|jsp|php|asp
    **查找上传漏洞**:site:域名 inurl:file|load|editor|Files找eweb
    **编辑器**:site:域名 inurl:ewebeditor|editor|uploadfile|eweb|edit
    **存在的数据库**:site:域名 filetype:mdb|asp|#
    **查看脚本类型**:site:域名 filetype:asp/aspx/php/jsp
    **迂回策略入侵**:inurl:cms/data/templates/images/index/
    

    src漏洞平台

  • 补天:https://www.butian.net/
  • 乌云:http://www.anquan.us/
  • 国家信息安全漏洞共享平台:https://www.cnvd.org.cn
  • 漏洞盒子:https://www.vulbox.com/
  • 知道创宇:https://www.seebug.org/

服务器信息收集

web服务器指纹识别

Web服务器指纹识别是了解正在运行的web服务器类型和版本,目前市场上存在几种不同的web服务器提供商和软件版本,了解被测试的web服务器的类型,能让测试者更好去测试已知漏洞和大概的利用方法

信息

  1. Web服务器名称,版本
  2. Web服务器后端是否有应用服务器
  3. 数据库(DBMS)是否部署在同一主机(host),数据库类型
  4. Web应用使用的编程语言
  5. Web应用框架

方法

  • 手动检测

    1. 查看http头信息:https://www.cnblogs.com/charon1937/p/13717934.html
    2. 查看协议行为:观察HTTP响应头的字段组织顺序,每个服务器都有一个内部的HTTP头排序方式
    3. 浏览并观察网站(源码) HTML源码(特殊的class名称)及其注释(comment)部分,可能暴露有价值信息
    4. 刻意构造错误,nginx404
  • 工具检测

    whatweb:whatweb能够识别各种关于网站的详细信息包括:CMS类型、博客平台、中间件、web框架模块、网站服务器、脚本类型、JavaScript库、IP、cookie等等

    用法: whatweb -v

    ​ whatweb –I <批量扫描文件>

真实IP地址识别

在渗透测试中,一般只会给你一个域名,那么我们就要根据这个域名来确定目标服务器的真实IP,我们可以通过像 www.ip138.com 这样的IP查询网直接获取目标的一些IP及域名信息,但这里的前提是目标服务器没有使用CDN

  • 边缘服务器 BWsAw.png

    BWEp8.png

  • CDN

    CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。

    CDN的关键技术主要有内容存储和分发技术。

    CDN将用户经常访问的静态数据资源直接缓存到节点服务器上

    如果目标服务器使用了CDN服务,那么我们直接查询到的IP并不是真正的目标服务器的IP,而是一台离你最近的目标节点的CDN服务器,这就导致了我们没法直接得到目标服务器的真实IP。

  • 方法

    一.判断是否用了CDN?

    1. nslookup:发现返回时多个IP的话,多半使用了CDN

    2. ping: ping某个网站发现显示的是在ping其他网站,那么也就是说使用了CDN BW4H5.png

    3. 也可以使用设置代理或者使用在线从不同区域对目标进行ping,然后对比每个地区IP结果,如果一致就没有,如果不一致那么很可能就是使用了CDN,下面是一些在线网站

  • 站长工具:http://ping.chinaz.com/
  • 全球ping:https://www.wepcc.com
  • 17CE:https://www.17ce.com
  • IPIP:https://www.ipip.net/ip.html

    二.如何找到真实IP?

    1. 利用子域名。主域有CDN;许多情况下只有主站使了CDN,二级站点并没有,所以我们就可以直接查询分站的IP。分站的搜索方法见下文。也可以用我们可以使用搜索引擎输入site:http://baidu.com 或者inurl:http://baidu.com 来搜索 http://baidu.com 的子域名
    2. 查询主域。去掉www
    3. 网站漏洞。存在漏洞,信息泄露,主动连接
    4. 从国外访问。
      1. 国内部分 CDN 服务只针对国内,对国外的访问几乎不使用 CDN。所以我们可以通过国外冷门 DNS 查询域名。比如,nslookup http://xxx.com 199.89.126.10 C:\Users\asus\Desktop> nslookup http://hi-ourlife.com 199.89.126.10 名称: http://hi-ourlife.com Address: 45.64.65.85
      2. 国外代理网站App Synthetic Monitor(https://asm.ca.com/en/ping.php) ·历史解析记录 CDN 的 IP 地址之前所用的 IP 就是真实 IP。 https://toolbar.netcraft.com/site_report?url=www.baidu.com BW9Hp.png
    5. 通过邮件服务器。很多服务器自带邮件发送功能,可以利用它来获取真实 IP。让站点主动发送邮件,然后右键查询源代码,就能获得真实 IP。
    6. 历史DNS记录

      验证IP

      1. 直接IP地址访问,看响应的页面是不是和访问的域名返回一样;
      2. 目标段比较大的情况下,借助类似Masscan的工具批扫描对应IP段中所有开放了80、443、8080端口IP,然后逐个尝试ip访问,观察相应是否为目标站点。

端口信息搜集

  • 手工 Nmap nmap -A -v -T4 -O -sV 目标地址
  • 在线
    1. 在线网站:http://tool.chinaz.com/port/
    2. ThreatScan在线网站(网站基础信息收集):https://scan.top15.cn/
    3. Shodan:https://www.shodan.io/
  • Shodan的使用
    相关文章:https://www.freebuf.com/sectool/121339.html

==更加详细的渗透测试请看大佬文章==

https://mp.weixin.qq.com/s?src=11&timestamp=1612141669&ver=2863&signature=a4gS9eGwBmm8BrRPkKJhfpYuG40jbZKKCiMADKQXMdhZeujSEG-cCtTCCHpO827EgphO7SUBRaxcYrpBo1eZwyV2DgjBbVvfZLnCvvzxuiCQfVKgfveI4Q04-h7MAL3Q&new=1