信息收集内容总览
bash
域名
子域名
真实ip
中间件
脚本语言
端口
服务器信息(端口、服务、真实iP)
网站信息(网站架构(操作系统、中间件、数据库、编程语言)、指纹信息、WAF、敏感目录、敏感文件、源码泄露、旁站查询、C段查询)
域名信息(whois、备案信息、子域名)
人员信息(姓名、职务、生日、联系电话、邮件地址)
提示提示:
本文里面很多工具都是网址,还有站长之家之类的,csdn一直判断成暗链,可以去我自己博客查看完整全文:
多说一句:csdn对网安真的不友好,全文链接都不让放。。。》好淘云《

自动化信息收集项目
ARL灯塔(常用)
安装方式(以 Kali 环境为例):
进入 root 用户:su
查看是否已经安装 docker:docker
(如果没有 docker 环境,请自行查阅资料安装 docker)
获取 ARL 项目(Github搜索:TophantTechnology/ARL):
git clone 项目地址
进入文件夹:cd ARL/docker
修改 yaml 文件:vim config-docker.yaml
在 FOFA 下面添加 RISKIQ,注意空格和对齐:
yaml
#Fofa API 配置项
FOFA:
URL: "fofa.info"
EMAIL: "xxxxxxxx@qq.com"
KEY: "xxxxxxxxxxxxxxxxxxxxxxx"
RISKIQ:
EMAIL: ""
KEY: ""
在当前目录创建容器数据卷:docker volume create --name=arl_db
输入启动命令启动:docker-compose up -d
后续使用:
进入文件夹:cd ARL/docker
输入启动命令启动:docker-compose up -d
登录到 ARL (默认端口:5003):https://<IP>:5003(注意是 https)
默认账号: admin / 密码: arlpass

zpscan(常用)
说明:
一款好用的命令行信息收集工具,支持 web 信息收集、目录扫描、子域名收集、端口扫描、poc 扫描等功能。项目可在 Github 搜索 zpscan 获取。
将获取的 exe 文件放置到资源文件(config.yaml、resource/)的同目录下。
使用(建议使用 powershell):
查看说明 ./zpscan -h
bash
Usage:
zpscan [command]
Available Commands:
alive WEB存活扫描
crack 常见服务弱口令爆破
dirscan 目录扫描
domainscan 子域名收集
expscan exp扫描
help Help about any command
ipscan 端口扫描
pocscan poc扫描
webscan web信息收集
Flags:
--debug show debug output
-h, --help help for zpscan
-i, --input string single input(example: -i 'xxx')
-f, --input-file string inputs file(example: -f 'xxx.txt')
--no-color disable colors in output
-o, --output string output file to write log and results (default "result.txt")
--result string output file to write found results
web 信息收集:./zpscan webscan -i '目标域名'

子域名收集:./zpscan domainscan -i '目标域名'
Kunyu (坤舆)
项目获取:Github 搜索 knownsec/Kunyu
Kunyu 是一款高效资产收集工具,使用方法与 MSF 有相似之处。工具调用了 ZoomEye 和 SeeBug 的 API,使得资产收集更加方便快捷。
安装依赖文件:pip3 install -r requirements.txt
安装 Kunyu:python3 setup.py install
设置 API(必须):
kunyu init --apikey "<your zoomeye key>" --seebug "<your seebug key>"
进入 Kunyu 控制台:kunyu console 或者 kunyu

