offsec-ai 2.0.0__tar.gz → 2.0.1__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.
Files changed (59) hide show
  1. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/CHANGELOG.md +2 -1
  2. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/CONTRIBUTING.md +4 -4
  3. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/LICENSE +1 -1
  4. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/PKG-INFO +2 -2
  5. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/README.md +1 -1
  6. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/SECURITY.md +5 -5
  7. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/docs/DOCKER.md +1 -0
  8. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/docs/assets/logo.svg +1 -1
  9. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/pyproject.toml +1 -1
  10. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/__init__.py +1 -1
  11. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/core/ai_owasp_scanner.py +1 -1
  12. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/core/mcp_attacker.py +4 -4
  13. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/core/mcp_scanner.py +2 -2
  14. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/.gitignore +0 -0
  15. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/docs/api.md +0 -0
  16. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/docs/azure-ad-flow-explained.md +0 -0
  17. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/docs/hybrid-identity.md +0 -0
  18. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/docs/owasp-scanner.md +0 -0
  19. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/docs/quickstart.md +0 -0
  20. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/examples/comprehensive_examples.py +0 -0
  21. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/examples/mtls_examples.py +0 -0
  22. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/examples/owasp_scan_examples.py +0 -0
  23. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/examples/usage_examples.py +0 -0
  24. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/__main__.py +0 -0
  25. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/cli.py +0 -0
  26. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/core/__init__.py +0 -0
  27. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/core/cert_analyzer.py +0 -0
  28. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/core/hybrid_identity_checker.py +0 -0
  29. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/core/l7_detector.py +0 -0
  30. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/core/llm_judge.py +0 -0
  31. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/core/mtls_checker.py +0 -0
  32. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/core/owasp_scanner.py +0 -0
  33. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/core/port_scanner.py +0 -0
  34. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/core/security_headers.py +0 -0
  35. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/models/__init__.py +0 -0
  36. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/models/ai_owasp_result.py +0 -0
  37. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/models/l7_result.py +0 -0
  38. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/models/mcp_result.py +0 -0
  39. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/models/mtls_result.py +0 -0
  40. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/models/owasp_result.py +0 -0
  41. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/models/scan_result.py +0 -0
  42. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/py.typed +0 -0
  43. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/utils/__init__.py +0 -0
  44. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/utils/ai_owasp_payloads.py +0 -0
  45. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/utils/ai_owasp_remediation.py +0 -0
  46. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/utils/common_ports.py +0 -0
  47. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/utils/exporters.py +0 -0
  48. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/utils/l7_signatures.py +0 -0
  49. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/utils/mcp_cve_db.py +0 -0
  50. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/utils/mcp_payloads.py +0 -0
  51. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/src/offsec_ai/utils/owasp_remediation.py +0 -0
  52. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/tests/conftest.py +0 -0
  53. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/tests/test_ai_owasp.py +0 -0
  54. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/tests/test_dns_trace.py +0 -0
  55. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/tests/test_mcp_attacker.py +0 -0
  56. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/tests/test_mcp_scanner.py +0 -0
  57. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/tests/test_mtls.py +0 -0
  58. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/tests/test_mtls_integration.py +0 -0
  59. {offsec_ai-2.0.0 → offsec_ai-2.0.1}/tests/test_port_scanner.py +0 -0
