traceforge-osint 1.0.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.
- traceforge_osint-1.0.0/LICENSE +21 -0
- traceforge_osint-1.0.0/NOTICE +20 -0
- traceforge_osint-1.0.0/PKG-INFO +309 -0
- traceforge_osint-1.0.0/README.md +258 -0
- traceforge_osint-1.0.0/pyproject.toml +85 -0
- traceforge_osint-1.0.0/setup.cfg +4 -0
- traceforge_osint-1.0.0/tests/test_suite.py +295 -0
- traceforge_osint-1.0.0/traceforge/__init__.py +6 -0
- traceforge_osint-1.0.0/traceforge/__main__.py +5 -0
- traceforge_osint-1.0.0/traceforge/case.py +295 -0
- traceforge_osint-1.0.0/traceforge/catalog.py +202 -0
- traceforge_osint-1.0.0/traceforge/cli.py +912 -0
- traceforge_osint-1.0.0/traceforge/config.py +138 -0
- traceforge_osint-1.0.0/traceforge/data/VERSION +1 -0
- traceforge_osint-1.0.0/traceforge/data/tools.tsv +153 -0
- traceforge_osint-1.0.0/traceforge/exporters.py +429 -0
- traceforge_osint-1.0.0/traceforge/modules/__init__.py +3 -0
- traceforge_osint-1.0.0/traceforge/modules/documents.py +69 -0
- traceforge_osint-1.0.0/traceforge/modules/domain.py +65 -0
- traceforge_osint-1.0.0/traceforge/modules/email.py +66 -0
- traceforge_osint-1.0.0/traceforge/modules/identity.py +64 -0
- traceforge_osint-1.0.0/traceforge/modules/image.py +74 -0
- traceforge_osint-1.0.0/traceforge/modules/network.py +60 -0
- traceforge_osint-1.0.0/traceforge/modules/opsec.py +56 -0
- traceforge_osint-1.0.0/traceforge/platform_detect.py +289 -0
- traceforge_osint-1.0.0/traceforge/runners.py +282 -0
- traceforge_osint-1.0.0/traceforge/tools.py +760 -0
- traceforge_osint-1.0.0/traceforge_osint.egg-info/PKG-INFO +309 -0
- traceforge_osint-1.0.0/traceforge_osint.egg-info/SOURCES.txt +31 -0
- traceforge_osint-1.0.0/traceforge_osint.egg-info/dependency_links.txt +1 -0
- traceforge_osint-1.0.0/traceforge_osint.egg-info/entry_points.txt +2 -0
- traceforge_osint-1.0.0/traceforge_osint.egg-info/requires.txt +23 -0
- traceforge_osint-1.0.0/traceforge_osint.egg-info/top_level.txt +1 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Aman Kumar Pandey
|
|
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.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
TraceForge
|
|
2
|
+
Copyright (c) 2026 Aman Kumar Pandey
|
|
3
|
+
|
|
4
|
+
Lead Architect & Core Developer: Aman Kumar Pandey
|
|
5
|
+
Contributors & Credits: Thanks to the Global Open-Source Security Community
|
|
6
|
+
|
|
7
|
+
This project is an open-source command-line toolkit for OSINT, DFIR and security
|
|
8
|
+
investigation, evidence handling, and first-party investigation tools.
|
|
9
|
+
|
|
10
|
+
-------------------------------------------------------------------------------
|
|
11
|
+
Third-Party Software & Tools Attribution Notice
|
|
12
|
+
-------------------------------------------------------------------------------
|
|
13
|
+
|
|
14
|
+
TraceForge installs and launches external command-line utilities.
|
|
15
|
+
It does not vendor or redistribute third-party tool binaries. All third-party
|
|
16
|
+
utilities installed or invoked through this suite remain the property of their
|
|
17
|
+
respective authors and are governed by their respective open-source licenses.
|
|
18
|
+
|
|
19
|
+
For a detailed index of cataloged tools, upstream repository links, and
|
|
20
|
+
licenses, refer to THIRD_PARTY_NOTICES.md and catalog/TOOLS.md.
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: traceforge-osint
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: TraceForge — Open-Source Intelligence & Digital Forensics Platform
|
|
5
|
+
Author-email: Aman Kumar Pandey <paman7647@proton.me>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/paman7647/TraceForge
|
|
8
|
+
Project-URL: Documentation, https://traceforge.readthedocs.io
|
|
9
|
+
Project-URL: Repository, https://github.com/paman7647/TraceForge.git
|
|
10
|
+
Project-URL: Issues, https://github.com/paman7647/TraceForge/issues
|
|
11
|
+
Project-URL: Changelog, https://github.com/paman7647/TraceForge/blob/master/CHANGELOG.md
|
|
12
|
+
Keywords: osint,dfir,digital-forensics,incident-response,security,threat-intelligence,pcap,stix,misp,ioc-extractor
|
|
13
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
14
|
+
Classifier: Environment :: Console
|
|
15
|
+
Classifier: Intended Audience :: Information Technology
|
|
16
|
+
Classifier: Intended Audience :: System Administrators
|
|
17
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
18
|
+
Classifier: Operating System :: MacOS
|
|
19
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
20
|
+
Classifier: Programming Language :: Python :: 3
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
25
|
+
Classifier: Topic :: Security
|
|
26
|
+
Classifier: Topic :: System :: Networking
|
|
27
|
+
Requires-Python: >=3.9
|
|
28
|
+
Description-Content-Type: text/markdown
|
|
29
|
+
License-File: LICENSE
|
|
30
|
+
License-File: NOTICE
|
|
31
|
+
Provides-Extra: reporting
|
|
32
|
+
Requires-Dist: openpyxl>=3.1.0; extra == "reporting"
|
|
33
|
+
Requires-Dist: python-docx>=1.0.0; extra == "reporting"
|
|
34
|
+
Provides-Extra: docs
|
|
35
|
+
Requires-Dist: sphinx>=7.0.0; extra == "docs"
|
|
36
|
+
Requires-Dist: myst-parser>=3.0.0; extra == "docs"
|
|
37
|
+
Requires-Dist: sphinx-rtd-theme>=2.0.0; extra == "docs"
|
|
38
|
+
Provides-Extra: dev
|
|
39
|
+
Requires-Dist: build>=1.0.0; extra == "dev"
|
|
40
|
+
Requires-Dist: twine>=5.0.0; extra == "dev"
|
|
41
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
42
|
+
Provides-Extra: all
|
|
43
|
+
Requires-Dist: openpyxl>=3.1.0; extra == "all"
|
|
44
|
+
Requires-Dist: python-docx>=1.0.0; extra == "all"
|
|
45
|
+
Requires-Dist: sphinx>=7.0.0; extra == "all"
|
|
46
|
+
Requires-Dist: myst-parser>=3.0.0; extra == "all"
|
|
47
|
+
Requires-Dist: sphinx-rtd-theme>=2.0.0; extra == "all"
|
|
48
|
+
Requires-Dist: build>=1.0.0; extra == "all"
|
|
49
|
+
Requires-Dist: twine>=5.0.0; extra == "all"
|
|
50
|
+
Dynamic: license-file
|
|
51
|
+
|
|
52
|
+
# TraceForge
|
|
53
|
+
|
|
54
|
+
**Open-source OSINT, DFIR and security investigation toolkit.**
|
|
55
|
+
|
|
56
|
+
[](LICENSE)
|
|
57
|
+
[-informational.svg)](docs/INSTALLATION.md)
|
|
58
|
+
[](https://www.gnu.org/software/bash/)
|
|
59
|
+
[](catalog/TOOLS.md)
|
|
60
|
+
[](pyproject.toml)
|
|
61
|
+
[](.github/workflows/ci.yml)
|
|
62
|
+
[](VERSION)
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## What It Does
|
|
67
|
+
|
|
68
|
+
TraceForge is an open-source command-line toolkit for OSINT, digital forensics, security investigation, evidence handling, and first-party investigation tools:
|
|
69
|
+
|
|
70
|
+
* **First-Party Native Tools (`traceforge` / `go/`)**: High-performance Go-native and Python utilities providing asset relationship graphing, snapshot diffing, streaming IOC extraction/defanging, forensic evidence indexing, UTC timeline normalization, PCAP network flow analysis, automated log triage, and filesystem baselining (see [docs/FIRST_PARTY_TOOLS.md](docs/FIRST_PARTY_TOOLS.md)).
|
|
71
|
+
* **Tool Catalog & Installer**: A searchable catalog of 152 tools and an automated installer that handles dependencies across Homebrew (macOS), APT (Linux), `pipx` (Python virtual environments), Go, Cargo, and RubyGems.
|
|
72
|
+
* **Investigation Modules**: 7 built-in analysis scripts covering image metadata, network PCAPs, usernames, email breach records, domain DNS records, document metadata, and local OPSEC hygiene.
|
|
73
|
+
* **Case Management**: Workspaces stored under `workspace/` with unique case IDs, SHA-256 evidence hashing, and append-only chain-of-custody logging.
|
|
74
|
+
* **Export Pipeline**: Generates reports in Markdown, standalone dark-mode HTML, CSV (with formula injection protection), TSV, JSON, JSONL streams, STIX 2.1, MISP, GeoJSON, KML, Excel XLSX, Word DOCX, and signed ZIP packages.
|
|
75
|
+
* **Redaction**: Built-in `--redact` flag masks sensitive IP addresses and email addresses in generated reports.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Architecture
|
|
80
|
+
|
|
81
|
+
TraceForge does not ship binary copies of third-party tools inside the repository. It installs and launches external tools via your system's package managers:
|
|
82
|
+
|
|
83
|
+
```text
|
|
84
|
+
+-------------------------------------------------------------------+
|
|
85
|
+
| TraceForge |
|
|
86
|
+
| (CLI Menu, Tool Catalog, Case Workspaces, Report Exporter) |
|
|
87
|
+
| [ MIT License ] |
|
|
88
|
+
+---------------------------------+---------------------------------+
|
|
89
|
+
|
|
|
90
|
+
| Installs / Launches / Collects Output
|
|
91
|
+
v
|
|
92
|
+
+-------------------------------------------------------------------+
|
|
93
|
+
| Third-Party Command-Line Tools |
|
|
94
|
+
| (ExifTool, TShark, Binwalk, Nmap, Sherlock, Maigret, etc.) |
|
|
95
|
+
| [ Retain Respective Upstream Copyright & Licenses ] |
|
|
96
|
+
+-------------------------------------------------------------------+
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
All third-party tools remain the property of their respective creators and are licensed under their own open-source terms. See [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) for details.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Supported Systems
|
|
104
|
+
|
|
105
|
+
| Platform | Tier | Architecture | Package Manager | Guide & Notes |
|
|
106
|
+
|---|---|---|---|---|
|
|
107
|
+
| **macOS Apple Silicon** | Supported | `arm64` (M1/M2/M3/M4) | Homebrew | Full native support |
|
|
108
|
+
| **macOS Intel** | Supported | `x86_64` | Homebrew | Full native support |
|
|
109
|
+
| **Debian / Ubuntu** | Supported | `x86_64`, `arm64` | APT | Full native support |
|
|
110
|
+
| **Kali Linux** | Supported | `x86_64`, `arm64` | APT | Full native support |
|
|
111
|
+
| **Termux / Android** | Supported with limitations | `arm64`, `armv7`, `x86_64` | `pkg` | Non-root userland. Offline forensics & PCAP analysis. [Termux Guide](docs/platforms/termux.md) |
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Installation & Quick Start
|
|
116
|
+
|
|
117
|
+
### 1. Clone the Repository
|
|
118
|
+
```bash
|
|
119
|
+
git clone https://github.com/paman7647/TraceForge.git
|
|
120
|
+
cd TraceForge
|
|
121
|
+
chmod +x install_all.sh main.sh modules/*.sh scripts/*.sh tests/*.sh
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### 2. Run the Installer
|
|
125
|
+
```bash
|
|
126
|
+
# Preview packages without installing (dry-run)
|
|
127
|
+
./install_all.sh --profile recommended --dry-run
|
|
128
|
+
|
|
129
|
+
# Core Profile: Minimal tools for the 7 modules (~15 packages)
|
|
130
|
+
./install_all.sh --profile core
|
|
131
|
+
|
|
132
|
+
# Recommended Profile (Default): Standard investigative toolset (~50 packages)
|
|
133
|
+
./install_all.sh --profile recommended
|
|
134
|
+
|
|
135
|
+
# Full Profile: All 152 installable catalog tools
|
|
136
|
+
./install_all.sh --profile full
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### 3. Run TraceForge
|
|
140
|
+
```bash
|
|
141
|
+
# Interactive TTY Menu
|
|
142
|
+
./main.sh
|
|
143
|
+
# or via Python CLI
|
|
144
|
+
python3 -m traceforge
|
|
145
|
+
|
|
146
|
+
# Run system diagnostics
|
|
147
|
+
./main.sh doctor
|
|
148
|
+
|
|
149
|
+
# List existing cases
|
|
150
|
+
./main.sh list-cases
|
|
151
|
+
|
|
152
|
+
# Search the catalog
|
|
153
|
+
./main.sh search "steganography"
|
|
154
|
+
|
|
155
|
+
# Run first-party tools
|
|
156
|
+
traceforge ioc extract /path/to/intel.txt
|
|
157
|
+
traceforge asset graph /path/to/entities.jsonl --html graph.html
|
|
158
|
+
|
|
159
|
+
# Run a module directly
|
|
160
|
+
./main.sh module 1 /path/to/evidence.png CASE-20260825-ABC123
|
|
161
|
+
|
|
162
|
+
# Export a case
|
|
163
|
+
./main.sh export CASE-20260825-ABC123 --all --package zip
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## Investigation Modules
|
|
169
|
+
|
|
170
|
+
| Module | Script | Target & Tools Used |
|
|
171
|
+
|---|---|---|
|
|
172
|
+
| **01. Media & Image Forensics** | `modules/01_image_forensics.sh` | Images and videos: EXIF/IPTC metadata, GPS coordinates, strings, steganography (`exiftool`, `binwalk`, `zsteg`, `xxd`). |
|
|
173
|
+
| **02. Network & PCAP Forensics** | `modules/02_network_recon.sh` | Packet captures: DNS queries, HTTP URIs, TLS SNI headers, conversations (`tshark`, `capinfos`, `aircrack-ng`). |
|
|
174
|
+
| **03. Identity & Social Research** | `modules/03_identity_social.sh` | Usernames and aliases: account discovery across web platforms (`sherlock`, `maigret`, `blackbird`, `socialscan`). |
|
|
175
|
+
| **04. Email & Breach Intelligence** | `modules/04_email_breach.sh` | Email addresses: account registrations, breach dumps, SPF/DMARC posture (`holehe`, `h8mail`, `emailrep`, `theHarvester`, `checkdmarc`). |
|
|
176
|
+
| **05. Domain & DNS Intelligence** | `modules/05_domain_dns.sh` | Domains: DNS records, passive subdomains, HTTP probing, typosquats (`dig`, `whois`, `subfinder`, `amass`, `dnsx`, `httpx`, `dnstwist`). |
|
|
177
|
+
| **06. Document & Metadata Harvesting** | `modules/06_document_harvesting.sh` | Documents (PDF, DOCX, XLSX): properties, text, embedded objects, macros, secret keys (`poppler`, `oletools`, `exiftool`, `qpdf`, `ripgrep`). |
|
|
178
|
+
| **07. OPSEC & Environment Audit** | `modules/07_opsec_anonymization.sh` | Local audit: public IP detection, DNS leak test, Tor/proxy status, encryption tools (`mat2`, `tor`, `proxychains`, `gnupg`, `age`). |
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## Directory Structure
|
|
183
|
+
|
|
184
|
+
```text
|
|
185
|
+
TraceForge/
|
|
186
|
+
├── main.sh # Interactive console and CLI dispatcher
|
|
187
|
+
├── install_all.sh # Multi-ecosystem package installer
|
|
188
|
+
├── pyproject.toml # Modern Python package configuration
|
|
189
|
+
├── go.mod # Go module declaration (zero external dependencies)
|
|
190
|
+
├── VERSION # Project version (1.0.0)
|
|
191
|
+
├── LICENSE # MIT License
|
|
192
|
+
├── NOTICE # Copyright and attribution
|
|
193
|
+
├── THIRD_PARTY_NOTICES.md # Upstream tool licenses and repository links
|
|
194
|
+
├── README.md # Main project documentation
|
|
195
|
+
├── SECURITY.md # Vulnerability reporting guidelines
|
|
196
|
+
├── CONTRIBUTING.md # Contribution guidelines
|
|
197
|
+
├── CODE_OF_CONDUCT.md # Contributor Covenant 2.1
|
|
198
|
+
├── CHANGELOG.md # Version release history
|
|
199
|
+
├── RELEASE_NOTES.md # 1.0.0 release notes
|
|
200
|
+
│
|
|
201
|
+
├── go/ # Go-native high-performance engine
|
|
202
|
+
├── traceforge/ # Pure Python implementation and package
|
|
203
|
+
│
|
|
204
|
+
├── catalog/
|
|
205
|
+
│ ├── README.md # Catalog schema specification
|
|
206
|
+
│ ├── tools.tsv # 15-column registry of 152 tools
|
|
207
|
+
│ └── TOOLS.md # Formatted markdown tool index
|
|
208
|
+
│
|
|
209
|
+
├── lib/
|
|
210
|
+
│ ├── common.sh # Terminal UI, colors, logging, string helpers
|
|
211
|
+
│ ├── platform.sh # OS and architecture detection
|
|
212
|
+
│ ├── packages.sh # Package managers (Homebrew, APT, pipx, Go, Gem, Cargo)
|
|
213
|
+
│ ├── catalog.sh # Catalog search and filter functions
|
|
214
|
+
│ ├── case.sh # Case lifecycle, evidence, findings, IOCs, timeline
|
|
215
|
+
│ ├── export.sh # Export coordinator, packaging, and hashing
|
|
216
|
+
│ └── report.sh # Markdown, HTML, and PDF report generators
|
|
217
|
+
│
|
|
218
|
+
├── modules/ # 7 investigation modules (01 to 07)
|
|
219
|
+
├── scripts/
|
|
220
|
+
│ ├── doctor.sh # System and dependency diagnostic checker
|
|
221
|
+
│ ├── export_case.sh # CLI export wrapper
|
|
222
|
+
│ ├── export_engine.py # Multi-format export engine
|
|
223
|
+
│ ├── install_tool.sh # Single tool installer
|
|
224
|
+
│ ├── generate_catalog_docs.sh # Markdown documentation generator
|
|
225
|
+
│ └── release_check.sh # Pre-flight release verification test
|
|
226
|
+
│
|
|
227
|
+
├── docs/ # In-depth operator, architecture, and OPSEC guides
|
|
228
|
+
├── tests/ # Automated test suite and regression tests
|
|
229
|
+
└── workspace/ # Local investigation cases
|
|
230
|
+
└── .gitkeep
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
## Development & Branching Workflow
|
|
236
|
+
|
|
237
|
+
TraceForge maintains two long-lived branches:
|
|
238
|
+
* **`master`**: Stable, production-ready public release branch.
|
|
239
|
+
* **`beta`**: Active integration branch for new features, bug fixes, platform improvements, and release candidates.
|
|
240
|
+
|
|
241
|
+
```text
|
|
242
|
+
master (Stable Releases)
|
|
243
|
+
▲
|
|
244
|
+
│ Release PR (Validated & Tagged)
|
|
245
|
+
│
|
|
246
|
+
beta (Active Development & RC)
|
|
247
|
+
▲ ▲ ▲
|
|
248
|
+
│ │ │ Pull Requests
|
|
249
|
+
feature fix docs (Short-Lived Working Branches)
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
Pull requests and contributions must target the **`beta`** branch. See [docs/BRANCHING.md](docs/BRANCHING.md) for the branching model, [docs/BUG_REPORTING.md](docs/BUG_REPORTING.md) for issue guidelines, and [CONTRIBUTING.md](CONTRIBUTING.md) for pull request workflows.
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## Automated Testing
|
|
257
|
+
|
|
258
|
+
Run the test suite before submitting pull requests or publishing releases:
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
# Run Python & Platform test suites
|
|
262
|
+
python3 -m unittest discover -s tests
|
|
263
|
+
|
|
264
|
+
# Run master shell & integration test harness
|
|
265
|
+
./tests/test.sh
|
|
266
|
+
|
|
267
|
+
# Run pre-flight release check
|
|
268
|
+
./scripts/release_check.sh beta
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
All shell scripts are validated with `bash -n` and `shellcheck -x`.
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
## Responsible Use
|
|
276
|
+
|
|
277
|
+
TraceForge is intended for lawful OSINT, digital forensics, incident response, security research, authorized testing, education, and lab work.
|
|
278
|
+
|
|
279
|
+
You are responsible for ensuring that your use of the software is authorized and complies with applicable law, regulation, contracts, platform terms, privacy requirements, and organizational policy.
|
|
280
|
+
|
|
281
|
+
TraceForge does not grant permission to access any system, account, network, service, or data.
|
|
282
|
+
|
|
283
|
+
See [DISCLAIMER.md](DISCLAIMER.md) and [RESPONSIBLE_USE.md](RESPONSIBLE_USE.md) for details.
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
## Documentation & Policies
|
|
288
|
+
|
|
289
|
+
* [docs/BRANCHING.md](docs/BRANCHING.md) — Two-branch Git model, release lifecycle, and PR rules.
|
|
290
|
+
* [docs/BUG_REPORTING.md](docs/BUG_REPORTING.md) — Bug reporting protocol, reproduction requirements, and fix lifecycle.
|
|
291
|
+
* [docs/RUNTIME_PROFILES.md](docs/RUNTIME_PROFILES.md) — Architecture and configuration of the 6 runtime profiles.
|
|
292
|
+
* [docs/FIRST_PARTY_TOOLS.md](docs/FIRST_PARTY_TOOLS.md) — Documentation for first-party analytical tools.
|
|
293
|
+
* [docs/platforms/termux.md](docs/platforms/termux.md) — Termux and Android platform guide and storage configuration.
|
|
294
|
+
* [DISCLAIMER.md](DISCLAIMER.md) — Legal disclaimer, liability boundaries, accuracy notices, and jurisdictional advice.
|
|
295
|
+
* [RESPONSIBLE_USE.md](RESPONSIBLE_USE.md) — Responsible use standards, authorized scope, and prohibited activities.
|
|
296
|
+
* [PRIVACY.md](PRIVACY.md) — Privacy principles, local storage layout, data minimization, and redaction.
|
|
297
|
+
* [SECURITY.md](SECURITY.md) — Vulnerability reporting policy and defensive engineering standards.
|
|
298
|
+
* [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) — Upstream tool licenses, attribution, and license boundaries.
|
|
299
|
+
* [CONTRIBUTING.md](CONTRIBUTING.md) — Contribution workflow, code formatting, and review guidelines.
|
|
300
|
+
* [LICENSE](LICENSE) — Official MIT License terms and conditions.
|
|
301
|
+
|
|
302
|
+
---
|
|
303
|
+
|
|
304
|
+
## Authors & Credits
|
|
305
|
+
|
|
306
|
+
* **Lead Architect & Core Developer**: Aman Kumar Pandey
|
|
307
|
+
* **Credits**: Thanks to the Global Open-Source Security Community
|
|
308
|
+
* **License**: [MIT License](LICENSE)
|
|
309
|
+
* **Copyright**: Copyright (c) 2026 Aman Kumar Pandey
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
# TraceForge
|
|
2
|
+
|
|
3
|
+
**Open-source OSINT, DFIR and security investigation toolkit.**
|
|
4
|
+
|
|
5
|
+
[](LICENSE)
|
|
6
|
+
[-informational.svg)](docs/INSTALLATION.md)
|
|
7
|
+
[](https://www.gnu.org/software/bash/)
|
|
8
|
+
[](catalog/TOOLS.md)
|
|
9
|
+
[](pyproject.toml)
|
|
10
|
+
[](.github/workflows/ci.yml)
|
|
11
|
+
[](VERSION)
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## What It Does
|
|
16
|
+
|
|
17
|
+
TraceForge is an open-source command-line toolkit for OSINT, digital forensics, security investigation, evidence handling, and first-party investigation tools:
|
|
18
|
+
|
|
19
|
+
* **First-Party Native Tools (`traceforge` / `go/`)**: High-performance Go-native and Python utilities providing asset relationship graphing, snapshot diffing, streaming IOC extraction/defanging, forensic evidence indexing, UTC timeline normalization, PCAP network flow analysis, automated log triage, and filesystem baselining (see [docs/FIRST_PARTY_TOOLS.md](docs/FIRST_PARTY_TOOLS.md)).
|
|
20
|
+
* **Tool Catalog & Installer**: A searchable catalog of 152 tools and an automated installer that handles dependencies across Homebrew (macOS), APT (Linux), `pipx` (Python virtual environments), Go, Cargo, and RubyGems.
|
|
21
|
+
* **Investigation Modules**: 7 built-in analysis scripts covering image metadata, network PCAPs, usernames, email breach records, domain DNS records, document metadata, and local OPSEC hygiene.
|
|
22
|
+
* **Case Management**: Workspaces stored under `workspace/` with unique case IDs, SHA-256 evidence hashing, and append-only chain-of-custody logging.
|
|
23
|
+
* **Export Pipeline**: Generates reports in Markdown, standalone dark-mode HTML, CSV (with formula injection protection), TSV, JSON, JSONL streams, STIX 2.1, MISP, GeoJSON, KML, Excel XLSX, Word DOCX, and signed ZIP packages.
|
|
24
|
+
* **Redaction**: Built-in `--redact` flag masks sensitive IP addresses and email addresses in generated reports.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Architecture
|
|
29
|
+
|
|
30
|
+
TraceForge does not ship binary copies of third-party tools inside the repository. It installs and launches external tools via your system's package managers:
|
|
31
|
+
|
|
32
|
+
```text
|
|
33
|
+
+-------------------------------------------------------------------+
|
|
34
|
+
| TraceForge |
|
|
35
|
+
| (CLI Menu, Tool Catalog, Case Workspaces, Report Exporter) |
|
|
36
|
+
| [ MIT License ] |
|
|
37
|
+
+---------------------------------+---------------------------------+
|
|
38
|
+
|
|
|
39
|
+
| Installs / Launches / Collects Output
|
|
40
|
+
v
|
|
41
|
+
+-------------------------------------------------------------------+
|
|
42
|
+
| Third-Party Command-Line Tools |
|
|
43
|
+
| (ExifTool, TShark, Binwalk, Nmap, Sherlock, Maigret, etc.) |
|
|
44
|
+
| [ Retain Respective Upstream Copyright & Licenses ] |
|
|
45
|
+
+-------------------------------------------------------------------+
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
All third-party tools remain the property of their respective creators and are licensed under their own open-source terms. See [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) for details.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Supported Systems
|
|
53
|
+
|
|
54
|
+
| Platform | Tier | Architecture | Package Manager | Guide & Notes |
|
|
55
|
+
|---|---|---|---|---|
|
|
56
|
+
| **macOS Apple Silicon** | Supported | `arm64` (M1/M2/M3/M4) | Homebrew | Full native support |
|
|
57
|
+
| **macOS Intel** | Supported | `x86_64` | Homebrew | Full native support |
|
|
58
|
+
| **Debian / Ubuntu** | Supported | `x86_64`, `arm64` | APT | Full native support |
|
|
59
|
+
| **Kali Linux** | Supported | `x86_64`, `arm64` | APT | Full native support |
|
|
60
|
+
| **Termux / Android** | Supported with limitations | `arm64`, `armv7`, `x86_64` | `pkg` | Non-root userland. Offline forensics & PCAP analysis. [Termux Guide](docs/platforms/termux.md) |
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Installation & Quick Start
|
|
65
|
+
|
|
66
|
+
### 1. Clone the Repository
|
|
67
|
+
```bash
|
|
68
|
+
git clone https://github.com/paman7647/TraceForge.git
|
|
69
|
+
cd TraceForge
|
|
70
|
+
chmod +x install_all.sh main.sh modules/*.sh scripts/*.sh tests/*.sh
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### 2. Run the Installer
|
|
74
|
+
```bash
|
|
75
|
+
# Preview packages without installing (dry-run)
|
|
76
|
+
./install_all.sh --profile recommended --dry-run
|
|
77
|
+
|
|
78
|
+
# Core Profile: Minimal tools for the 7 modules (~15 packages)
|
|
79
|
+
./install_all.sh --profile core
|
|
80
|
+
|
|
81
|
+
# Recommended Profile (Default): Standard investigative toolset (~50 packages)
|
|
82
|
+
./install_all.sh --profile recommended
|
|
83
|
+
|
|
84
|
+
# Full Profile: All 152 installable catalog tools
|
|
85
|
+
./install_all.sh --profile full
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### 3. Run TraceForge
|
|
89
|
+
```bash
|
|
90
|
+
# Interactive TTY Menu
|
|
91
|
+
./main.sh
|
|
92
|
+
# or via Python CLI
|
|
93
|
+
python3 -m traceforge
|
|
94
|
+
|
|
95
|
+
# Run system diagnostics
|
|
96
|
+
./main.sh doctor
|
|
97
|
+
|
|
98
|
+
# List existing cases
|
|
99
|
+
./main.sh list-cases
|
|
100
|
+
|
|
101
|
+
# Search the catalog
|
|
102
|
+
./main.sh search "steganography"
|
|
103
|
+
|
|
104
|
+
# Run first-party tools
|
|
105
|
+
traceforge ioc extract /path/to/intel.txt
|
|
106
|
+
traceforge asset graph /path/to/entities.jsonl --html graph.html
|
|
107
|
+
|
|
108
|
+
# Run a module directly
|
|
109
|
+
./main.sh module 1 /path/to/evidence.png CASE-20260825-ABC123
|
|
110
|
+
|
|
111
|
+
# Export a case
|
|
112
|
+
./main.sh export CASE-20260825-ABC123 --all --package zip
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Investigation Modules
|
|
118
|
+
|
|
119
|
+
| Module | Script | Target & Tools Used |
|
|
120
|
+
|---|---|---|
|
|
121
|
+
| **01. Media & Image Forensics** | `modules/01_image_forensics.sh` | Images and videos: EXIF/IPTC metadata, GPS coordinates, strings, steganography (`exiftool`, `binwalk`, `zsteg`, `xxd`). |
|
|
122
|
+
| **02. Network & PCAP Forensics** | `modules/02_network_recon.sh` | Packet captures: DNS queries, HTTP URIs, TLS SNI headers, conversations (`tshark`, `capinfos`, `aircrack-ng`). |
|
|
123
|
+
| **03. Identity & Social Research** | `modules/03_identity_social.sh` | Usernames and aliases: account discovery across web platforms (`sherlock`, `maigret`, `blackbird`, `socialscan`). |
|
|
124
|
+
| **04. Email & Breach Intelligence** | `modules/04_email_breach.sh` | Email addresses: account registrations, breach dumps, SPF/DMARC posture (`holehe`, `h8mail`, `emailrep`, `theHarvester`, `checkdmarc`). |
|
|
125
|
+
| **05. Domain & DNS Intelligence** | `modules/05_domain_dns.sh` | Domains: DNS records, passive subdomains, HTTP probing, typosquats (`dig`, `whois`, `subfinder`, `amass`, `dnsx`, `httpx`, `dnstwist`). |
|
|
126
|
+
| **06. Document & Metadata Harvesting** | `modules/06_document_harvesting.sh` | Documents (PDF, DOCX, XLSX): properties, text, embedded objects, macros, secret keys (`poppler`, `oletools`, `exiftool`, `qpdf`, `ripgrep`). |
|
|
127
|
+
| **07. OPSEC & Environment Audit** | `modules/07_opsec_anonymization.sh` | Local audit: public IP detection, DNS leak test, Tor/proxy status, encryption tools (`mat2`, `tor`, `proxychains`, `gnupg`, `age`). |
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## Directory Structure
|
|
132
|
+
|
|
133
|
+
```text
|
|
134
|
+
TraceForge/
|
|
135
|
+
├── main.sh # Interactive console and CLI dispatcher
|
|
136
|
+
├── install_all.sh # Multi-ecosystem package installer
|
|
137
|
+
├── pyproject.toml # Modern Python package configuration
|
|
138
|
+
├── go.mod # Go module declaration (zero external dependencies)
|
|
139
|
+
├── VERSION # Project version (1.0.0)
|
|
140
|
+
├── LICENSE # MIT License
|
|
141
|
+
├── NOTICE # Copyright and attribution
|
|
142
|
+
├── THIRD_PARTY_NOTICES.md # Upstream tool licenses and repository links
|
|
143
|
+
├── README.md # Main project documentation
|
|
144
|
+
├── SECURITY.md # Vulnerability reporting guidelines
|
|
145
|
+
├── CONTRIBUTING.md # Contribution guidelines
|
|
146
|
+
├── CODE_OF_CONDUCT.md # Contributor Covenant 2.1
|
|
147
|
+
├── CHANGELOG.md # Version release history
|
|
148
|
+
├── RELEASE_NOTES.md # 1.0.0 release notes
|
|
149
|
+
│
|
|
150
|
+
├── go/ # Go-native high-performance engine
|
|
151
|
+
├── traceforge/ # Pure Python implementation and package
|
|
152
|
+
│
|
|
153
|
+
├── catalog/
|
|
154
|
+
│ ├── README.md # Catalog schema specification
|
|
155
|
+
│ ├── tools.tsv # 15-column registry of 152 tools
|
|
156
|
+
│ └── TOOLS.md # Formatted markdown tool index
|
|
157
|
+
│
|
|
158
|
+
├── lib/
|
|
159
|
+
│ ├── common.sh # Terminal UI, colors, logging, string helpers
|
|
160
|
+
│ ├── platform.sh # OS and architecture detection
|
|
161
|
+
│ ├── packages.sh # Package managers (Homebrew, APT, pipx, Go, Gem, Cargo)
|
|
162
|
+
│ ├── catalog.sh # Catalog search and filter functions
|
|
163
|
+
│ ├── case.sh # Case lifecycle, evidence, findings, IOCs, timeline
|
|
164
|
+
│ ├── export.sh # Export coordinator, packaging, and hashing
|
|
165
|
+
│ └── report.sh # Markdown, HTML, and PDF report generators
|
|
166
|
+
│
|
|
167
|
+
├── modules/ # 7 investigation modules (01 to 07)
|
|
168
|
+
├── scripts/
|
|
169
|
+
│ ├── doctor.sh # System and dependency diagnostic checker
|
|
170
|
+
│ ├── export_case.sh # CLI export wrapper
|
|
171
|
+
│ ├── export_engine.py # Multi-format export engine
|
|
172
|
+
│ ├── install_tool.sh # Single tool installer
|
|
173
|
+
│ ├── generate_catalog_docs.sh # Markdown documentation generator
|
|
174
|
+
│ └── release_check.sh # Pre-flight release verification test
|
|
175
|
+
│
|
|
176
|
+
├── docs/ # In-depth operator, architecture, and OPSEC guides
|
|
177
|
+
├── tests/ # Automated test suite and regression tests
|
|
178
|
+
└── workspace/ # Local investigation cases
|
|
179
|
+
└── .gitkeep
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Development & Branching Workflow
|
|
185
|
+
|
|
186
|
+
TraceForge maintains two long-lived branches:
|
|
187
|
+
* **`master`**: Stable, production-ready public release branch.
|
|
188
|
+
* **`beta`**: Active integration branch for new features, bug fixes, platform improvements, and release candidates.
|
|
189
|
+
|
|
190
|
+
```text
|
|
191
|
+
master (Stable Releases)
|
|
192
|
+
▲
|
|
193
|
+
│ Release PR (Validated & Tagged)
|
|
194
|
+
│
|
|
195
|
+
beta (Active Development & RC)
|
|
196
|
+
▲ ▲ ▲
|
|
197
|
+
│ │ │ Pull Requests
|
|
198
|
+
feature fix docs (Short-Lived Working Branches)
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
Pull requests and contributions must target the **`beta`** branch. See [docs/BRANCHING.md](docs/BRANCHING.md) for the branching model, [docs/BUG_REPORTING.md](docs/BUG_REPORTING.md) for issue guidelines, and [CONTRIBUTING.md](CONTRIBUTING.md) for pull request workflows.
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## Automated Testing
|
|
206
|
+
|
|
207
|
+
Run the test suite before submitting pull requests or publishing releases:
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
# Run Python & Platform test suites
|
|
211
|
+
python3 -m unittest discover -s tests
|
|
212
|
+
|
|
213
|
+
# Run master shell & integration test harness
|
|
214
|
+
./tests/test.sh
|
|
215
|
+
|
|
216
|
+
# Run pre-flight release check
|
|
217
|
+
./scripts/release_check.sh beta
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
All shell scripts are validated with `bash -n` and `shellcheck -x`.
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## Responsible Use
|
|
225
|
+
|
|
226
|
+
TraceForge is intended for lawful OSINT, digital forensics, incident response, security research, authorized testing, education, and lab work.
|
|
227
|
+
|
|
228
|
+
You are responsible for ensuring that your use of the software is authorized and complies with applicable law, regulation, contracts, platform terms, privacy requirements, and organizational policy.
|
|
229
|
+
|
|
230
|
+
TraceForge does not grant permission to access any system, account, network, service, or data.
|
|
231
|
+
|
|
232
|
+
See [DISCLAIMER.md](DISCLAIMER.md) and [RESPONSIBLE_USE.md](RESPONSIBLE_USE.md) for details.
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## Documentation & Policies
|
|
237
|
+
|
|
238
|
+
* [docs/BRANCHING.md](docs/BRANCHING.md) — Two-branch Git model, release lifecycle, and PR rules.
|
|
239
|
+
* [docs/BUG_REPORTING.md](docs/BUG_REPORTING.md) — Bug reporting protocol, reproduction requirements, and fix lifecycle.
|
|
240
|
+
* [docs/RUNTIME_PROFILES.md](docs/RUNTIME_PROFILES.md) — Architecture and configuration of the 6 runtime profiles.
|
|
241
|
+
* [docs/FIRST_PARTY_TOOLS.md](docs/FIRST_PARTY_TOOLS.md) — Documentation for first-party analytical tools.
|
|
242
|
+
* [docs/platforms/termux.md](docs/platforms/termux.md) — Termux and Android platform guide and storage configuration.
|
|
243
|
+
* [DISCLAIMER.md](DISCLAIMER.md) — Legal disclaimer, liability boundaries, accuracy notices, and jurisdictional advice.
|
|
244
|
+
* [RESPONSIBLE_USE.md](RESPONSIBLE_USE.md) — Responsible use standards, authorized scope, and prohibited activities.
|
|
245
|
+
* [PRIVACY.md](PRIVACY.md) — Privacy principles, local storage layout, data minimization, and redaction.
|
|
246
|
+
* [SECURITY.md](SECURITY.md) — Vulnerability reporting policy and defensive engineering standards.
|
|
247
|
+
* [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) — Upstream tool licenses, attribution, and license boundaries.
|
|
248
|
+
* [CONTRIBUTING.md](CONTRIBUTING.md) — Contribution workflow, code formatting, and review guidelines.
|
|
249
|
+
* [LICENSE](LICENSE) — Official MIT License terms and conditions.
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## Authors & Credits
|
|
254
|
+
|
|
255
|
+
* **Lead Architect & Core Developer**: Aman Kumar Pandey
|
|
256
|
+
* **Credits**: Thanks to the Global Open-Source Security Community
|
|
257
|
+
* **License**: [MIT License](LICENSE)
|
|
258
|
+
* **Copyright**: Copyright (c) 2026 Aman Kumar Pandey
|