reconax 0.2.0__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 (67) hide show
  1. reconax-0.2.0/.github/workflows/release.yml +58 -0
  2. reconax-0.2.0/.gitignore +38 -0
  3. reconax-0.2.0/CHANGELOG.md +90 -0
  4. reconax-0.2.0/LICENSE +21 -0
  5. reconax-0.2.0/PKG-INFO +324 -0
  6. reconax-0.2.0/README.md +266 -0
  7. reconax-0.2.0/pyproject.toml +77 -0
  8. reconax-0.2.0/src/reconax/__init__.py +98 -0
  9. reconax-0.2.0/src/reconax/cli.py +213 -0
  10. reconax-0.2.0/src/reconax/context.py +163 -0
  11. reconax-0.2.0/src/reconax/core.py +120 -0
  12. reconax-0.2.0/src/reconax/formatters/__init__.py +27 -0
  13. reconax-0.2.0/src/reconax/formatters/json_out.py +69 -0
  14. reconax-0.2.0/src/reconax/formatters/rich_out.py +166 -0
  15. reconax-0.2.0/src/reconax/http_client.py +117 -0
  16. reconax-0.2.0/src/reconax/models.py +510 -0
  17. reconax-0.2.0/src/reconax/modules/__init__.py +43 -0
  18. reconax-0.2.0/src/reconax/modules/attack_surface.py +156 -0
  19. reconax-0.2.0/src/reconax/modules/base.py +40 -0
  20. reconax-0.2.0/src/reconax/modules/cookies.py +198 -0
  21. reconax-0.2.0/src/reconax/modules/cors.py +115 -0
  22. reconax-0.2.0/src/reconax/modules/csp.py +121 -0
  23. reconax-0.2.0/src/reconax/modules/dns.py +124 -0
  24. reconax-0.2.0/src/reconax/modules/endpoints.py +277 -0
  25. reconax-0.2.0/src/reconax/modules/headers.py +88 -0
  26. reconax-0.2.0/src/reconax/modules/html.py +305 -0
  27. reconax-0.2.0/src/reconax/modules/http.py +24 -0
  28. reconax-0.2.0/src/reconax/modules/metadata.py +199 -0
  29. reconax-0.2.0/src/reconax/modules/resources.py +174 -0
  30. reconax-0.2.0/src/reconax/modules/robots.py +131 -0
  31. reconax-0.2.0/src/reconax/modules/score.py +270 -0
  32. reconax-0.2.0/src/reconax/modules/security_txt.py +105 -0
  33. reconax-0.2.0/src/reconax/modules/sitemap.py +123 -0
  34. reconax-0.2.0/src/reconax/modules/sri.py +213 -0
  35. reconax-0.2.0/src/reconax/modules/tech.py +315 -0
  36. reconax-0.2.0/src/reconax/modules/tls.py +243 -0
  37. reconax-0.2.0/src/reconax/parsers/__init__.py +6 -0
  38. reconax-0.2.0/src/reconax/parsers/cookies.py +153 -0
  39. reconax-0.2.0/src/reconax/parsers/dns_lookup.py +46 -0
  40. reconax-0.2.0/src/reconax/parsers/headers.py +46 -0
  41. reconax-0.2.0/src/reconax/parsers/html_parser.py +118 -0
  42. reconax-0.2.0/src/reconax/parsers/robots.py +82 -0
  43. reconax-0.2.0/src/reconax/shortcuts.py +311 -0
  44. reconax-0.2.0/tests/__init__.py +3 -0
  45. reconax-0.2.0/tests/test_cli.py +19 -0
  46. reconax-0.2.0/tests/test_context.py +44 -0
  47. reconax-0.2.0/tests/test_http_client.py +56 -0
  48. reconax-0.2.0/tests/test_modules_attack_surface.py +19 -0
  49. reconax-0.2.0/tests/test_modules_cookies.py +23 -0
  50. reconax-0.2.0/tests/test_modules_cors.py +14 -0
  51. reconax-0.2.0/tests/test_modules_csp.py +23 -0
  52. reconax-0.2.0/tests/test_modules_dns.py +38 -0
  53. reconax-0.2.0/tests/test_modules_endpoints.py +31 -0
  54. reconax-0.2.0/tests/test_modules_headers.py +23 -0
  55. reconax-0.2.0/tests/test_modules_html.py +23 -0
  56. reconax-0.2.0/tests/test_modules_http.py +19 -0
  57. reconax-0.2.0/tests/test_modules_metadata.py +19 -0
  58. reconax-0.2.0/tests/test_modules_resources.py +22 -0
  59. reconax-0.2.0/tests/test_modules_robots.py +19 -0
  60. reconax-0.2.0/tests/test_modules_security_txt.py +27 -0
  61. reconax-0.2.0/tests/test_modules_sitemap.py +18 -0
  62. reconax-0.2.0/tests/test_modules_sri.py +30 -0
  63. reconax-0.2.0/tests/test_modules_tech.py +21 -0
  64. reconax-0.2.0/tests/test_modules_tls.py +81 -0
  65. reconax-0.2.0/tests/test_parsers.py +148 -0
  66. reconax-0.2.0/tests/test_score.py +29 -0
  67. reconax-0.2.0/tests/test_shortcuts.py +23 -0
