{"id":25608248,"url":"https://github.com/dhondta/python-sploitkit","last_synced_at":"2025-04-04T11:07:58.529Z","repository":{"id":41365518,"uuid":"184007095","full_name":"dhondta/python-sploitkit","owner":"dhondta","description":"Devkit for building Metasploit-like consoles","archived":false,"fork":false,"pushed_at":"2024-07-07T21:27:11.000Z","size":2199,"stargazers_count":246,"open_issues_count":5,"forks_count":59,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-03-28T10:01:43.545Z","etag":null,"topics":["cli","cli-toolkit","console","development","devkit","metasploit-like","programming","python","tinyscript"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dhondta.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-04-29T05:45:18.000Z","updated_at":"2025-03-20T08:52:58.000Z","dependencies_parsed_at":"2024-01-03T08:26:18.324Z","dependency_job_id":"8bd63f93-cfd8-4ed9-bd4b-3bbd46cf3c3c","html_url":"https://github.com/dhondta/python-sploitkit","commit_stats":{"total_commits":265,"total_committers":4,"mean_commits":66.25,"dds":"0.060377358490566024","last_synced_commit":"b9c52f4368b0ea9256cac9d7183f41cea06eb6bd"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhondta%2Fpython-sploitkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhondta%2Fpython-sploitkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhondta%2Fpython-sploitkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhondta%2Fpython-sploitkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dhondta","download_url":"https://codeload.github.com/dhondta/python-sploitkit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247160108,"owners_count":20893764,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","cli-toolkit","console","development","devkit","metasploit-like","programming","python","tinyscript"],"created_at":"2025-02-21T20:19:53.914Z","updated_at":"2025-04-04T11:07:58.499Z","avatar_url":"https://github.com/dhondta.png","language":"Python","readme":"\u003cp align=\"center\"\u003e\u003cimg src=\"https://github.com/dhondta/python-sploitkit/raw/main/docs/pages/img/logo.png\"\u003e\u003c/p\u003e\r\n\u003ch1 align=\"center\"\u003eSploitKit \u003ca href=\"https://twitter.com/intent/tweet?text=SploitKit%20-%20Devkit%20for%20building%20Metasploit-like%20consoles.%0D%0APython%20library%20for%20easilly%20building%20framework%20consoles%20in%20a%20Metasploit-like%20style%20with%20a%20comprehensive%20API.%0D%0Ahttps%3a%2f%2fgithub%2ecom%2fdhondta%2fpython-sploitkit%0D%0A\u0026hashtags=python,programming,devkit,framework,console,ctftools\"\u003e\u003cimg src=\"https://img.shields.io/badge/Tweet--lightgrey?logo=twitter\u0026style=social\" alt=\"Tweet\" height=\"20\"/\u003e\u003c/a\u003e\u003c/h1\u003e\r\n\u003ch3 align=\"center\"\u003eMake a Metasploit-like console.\u003c/h3\u003e\r\n\r\n[![PyPi](https://img.shields.io/pypi/v/sploitkit.svg)](https://pypi.python.org/pypi/sploitkit/)\r\n[![Read The Docs](https://readthedocs.org/projects/python-sploitkit/badge/?version=latest)](https://python-sploitkit.readthedocs.io/en/latest/?badge=latest)\r\n[![Build Status](https://github.com/dhondta/python-sploitkit/actions/workflows/python-package.yml/badge.svg)](https://github.com/dhondta/python-sploitkit/actions/workflows/python-package.yml)\r\n[![Coverage Status](https://raw.githubusercontent.com/dhondta/python-sploitkit/main/docs/coverage.svg)](#)\r\n[![Python Versions](https://img.shields.io/pypi/pyversions/sploitkit.svg)](https://pypi.python.org/pypi/sploitkit/)\r\n[![Known Vulnerabilities](https://snyk.io/test/github/dhondta/python-sploitkit/badge.svg?targetFile=requirements.txt)](https://snyk.io/test/github/dhondta/python-sploitkit?targetFile=requirements.txt)\r\n[![License](https://img.shields.io/pypi/l/sploitkit.svg)](https://pypi.python.org/pypi/sploitkit/)\r\n\r\n\r\nThis toolkit is aimed to easilly build framework consoles in a Metasploit-like style. It provides a comprehensive interface to define CLI commands, modules and models for its storage database.\r\n\r\n```\r\npip install sploitkit\r\n```\r\n\r\n## :sunglasses: Usage\r\n\r\nFrom this point, `main.py` has the following code:\r\n\r\n```python\r\n#!/usr/bin/python3\r\nfrom sploitkit import FrameworkConsole\r\n\r\n\r\nclass MySploitConsole(FrameworkConsole):\r\n    #TODO: set your console attributes\r\n    pass\r\n\r\n\r\nif __name__ == '__main__':\r\n    MySploitConsole(\r\n        \"MySploit\",\r\n        #TODO: configure your console settings\r\n    ).start()\r\n```\r\n\r\nAnd you can run it from the terminal:\r\n\r\n![](https://github.com/dhondta/python-sploitkit/tree/main/docs/pages/img/my-sploit-start.png)\r\n\r\n## :ballot_box_with_check: Features\r\n\r\nSploitkit provides a base set of entities (consoles, commands, modules, models).\r\n\r\nMultiple base console levels already exist (for detailed descriptions, see [the console section](../console/index.html)):\r\n\r\n- [`FrameworkConsole`](https://github.com/dhondta/python-sploitkit/blob/main/sploitkit/core/console.py): the root console, started through `main.py`\r\n- [`ProjectConsole`](https://github.com/dhondta/python-sploitkit/blob/main/sploitkit/base/commands/project.py): the project console, for limiting the workspace to a single project, invoked through the `select [project]` command\r\n- [`ModuleConsole`](https://github.com/dhondta/python-sploitkit/blob/main/sploitkit/base/commands/module.py): the module console, started when a module is invoked through the `use [module]` command\r\n\r\nThis framework provides more than 20 base commands, distributed in sets of functionalities (for detailed descriptions, see [the command section](../command/index.html)):\r\n\r\n- [*general*](https://github.com/dhondta/python-sploitkit/blob/main/sploitkit/base/commands/general.py): commands for every level (e.g. `help`, `show`, `set`)\r\n- [*module*](https://github.com/dhondta/python-sploitkit/blob/main/sploitkit/base/commands/module.py): base module-level commands (e.g. `use`, `run`, `show`)\r\n- [*project*](https://github.com/dhondta/python-sploitkit/blob/main/sploitkit/base/commands/project.py): base project-level commands (e.g. `select`, `load`, `archive`)\r\n- [*recording*](https://github.com/dhondta/python-sploitkit/blob/main/sploitkit/base/commands/recording.py): recording commands, for managing `.rc` files (`record`, `replay`)\r\n- [*root*](https://github.com/dhondta/python-sploitkit/blob/main/sploitkit/base/commands/root.py): base root-level commands (`help`)\r\n- [*utils*](https://github.com/dhondta/python-sploitkit/blob/main/sploitkit/base/commands/utils.py): utility commands (`shell`, `pydbg`, `memory`)\r\n\r\nIt also holds some base models for its storage:\r\n\r\n- [*users*](https://github.com/dhondta/python-sploitkit/blob/main/sploitkit/base/models/notes.py): for user-related data (`User`, `Email`, `Password`)\r\n- [*systems*](https://github.com/dhondta/python-sploitkit/blob/main/sploitkit/base/models/systems.py): for system-related data (`Host`, `Port`, `Service`)\r\n- [*organization*](https://github.com/dhondta/python-sploitkit/blob/main/sploitkit/base/models/organization.py): for organization-related data (`Organization`, `Unit`, `Employee`)\r\n- [*notes*](https://github.com/dhondta/python-sploitkit/blob/main/sploitkit/base/models/notes.py): for linking notes to users, hosts or organizations\r\n\r\nNo module is provided with the framework as it is case-specific.\r\n\r\n## :pencil2: Customization\r\n\r\nSploitkit defines multiple types of entities for various purposes. The following entities can be subclassed:\r\n\r\n- [`Console`](https://github.com/dhondta/python-sploitkit/blob/main/sploitkit/core/console.py): a new console for a new level of interaction (e.g. [`ProjectConsole`](https://github.com/dhondta/python-sploitkit/blob/main/sploitkit/base/commands/project.py)) ; the \"`root`\" level is owned by the [`FrameworkConsole`](https://github.com/dhondta/python-sploitkit/blob/main/sploitkit/core/console.py), [`Console`](https://github.com/dhondta/python-sploitkit/blob/main/sploitkit/core/console.py) shall be used to create new subconsoles, to be called by commands from the root console (see an example [here](https://github.com/dhondta/python-sploitkit/blob/main/sploitkit/base/commands/module.py) for the module-level commands with [`ModuleConsole(Console)` and `Use(Command)`](https://github.com/dhondta/python-sploitkit/blob/main/sploitkit/base/commands/module.py))\r\n- [`Command`](https://github.com/dhondta/python-sploitkit/blob/main/sploitkit/core/command.py): a new command associated with any or defined consoles using the `level` attribute\r\n- [`Module`](https://github.com/dhondta/python-sploitkit/blob/main/sploitkit/core/module.py): a new module associated to a console\r\n- [`Model`, `BaseModel`, `StoreExtension`](https://github.com/dhondta/python-sploitkit/blob/main/sploitkit/core/model.py): respectively for new models, their association tables and store additional methods (e.g. [`User(Model)`, `Email(Model)`, `UserEmail(BaseModel)`, `UsersStorage(StoreExtension)`](https://github.com/dhondta/python-sploitkit/blob/main/sploitkit/base/models/users.py))\r\n\r\n\r\n## :clap:  Supporters\r\n\r\n[![Stargazers repo roster for @dhondta/python-sploitkit](https://reporoster.com/stars/dark/dhondta/python-sploitkit)](https://github.com/dhondta/python-sploitkit/stargazers)\r\n\r\n[![Forkers repo roster for @dhondta/python-sploitkit](https://reporoster.com/forks/dark/dhondta/python-sploitkit)](https://github.com/dhondta/python-sploitkit/network/members)\r\n\r\n\u003cp align=\"center\"\u003e\u003ca href=\"#\"\u003e\u003cimg src=\"https://img.shields.io/badge/Back%20to%20top--lightgrey?style=social\" alt=\"Back to top\" height=\"20\"/\u003e\u003c/a\u003e\u003c/p\u003e\r\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhondta%2Fpython-sploitkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdhondta%2Fpython-sploitkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhondta%2Fpython-sploitkit/lists"}