利用 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: 用于目录和文件爆破。 
 
