前期信息收集

信息收集是指通过各种方式获取所需要的信息

信息包括目标站点ip、中间件、脚本语言、端口、邮箱等,包括资产收集但不限于资产收集

信息收集的意义

  • 渗透测试成功的保障
  • 更多的暴露面
  • 更大的可能性

信息收集的分类

  • 主动信息收集

    通过直接对网站进行操作、扫描等,这种是有网络流量经过目标服务器的信息收集方式

  • 被动信息收集

    基于公开的渠道,如搜索引擎,在不与目标交互的情况下获取信息,并尽量避免留下痕迹

需要收集的信息

  • 服务器信息(端口、服务、真实ip)
  • 网站信息(网站架构[操作系统、中间件、数据库、编程语言]、指纹信息、WAF、敏感目录、敏感文件、源码泄露、旁站、C段)
  • 域名信息(whois、 备案信息、子域名)
  • 管理员信息(姓名、职务、生日、联系电话、邮件地址)
  • 以上均是包括但不限于

域名信息收集

whois查询

通过whois查询,我们可以收集到域名的ip及其所有者的信息

可以通过域名注册商、站长工具、命令行查询等等方式查询到whois

域名备案信息

在中国大陆解析网站都需要备案,备案具有网站的很多信息,同样的我们也可以通过站长工具进行查询

注册人、邮箱反查

通过whois获取注册人和邮箱,再通过注册人和邮箱反查域名

缺点是很多公司都是dns解析的运营商注册的,并不能很好的获取到信息

子域名收集

通过搜索子域名,找到主域名的其他子网站,由于主网站往往是防御做最好的,因此可以作为寻找突破口的作用

  1. google hacking

    这是Google提供的一个信息搜集作用的语法,具体语法可以参考:

    详解GOOGLE HACK语法 - 知乎 (zhihu.com)

    最简单的用法就是:site:域名,可以找到该域名的子域名

  2. 第三方web接口查询

    DNSdumpster.com - dns recon and research, find and lookup dns records

    子域名查询 - 站长工具 (chinaz.com)

  3. 网络空间安全搜索引擎

    网络空间测绘,网络空间安全搜索引擎,网络空间搜索引擎,安全态势感知 - FOFA网络空间测绘系统

    首页 - 网络空间测绘,网络安全,漏洞分析,动态测绘,钟馗之眼,时空测绘,赛博测绘 - ZoomEye(“钟馗之眼”)网络空间搜索引擎

    Shodan Search Engine

    这种搜索引擎跟普通搜索引擎的区别在于,这种搜索引擎会一直对公网进行扫描,可以通过这种引擎,用被动收集信息,达到一定的主动收集方式的效果,缺点是这种引擎一般都是收费的

  4. ssl证书查询

    crt.sh | Certificate Search

    https://developers.facebook.com/tools/ct/search/

    可以查询到https协议的网站的信息

  5. js文件发现子域名

    Threezh1/JSFinder: JSFinder is a tool for quickly extracting URLs and subdomains from JS files on a website. (github.com)

    可以通过一些自动化工具来发现子域名

  6. 借助各种工具

IP信息收集

  1. ip反查域名

    如果渗透目标为虚拟主机,那么通过IP反查到的域名信息很有价值,因为一台物理服如果渗透目标为虚拟主机,那么通过IP反查到的域名信息很有价值,因为一台物理服务器上面可能运行多个虚拟主机。这些虚拟主机有不同的域名,但通常共用一个IP地务器上面可能运行多个虚拟主机.这些虚拟主机有不同的域名,但通常共用一个IP地址。如果你知道有哪些网站共用这台服务器,就有可能通过此台服务器上其他网站的漏洞获取服务器控制权,进而迂回获取渗透目标的权限,这种技术也称为“旁注"漏洞获取服务器控制权,进而迂回获取渗透目标的权限,这种技术也称为**“旁注”**

  2. 域名查询ip

  3. 判断与绕过CDN

    由于CDN会导致我们在查询域名对应IP时,查询到的是CDN,因此我们需要一些方法去判断和绕过CDN以获得真实IP

  4. C段存活主机探测

    • Nmap

      1
      2
      nmap -sP www.XXX.com/24
      nmap -sP 192.168.1.*
    • 各种扫描器

端口信息收集

端口类型:

  • 周知端口:众所周知的端口号,一般都用于固定分配给常用的服务,范围:0-1023
  • 动态端口:一般不固定分配某种服务,范围:49152-65535
  • 注册端口:用于分配给用户进程或程序,范围:1024-49151

Nmap

一款开源的网络探测和安全审查的工具

功能介绍

  • 主机发现
  • 端口发现
  • 服务发现
  • 检测操作系统,硬件地址,以及软件版本
  • 检测脆弱性漏洞

端口状态

image-20220918201629375

基础用法

下面是一个经典的nmap扫描

1
nmap -A -T4 192.168.1.1

-A:启用一个全面的扫描

-T4:时序选择,有T0-T5不同的六种选项,可以指定不同的速度,速度为0-5递增,但网络带宽需求增加,T5是牺牲准确度来提升速度,扫描国内网站常用为T4

目标指定的方式:

  • 单一主机扫描:192.168.1.1
  • 子网扫描:192.168.1.1/24
  • 多主机扫描:192.168.1.1 192.168.100.1
  • 主机范围扫描:192.168.1.1-100
  • IP列表扫描:-iL list.txt
  • 除了指定IP以外的子网主机:192.168.1.1/24 --exclude 192.168.1.1
  • 除了指定文件中的IP的子网主机:192.168.1.1/24 --excludefile list.txt
  • 特定端口扫描:nmap -p 80,21,23 192.168.1.1

一些常用的参数:

-sS:SYN扫描,半开放扫描。打开一个不完整的TCP连接,也就是不需要三次握手。优点是不需要产生任何会话,目标主机也不会记录该扫描,扫描速度快,效率高。缺点是需要最高权限执行

-sA:ACK扫描

-sP:ICMP扫描,通过PING扫描

-sT:TCP扫描,通过完整的TCP连接扫描

-Pn:扫描前不进行ping

-iL:导入扫描列表

-v/sV:探测版本,可能会减缓扫描速度

-oG 文件名:按照nmap的格式输出文件

-O:探测操作系统版本

–script:指定脚本进行漏洞扫描