@@ -0,0 +1,58 @@
1
+ name: Release to PyPI
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+ workflow_dispatch:
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ build:
13
+ name: Test and build package
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - name: Check out repository
17
+ uses: actions/checkout@v4
18
+
19
+ - name: Set up Python
20
+ uses: actions/setup-python@v5
21
+ with:
22
+ python-version: "3.12"
23
+
24
+ - name: Install build and test dependencies
25
+ run: python -m pip install --upgrade pip build ".[dev]"
26
+
27
+ - name: Run test suite
28
+ run: python -m pytest -q
29
+
30
+ - name: Build distributions
31
+ run: python -m build
32
+
33
+ - name: Check distributions
34
+ run: python -m pip install --upgrade twine && python -m twine check dist/*
35
+
36
+ - name: Upload distributions
37
+ uses: actions/upload-artifact@v4
38
+ with:
39
+ name: python-distributions
40
+ path: dist/
41
+ if-no-files-found: error
42
+
43
+ publish:
44
+ name: Publish to PyPI
45
+ needs: build
46
+ runs-on: ubuntu-latest
47
+ environment: pypi
48
+ permissions:
49
+ id-token: write
50
+ steps:
51
+ - name: Download distributions
52
+ uses: actions/download-artifact@v4
53
+ with:
54
+ name: python-distributions
55
+ path: dist/
56
+
57
+ - name: Publish package distributions to PyPI
58
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,38 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # Virtual environments
7
+ .venv/
8
+ venv/
9
+ env/
10
+
11
+ # Testing
12
+ .pytest_cache/
13
+ .coverage
14
+ htmlcov/
15
+
16
+ # Build artifacts
17
+ build/
18
+ dist/
19
+ *.egg-info/
20
+
21
+ # IDEs
22
+ .vscode/
23
+ .idea/
24
+
25
+ # OS files
26
+ .DS_Store
27
+ Thumbs.db
28
+
29
+ # ReconAx generated reports
30
+ report.json
31
+ reports/
32
+
33
+ # Local environment
34
+ .env
35
+ .env.*
36
+
37
+ # Jupyter
38
+ .ipynb_checkpoints/
@@ -0,0 +1,90 @@
1
+ # Changelog
2
+
3
+ All notable changes to ReconAx are documented in this file.
4
+
5
+ The project follows a lightweight versioning approach based on semantic versioning principles.
6
+
7
+ ---
8
+
9
+ ## [0.2.0] โ€” 2026-09-10
10
+
11
+ ### Added
12
+
13
+ - Modular analysis architecture with a shared analysis context
14
+ - TLS and certificate analysis
15
+ - Passive technology detection
16
+ - Sitemap analysis
17
+ - CORS analysis
18
+ - Content Security Policy (CSP) analysis
19
+ - Subresource Integrity (SRI) analysis
20
+ - `security.txt` analysis
21
+ - Website metadata analysis
22
+ - External resource analysis
23
+ - Public endpoint discovery from page content
24
+ - Passive attack-surface analysis
25
+ - Website Hygiene Score
26
+ - Expanded Python API with individual analysis functions
27
+ - Expanded CLI with module-specific commands
28
+ - JSON output support across analysis workflows
29
+ - Redirect-chain information
30
+ - Verdicts, flags, and explanations for analysis results
31
+
32
+ ### Improved
33
+
34
+ - HTTP response handling and caching
35
+ - Cookie parsing and security-attribute handling
36
+ - Windows UTF-8 CLI compatibility
37
+ - Python 3.14 compatibility
38
+ - Error handling for real-world websites
39
+ - Rich terminal output
40
+ - Test coverage and module reliability
41
+ - Documentation and installation guidance
42
+
43
+ ### Security
44
+
45
+ - ReconAx remains passive by design
46
+ - No port scanning, brute forcing, exploitation, credential attacks, or authentication bypass
47
+ - Cookie values are not included in analysis results
48
+
49
+ ### Testing
50
+
51
+ - Expanded automated test suite
52
+ - Real-world website integration testing
53
+ - Verified clean package installation from built artifacts
54
+
55
+ ---
56
+
57
+ ## [0.1.0] โ€” 2026-09-09
58
+
59
+ ### Added
60
+
61
+ - Initial ReconAx project structure
62
+ - `ReconAx` Python API
63
+ - URL normalization
64
+ - HTTP GET client
65
+ - HTTP redirect following
66
+ - Response timing
67
+ - HTTP response metadata
68
+ - Structured `ReconReport`
69
+ - Security-related HTTP header analysis
70
+ - Cookie metadata extraction
71
+ - HTML parsing
72
+ - Internal/external link detection
73
+ - Script extraction
74
+ - Image extraction
75
+ - `robots.txt` analysis
76
+ - Basic DNS lookups
77
+ - JSON report output
78
+ - Rich terminal output
79
+ - CLI commands and options
80
+ - Initial automated test suite
81
+
82
+ ### Security
83
+
84
+ - Cookie values are intentionally excluded from reports.
85
+ - ReconAx performs lightweight public-information analysis.
86
+ - No active exploitation or brute-force functionality is included.
87
+
88
+ ### Status
89
+
90
+ Early development / Alpha.
reconax-0.2.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Chethan R
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
reconax-0.2.0/PKG-INFO ADDED
@@ -0,0 +1,324 @@
1
+ Metadata-Version: 2.5
2
+ Name: reconax
3
+ Version: 0.2.0
4
+ Summary: A lightweight, developer-friendly website analyzer for HTTP, HTML, headers, cookies, robots.txt, DNS, TLS, and passive web intelligence.
5
+ Project-URL: Homepage, https://github.com/Chethan-ULTIMAX/reconax
6
+ Project-URL: Repository, https://github.com/Chethan-ULTIMAX/reconax
7
+ Project-URL: Issues, https://github.com/Chethan-ULTIMAX/reconax/issues
8
+ Author: Chethan R
9
+ License: MIT License
10
+
11
+ Copyright (c) 2026 Chethan R
12
+
13
+ Permission is hereby granted, free of charge, to any person obtaining a copy
14
+ of this software and associated documentation files (the "Software"), to deal
15
+ in the Software without restriction, including without limitation the rights
16
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17
+ copies of the Software, and to permit persons to whom the Software is
18
+ furnished to do so, subject to the following conditions:
19
+
20
+ The above copyright notice and this permission notice shall be included in all
21
+ copies or substantial portions of the Software.
22
+
23
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29
+ SOFTWARE.
30
+ License-File: LICENSE
31
+ Keywords: bug-bounty,cybersecurity,developer-tools,dns,html,http,reconnaissance,security-headers,tls,web-security,website-analyzer
32
+ Classifier: Development Status :: 3 - Alpha
33
+ Classifier: Intended Audience :: Developers
34
+ Classifier: Intended Audience :: Education
35
+ Classifier: Intended Audience :: Information Technology
36
+ Classifier: License :: OSI Approved :: MIT License
37
+ Classifier: Programming Language :: Python :: 3
38
+ Classifier: Programming Language :: Python :: 3 :: Only
39
+ Classifier: Programming Language :: Python :: 3.10
40
+ Classifier: Programming Language :: Python :: 3.11
41
+ Classifier: Programming Language :: Python :: 3.12
42
+ Classifier: Programming Language :: Python :: 3.13
43
+ Classifier: Programming Language :: Python :: 3.14
44
+ Classifier: Topic :: Internet
45
+ Classifier: Topic :: Security
46
+ Classifier: Topic :: Software Development :: Libraries
47
+ Requires-Python: >=3.10
48
+ Requires-Dist: beautifulsoup4>=4.12
49
+ Requires-Dist: dnspython>=2.6
50
+ Requires-Dist: httpx>=0.27
51
+ Requires-Dist: lxml>=5.0
52
+ Requires-Dist: rich>=13.7
53
+ Requires-Dist: typer>=0.12
54
+ Provides-Extra: dev
55
+ Requires-Dist: pytest>=8.0; extra == 'dev'
56
+ Requires-Dist: respx>=0.21; extra == 'dev'
57
+ Description-Content-Type: text/markdown
58
+
59
+ # โšก ReconAx
60
+
61
+ **A lightweight Python library and CLI for passive website analysis.**
62
+
63
+ Analyze websites for HTTP information, security headers, cookies, TLS, DNS, technologies, metadata, public endpoints, resources, and more.
64
+
65
+ **No API keys ยท Local analysis ยท Passive by design**
66
+
67
+ โญ Star the repo if you find ReconAx useful.
68
+
69
+ ---
70
+
71
+ ## โœจ Features
72
+
73
+ - ๐ŸŒ HTTP & redirects
74
+ - ๐Ÿ›ก๏ธ Security headers
75
+ - ๐Ÿช Cookie analysis
76
+ - ๐Ÿ“„ HTML & metadata
77
+ - ๐Ÿ” TLS / certificate information
78
+ - ๐ŸŒ DNS records
79
+ - ๐Ÿง  Technology detection
80
+ - ๐Ÿ”„ CORS & CSP
81
+ - ๐Ÿ”’ SRI
82
+ - ๐Ÿค– robots.txt & sitemap
83
+ - ๐Ÿ”— Public endpoints
84
+ - ๐Ÿ“ฆ External resources
85
+ - ๐ŸŽฏ Passive attack surface
86
+ - ๐Ÿ“Š Website Hygiene Score
87
+ - ๐Ÿ“‹ JSON output
88
+
89
+ ---
90
+
91
+ ## ๐Ÿ“ฆ Installation
92
+
93
+ ### Windows
94
+
95
+ ```bash
96
+ git clone https://github.com/Chethan-ULTIMAX/reconax.git
97
+ cd reconax
98
+
99
+ python -m venv .venv
100
+ .venv\Scripts\activate
101
+
102
+ python -m pip install --upgrade pip
103
+ pip install -e .
104
+ ```
105
+
106
+ ### Linux / macOS
107
+
108
+ ```bash
109
+ git clone https://github.com/Chethan-ULTIMAX/reconax.git
110
+ cd reconax
111
+
112
+ python3 -m venv .venv
113
+ source .venv/bin/activate
114
+
115
+ python -m pip install --upgrade pip
116
+ pip install -e .
117
+ ```
118
+
119
+ ### PyPI
120
+
121
+ ```bash
122
+ pip install reconax
123
+ ```
124
+
125
+ ---
126
+
127
+ ## ๐Ÿš€ CLI
128
+
129
+ Analyze a website:
130
+
131
+ ```bash
132
+ reconax analyze example.com
133
+ ```
134
+
135
+ JSON output:
136
+
137
+ ```bash
138
+ reconax analyze example.com --json
139
+ ```
140
+
141
+ Save JSON:
142
+
143
+ ```bash
144
+ reconax analyze example.com --json -o report.json
145
+ ```
146
+
147
+ Individual modules:
148
+
149
+ ```bash
150
+ reconax headers example.com
151
+ reconax cookies example.com
152
+ reconax html example.com
153
+ reconax dns example.com
154
+ reconax tls example.com
155
+ reconax tech example.com
156
+ reconax csp example.com
157
+ reconax cors example.com
158
+ reconax endpoints example.com
159
+ reconax attack-surface example.com
160
+ reconax score example.com
161
+ ```
162
+
163
+ See all commands:
164
+
165
+ ```bash
166
+ reconax --help
167
+ ```
168
+
169
+ ---
170
+
171
+ ## ๐Ÿ Python
172
+
173
+ Run a complete analysis:
174
+
175
+ ```python
176
+ import reconax
177
+
178
+ report = reconax.analyze("https://example.com")
179
+
180
+ print(report.http.status_code)
181
+ print(report.tls.tls_version)
182
+ print(report.score.score)
183
+ ```
184
+
185
+ Use individual modules:
186
+
187
+ ```python
188
+ import reconax
189
+
190
+ headers = reconax.headers("https://example.com")
191
+
192
+ print(headers.present)
193
+ print(headers.missing)
194
+ print(headers.verdict)
195
+ ```
196
+
197
+ Inspect the complete report:
198
+
199
+ ```python
200
+ report = reconax.analyze("https://github.com")
201
+
202
+ print(report.http)
203
+ print(report.headers)
204
+ print(report.cookies)
205
+ print(report.tls)
206
+ print(report.tech)
207
+ print(report.endpoints)
208
+ print(report.attack_surface)
209
+ print(report.score)
210
+ ```
211
+
212
+ ---
213
+
214
+ ## ๐Ÿ“Š Website Hygiene Score
215
+
216
+ ReconAx provides a simple **0โ€“100 Website Hygiene Score** based on passive configuration checks.
217
+
218
+ ```python
219
+ report = reconax.analyze("https://example.com")
220
+
221
+ print(report.score.score)
222
+ print(report.score.grade)
223
+ ```
224
+
225
+ The score is **not a vulnerability score** and does not guarantee that a website is secure.
226
+
227
+ ---
228
+
229
+ ## ๐Ÿ›ก๏ธ Passive by Design
230
+
231
+ ReconAx focuses on lightweight analysis of publicly accessible website information.
232
+
233
+ It does **not** perform:
234
+
235
+ - brute forcing
236
+ - exploitation
237
+ - port scanning
238
+ - credential attacks
239
+ - authentication bypass
240
+ - aggressive crawling
241
+
242
+ Only analyze systems you own or have permission to test.
243
+
244
+ ---
245
+
246
+ ## ๐Ÿ–ฅ๏ธ GUI
247
+
248
+ A graphical interface is planned for a future version.
249
+
250
+ The current release focuses on the **Python API + CLI**.
251
+
252
+ ---
253
+
254
+ ## ๐Ÿงช Development
255
+
256
+ Install the development version:
257
+
258
+ ```bash
259
+ pip install -e ".[dev]"
260
+ ```
261
+
262
+ Run tests:
263
+
264
+ ```bash
265
+ python -m pytest -q
266
+ ```
267
+
268
+ ---
269
+
270
+ ## ๐Ÿ› ๏ธ Common Issues
271
+
272
+ ### `reconax` is not recognized
273
+
274
+ Try:
275
+
276
+ ```bash
277
+ python -m reconax.cli --help
278
+ ```
279
+
280
+ If this works, your Python Scripts directory may not be in `PATH`.
281
+
282
+ ### `pytest` is not recognized
283
+
284
+ Use:
285
+
286
+ ```bash
287
+ python -m pytest
288
+ ```
289
+
290
+ ### Windows Unicode / encoding errors
291
+
292
+ Try:
293
+
294
+ ```bash
295
+ chcp 65001
296
+ ```
297
+
298
+ ReconAx configures CLI output for UTF-8 on Windows.
299
+
300
+ ### SSL errors
301
+
302
+ If necessary, certificate verification can be disabled through the Python API:
303
+
304
+ ```python
305
+ reconax.analyze("https://example.com", verify_ssl=False)
306
+ ```
307
+
308
+ Use this only when you understand the implications.
309
+
310
+ ---
311
+
312
+ ## ๐Ÿ“„ License
313
+
314
+ MIT License.
315
+
316
+ ---
317
+
318
+ ## โญ Support ReconAx
319
+
320
+ If ReconAx is useful to you:
321
+
322
+ **โญ Star it ยท ๐Ÿ› Report bugs ยท ๐Ÿ’ก Suggest ideas**
323
+
324
+ **ReconAx โ€” one URL, one clear report. โšก**