Loading

2. Information Gather

参考:

https://book.hacktricks.xyz/external-recon-methodology

https://book.hacktricks.xyz/pentesting/pentesting-web#web-tech-tricks web 信息收集

https://github.com/redhuntlabs/Awesome-Asset-Discovery 信息收集工具箱

主要是个人总结积累,结合网络上多篇优秀文章。

持续改进中 ~~

难免有不当之处,恳请指正。

简介

什么是信息收集? 为什么?

收集目标一系列相关信息。

信息收集主要目标是为了详细了解目标。一个复杂的系统,了解越多,就能发现更多攻击面,攻击面多了,存在缺陷的可能性也就大了。就跟和阿喀琉斯之踵一样。

要收集哪些信息?

从全局来讲。分为外网信息收集和内网信息收集,此处暂时仅关注外网。关于内网信息收集,后期会更新。

一般渗透测试,客户会指定 域名或 ip。所以就从这些给定的范围入手。

像一些 其它信息收集方法,asn 号、favicon 同类站点、注册人查询 等等,在指定特定范围时,就没必要收集这些信息。

开始之前,我们要了解:

  • 一个机构可以有多台服务器,一个服务器上一般有一个公网 ip,一个 ip 上可以有多个 web 端口 ( 多个中间件同时开启,80 8080 443 等),一个端口可以有多个网站 ( 虚拟主机,host 头部不同),一个网站不同目录可以使用不同的 cms。
  • Web 渗透测试,主要就是测试网站安全性,每个网站都是可能的入侵点。所以信息收集主要目标之一是收集到所有网站入口。

收集方法、步骤

假设一台服务器上只有一个公网 IP,一台服务器上可能开放多个网站端口,一个端口可能有多个网站(虚拟主机)。可能一个服务器上搭建多个网站,暴露一个 80 端口,根据 host 头部区分请求转达的目标。这个时候的不同的域名就对应不同的网站。这也是一个入口点。

通常来讲,web 服务器若未设置 cdn,则web 端口通常时 固定的 80 、443 而当设置 cdn,则可以指定其它端口。因为 域名解析只能解析到域名所对应的 ip 信息,无法获取任何跟端口相关的信息。而 cdn 回源可以指定端口。

大纲
  1. 对客户所给的所有域名找到所有子域。

    原因:因为有可能不同子域对应不同的服务器。

    工具:oneforall

  2. 对获取到的所有域名,尝试获取 ip 。对获取到的 ip 整合去重

    目的:获取到目标范围内所有暴露在公网上的 web 服务器 ip。

    工具:脚本去重。域名解析获得 ip,若碰到 cdn ,尝试绕过。

  3. 对每个获得到的 ip ,扫描其端口,探测服务。

    工具:nmap + exploit-db 或者 nessus

    更多技巧见下文。

  4. 定位到每个 web 端口,以及其上的网站域名。

    web 信息收集,见下文。

识别服务

也可以用 shodan fofa 之类,收集端口

对每个 ip 进行端口扫描,识别第三方软件,可以利用 nessus 。或 nmap + searchsploit

如果找到命令执行的漏洞,那就不用进行下一步了。

# ICMP 请求
nmap -PEPM -sP -n 199.66.11.0/24

# 常见的 http 端口
nmap -p80,443,8000-8100,8443 199.66.11.0/24

#udp scanner
nmap -sU -sV --version-intensity 0 -F -n 199.66.11.53/24

# sctp 
nmap -T4 -sY -n --open -Pn <IP/range>
Web 信息收集

综合工具:WhatWebnikto

对于 web 站点,则进行进一步信息收集。

  1. web server。

    由于前面通过端口服务探测,可以得到 web server 版本信息,以及是否存在漏洞。

    此处进一步可以尝试扫描其默认的敏感文件,例如 tomcat 的manage 界面。

    例如已知 exp、或默认路径敏感文件。

    配置缺陷,例如支持额外 http 方法 webdav put

  2. 检测是否存在 WAF 等相关信息。

    可以通过 wafw00f 或恶意payload 探测。

    若有 WAF ,使用代理池、爬虫白名单、时延等技术绕过 WAF 对探测的拦截。否则可能会影响后面的探测。

    # 代理池
    https://www.kuaidaili.com/
    https://github.com/jhao104/proxy_pool
    
  3. 收集 cms 相关信息。

    如果目标使用的是 cms,可以尝试 代码审计。途径:网络公开的源码,或跑网站备份文件。

    此外 cms 的敏感文件、默认凭证等信息。

    # 在线识别 cms 网站
    http://whatweb.bugscaner.com/  
    https://whatcms.org/ 
    
  4. 收集 脚本语言、数据库等信息。可以通过 url 探测,或者常见的搭建组合猜想。

    aspx mssql windows iis
    php mysql windows/linux apache
    jsp mssql/oracle windows/linux tomcat
    javaee mysql/oracle/ windows/linux weblogic/jboos/tomcat
    

    某些脚本语言可能也存在漏洞。可以和其它网站功能结合利用。

  5. 对于网站功能,则进行相应漏洞检测。

    重点关注:sql 注入,文件上传、下载,代码、命令执行,越权,登录界面跑密码等等。

    主要关注能进行命令执行的漏洞。而像某些漏洞,例如 客户端 xss,一般而言利用条件苛刻,不需要投入太多精力。

  6. 可以检测的其它信息。

    如果目标未使用 cms ,则可以尝试 跑/爬取 目录文件 ,或者尝试 使用 burp param minier 发现隐藏参数。

    工具: burp 的 scanner 功能可以爬取。dirsearch 主要用来爆破目录、文件。

其它

不同站点的组建方式
# 域名类站点:
	www.xiaodi8.com -> zblog
	test.xiaodi8.com -> zbzcms
	port.xiaodi8.com -> tongdaOA
	bbs.xiaodi8.com -> discuz
	
# 端口站点:
	http://101.32.62.213 -> null
	http://101.32.62.213:81 -> tongdaOA
	port.xiaodi8.com -> null
	port.xiaodi8.com:88 -> zblog

# 目录站点:
	test.xiaodi8.com -> zbzcms
	test.xiaodi8.com/blog -> zblog
常见 http 40x 错误及绕过方法

https://book.hacktricks.xyz/pentesting/pentesting-web#403-forbidden-basic-authentication-401-unauthorized-bypass

posted @ 2021-05-26 18:30  沉云  阅读(161)  评论(0编辑  收藏  举报