信息收集+初步漏洞打点

发布于:2025-05-17 ⋅ 阅读:(29) ⋅ 点赞:(0)

目标:理解信息收集在渗透测试中的意义,熟悉常用工具用法,完成基本打点测试

一.理论学习:

模块 内容说明
信息收集分类 主动信息收集 vs 被动信息收集
目标发现 子域名、IP、端口、子站点、目录、接口
技术指纹识别 Web框架(如ThinkPHP)、CMS(如WordPress)、服务器中间件(如nginx、tomcat)
OSINT 思路 从公开资源(百度、Shodan、Github)收集情报
工具准备 学会这些理论是后面用工具(如 nmap, whatweb)的基础

1.信息收集分类

主动信息收集:通过直接发起与北侧目标网络间的互动来获取相关信息,如通过Nmap扫描,直接访问网站目录,暴力破解子域名等(速度快,信息新且准确,但会留下访问痕迹)

被动信息收集:通过第三方服务间接获取目标网络相关信息,如搜索引擎查询,查询DNS历史记录,查看WHOIS信息等

(隐蔽性强,但信息可能不及时或不准确)

2.目标发现

1)子域名:大型网站往往有多个子域名,有些可能安全性较弱

方法:字典爆破工具,搜索引擎,SSL证书查询,DNS区域传输测试

2)IP:确定网站真实IP

方法:DNS历史记录查询,全球ping测试,查询MX记录,SPF记录等辅助信息,通过子域名可能找到真实IP

3)端口:确定开放的服务和潜在攻击面

方法:Nmap,masscan(高速扫描工具)

关键端口:

  1. web:80,443,8080,8443
  2. 数据库:3306(MySQL),5432(PostgreSQL)
  3. 远程管理:22(SSH),3389(RDP)

4)子站点/目录:发现隐蔽的管理后台,测试页面等

工具:dirsearch,gobuster,burp suite的intruder模块

6)接口:现代应用大量使用API接口,可能暴露敏感功能

方法:分析JS文件查找API端点,使用burp等代理工具捕获请求,检查/swagger/, /api-docs/等常见文档路径

3.技术指纹识别

1)Web框架识别:知道框架后可查找已知漏洞

  • 方法

    • HTTP响应头(X-Powered-By等)

    • 默认错误页面特征

    • 特定URL路径(如/thinkphp/...)

    • 工具:whatweb, wappalyzer

2)CMS(内容管理系统)识别

  • 常见CMS

    • WordPress: 检查/wp-admin/, wp-includes/

    • Joomla: 检查/administrator/

    • Drupal: 检查/core/

  • 工具

    • CMSeek

    • 在线工具:builtwith.com

3)服务器中间件识别:不同中间件有不同的配置方法和漏洞

  • 常见中间件

    • Nginx: Server头通常包含nginx版本

    • Apache: Server头包含Apache

    • IIS: 微软特有响应头

4.OSINT(开源情报)思路

1)搜索引擎技巧

  • Google Dorking

    • site:example.com filetype:pdf

    • inurl:admin site:example.com

    • intitle:"index of" "parent directory"

2)Shodan:搜索联网设备

  • 示例查询

    • hostname:example.com

    • port:22 country:CN

    • product:nginx

3)Github情报收集:开发人员可能意外上传敏感信息

  • 搜索技巧

    • 搜索公司名+关键词(password, secret, config)

    • 检查.git目录泄露

    • 查找历史提交中的敏感信息

4)其他

  • WHOIS查询:获取注册信息

  • 社交媒体:LinkedIn员工信息

  • 历史快照:archive.org查看网站历史版本

5.常用工具详解

1)Nmap

# 基本扫描
nmap -sV -O target_ip

# 隐蔽扫描(不完成TCP握手)
nmap -sS -Pn target_ip

# 脚本扫描(使用漏洞检测脚本)
nmap --script=vuln target_ip

2)WhatWeb

# 基本使用
whatweb http://example.com

# 详细输出
whatweb -v http://example.com

3)Subfinder(子域名发现)

subfinder -d example.com -o subdomains.txt

4)dirsearch(目录爆破)

dirsearch -u http://example.com -e php,html,js -w /path/to/wordlist.txt

6.基本打点测试流程

  1. 确定范围:明确授权测试的域名/IP范围

  2. 被动收集:先通过OSINT方法收集信息

  3. 主动扫描:进行端口扫描、子域名爆破等

  4. 指纹识别:确定使用的技术栈

  5. 漏洞映射:根据技术栈查找已知漏洞

  6. 验证测试:对发现的潜在漏洞进行验证性测试

  7. 报告整理:记录所有发现,包括负面结果

二.工具实战

Amass&Httpx

被动枚举:(不跟目标通信)

amass enum -passive -d baidu.com

结果:

格式:<域名> → <记录类型> → <目标>:哪个域名通过什么记录类型关联到了哪个结果

记录类型 信息含义 实战用途
A Record 域名对应 IP 后续 Nmap 扫描
CNAME 指向别名域 检查外部服务、接管风险
MX 邮件服务器 邮件相关服务探测
NS DNS 服务器 枚举 NS、尝试 Zone Transfer
ASN/IP段 IP归属分析 扩展目标范围

主动枚举:(跟目标服务器通信)+保存结果

amass enum -active -d baidu.com -o amass_output.txt

1)格式化输出结果,提取子域名

grep -oE '[a-zA-Z0-9.-]+\.baidu\.com' amass_output.txt | sort -u > baidu_subs.txt

解释:用正则提取FQDN域名,sort -u去重,输出成只有子域名的一行一个的格式

2)探测子域是否可访问

httpx -l baidu_subs.txt -status-code -title -tech-detect -ip -o baidu_live.txt

3)识别潜在风险子域

cat amass_output.txt | grep "cname_record" | grep -v "baidu.com" > cname_candidates.txt

Nmap

功能 参数 说明
扫描目标 nmap target.com 默认扫描常用端口
指定端口 -p 80,443 扫描特定端口
所有端口 -p- 扫描所有 65535 个端口
快速扫描 -F 扫描常用 100 端口
服务识别 -sV 探测服务名称和版本
OS识别 -O 探测操作系统
使用脚本 --script=xxx 使用 NSE 脚本
输入文件扫描 -iL list.txt 从文件导入 IP 列表
输出 -oN out.txt 普通输出到文件

WhatWeb

用于识别网站所使用的技术栈,web服务器,中间件框架,CMS系统,编程语言,安全机制等

通过HTTP头部信息,HTML内容中的关键词或特征码,cookies中的特征字段,JS,CSS文件路径等进行识别

whatweb http://example.com
参数 含义
-v 显示详细信息(verbose)
-a LEVEL 识别级别(Aggression Level):从 1 到 4,默认 1,4 最激进
-U AGENT 伪造 User-Agent
-t 设置并发线程数(默认1)
-o FILENAME 输出结果到文件
--log-verbose=FILENAME 记录详细日志
--no-errors 不显示错误信息
--proxy 设置代理(如 Burp Suite)
--color=never 禁用颜色输出

用工具扫描vulhub实例

用whatweb进行技术指纹识别

用dirsearch进行目录扫描

nikto:自动检测常见漏洞,弱点配置

可进行路径遍历,文件泄露漏洞