常见使用:
查看用户信息:info
查找IP信息:SearchHost <IP> (如:SearchHost 222.22.2.2)
查找网站信息:SearchWeb <url>
查找子域名:SearchDomain <主域名>
搜索Icon资产:SearchIcon <本地Icon文件地址/远程Icon文件地址>
查看历史漏洞(举例):Seebug Thinkphp
ShuiZe (水泽)
项目获取:Github 搜索 0x727/ShuiZe_0x727
(注:如遇本地环境报错,建议使用 Docker 搭建)
安装依赖文件:pip3 install -r requirements.txt
使用示例:
bash
python3 ShuiZe.py -d domain.com # 收集单一的根域名资产
python3 ShuiZe.py --domainFile domain.txt # 批量跑根域名列表
python3 ShuiZe.py -c 192.168.1.0,192.168.2.0,192.168.3.0 # 收集C段资产
python3 ShuiZe.py -f url.txt # 对url里的网站漏洞检测
python3 ShuiZe.py --fofaTitle XXX大学 # 从fofa里收集标题为XXX大学的资产
python3 ShuiZe.py -d domain.com --justInfoGather 1 # 仅信息收集,不检测漏洞
python3 ShuiZe.py -d domain.com --ksubdomain 0 # 不调用ksubdomain爆破子域名
网络空间测绘
集成测绘工具:Finger
配置(必要):可以在 config/config.py 中进行修改
python
# 设置线程数,默认30
threads = 30
# 设置Fofa key信息
Fofa_email = ""
Fofa_key = "" (不是密码)
# 普通会员API查询数据是前100,高级会员是前10000条。
Fofa_Size = 100
# 设置360quake key信息
QuakeKey = ""
# 是否选择在线跟新指纹库,默认为True
FingerPrint_Update = True
使用方法参数:
bash
-u 对单个URL进行指纹识别
-f 对指定文件中的url进行批量指纹识别
-i 对ip进行数据查询采集其web资产
-fofa 调用fofa api进行资产收集
-quake 调用360 quake进行资产收集
-o 指定输出方式,支持xlsx,json,xls。

域名信息搜集
使用威胁情报中心
如 360 安全大脑等情报中心进行综合检索。

WHOIS 查询
WHOIS 是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)。
可以通过各大站长工具站(如站长之家)、或者直接在 Kali 中利用 whois 命令进行查询。
备案信息查询
可通过工信部官网或各大站长工具平台进行 ICP 备案查询。
子域名搜集
利用搜索引擎语法
例如用 site:example.com 来搜索相关子域名。
常用搜索语法:
bash
intitle:搜索网页标题中包含有特定字符的网页。
inurl:搜索包含有特定字符的URL。
intext:搜索网页正文内容中的指定字符。
filetype:搜索指定类型的文件。如"filetype:pdf"。
site:找到与指定网站有联系的URL。
通配符:星号 *
布尔逻辑:与或非 (and, |, or)
扫描工具
OneForAll
项目获取:Gitee 搜索 shmilylty/OneForAll
环境要求:python 3.8 以上版本
使用方法:python oneforall.py --target 域名 run
(扫描结果将存放于 oneforall\results 文件下)


layer(子域名挖掘机)
常用于 Windows 环境下的可视化爆破工具。

subDomainsBrute
使用:python3 subDomainsBrute.py example.com
扫描结束后会在当前目录下生成 txt 结果文件。
证书查询
注:仅限 HTTPS 网站。可以通过 crt.sh 等在线证书搜索引擎,输入目标域名查询其关联的子域名。

真实 IP 收集
超级 Ping 判断是否有 CDN

如果不同地区的响应 IP 不同,说明存在 CDN。
绕过技巧:
尝试 Ping 其顶级域名(去掉 www)。很多时候管理员只对 www 二级域名做了 CDN,而顶级域名没有配置。或者寻找边缘分站,从分站的真实 IP 推算出主站网段。
利用国外地址请求网站
通过海外节点请求网站,因为某些 CDN 服务商节点未覆盖偏僻国家,有概率直接解析到真实 IP。
查看历史 DNS 解析记录
通过一些在线的 DNS 历史记录查询工具,查看网站在套上 CDN 之前的真实 IP 记录。


利用遗留文件 phpinfo
如果目标网站存在遗留的 phpinfo.php 文件,可以在 SERVER['SERVER_ADDR'] 字段直接看到服务器的真实 IP。

主动邮件配合
让对方服务器主动发邮件给你(如利用注册、找回密码等功能),然后查看邮件原文的 Header 信息,获取发件服务器的真实 IP。

旁站和 C 段
- 旁站:同服务器下的不同站点(如 IP 相同,域名不同)。
- C 段:同网段不同服务器不同站点。一般同一个公司申请多个服务器时,会分配在相同网段下。
旁站可通过各大站长工具的"同IP网站查询"功能获取。

