利用 Kali Linux 进行信息收集和枚举
重要提示: 在对任何系统进行信息收集和枚举之前,务必获得明确的授权。未经授权的扫描和探测行为是非法的,并可能导致严重的法律后果。本教程仅用于教育和授权测试目的。
Kali Linux 官方链接:
- 官方网站: https://www.kali.org/
- 官方文档: https://www.kali.org/docs/
- Kali Linux 工具列表: https://www.kali.org/tools/
教程:利用 Kali Linux 进行信息收集和枚举
信息收集通常分为被动信息收集和主动信息收集。枚举则更侧重于主动探测和识别特定系统、服务和用户的详细信息。
一、 被动信息收集 (Passive Information Gathering)
被动信息收集是指在不直接与目标系统交互的情况下收集信息。这可以最大限度地减少被目标检测到的风险。
-
1. Whois 查询:
- 目的: 获取域名的注册信息,如注册人、联系方式、域名服务器等。
- 工具:
whois
- 示例:
whois example.com
- 官方链接/信息:
whois
是一个标准的命令行工具,通常预装在 Kali Linux 中。你可以通过man whois
查看其手册页。
-
2. DNS 信息收集:
- 目的: 查询与域名相关的 DNS 记录,如 A 记录 (IP 地址)、MX 记录 (邮件服务器)、NS 记录 (域名服务器) 等。
- 工具:
dig
,nslookup
,host
- 示例:
dig example.com ANY nslookup example.com host -a example.com
- 子域名枚举工具 (被动):
- Sublist3r: 一个基于 Python 的工具,利用搜索引擎(Google, Bing, Yahoo, Baidu, Ask)以及一些在线服务(Netcraft, Virustotal, ThreatCrowd, DNSdumpster, ReverseDNS)来发现子域名。
- 安装 (如果未预装):
sudo apt install sublist3r
- 示例:
sublist3r -d example.com
- 官方链接/信息: Sublist3r 是一个流行的开源工具,你可以在 GitHub 上找到它的项目页面 (搜索 “Sublist3r github”)。
- 安装 (如果未预装):
- theHarvester: 另一个强大的工具,可以收集电子邮件地址、子域名、虚拟主机、开放端口/Banner 以及来自不同公共来源(如搜索引擎、PGP 密钥服务器和 SHODAN 计算机数据库)的员工姓名。
- 安装 (如果未预装):
sudo apt install theharvester
- 示例:
theharvester -d example.com -b google
- 官方链接/信息: theHarvester 也是一个开源工具,可以在 GitHub 上找到其项目页面 (搜索 “theHarvester github”)。
- 安装 (如果未预装):
- Sublist3r: 一个基于 Python 的工具,利用搜索引擎(Google, Bing, Yahoo, Baidu, Ask)以及一些在线服务(Netcraft, Virustotal, ThreatCrowd, DNSdumpster, ReverseDNS)来发现子域名。
-
3. 搜索引擎 Hacking (Google Dorking):
- 目的: 利用搜索引擎的高级搜索操作符来查找特定类型的文件、目录、配置错误、登录页面等敏感信息。
- 工具: 任何网络浏览器和搜索引擎 (如 Google, Bing, DuckDuckGo)。
- 示例 (Google Dorks):
site:example.com filetype:pdf
(查找 example.com 站点下的 PDF 文件)inurl:admin site:example.com
(查找 example.com 站点下 URL 中包含 “admin” 的页面)intitle:"index of" site:example.com
(查找 example.com 站点下开放的目录列表)
- 资源: Google Hacking Database (GHDB) 是一个很好的 Dorks 集合。
-
4. 公开资源和社交媒体:
- 目的: 从公司网站、社交媒体平台 (LinkedIn, Twitter, Facebook)、新闻文章、公开的财务报告等收集关于目标组织、员工和技术栈的信息。
- 工具: 网络浏览器、社交媒体分析工具。
二、 主动信息收集和枚举 (Active Information Gathering and Enumeration)
主动信息收集涉及直接与目标系统进行交互,这可能会在目标系统的日志中留下痕迹。
-
1. 网络扫描和主机发现:
- 目的: 发现网络上存活的主机。
- 工具:
ping
,arp-scan
,nmap
- 示例:
ping -c 4 example.com
(发送 4 个 ICMP 请求)sudo arp-scan --localnet
(在本地网络进行 ARP 扫描)- Nmap 主机发现:
nmap -sn 192.168.1.0/24
(Ping 扫描,不进行端口扫描)nmap -PS 192.168.1.0/24
(TCP SYN Ping)nmap -PA 192.168.1.0/24
(TCP ACK Ping)nmap -PU 192.168.1.0/24
(UDP Ping)
- Nmap 官方链接: https://nmap.org/ (Nmap 是 Kali Linux 中最核心和最强大的网络扫描工具之一)
-
2. 端口扫描:
- 目的: 识别目标主机上开放的 TCP 和 UDP 端口,从而了解其运行的服务。
- 工具:
nmap
- 示例 (Nmap 端口扫描):
nmap 192.168.1.1
(扫描目标 IP 的常见端口)nmap -p- 192.168.1.1
(扫描目标 IP 的所有 65535 个 TCP 端口)nmap -sU 192.168.1.1
(扫描 UDP 端口)nmap -sS 192.168.1.1
(TCP SYN 扫描,也称为半开放扫描,更隐蔽)nmap -sT 192.168.1.1
(TCP Connect 扫描,较容易被检测)nmap -p 80,443,22 192.168.1.1
(扫描特定端口)
-
3. 服务版本探测:
- 目的: 识别开放端口上运行的具体服务及其版本号。版本信息对于查找已知的漏洞至关重要。
- 工具:
nmap
- 示例 (Nmap 服务版本探测):
nmap -sV 192.168.1.1
nmap -sV --version-intensity 5 192.168.1.1
(设置版本探测强度)
-
4. 操作系统探测:
- 目的: 尝试识别目标主机的操作系统类型和版本。
- 工具:
nmap
- 示例 (Nmap 操作系统探测):
nmap -O 192.168.1.1
nmap -A 192.168.1.1
(启用操作系统探测、版本探测、脚本扫描和 Traceroute)
-
5. Nmap 脚本引擎 (NSE):
- 目的: Nmap 脚本引擎允许用户编写 (或使用现有的) 脚本来自动化各种网络发现任务,包括更高级的枚举、漏洞检测等。
- 工具:
nmap
- 示例 (Nmap 脚本扫描):
nmap --script default 192.168.1.1
(运行默认类别的脚本)nmap --script vuln 192.168.1.1
(运行漏洞扫描类别的脚本)nmap --script banner 192.168.1.1
(抓取服务 Banner)nmap --script smb-enum-users.nse 192.168.1.1
(针对 SMB 服务枚举用户)
- Nmap 脚本官方链接: https://nmap.org/nsedoc/
-
6. SMB 枚举:
- 目的: 针对 Windows 系统或使用 Samba 的 Linux 系统,枚举共享、用户、组等信息。
- 工具:
enum4linux
,nmap
(使用 SMB 相关脚本),smbclient
,rpcclient
- 示例:
enum4linux -a target_ip
nmap -p 139,445 --script=smb-os-discovery.nse target_ip
smbclient -L //target_ip
(列出共享)
- 官方链接/信息:
enum4linux
是一个常用的 SMB 枚举工具,你可以在其项目页面或 Kali 包描述中找到更多信息。
-
7. SNMP 枚举:
- 目的: 如果目标设备启用了简单网络管理协议 (SNMP) 并且配置不当 (例如使用默认的 community string如 “public” 或 “private”),可以获取大量关于系统配置、网络接口、路由表等信息。
- 工具:
snmpwalk
,onesixtyone
,nmap
(使用 SNMP 相关脚本) - 示例:
snmpwalk -c public -v1 target_ip
onesixtyone target_ip public
(快速扫描 community string)nmap -sU -p 161 --script=snmp-sysdescr target_ip
- 官方链接/信息:
snmpwalk
是 Net-SNMP 工具集的一部分,通常预装在 Kali 中。
-
8. SMTP 枚举:
- 目的: 尝试通过 SMTP 服务枚举有效的用户邮箱地址。
- 工具:
smtp-user-enum
,nmap
(使用 SMTP 相关脚本) - 示例:
smtp-user-enum -M VRFY -U user_list.txt -t target_mail_server_ip
nmap -p 25 --script smtp-commands target_mail_server_ip
-
9. Web 服务枚举:
- 目的: 发现 Web 服务器上的目录、文件、子域名、虚拟主机、使用的技术栈等。
- 工具:
- Dirb / Dirbuster / GoBuster / Feroxbuster: 用于目录和文件爆破。
- 示例 (GoBuster):
gobuster dir -u http://example.com -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
- 官方链接/信息: 这些都是流行的开源目录扫描工具,可以在 GitHub 上找到它们的项目页面。
- 示例 (GoBuster):
- Nikto: Web 服务器漏洞扫描器,可以识别已知的漏洞、配置错误、敏感文件等。
- 示例:
nikto -h http://example.com
- 官方链接/信息: https://cirt.net/Nikto2
- 示例:
- WhatWeb: 识别网站使用的技术,如 CMS、JavaScript 库、Web 服务器软件等。
- 示例:
whatweb http://example.com
- 官方链接/信息: WhatWeb 是一个开源项目,可以在 GitHub 上找到。
- 示例:
- Wappalyzer: 浏览器插件和命令行工具,用于识别网站技术。
- Burp Suite / OWASP ZAP: 虽然是更全面的 Web 应用安全测试工具,但它们的爬虫和扫描功能也用于枚举 Web 应用的结构和内容。
- Burp Suite 官方链接: https://portswigger.net/burp
- OWASP ZAP 官方链接: https://www.zaproxy.org/
- Dirb / Dirbuster / GoBuster / Feroxbuster: 用于目录和文件爆破。