Gh0stCr0w/dockerlabs-cli

GitHub: Gh0stCr0w/dockerlabs-cli

DockerLabs CLI 是一款命令行工具,让用户直接从终端搜索、过滤和下载 DockerLabs 网络安全靶机,免去浏览器操作。

Stars: 0 | Forks: 0

## ![logo](https://static.pigsec.cn/wp-content/uploads/repos/cas/24/244312e6cc7869ae25f9b567be703c37cfdc80ae56638d272fb9b81a3efc5f00.png) # DockerLabs CLI ## 什么是 DockerLabs?

DockerLabs 是一个基于 Docker 容器的 CTF 平台,提供易于部署、轻量级且易于管理的网络安全实验室。该项目由 @elpingüinodemario 创建,他的努力使得成千上万的人能够以触手可及的方式学习和练习黑客技术。

## 什么是 DockerLabs CLI?

DockerLabs CLI 是一款开源的终端工具,允许用户直接搜索、查看和下载 DockerLabs 的机器,而无需使用浏览器。 该工具内置了本地缓存系统,可进行即时搜索和高级过滤,并且支持直接从命令行下载机器。 告别通过浏览网页来寻找机器的繁琐过程。只需一个命令,即可搜索、查看详情并下载它们。

# 特性 - 快速搜索与过滤:通过本地 JSON 缓存进行即时查询。支持按名称、难度、类别过滤机器,或限制返回结果的数量。 - 多语言过滤:支持英文(`Very Easy`、`Easy`、`Medium`、`Hard`)和西班牙文(`Muy Fácil`、`Fácil`、`Medio`、`Difícil`)的难度级别,兼容带重音符号和不带重音符号的输入。 - 详细信息:`dockerlabs show` 可显示每台机器的元数据,包括作者、类别、难度、发布日期、描述和直接链接。 - 自动化下载:集成 `megadl` 直接从终端下载机器,并可通过 `--mkdir` 选项自动创建目标目录。 - 可更新的本地缓存:`dockerlabs update` 会从 DockerLabs.es 获取最新信息并更新本地缓存。 - 终端界面:基于 Rich 构建的可视化界面,旨在方便导航、阅读信息和执行命令。 # 技术栈 旨在实现快速、模块化和完美美观的稳健技术栈。
Python Rich BS4 Argparse
# 项目架构 ``` dockerlabs-cli/ ├── dockerlabs/ # Paquete principal │ ├── __init__.py # Definición de versión del paquete │ ├── __main__.py # Punto de entrada (python -m dockerlabs) │ ├── cli.py # Dispatcher de argumentos & menú de ayuda principal │ ├── ui.py # Estilos Rich, banners, tablas & especificaciones │ ├── cache.py # Lógica de caché local en JSON (~/.cache/dockerlabs/machines.json) │ ├── filters.py # Funciones de normalización de texto y filtrado multilingüe │ ├── scraper.py # Lógica de web scraping para DockerLabs.es │ ├── downloader.py # Wrapper para ejecutar megadl │ └── commands/ # Subcomandos organizados │ ├── __init__.py │ ├── search.py # Subcomando: search (buscar máquinas) │ ├── download.py # Subcomando: download (descargar máquinas) │ ├── show.py # Subcomando: show (mostrar detalles) │ └── update.py # Subcomando: update (actualizar caché) ├── pyproject.toml # Configuración de build & punto de entrada CLI ├── dockerlabs.py # Script de desarrollo para pruebas locales └── README.md # Documentación del proyecto ``` # 安装 ## 开发者模式 克隆仓库并以可编辑模式安装 DockerLabs CLI: ``` git clone https://github.com/Gh0stCr0w/dockerlabs-cli.git cd dockerlabs-cli python -m venv venv source venv/bin/activate pip install -e . ``` 以可编辑模式安装允许您修改源代码并立即测试更改,而无需重新安装项目。 ### 系统依赖 DockerLabs CLI 使用 `megatools` 来管理机器的下载。您必须根据您使用的发行版进行安装。 #### Arch 衍生版: ``` sudo pacman -S megatools ``` #### Debian / Ubuntu 衍生版: ``` sudo apt install megatools ``` 如果您使用其他发行版,请在您的包管理器中搜索 megatools: - Fedora/RHEL: dnf install megatools - openSUSE: zypper install megatools - Alpine: apk add megatools 安装完成后,验证 DockerLabs CLI 是否正常工作: ``` dockerlabs --help ``` ![dockerlabs_help](https://static.pigsec.cn/wp-content/uploads/repos/cas/82/82610ffe0948bac5b85f001fc8f3c9dca8f40430cda7306e16a0a5bbad320460.png) # 用法 ## 更新数据库 获取最新的机器列表并更新本地缓存(**~/.cache/dockerlabs/machines.json**)。 ``` dockerlabs update ``` ## 搜索机器 按名称搜索机器或应用过滤器。 ``` dockerlabs search dockerlabs search --limit 5 dockerlabs search tproot dockerlabs search --difficulty "Medium" dockerlabs search --category "Hacking Infraestructura" dockerlabs search --difficulty "Very Easy" --category "Hacking Infraestructura" --limit 2 ``` ### 有效值 **难度**(`-d`,`--difficulty`): - `Very Easy` / `Muy Facil` - `Easy` / `Facil` - `Medium` / `Medio` - `Hard` / `Dificil` **类别**(`-c`,`--category`): - `Hacking Web` - `Bug Bounty` - `Hacking CMS` - `Hacking Infraestructura` - `Pivoting` ![dockerlabs_help](https://static.pigsec.cn/wp-content/uploads/repos/cas/46/46acf1df6552d1fd18210f88977071328388675592456fb7fc7ce0c32bcd0961.png) ## 显示信息 查看机器的完整详细信息。 ``` dockerlabs show baluhome ``` ![dockerlabs_help](https://static.pigsec.cn/wp-content/uploads/repos/cas/31/31fb51d745e6a21326f7093be9b429e2249873cf4f30a197123ad0e0aa20cc5f.png) ## 下载机器 从 Mega 下载机器。 ``` dockerlabs download tproot dockerlabs download tproot --mkdir dockerlabs download tproot --mkdir /path/to/destination ``` # 贡献 要通过新的子命令扩展 CLI: 1. 创建一个新模块 `dockerlabs/commands/micomando.py`。 2. 实现 `registrar(subparsers, formatter_class)` 以注册参数。 3. 实现 `mostrar_ayuda()` 以显示由 Rich 格式化的帮助信息。 4. 使用您的命令逻辑实现 `ejecutar(args)`。 5. 在 `dockerlabs/cli.py` 的 `COMANDOS` 字典中注册您的子命令。 # 许可证 本项目基于 MIT 许可证分发。有关更多详细信息,请参阅 `LICENSE` 文件。
标签:OPA, Python, 无后门, 网络安全, 逆向工具, 隐私保护, 靶场