iotsploit-cli 0.0.6__tar.gz → 0.0.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {iotsploit_cli-0.0.6 → iotsploit_cli-0.0.7}/PKG-INFO +8 -7
- {iotsploit_cli-0.0.6 → iotsploit_cli-0.0.7}/pyproject.toml +6 -6
- {iotsploit_cli-0.0.6 → iotsploit_cli-0.0.7}/src/iotsploit_cli/commands/django_commands.py +10 -10
- {iotsploit_cli-0.0.6 → iotsploit_cli-0.0.7}/README.md +0 -0
- {iotsploit_cli-0.0.6 → iotsploit_cli-0.0.7}/src/iotsploit_cli/__init__.py +0 -0
- {iotsploit_cli-0.0.6 → iotsploit_cli-0.0.7}/src/iotsploit_cli/commands/__init__.py +0 -0
- {iotsploit_cli-0.0.6 → iotsploit_cli-0.0.7}/src/iotsploit_cli/commands/base_commands.py +0 -0
- {iotsploit_cli-0.0.6 → iotsploit_cli-0.0.7}/src/iotsploit_cli/commands/device_commands.py +0 -0
- {iotsploit_cli-0.0.6 → iotsploit_cli-0.0.7}/src/iotsploit_cli/commands/firmware_commands.py +0 -0
- {iotsploit_cli-0.0.6 → iotsploit_cli-0.0.7}/src/iotsploit_cli/commands/linux_commands.py +0 -0
- {iotsploit_cli-0.0.6 → iotsploit_cli-0.0.7}/src/iotsploit_cli/commands/network_commands.py +0 -0
- {iotsploit_cli-0.0.6 → iotsploit_cli-0.0.7}/src/iotsploit_cli/commands/plugin_commands.py +0 -0
- {iotsploit_cli-0.0.6 → iotsploit_cli-0.0.7}/src/iotsploit_cli/commands/system_commands.py +0 -0
- {iotsploit_cli-0.0.6 → iotsploit_cli-0.0.7}/src/iotsploit_cli/commands/target_commands.py +0 -0
- {iotsploit_cli-0.0.6 → iotsploit_cli-0.0.7}/src/iotsploit_cli/console.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: iotsploit-cli
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.7
|
|
4
4
|
Summary: IoTSploit CLI shell (console + command modules) - IoT security testing interactive interface
|
|
5
5
|
License: GPL-3.0-or-later
|
|
6
6
|
Keywords: iot,security,testing,pentest,cli,shell
|
|
@@ -17,14 +17,15 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
17
17
|
Classifier: Programming Language :: Python :: 3.11
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.12
|
|
19
19
|
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
20
21
|
Classifier: Topic :: Security
|
|
21
22
|
Classifier: Topic :: System :: Hardware
|
|
22
23
|
Requires-Dist: cmd2 (>=2.4,<3.0)
|
|
23
|
-
Requires-Dist: iotsploit-core
|
|
24
|
-
Requires-Dist: iotsploit-django
|
|
25
|
-
Requires-Dist: iotsploit-drivers
|
|
26
|
-
Requires-Dist: iotsploit-exploits
|
|
27
|
-
Requires-Dist: iotsploit-mcp
|
|
24
|
+
Requires-Dist: iotsploit-core
|
|
25
|
+
Requires-Dist: iotsploit-django
|
|
26
|
+
Requires-Dist: iotsploit-drivers
|
|
27
|
+
Requires-Dist: iotsploit-exploits
|
|
28
|
+
Requires-Dist: iotsploit-mcp
|
|
28
29
|
Requires-Dist: pwntools (>=4.12,<5.0)
|
|
29
30
|
Project-URL: Documentation, https://www.iotsploit.org/
|
|
30
31
|
Project-URL: Homepage, https://www.iotsploit.org/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "iotsploit-cli"
|
|
3
|
-
version = "0.0.
|
|
3
|
+
version = "0.0.7"
|
|
4
4
|
description = "IoTSploit CLI shell (console + command modules) - IoT security testing interactive interface"
|
|
5
5
|
authors = ["IoTSploit Team <support@iotsploit.org>"]
|
|
6
6
|
readme = "README.md"
|
|
@@ -29,11 +29,11 @@ iotsploit = "iotsploit_cli.console:main"
|
|
|
29
29
|
|
|
30
30
|
[tool.poetry.dependencies]
|
|
31
31
|
python = ">=3.10,<4.0"
|
|
32
|
-
iotsploit-core = "
|
|
33
|
-
iotsploit-django = "
|
|
34
|
-
iotsploit-drivers = "
|
|
35
|
-
iotsploit-exploits = "
|
|
36
|
-
iotsploit-mcp = "
|
|
32
|
+
iotsploit-core = "*"
|
|
33
|
+
iotsploit-django = "*"
|
|
34
|
+
iotsploit-drivers = "*"
|
|
35
|
+
iotsploit-exploits = "*"
|
|
36
|
+
iotsploit-mcp = "*"
|
|
37
37
|
cmd2 = "^2.4"
|
|
38
38
|
pwntools = "^4.12"
|
|
39
39
|
|
|
@@ -66,13 +66,13 @@ class DjangoCommands(BaseCommands):
|
|
|
66
66
|
|
|
67
67
|
@cmd2.with_category('Django Commands')
|
|
68
68
|
def do_runserver(self, arg):
|
|
69
|
-
'Start Django development server, Daphne WebSocket server, MCP
|
|
69
|
+
'Start Django development server, Daphne WebSocket server, MCP HTTP server, and Celery worker in the background'
|
|
70
70
|
if self.django_server_process or self.daphne_server_process:
|
|
71
71
|
self.poutput("Servers are already running.")
|
|
72
72
|
return
|
|
73
73
|
|
|
74
74
|
try:
|
|
75
|
-
logger.info("Attempting to start Django, Daphne, MCP
|
|
75
|
+
logger.info("Attempting to start Django, Daphne, MCP HTTP server, and Celery servers in background...")
|
|
76
76
|
|
|
77
77
|
# Preflight: check Redis and fail fast if unavailable
|
|
78
78
|
redis_ok, redis_msg = self._check_redis_available()
|
|
@@ -97,11 +97,11 @@ class DjangoCommands(BaseCommands):
|
|
|
97
97
|
sys.executable,
|
|
98
98
|
'-m',
|
|
99
99
|
'iotsploit_mcp.cli',
|
|
100
|
-
'
|
|
100
|
+
'http',
|
|
101
101
|
'--host',
|
|
102
|
-
'
|
|
102
|
+
'127.0.0.1',
|
|
103
103
|
'--port',
|
|
104
|
-
'
|
|
104
|
+
'9900',
|
|
105
105
|
]
|
|
106
106
|
celery_cmd = [
|
|
107
107
|
sys.executable,
|
|
@@ -115,7 +115,7 @@ class DjangoCommands(BaseCommands):
|
|
|
115
115
|
|
|
116
116
|
logger.info(f"Running Django command: {' '.join(django_cmd)}")
|
|
117
117
|
logger.info(f"Running Daphne command: {' '.join(daphne_cmd)}")
|
|
118
|
-
logger.info(f"Running MCP
|
|
118
|
+
logger.info(f"Running MCP HTTP server command: {' '.join(mcp_bridge_cmd)}")
|
|
119
119
|
logger.info(f"Running Celery command: {' '.join(celery_cmd)}")
|
|
120
120
|
|
|
121
121
|
# Start the processes with direct output to stdout/stderr
|
|
@@ -133,8 +133,8 @@ class DjangoCommands(BaseCommands):
|
|
|
133
133
|
universal_newlines=True
|
|
134
134
|
)
|
|
135
135
|
|
|
136
|
-
# Start the
|
|
137
|
-
# later terminate the entire group
|
|
136
|
+
# Start the MCP HTTP server in its own process group so that we can
|
|
137
|
+
# later terminate the entire group
|
|
138
138
|
# Set up environment variables for MCP bridge (Django API URL)
|
|
139
139
|
mcp_env = os.environ.copy()
|
|
140
140
|
mcp_env.setdefault('IOTSPLOIT_DJANGO_API_BASE_URL', 'http://127.0.0.1:8888')
|
|
@@ -159,7 +159,7 @@ class DjangoCommands(BaseCommands):
|
|
|
159
159
|
logger.info("Services running on:")
|
|
160
160
|
logger.info(" - Django HTTP API: http://localhost:8888")
|
|
161
161
|
logger.info(" - Daphne WebSocket: ws://localhost:9999")
|
|
162
|
-
logger.info(" - MCP
|
|
162
|
+
logger.info(" - MCP HTTP (Streamable HTTP): http://127.0.0.1:9900/mcp")
|
|
163
163
|
logger.info(" - Celery Worker: background task processing")
|
|
164
164
|
|
|
165
165
|
# Wait for HTTP server to be available and initialize devices
|
|
@@ -197,7 +197,7 @@ class DjangoCommands(BaseCommands):
|
|
|
197
197
|
|
|
198
198
|
@cmd2.with_category('Django Commands')
|
|
199
199
|
def do_stop_server(self, arg):
|
|
200
|
-
'Stop Django development server, Daphne WebSocket server, MCP
|
|
200
|
+
'Stop Django development server, Daphne WebSocket server, MCP HTTP server, and Celery worker'
|
|
201
201
|
try:
|
|
202
202
|
# Cleanup devices using HTTP endpoint (GET method)
|
|
203
203
|
# Only attempt HTTP cleanup if the Django server process is still alive
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|