# kali-docker **Repository Path**: exppoc/kali-docker ## Basic Information - **Project Name**: kali-docker - **Description**: docker 一键部署 kali 渗透测试环境 - **Primary Language**: Shell - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-02-16 - **Last Updated**: 2023-02-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # kali-docker > docker 一键部署 kali 渗透测试环境 ------ ## 简介 kali 是提供的官方镜像 [kali-rolling](https://hub.docker.com/r/kalilinux/kali-rolling) 是不含任何渗透工具的纯净版系统,一些常用的渗透工具(如 msf、hydra 等)需要额外安装。 虽然可以一键安装 kali 全家桶工具,但是需要占用 20G 硬盘空间且安装时间非常长,再者不是所有工具都是我们日常必须用到的,因此本着适用优先的原则做了此项目。 ## 目录结构 ``` kali-docker ├── README.md .................. [此 README 说明] ├── docker-compose.yml ......... [docker 编排剧本] ├── kali │ ├── Dockerfile ............. [docker 构建剧本] │ └── msfdb .................. [为兼容 docker 而修改过的 msf 数据库管理脚本] ├── pgdb ....................... [msf 数据库数据挂载目录,用于数据迁移] ├── run.ps1 .................... [Windows: 一键部署并进入 kali 环境] ├── run.sh ..................... [Linux: 一键部署并进入 kali 环境] ├── stop.ps1 ................... [Windows: 一键停止 kali 服务] └── stop.sh .................... [Linux: 一键停止 kali 服务] ```
关于 msfdb 脚本
即 `/usr/bin/msfdb` 脚本,本用于控制 msf 数据库的初始化、启动、停止等。 但是由于该脚本涉及到 `systemctl` 命令,因此在 docker 环境无法直接使用。 不过本项目把 msf 的 pg 数据库以容器形式部署,因此不需要使用此脚本管理数据库的启停,但是需要利用该脚本的初始化能力,因此这里针对其初始化相关的代码做了一定的修改,主要修改的地方有 3 处: - 注释 `init_db()` 方法的 `start_db` 语句以避免 `systemctl` 命令调用 - 注释 `init_db()` 方法的 `DB_PASS=$(pw_gen)` 语句,使用与 [docker-compose.yml](docker-compose.yml) 相同的固定密码而非随机密码 - 修改输出到 `/usr/share/metasploit-framework/config/database.yml` 的 `DB_HOST` 配置与 [docker-compose.yml](docker-compose.yml) 所分配的 PG 数据库 IP 一致(原本固定为 localhost) 以后若新版本的 msf 框架不适用此脚本,可据此对应修改新版本的 `/usr/bin/msfdb` 脚本。
## 部署指引 - 宿主机安装 docker、docker-compose - 下载仓库: `git clone https://github.com/lyy289065406/kali-docker` - 构建镜像并运行: - Linux: `cd kali-docker && ./run.sh` - Windows: `cd kali-docker && ./run.ps1` ## 默认工具清单 通过修改 [`kali/Dockerfile`](kali/Dockerfile) 文件可以自定义期望安装的工具,默认已安装的渗透工具清单如下: | 工具 | 描述 | 使用 | |:----:|:----:|:----| | [metasploit-framework](https://github.com/rapid7/metasploit-framework) | MSF 渗透框架 | 执行 `msfconsole` 命令可进入 msf 环境
详见[官方文档](https://tools.kali.org/exploitation-tools/metasploit-framework) | | [exploitdb](https://github.com/offensive-security/exploitdb) | 漏洞利用数据库 | 每周可执行一次 `searchsploit -u` 命令更新数据库
[官方文档](https://tools.kali.org/exploitation-tools/exploitdb) | | [hydra](https://github.com/vanhauser-thc/thc-hydra) | 账密爆破工具 | [官方文档](https://tools.kali.org/password-attacks/hydra) | | [seclists](https://github.com/danielmiessler/SecLists) | 安全列表(常用账密清单等) | 清单目录在 `/usr/share/seclists`
详见[官方文档](https://tools.kali.org/password-attacks/seclists) | | [nmap](https://github.com/nmap/nmap) | 网络嗅探 | [官方文档](https://tools.kali.org/information-gathering/nmap) | | [LinEnum](https://github.com/rebootuser/LinEnum) | Linux 本地提权检查工具 | shell 脚本在 `/usr/share/LinEnum/LinEnum.sh` | | [aircrack-ng](https://github.com/aircrack-ng/aircrack-ng) | WIFI 扫描 | [官方文档](https://tools.kali.org/wireless-attacks/aircrack-ng) | | [lynis](https://github.com/CISOfy/lynis) | 合规扫描 | [官方文档](https://tools.kali.org/vulnerability-analysis/lynis) | | [wpscan](https://github.com/wpscanteam/wpscan) | WordPress 扫描 | [官方文档](https://tools.kali.org/web-applications/wpscan) | | [skipfish](https://github.com/spinkham/skipfish) | Web 应用扫描 | [官方文档](https://tools.kali.org/web-applications/skipfish) | > 可通过 `apt-get install kali-linux-everything` 命令安装 kali 全家桶工具,在 [https://tools.kali.org/](https://tools.kali.org/) 可找到大部分 kali 工具的使用指引