利用 Nmap 扫描 C 段存活主机:
nmap -sn -PE -n 192.168.1.1/24 -oX out.xml
(-sn 不扫描端口,-PE ICMP 扫描,-n 不进行 DNS 解析)
端口收集
常见高危端口与攻击技巧



Nmap 常用扫描命令
Nmap 端口状态含义:

高频命令:
bash
nmap -sV -O 192.168.0.100 # 查看端口服务版本及操作系统类型
nmap -sP 192.168.1.100 # 查看主机是否在线 (Ping扫描)
nmap -p 1-1000 192.168.1.100 # 扫描指定端口范围
nmap -sS 192.168.1.100 # 半开放 SYN 扫描(速度快,较隐蔽)
进阶命令速查:
bash
nmap -Pn 192.168.96.4 # 绕过 Ping 扫描(针对禁 Ping 主机)
nmap -sU 192.168.96.4 # UDP 端口扫描
nmap -T4 192.168.96.4 # 设置扫描速度 (T1~T5,T4较为常用)
nmap -sC 192.168.96.4 # 使用默认脚本进行扫描
nmap -A 192.168.96.4 # 强力综合扫描(耗时长)
nmap -D <假IP> 192.168.96.4 # 伪造源 IP 进行诱饵扫描
御剑高速 TCP 全端口扫描工具
适用于 Windows 的经典图形化端口扫描器。

目标网站操作系统的区分
URL 大小写敏感度
- Windows 系统:URL 不区分大小写
- Linux 系统:URL 严格区分大小写
Ping 命令 TTL 值判断
数据包每经过一个路由器,TTL 值减 1。根据最终获取的 TTL 值可以大致反推目标操作系统。
- WINDOWS NT/2000/XP 默认 TTL:128
- LINUX 默认 TTL:64
- UNIX 默认 TTL:255
示例:Ping 结果的 TTL 为 43(接近 64),大概率中间经过了二十多个节点,目标系统多为 Linux。

Nmap 系统指纹探测
使用命令 nmap -O <目标IP> 进行系统探测。


网站指纹识别(CMS 等)
CMS 概念
CMS(内容管理系统),如 WordPress、织梦(Dedecms)、ThinkPHP 等。类似于建站模具,如果在渗透测试中识别出对方使用的 CMS 及其版本,就可以直接搜索相关的公开漏洞(1day / Nday)进行测试。
CMS 识别方法
Kali 自带工具 WhatWeb
扫描单个目标:whatweb www.xxx.com

CmsVulScan (推荐)
Github 开源项目,基于 Python 编写。
使用:
python CmsVulScan.py -u 目标网址

静态文件 MD5 对比
下载目标网站特征文件(如 favicon.ico、logo.png 等)。
使用 cmd 计算其 MD5 值:certutil -hashfile favicon.ico MD5,随后在指纹库或网上比对该 MD5 对应的 CMS 程序。
CMS 漏洞利用
在识别出具体的 CMS 后,可前往漏洞库(如 Exploit-DB 等)或使用搜索引擎查询具体的 CVE 编号和利用方式(EXP)。


Web 应用框架
定义与区别
Web 应用框架用来支持动态网站及网络服务的开发。
CMS 通常是面向终端用户的一整套成品系统;而框架(Framework)是面向程序员的二次开发基础环境,将常用操作进行了封装。
- PHP 常见框架:ThinkPHP, Laravel, Yii
- Java 常见框架:Spring, Shiro, Struts2
- Python 常见框架:Django, Flask, Tornado
框架的识别
浏览器插件 Wappalyzer
可以快速识别目标网站的前后端技术栈及框架。

在线指纹平台
如 BuiltWith 等网站,提供深度的技术栈分析。

框架漏洞利用
类似于 CMS,识别出框架版本后(如著名的 Struts2 系列漏洞、Shiro 反序列化漏洞等),直接使用对应的漏洞扫描利用工具或验证脚本进行测试即可。