@@ -560,5 +560,6 @@ All existing functionality (port scanning, L7 detection, mTLS, certificate analy
560
560
  - cryptography: For certificate handling
561
561
  - certifi: For CA bundle management
562
562
 
563
- [Unreleased]: https://github.com/htunn/offsec-ai/compare/v2.0.0...HEAD
563
+ [Unreleased]: https://github.com/Htunn/offsec-ai/compare/v2.0.1...HEAD
564
+ [2.0.1]: https://github.com/Htunn/offsec-ai/compare/v2.0.0...v2.0.1
564
565
  [2.0.0]: https://github.com/htunn/offsec-ai/releases/tag/v2.0.0
@@ -1,6 +1,6 @@
1
- # Contributing to Simple Port Checker
1
+ # Contributing to offsec-ai
2
2
 
3
- Thank you for your interest in contributing to Simple Port Checker! This guide will help you get started.
3
+ Thank you for your interest in contributing to offsec-ai! This guide will help you get started.
4
4
 
5
5
  ## Code of Conduct
6
6
 
@@ -12,7 +12,7 @@ This project adheres to a code of conduct. By participating, you are expected to
12
12
 
13
13
  1. **Fork and clone the repository**
14
14
  ```bash
15
- git clone https://github.com/yourusername/offsec-ai.git
15
+ git clone https://github.com/Htunn/offsec-ai.git
16
16
  cd offsec-ai
17
17
  ```
18
18
 
@@ -327,4 +327,4 @@ Contributors will be recognized in:
327
327
  - **Release notes** for significant contributions
328
328
  - **GitHub contributors** page
329
329
 
330
- Thank you for contributing to Simple Port Checker! 🎉
330
+ Thank you for contributing to offsec-ai! 🎉
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2025 Simple Port Checker
3
+ Copyright (c) 2026 offsec-ai (Htunn)
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: offsec-ai
3
- Version: 2.0.0
3
+ Version: 2.0.1
4
4
  Summary: Offensive-security toolkit: port scanning, L7/WAF detection, mTLS, certificate analysis, OWASP Top 10, AI/LLM OWASP Top 10 black-box probing, and MCP endpoint security scanning
5
5
  Project-URL: Homepage, https://github.com/htunn/offsec-ai
6
6
  Project-URL: Repository, https://github.com/htunn/offsec-ai
@@ -57,7 +57,7 @@ Requires-Dist: google-generativeai>=0.7.0; extra == 'gemini'
57
57
  Description-Content-Type: text/markdown
58
58
 
59
59
  <p align="center">
60
- <img src="docs/assets/logo.svg" alt="offsec-ai" width="520"/>
60
+ <img src="https://raw.githubusercontent.com/Htunn/offsec-ai/main/docs/assets/logo.svg" alt="offsec-ai" width="520"/>
61
61
  </p>
62
62
 
63
63
  <p align="center">
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src="docs/assets/logo.svg" alt="offsec-ai" width="520"/>
2
+ <img src="https://raw.githubusercontent.com/Htunn/offsec-ai/main/docs/assets/logo.svg" alt="offsec-ai" width="520"/>
3
3
  </p>
4
4
 
5
5
  <p align="center">
@@ -2,12 +2,12 @@
2
2
 
3
3
  ## Supported Versions
4
4
 
5
- We provide security updates for the following versions of Simple Port Checker:
5
+ We provide security updates for the following versions of offsec-ai:
6
6
 
7
7
  | Version | Supported |
8
8
  | ------- | ------------------ |
9
- | 0.2.x | :white_check_mark: |
10
- | 0.1.x | :x: |
9
+ | 2.x | :white_check_mark: |
10
+ | 1.x | :x: |
11
11
 
12
12
  ## Reporting a Vulnerability
13
13
 
@@ -15,7 +15,7 @@ We take security vulnerabilities seriously. If you discover a security vulnerabi
15
15
 
16
16
  ### How to Report
17
17
 
18
- 1. **Email**: Send an email to `htunnthuthu.linux@gmail.com` with the subject line "Security Vulnerability in Simple Port Checker"
18
+ 1. **Email**: Send an email to `htunnthuthu.linux@gmail.com` with the subject line "Security Vulnerability in offsec-ai"
19
19
  2. **Include**:
20
20
  - A description of the vulnerability
21
21
  - Steps to reproduce the issue
@@ -38,7 +38,7 @@ We practice responsible disclosure:
38
38
 
39
39
  ## Security Best Practices
40
40
 
41
- When using Simple Port Checker:
41
+ When using offsec-ai:
42
42
 
43
43
  1. **Network Scanning**: Only scan networks you own or have explicit permission to test
44
44
  2. **Rate Limiting**: Use appropriate timeout and concurrency settings to avoid overwhelming target systems
@@ -9,6 +9,7 @@ A comprehensive, lightweight Docker container for network secu## 🔒 Certificat
9
9
  | Tag | Description | Size | Architectures |
10
10
  |-----|-------------|------|---------------|
11
11
  | `latest` | Latest stable release | ~60MB | `linux/amd64`, `linux/arm64` |
12
+ | `v2.0.1` | v2.0.1 — logo fix, docs cleanup | ~60MB | `linux/amd64`, `linux/arm64` |
12
13
  | `v2.0.0` | v2.0.0 — AI/LLM scanner, MCP scanner, Gemini judge | ~60MB | `linux/amd64`, `linux/arm64` |
13
14
 
14
15
  **Recommendation**: Use `latest` for the most recent features, or pin to specific version tags for production deployments.
@@ -49,7 +49,7 @@
49
49
  <!-- Version badge -->
50
50
  <rect x="62" y="94" width="52" height="16" rx="3" fill="#cc000033" stroke="#cc000066" stroke-width="0.8"/>
51
51
  <text x="88" y="106" font-family="'Courier New', Courier, monospace" font-size="9"
52
- fill="#ff6666" text-anchor="middle">v2.0.0</text>
52
+ fill="#ff6666" text-anchor="middle">v2.0.1</text>
53
53
 
54
54
  <!-- Right decorative dots (terminal-like) -->
55
55
  <circle cx="470" cy="26" r="5" fill="#ff4444" opacity="0.9"/>
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "offsec-ai"
7
- version = "2.0.0"
7
+ version = "2.0.1"
8
8
  description = "Offensive-security toolkit: port scanning, L7/WAF detection, mTLS, certificate analysis, OWASP Top 10, AI/LLM OWASP Top 10 black-box probing, and MCP endpoint security scanning"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.12"
@@ -16,7 +16,7 @@ Capabilities:
16
16
  - Rich CLI interface with progress bars
17
17
  """
18
18
 
19
- __version__ = "2.0.0"
19
+ __version__ = "2.0.1"
20
20
  __author__ = "htunn"
21
21
  __email__ = "htunnthuthu.linux@gmail.com"
22
22
  __license__ = "MIT"
@@ -98,7 +98,7 @@ class LLMOwaspScanner:
98
98
  async with httpx.AsyncClient(
99
99
  headers={
100
100
  "Content-Type": "application/json",
101
- "User-Agent": "offsec-ai/2.0.0",
101
+ "User-Agent": "offsec-ai/2.0.1",
102
102
  **self.headers,
103
103
  },
104
104
  timeout=self.timeout,
@@ -169,7 +169,7 @@ class MCPAttacker:
169
169
  test_headers = {
170
170
  "Content-Type": "application/json",
171
171
  "Accept": "application/json, text/event-stream",
172
- "User-Agent": "offsec-ai/2.0.0",
172
+ "User-Agent": "offsec-ai/2.0.1",
173
173
  **probe.get("headers", {}),
174
174
  }
175
175
  triggered = False
@@ -233,7 +233,7 @@ class MCPAttacker:
233
233
  async with httpx.AsyncClient(
234
234
  headers={"Content-Type": "application/json",
235
235
  "Accept": "application/json, text/event-stream",
236
- "User-Agent": "offsec-ai/2.0.0", **headers},
236
+ "User-Agent": "offsec-ai/2.0.1", **headers},
237
237
  timeout=timeout,
238
238
  ) as client:
239
239
  resp = await client.post(target, json=payload)
@@ -295,7 +295,7 @@ class MCPAttacker:
295
295
  async with httpx.AsyncClient(
296
296
  headers={"Content-Type": "application/json",
297
297
  "Accept": "application/json, text/event-stream",
298
- "User-Agent": "offsec-ai/2.0.0", **headers},
298
+ "User-Agent": "offsec-ai/2.0.1", **headers},
299
299
  timeout=timeout,
300
300
  ) as client:
301
301
  resp = await client.post(target, json=payload)
@@ -356,7 +356,7 @@ class MCPAttacker:
356
356
  async with httpx.AsyncClient(
357
357
  headers={"Content-Type": "application/json",
358
358
  "Accept": "application/json, text/event-stream",
359
- "User-Agent": "offsec-ai/2.0.0", **headers},
359
+ "User-Agent": "offsec-ai/2.0.1", **headers},
360
360
  timeout=timeout,
361
361
  ) as client:
362
362
  resp = await client.post(target, json=payload)
@@ -97,7 +97,7 @@ class MCPScanner:
97
97
  headers={
98
98
  "Content-Type": "application/json",
99
99
  "Accept": "application/json, text/event-stream",
100
- "User-Agent": "offsec-ai/2.0.0",
100
+ "User-Agent": "offsec-ai/2.0.1",
101
101
  **self.headers,
102
102
  },
103
103
  timeout=self.timeout,
@@ -189,7 +189,7 @@ class MCPScanner:
189
189
 
190
190
  # Try without any auth header
191
191
  no_auth_client = httpx.AsyncClient(
192
- headers={"Content-Type": "application/json", "Accept": "application/json, text/event-stream", "User-Agent": "offsec-ai/2.0.0"},
192
+ headers={"Content-Type": "application/json", "Accept": "application/json, text/event-stream", "User-Agent": "offsec-ai/2.0.1"},
193
193
  timeout=self.timeout,
194
194
  )
195
195
  async with no_auth_client:
File without changes
File without changes
File without changes
File without changes
File without changes