patrict-osint 2.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 (42) hide show
  1. patrict_osint-2.2.0/LICENSE +21 -0
  2. patrict_osint-2.2.0/MANIFEST.in +6 -0
  3. patrict_osint-2.2.0/PKG-INFO +314 -0
  4. patrict_osint-2.2.0/README.md +290 -0
  5. patrict_osint-2.2.0/config/config.example.yaml +49 -0
  6. patrict_osint-2.2.0/config/config.yaml +49 -0
  7. patrict_osint-2.2.0/core/__init__.py +14 -0
  8. patrict_osint-2.2.0/core/async_client.py +122 -0
  9. patrict_osint-2.2.0/core/base_module.py +52 -0
  10. patrict_osint-2.2.0/core/config_manager.py +150 -0
  11. patrict_osint-2.2.0/core/plugin_loader.py +85 -0
  12. patrict_osint-2.2.0/data/social_signatures.json +124 -0
  13. patrict_osint-2.2.0/main.py +877 -0
  14. patrict_osint-2.2.0/modules/__init__.py +3 -0
  15. patrict_osint-2.2.0/modules/caller_id_osint.py +78 -0
  16. patrict_osint-2.2.0/modules/dorking_osint.py +185 -0
  17. patrict_osint-2.2.0/modules/email_osint.py +54 -0
  18. patrict_osint-2.2.0/modules/file_forensics.py +198 -0
  19. patrict_osint-2.2.0/modules/location_osint.py +136 -0
  20. patrict_osint-2.2.0/modules/network_osint.py +40 -0
  21. patrict_osint-2.2.0/modules/phone_osint.py +106 -0
  22. patrict_osint-2.2.0/modules/social_osint.py +110 -0
  23. patrict_osint-2.2.0/modules/web_history.py +27 -0
  24. patrict_osint-2.2.0/modules/web_osint.py +579 -0
  25. patrict_osint-2.2.0/modules/whatsapp_osint.py +43 -0
  26. patrict_osint-2.2.0/patrict_osint.egg-info/PKG-INFO +314 -0
  27. patrict_osint-2.2.0/patrict_osint.egg-info/SOURCES.txt +40 -0
  28. patrict_osint-2.2.0/patrict_osint.egg-info/dependency_links.txt +1 -0
  29. patrict_osint-2.2.0/patrict_osint.egg-info/entry_points.txt +4 -0
  30. patrict_osint-2.2.0/patrict_osint.egg-info/requires.txt +13 -0
  31. patrict_osint-2.2.0/patrict_osint.egg-info/top_level.txt +5 -0
  32. patrict_osint-2.2.0/pyproject.toml +31 -0
  33. patrict_osint-2.2.0/reports/__init__.py +6 -0
  34. patrict_osint-2.2.0/reports/report_generator.py +196 -0
  35. patrict_osint-2.2.0/reports/templates/report_dark.html +318 -0
  36. patrict_osint-2.2.0/reports/templates/report_forensics.html +221 -0
  37. patrict_osint-2.2.0/reports/templates/report_web.html +336 -0
  38. patrict_osint-2.2.0/requirements.txt +13 -0
  39. patrict_osint-2.2.0/setup.cfg +4 -0
  40. patrict_osint-2.2.0/setup.py +39 -0
  41. patrict_osint-2.2.0/visualizers/__init__.py +6 -0
  42. patrict_osint-2.2.0/visualizers/graph_engine.py +659 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Muhammad Mughni
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,6 @@
1
+ include README.md
2
+ include requirements.txt
3
+ include LICENSE
4
+ recursive-include config *.yaml *.yml *.example.yaml
5
+ recursive-include reports/templates *.html
6
+ recursive-include data *.json
@@ -0,0 +1,314 @@
1
+ Metadata-Version: 2.4
2
+ Name: patrict-osint
3
+ Version: 2.2.0
4
+ Summary: Automated Multi-Domain OSINT & Digital Forensics Framework
5
+ Author: Muhammad Mughni
6
+ Requires-Python: >=3.8
7
+ Description-Content-Type: text/markdown
8
+ License-File: LICENSE
9
+ Requires-Dist: phonenumbers>=8.13.0
10
+ Requires-Dist: geopy>=2.4.0
11
+ Requires-Dist: folium>=0.15.0
12
+ Requires-Dist: beautifulsoup4>=4.12.0
13
+ Requires-Dist: dnspython>=2.4.0
14
+ Requires-Dist: aiohttp>=3.9.0
15
+ Requires-Dist: pyyaml>=6.0.0
16
+ Requires-Dist: jinja2>=3.1.0
17
+ Requires-Dist: networkx>=3.2.0
18
+ Requires-Dist: pyvis>=0.3.2
19
+ Requires-Dist: requests>=2.31.0
20
+ Requires-Dist: python-dotenv>=1.0.0
21
+ Requires-Dist: pillow>=10.0.0
22
+ Dynamic: license-file
23
+ Dynamic: requires-python
24
+
25
+ <div align="center">
26
+
27
+ ```text
28
+ ===================================================================
29
+ ____ _ _____ ____ ___ ____ _____ ___ ____ ___ _ _ _____
30
+ | _ \ / \|_ _| _ \|_ _/ ___|_ _| / _ \/ ___|_ _| \ | |_ _|
31
+ | |_) | / _ \ | | | |_) || | | | | ____ | | | \___ \| || \| | | |
32
+ | __/ / ___ \| | | _ < | | |___ | | |____|| |_| |___) | || |\ | | |
33
+ |_| /_/ \_\_| |_| \_\___\____| |_| \___/|____/___|_| \_| |_|
34
+ ===================================================================
35
+ PATRICT-OSINT v2.0
36
+ ===================================================================
37
+ ```
38
+
39
+ # PATRICT-OSINT
40
+
41
+ **Advanced Multi-Domain Reconnaissance, Threat Intelligence & Digital Forensics Engine**
42
+
43
+ [![Python 3.8+](https://img.shields.io/badge/Python-3.8%2B-blue.svg?style=flat&logo=python)](https://www.python.org/)
44
+ [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg?style=flat)](LICENSE)
45
+ [![Build Status](https://img.shields.io/badge/GitHub%20Actions-Pre--release-orange.svg?style=flat&logo=githubactions)](https://github.com/tb245950-wq/PATRICT-OSINT/actions)
46
+ [![Architecture](https://img.shields.io/badge/Architecture-Modular%20Monorepo-purple.svg?style=flat)](#-arsitektur--struktur-proyek)
47
+ [![PRs Welcome](https://img.shields.io/badge/PRs-Welcome-brightgreen.svg?style=flat)](CONTRIBUTING.md)
48
+ [![Discord Community](https://img.shields.io/badge/Discord-Join%20Community-5865F2?style=flat&logo=discord&logoColor=white)](https://discord.gg/snGDCZT2E)
49
+
50
+ </div>
51
+
52
+ ---
53
+
54
+ ## 📌 Daftar Isi
55
+
56
+ - [Tentang PATRICT-OSINT](#-tentang-patrict-osint)
57
+ - [Domain Penyelidikan & Modul Intelijen](#-domain-penyelidikan--modul-intelijen)
58
+ - [1. Phone Intelligence](#1--phone-intelligence)
59
+ - [2. Web & Infrastructure Reconnaissance](#2--web--infrastructure-reconnaissance)
60
+ - [3. Media & File Forensics](#3--media--file-forensics)
61
+ - [Arsitektur & Struktur Proyek](#-arsitektur--struktur-proyek)
62
+ - [Persyaratan Sistem](#-persyaratan-sistem)
63
+ - [Panduan Instalasi](#-panduan-instalasi)
64
+ - [Cara Penggunaan](#-cara-penggunaan)
65
+ - [Konfigurasi Sistem](#-konfigurasi-sistem)
66
+ - [Format Output & Laporan](#-format-output--laporan)
67
+ - [Dokumentasi & Panduan Komunitas](#-dokumentasi--panduan-komunitas)
68
+ - [Disclaimer & Etika](#-disclaimer--etika)
69
+
70
+ ---
71
+
72
+ ## 📖 Tentang PATRICT-OSINT
73
+
74
+ **PATRICT-OSINT** adalah framework intelijen sumber terbuka (*Open Source Intelligence*) dan forensik digital generasi baru berbasis Python dengan arsitektur **Modular Monorepo**. Dirancang untuk penyelidik keamanan siber, analis ancaman (*threat intelligence*), dan peneliti forensik digital untuk melakukan pengumpulan intelijen otomatis dan terstruktur pada 3 domain utama: **Telekomunikasi (Nomor Telepon)**, **Infrastruktur Web**, dan **Forensik Media/Gambar**.
75
+
76
+ Framework ini mengadopsi sistem **Plugin Loader Dinamis** (`PluginLoader`) yang secara otomatis memuat modul sesuai tipe domain penyelidikan, serta menghasilkan visualisasi relasi interaktif (*Interactive Network Graph*) dan dashboard laporan bertema gelap (*Dark Mode*) yang disesuaikan untuk masing-masing domain.
77
+
78
+ ---
79
+
80
+ ## ⚡ Domain Penyelidikan & Modul Intelijen
81
+
82
+ PATRICT-OSINT mendukung 3 domain penyelidikan mandiri:
83
+
84
+ ### 1. 📞 Phone Intelligence
85
+ Modul reconnaissance nomor telepon internasional (ITU-T E.164) untuk mengungkap jejak pemilik, operator, dan sebaran akun media sosial:
86
+
87
+ | Modul | File | Deskripsi Fungsionalitas |
88
+ | :--- | :--- | :--- |
89
+ | **Phone Recon** | `modules/phone_osint.py` | Parsing standar internasional E.164, validasi nomor, operator (*carrier*), zona waktu, dan data geocoding dasar. |
90
+ | **Caller ID** | `modules/caller_id_osint.py` | Resolusi identitas pemilik target, nama panggilan, skor spam, dan reputasi nomor dari berbagai direktori caller intelligence. |
91
+ | **Geolocation** | `modules/location_osint.py` | Ekstraksi koordinat lintang/bujur (*lat/long*), reverse geocoding alamat fisik, dan pembuatan peta interaktif berbasis OpenStreetMap (*Folium*). |
92
+ | **Social Footprint** | `modules/social_osint.py` | Pemindaian asinkron ke 20+ platform media sosial (WhatsApp, Telegram, GitHub, Instagram, Twitter/X, TikTok, Reddit, Spotify, Steam, Medium, dll). |
93
+ | **Email Discovery** | `modules/email_osint.py` | Permutasi pola email potensial berdasarkan nomor dan identitas serta verifikasi record MX domain. |
94
+ | **WhatsApp Intel** | `modules/whatsapp_osint.py` | Verifikasi status keaktifan akun WhatsApp dan deteksi profil web signature. |
95
+ | **Network Intel** | `modules/network_osint.py` | Resolusi DNS, Reverse DNS, query WHOIS domain terkait, IP Geolocation, dan pemetaan infrastruktur jaringan. |
96
+ | **Web Archive** | `modules/web_history.py` | Penelusuran jejak domain historis target melalui Wayback Machine dan arsip web terbuka. |
97
+ | **Search Dorking** | `modules/dorking_osint.py` | Pembuatan query Google/DuckDuckGo dorks otomatis untuk mengungkap kebocoran dokumen, pastebin, dan jejak database publik. |
98
+
99
+ ---
100
+
101
+ ### 2. 🌐 Web & Infrastructure Reconnaissance
102
+ Modul investigasi mendalam terhadap aplikasi web dan server target:
103
+
104
+ | Modul | File | Deskripsi Fungsionalitas |
105
+ | :--- | :--- | :--- |
106
+ | **Web Intelligence** | `modules/web_osint.py` | &bull; **HTTP Methods & Protocol**: Deteksi method yang diizinkan (`OPTIONS`, `HEAD`, `GET`, `POST`, dll) dan security headers (`HSTS`, `CSP`, `X-Frame-Options`, `CORS`).<br>&bull; **Redirect Chain Tracker**: Pelacakan jalur redirect (`301`, `302`, `307`, `308`) dari URL asal hingga tujuan akhir.<br>&bull; **Session & Auth Fingerprint**: Deteksi token `JWT` (auto-decode header & payload), cookies session (Laravel `Sanctum` / `laravel_session`, Django `sessionid`, ASP.NET, PHP `PHPSESSID`, Express `connect.sid`, Spring `JSESSIONID`, Cloudflare `cf_clearance`).<br>&bull; **Tech Stack Fingerprint**: Deteksi Web Server (Nginx, Apache, Cloudflare), Framework Backend (Laravel, Django, Node, Rails), CMS (WordPress, Drupal, Joomla, Shopify), dan Frontend (React, Vue, Tailwind, Bootstrap).<br>&bull; **DNS & GeoIP Server**: Resolusi record `A`, `AAAA`, `MX`, `NS`, `TXT`, `CNAME`, IP Publik server, koordinat latitude/longitude, ISP/Org, ASN, dan peta lokasi server. |
107
+
108
+ ---
109
+
110
+ ### 3. 🖼️ Media & File Forensics
111
+ Modul analisis forensik berkas gambar/media (JPG, PNG, JPEG, GIF, WebP, PDF):
112
+
113
+ | Modul | File | Deskripsi Fungsionalitas |
114
+ | :--- | :--- | :--- |
115
+ | **File Forensics** | `modules/file_forensics.py` | &bull; **Kriptografi & Integritas**: Kalkulasi hash presisi `MD5`, `SHA-1`, `SHA-256`, dan `SHA-512`.<br>&bull; **Magic Bytes Inspection**: Verifikasi signature biner asli vs ekstensi file (deteksi pemalsuan ekstensi file / *extension spoofing*).<br>&bull; **Metadata EXIF & GPS**: Ekstraksi tipe/model kamera, software editor pembuat gambar, timestamp pengambilan, dan ekstraksi koordinat GPS lokasi pemotretan ke Google Maps.<br>&bull; **Steganografi & Appended Data**: Deteksi data biner tersembunyi setelah marker *End-of-File* (`EOF` / `IEND`), deteksi arsip `ZIP` tersemat di dalam gambar, dan ekstraksi string ASCII menarik (URL, email, token, password). |
116
+
117
+ ---
118
+
119
+ ## 📂 Arsitektur & Struktur Proyek
120
+
121
+ ```text
122
+ PATRICT-OSINT/
123
+ ├── .github/
124
+ │ ├── ISSUE_TEMPLATE/
125
+ │ │ ├── bug_report.md # Formulir laporan bug & error
126
+ │ │ ├── feature_request.md # Formulir usulan fitur baru
127
+ │ │ └── config.yml # Konfigurasi antarmuka issue GitHub
128
+ │ └── workflows/
129
+ │ ├── package.yml # CI/CD otomatisasi build & pre-release
130
+ │ └── python-publish.yml # Workflow publikasi PyPI
131
+ ├── config/
132
+ │ ├── config.example.yaml # Template konfigurasi sistem
133
+ │ └── config.yaml # Konfigurasi aktif (timeout, proxy, toggles)
134
+ ├── core/
135
+ │ ├── async_client.py # HTTP Client Asinkron berbasis aiohttp
136
+ │ ├── base_module.py # Kelas abstrak dasar BaseModule (target_type)
137
+ │ ├── config_manager.py # Manager konfigurasi & environment variable
138
+ │ └── plugin_loader.py # Dynamic discovery multi-domain module loader
139
+ ├── data/
140
+ │ └── social_signatures.json # Database pola & URL signature platform sosmed
141
+ ├── modules/ # Direktori modul-modul OSINT
142
+ │ ├── caller_id_osint.py # [Phone]
143
+ │ ├── dorking_osint.py # [Phone]
144
+ │ ├── email_osint.py # [Phone]
145
+ │ ├── file_forensics.py # [File/Media Forensics]
146
+ │ ├── location_osint.py # [Phone]
147
+ │ ├── network_osint.py # [Phone]
148
+ │ ├── phone_osint.py # [Phone]
149
+ │ ├── social_osint.py # [Phone]
150
+ │ ├── web_history.py # [Phone]
151
+ │ ├── web_osint.py # [Web Intelligence]
152
+ │ └── whatsapp_osint.py # [Phone]
153
+ ├── reports/ # Modul pelaporan
154
+ │ ├── report_generator.py # Generator laporan adaptif per domain
155
+ │ └── templates/
156
+ │ ├── report_dark.html # Dashboard HTML Phone Recon & Relationship Graph
157
+ │ ├── report_web.html # Dashboard HTML Web Recon, Auth & Tech Stack
158
+ │ └── report_forensics.html # Dashboard HTML Media Forensics, EXIF & Hashes
159
+ ├── visualizers/ # Modul visualisasi graf relasi
160
+ │ └── graph_engine.py
161
+ ├── CONTRIBUTING.md # Panduan standar kontribusi
162
+ ├── LICENSE # Lisensi resmi MIT
163
+ ├── MANIFEST.in # Konfigurasi packaging aset non-Python
164
+ ├── README.md # Dokumentasi utama repositori
165
+ ├── SECURITY.md # Kebijakan pelaporan kerentanan keamanan
166
+ ├── main.py # Entry point orkestrator & CLI framework
167
+ ├── pyproject.toml # Standar packaging PEP 517 / 518
168
+ ├── requirements.txt # Daftar dependensi Python
169
+ ├── run.sh # Script runner & installer global CLI
170
+ └── setup.py # Skrip instalasi setuptools
171
+ ```
172
+
173
+ ---
174
+
175
+ ## 💻 Persyaratan Sistem
176
+
177
+ - **Sistem Operasi**: Linux (Ubuntu, Debian, Kali, Fedora), macOS, atau Windows (WSL2 / PowerShell).
178
+ - **Python**: Versi `3.8` atau yang lebih baru.
179
+ - **Koneksi Internet**: Diperlukan untuk modul Phone dan Web Reconnaissance.
180
+
181
+ ---
182
+
183
+ ## 🚀 Panduan Instalasi
184
+
185
+ ### Metode 1: Instalasi Cepat Otomatis (Linux / macOS)
186
+
187
+ ```bash
188
+ # Clone repositori
189
+ git clone https://github.com/tb245950-wq/PATRICT-OSINT.git
190
+ cd PATRICT-OSINT
191
+
192
+ # Jalankan installer otomatis
193
+ chmod +x run.sh
194
+ ./run.sh install
195
+ ```
196
+
197
+ Setelah instalasi selesai, perintah `osint` dan `patrict` dapat langsung dijalankan dari direktori mana saja di terminal Anda.
198
+
199
+ ---
200
+
201
+ ### Metode 2: Instalasi Manual via Virtual Environment
202
+
203
+ ```bash
204
+ # 1. Buat dan aktifkan virtual environment
205
+ python3 -m venv venv
206
+ source venv/bin/activate # Di Windows: venv\Scripts\activate
207
+
208
+ # 2. Perbarui pip dan pasang dependensi
209
+ pip install --upgrade pip
210
+ pip install -r requirements.txt
211
+
212
+ # 3. Pasang paket ke sistem lokal
213
+ pip install -e .
214
+
215
+ # 4. Siapkan file konfigurasi
216
+ cp config/config.example.yaml config/config.yaml
217
+ ```
218
+
219
+ ---
220
+
221
+ ## 🎯 Cara Penggunaan
222
+
223
+ ### 1. Mode Interaktif (Pilih Domain Langsung)
224
+
225
+ Ketik `osint` tanpa argumen untuk membuka menu selektor interaktif:
226
+
227
+ ```bash
228
+ osint
229
+ ```
230
+
231
+ ```text
232
+ ===================================================================
233
+ ____ _ _____ ____ ___ ____ _____ ___ ____ ___ _ _ _____
234
+ | _ \ / \|_ _| _ \|_ _/ ___|_ _| / _ \/ ___|_ _| \ | |_ _|
235
+ | |_) | / _ \ | | | |_) || | | | | ____ | | | \___ \| || \| | | |
236
+ | __/ / ___ \| | | _ < | | |___ | | |____|| |_| |___) | || |\ | | |
237
+ |_| /_/ \_\_| |_| \_\___\____| |_| \___/|____/___|_| \_| |_|
238
+ ===================================================================
239
+ PATRICT-OSINT v2.2.0
240
+ ===================================================================
241
+
242
+ [+] PILIH DOMAIN PENYELIDIKAN:
243
+
244
+ > Phone Intelligence
245
+ Web & Tech Recon
246
+ Media & File Forensics
247
+ Keluar
248
+ ```
249
+
250
+ Navigasi menu dapat menggunakan **Page Up / Page Down**, **Arrow Up / Arrow Down**, atau tombol `j`/`k`, lalu tekan **Enter** untuk memilih domain penyelidikan.
251
+
252
+ ---
253
+
254
+ ### 2. Mode Baris Perintah (Direct CLI / Scope Control)
255
+
256
+ Anda dapat langsung memasukkan target pada perintah terminal dengan berbagai opsi flag:
257
+
258
+ ```bash
259
+ # Penyelidikan Nomor Telepon (Auto-detect Phone)
260
+ osint +6281234567890
261
+
262
+ # Penyelidikan Web & WhatWeb Fingerprint dengan Scope Mendalam
263
+ osint -t https://target-website.com -m web -S full -T 15
264
+
265
+ # Forensik Berkas Gambar / Media
266
+ osint -t /home/user/Downloads/foto_tersangka.jpg -m file
267
+
268
+ # Eksekusi Modul Spesifik & Simpan Output Kustom
269
+ osint -t +6281234567890 -M phone_osint,whatsapp_osint -o hasil_wa.json
270
+ ```
271
+
272
+ ---
273
+
274
+ ## 📊 Format Output & Laporan per Domain
275
+
276
+ Setiap domain menghasilkan laporan yang disesuaikan di folder `./output/`:
277
+
278
+ 1. **Domain Phone Intelligence**:
279
+ - `report_<target>.html`: Dashboard interaktif bertema gelap dengan tab navigasi lengkap, peta lokasi HLR, dan graf hubungan identitas.
280
+ - `graph_<target>.html`: Graf relasi interaktif berbasis PyVis/NetworkX.
281
+ - `report_<target>.json` & `report_<target>.csv`.
282
+
283
+ 2. **Domain Web & Tech Recon**:
284
+ - `report_web_<domain>.html`: Dashboard arsitektur web, security headers, alur redirect, tech stack matrix, record DNS, dan lokasi server GeoIP.
285
+ - `report_web_<domain>.json` & `report_web_<domain>.csv`.
286
+
287
+ 3. **Domain Media & File Forensics**:
288
+ - `report_file_<filename>.html`: Dashboard forensik biner, tabel hash (MD5/SHA1/SHA256/SHA512), verifikasi magic bytes, metadata kamera EXIF, koordinat GPS foto, dan deteksi steganografi/appended data.
289
+ - `report_file_<filename>.json` & `report_file_<filename>.csv`.
290
+
291
+ ---
292
+
293
+ ## 🤝 Dokumentasi & Panduan Komunitas
294
+
295
+ - 💬 [Komunitas Discord](https://discord.gg/snGDCZT2E) — Bergabunglah ke server Discord kami untuk diskusi, tanya jawab, kolaborasi, dan koordinasi kontribusi.
296
+ - 📘 [Panduan Kontribusi (CONTRIBUTING.md)](CONTRIBUTING.md) — Alur kerja git branch, standar kode, dan cara menambahkan modul baru.
297
+ - 🛡️ [Kebijakan Keamanan (SECURITY.md)](SECURITY.md) — Prosedur pelaporan celah keamanan dan *responsible disclosure*.
298
+ - 📜 [Lisensi Proyek (LICENSE)](LICENSE) — Lisensi lisensi terbuka MIT.
299
+ - 🐛 [Laporkan Bug / Error](https://github.com/tb245950-wq/PATRICT-OSINT/issues/new?template=bug_report.md) — Buat tiket laporan masalah teknis.
300
+ - 💡 [Usulkan Fitur Baru](https://github.com/tb245950-wq/PATRICT-OSINT/issues/new?template=feature_request.md) — Ajukan ide atau modul reconnaissance baru.
301
+
302
+ ---
303
+
304
+ ## ⚠️ Disclaimer & Etika
305
+
306
+ > **PENTING**: Framework **PATRICT-OSINT** dikembangkan secara khusus untuk tujuan penelitian keamanan informasi, edukasi, investigasi pertahanan (*defensive reconnaissance*), dan analisis intelijen yang sah (*authorized OSINT analysis*).
307
+ >
308
+ > Pengembang dan kontributor tidak bertanggung jawab atas segala bentuk penyalahgunaan, aktivitas ilegal, atau pelanggaran privasi yang dilakukan oleh pengguna pihak ketiga. Selalu patuhi hukum dan regulasi privasi data yang berlaku di yurisdiksi Anda.
309
+
310
+ ---
311
+
312
+ <div align="center">
313
+ <sub>Dibangun dengan ❤️ untuk Komunitas Keamanan Siber & Open-Source Intelligence.</sub>
314
+ </div>
@@ -0,0 +1,290 @@
1
+ <div align="center">
2
+
3
+ ```text
4
+ ===================================================================
5
+ ____ _ _____ ____ ___ ____ _____ ___ ____ ___ _ _ _____
6
+ | _ \ / \|_ _| _ \|_ _/ ___|_ _| / _ \/ ___|_ _| \ | |_ _|
7
+ | |_) | / _ \ | | | |_) || | | | | ____ | | | \___ \| || \| | | |
8
+ | __/ / ___ \| | | _ < | | |___ | | |____|| |_| |___) | || |\ | | |
9
+ |_| /_/ \_\_| |_| \_\___\____| |_| \___/|____/___|_| \_| |_|
10
+ ===================================================================
11
+ PATRICT-OSINT v2.0
12
+ ===================================================================
13
+ ```
14
+
15
+ # PATRICT-OSINT
16
+
17
+ **Advanced Multi-Domain Reconnaissance, Threat Intelligence & Digital Forensics Engine**
18
+
19
+ [![Python 3.8+](https://img.shields.io/badge/Python-3.8%2B-blue.svg?style=flat&logo=python)](https://www.python.org/)
20
+ [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg?style=flat)](LICENSE)
21
+ [![Build Status](https://img.shields.io/badge/GitHub%20Actions-Pre--release-orange.svg?style=flat&logo=githubactions)](https://github.com/tb245950-wq/PATRICT-OSINT/actions)
22
+ [![Architecture](https://img.shields.io/badge/Architecture-Modular%20Monorepo-purple.svg?style=flat)](#-arsitektur--struktur-proyek)
23
+ [![PRs Welcome](https://img.shields.io/badge/PRs-Welcome-brightgreen.svg?style=flat)](CONTRIBUTING.md)
24
+ [![Discord Community](https://img.shields.io/badge/Discord-Join%20Community-5865F2?style=flat&logo=discord&logoColor=white)](https://discord.gg/snGDCZT2E)
25
+
26
+ </div>
27
+
28
+ ---
29
+
30
+ ## 📌 Daftar Isi
31
+
32
+ - [Tentang PATRICT-OSINT](#-tentang-patrict-osint)
33
+ - [Domain Penyelidikan & Modul Intelijen](#-domain-penyelidikan--modul-intelijen)
34
+ - [1. Phone Intelligence](#1--phone-intelligence)
35
+ - [2. Web & Infrastructure Reconnaissance](#2--web--infrastructure-reconnaissance)
36
+ - [3. Media & File Forensics](#3--media--file-forensics)
37
+ - [Arsitektur & Struktur Proyek](#-arsitektur--struktur-proyek)
38
+ - [Persyaratan Sistem](#-persyaratan-sistem)
39
+ - [Panduan Instalasi](#-panduan-instalasi)
40
+ - [Cara Penggunaan](#-cara-penggunaan)
41
+ - [Konfigurasi Sistem](#-konfigurasi-sistem)
42
+ - [Format Output & Laporan](#-format-output--laporan)
43
+ - [Dokumentasi & Panduan Komunitas](#-dokumentasi--panduan-komunitas)
44
+ - [Disclaimer & Etika](#-disclaimer--etika)
45
+
46
+ ---
47
+
48
+ ## 📖 Tentang PATRICT-OSINT
49
+
50
+ **PATRICT-OSINT** adalah framework intelijen sumber terbuka (*Open Source Intelligence*) dan forensik digital generasi baru berbasis Python dengan arsitektur **Modular Monorepo**. Dirancang untuk penyelidik keamanan siber, analis ancaman (*threat intelligence*), dan peneliti forensik digital untuk melakukan pengumpulan intelijen otomatis dan terstruktur pada 3 domain utama: **Telekomunikasi (Nomor Telepon)**, **Infrastruktur Web**, dan **Forensik Media/Gambar**.
51
+
52
+ Framework ini mengadopsi sistem **Plugin Loader Dinamis** (`PluginLoader`) yang secara otomatis memuat modul sesuai tipe domain penyelidikan, serta menghasilkan visualisasi relasi interaktif (*Interactive Network Graph*) dan dashboard laporan bertema gelap (*Dark Mode*) yang disesuaikan untuk masing-masing domain.
53
+
54
+ ---
55
+
56
+ ## ⚡ Domain Penyelidikan & Modul Intelijen
57
+
58
+ PATRICT-OSINT mendukung 3 domain penyelidikan mandiri:
59
+
60
+ ### 1. 📞 Phone Intelligence
61
+ Modul reconnaissance nomor telepon internasional (ITU-T E.164) untuk mengungkap jejak pemilik, operator, dan sebaran akun media sosial:
62
+
63
+ | Modul | File | Deskripsi Fungsionalitas |
64
+ | :--- | :--- | :--- |
65
+ | **Phone Recon** | `modules/phone_osint.py` | Parsing standar internasional E.164, validasi nomor, operator (*carrier*), zona waktu, dan data geocoding dasar. |
66
+ | **Caller ID** | `modules/caller_id_osint.py` | Resolusi identitas pemilik target, nama panggilan, skor spam, dan reputasi nomor dari berbagai direktori caller intelligence. |
67
+ | **Geolocation** | `modules/location_osint.py` | Ekstraksi koordinat lintang/bujur (*lat/long*), reverse geocoding alamat fisik, dan pembuatan peta interaktif berbasis OpenStreetMap (*Folium*). |
68
+ | **Social Footprint** | `modules/social_osint.py` | Pemindaian asinkron ke 20+ platform media sosial (WhatsApp, Telegram, GitHub, Instagram, Twitter/X, TikTok, Reddit, Spotify, Steam, Medium, dll). |
69
+ | **Email Discovery** | `modules/email_osint.py` | Permutasi pola email potensial berdasarkan nomor dan identitas serta verifikasi record MX domain. |
70
+ | **WhatsApp Intel** | `modules/whatsapp_osint.py` | Verifikasi status keaktifan akun WhatsApp dan deteksi profil web signature. |
71
+ | **Network Intel** | `modules/network_osint.py` | Resolusi DNS, Reverse DNS, query WHOIS domain terkait, IP Geolocation, dan pemetaan infrastruktur jaringan. |
72
+ | **Web Archive** | `modules/web_history.py` | Penelusuran jejak domain historis target melalui Wayback Machine dan arsip web terbuka. |
73
+ | **Search Dorking** | `modules/dorking_osint.py` | Pembuatan query Google/DuckDuckGo dorks otomatis untuk mengungkap kebocoran dokumen, pastebin, dan jejak database publik. |
74
+
75
+ ---
76
+
77
+ ### 2. 🌐 Web & Infrastructure Reconnaissance
78
+ Modul investigasi mendalam terhadap aplikasi web dan server target:
79
+
80
+ | Modul | File | Deskripsi Fungsionalitas |
81
+ | :--- | :--- | :--- |
82
+ | **Web Intelligence** | `modules/web_osint.py` | &bull; **HTTP Methods & Protocol**: Deteksi method yang diizinkan (`OPTIONS`, `HEAD`, `GET`, `POST`, dll) dan security headers (`HSTS`, `CSP`, `X-Frame-Options`, `CORS`).<br>&bull; **Redirect Chain Tracker**: Pelacakan jalur redirect (`301`, `302`, `307`, `308`) dari URL asal hingga tujuan akhir.<br>&bull; **Session & Auth Fingerprint**: Deteksi token `JWT` (auto-decode header & payload), cookies session (Laravel `Sanctum` / `laravel_session`, Django `sessionid`, ASP.NET, PHP `PHPSESSID`, Express `connect.sid`, Spring `JSESSIONID`, Cloudflare `cf_clearance`).<br>&bull; **Tech Stack Fingerprint**: Deteksi Web Server (Nginx, Apache, Cloudflare), Framework Backend (Laravel, Django, Node, Rails), CMS (WordPress, Drupal, Joomla, Shopify), dan Frontend (React, Vue, Tailwind, Bootstrap).<br>&bull; **DNS & GeoIP Server**: Resolusi record `A`, `AAAA`, `MX`, `NS`, `TXT`, `CNAME`, IP Publik server, koordinat latitude/longitude, ISP/Org, ASN, dan peta lokasi server. |
83
+
84
+ ---
85
+
86
+ ### 3. 🖼️ Media & File Forensics
87
+ Modul analisis forensik berkas gambar/media (JPG, PNG, JPEG, GIF, WebP, PDF):
88
+
89
+ | Modul | File | Deskripsi Fungsionalitas |
90
+ | :--- | :--- | :--- |
91
+ | **File Forensics** | `modules/file_forensics.py` | &bull; **Kriptografi & Integritas**: Kalkulasi hash presisi `MD5`, `SHA-1`, `SHA-256`, dan `SHA-512`.<br>&bull; **Magic Bytes Inspection**: Verifikasi signature biner asli vs ekstensi file (deteksi pemalsuan ekstensi file / *extension spoofing*).<br>&bull; **Metadata EXIF & GPS**: Ekstraksi tipe/model kamera, software editor pembuat gambar, timestamp pengambilan, dan ekstraksi koordinat GPS lokasi pemotretan ke Google Maps.<br>&bull; **Steganografi & Appended Data**: Deteksi data biner tersembunyi setelah marker *End-of-File* (`EOF` / `IEND`), deteksi arsip `ZIP` tersemat di dalam gambar, dan ekstraksi string ASCII menarik (URL, email, token, password). |
92
+
93
+ ---
94
+
95
+ ## 📂 Arsitektur & Struktur Proyek
96
+
97
+ ```text
98
+ PATRICT-OSINT/
99
+ ├── .github/
100
+ │ ├── ISSUE_TEMPLATE/
101
+ │ │ ├── bug_report.md # Formulir laporan bug & error
102
+ │ │ ├── feature_request.md # Formulir usulan fitur baru
103
+ │ │ └── config.yml # Konfigurasi antarmuka issue GitHub
104
+ │ └── workflows/
105
+ │ ├── package.yml # CI/CD otomatisasi build & pre-release
106
+ │ └── python-publish.yml # Workflow publikasi PyPI
107
+ ├── config/
108
+ │ ├── config.example.yaml # Template konfigurasi sistem
109
+ │ └── config.yaml # Konfigurasi aktif (timeout, proxy, toggles)
110
+ ├── core/
111
+ │ ├── async_client.py # HTTP Client Asinkron berbasis aiohttp
112
+ │ ├── base_module.py # Kelas abstrak dasar BaseModule (target_type)
113
+ │ ├── config_manager.py # Manager konfigurasi & environment variable
114
+ │ └── plugin_loader.py # Dynamic discovery multi-domain module loader
115
+ ├── data/
116
+ │ └── social_signatures.json # Database pola & URL signature platform sosmed
117
+ ├── modules/ # Direktori modul-modul OSINT
118
+ │ ├── caller_id_osint.py # [Phone]
119
+ │ ├── dorking_osint.py # [Phone]
120
+ │ ├── email_osint.py # [Phone]
121
+ │ ├── file_forensics.py # [File/Media Forensics]
122
+ │ ├── location_osint.py # [Phone]
123
+ │ ├── network_osint.py # [Phone]
124
+ │ ├── phone_osint.py # [Phone]
125
+ │ ├── social_osint.py # [Phone]
126
+ │ ├── web_history.py # [Phone]
127
+ │ ├── web_osint.py # [Web Intelligence]
128
+ │ └── whatsapp_osint.py # [Phone]
129
+ ├── reports/ # Modul pelaporan
130
+ │ ├── report_generator.py # Generator laporan adaptif per domain
131
+ │ └── templates/
132
+ │ ├── report_dark.html # Dashboard HTML Phone Recon & Relationship Graph
133
+ │ ├── report_web.html # Dashboard HTML Web Recon, Auth & Tech Stack
134
+ │ └── report_forensics.html # Dashboard HTML Media Forensics, EXIF & Hashes
135
+ ├── visualizers/ # Modul visualisasi graf relasi
136
+ │ └── graph_engine.py
137
+ ├── CONTRIBUTING.md # Panduan standar kontribusi
138
+ ├── LICENSE # Lisensi resmi MIT
139
+ ├── MANIFEST.in # Konfigurasi packaging aset non-Python
140
+ ├── README.md # Dokumentasi utama repositori
141
+ ├── SECURITY.md # Kebijakan pelaporan kerentanan keamanan
142
+ ├── main.py # Entry point orkestrator & CLI framework
143
+ ├── pyproject.toml # Standar packaging PEP 517 / 518
144
+ ├── requirements.txt # Daftar dependensi Python
145
+ ├── run.sh # Script runner & installer global CLI
146
+ └── setup.py # Skrip instalasi setuptools
147
+ ```
148
+
149
+ ---
150
+
151
+ ## 💻 Persyaratan Sistem
152
+
153
+ - **Sistem Operasi**: Linux (Ubuntu, Debian, Kali, Fedora), macOS, atau Windows (WSL2 / PowerShell).
154
+ - **Python**: Versi `3.8` atau yang lebih baru.
155
+ - **Koneksi Internet**: Diperlukan untuk modul Phone dan Web Reconnaissance.
156
+
157
+ ---
158
+
159
+ ## 🚀 Panduan Instalasi
160
+
161
+ ### Metode 1: Instalasi Cepat Otomatis (Linux / macOS)
162
+
163
+ ```bash
164
+ # Clone repositori
165
+ git clone https://github.com/tb245950-wq/PATRICT-OSINT.git
166
+ cd PATRICT-OSINT
167
+
168
+ # Jalankan installer otomatis
169
+ chmod +x run.sh
170
+ ./run.sh install
171
+ ```
172
+
173
+ Setelah instalasi selesai, perintah `osint` dan `patrict` dapat langsung dijalankan dari direktori mana saja di terminal Anda.
174
+
175
+ ---
176
+
177
+ ### Metode 2: Instalasi Manual via Virtual Environment
178
+
179
+ ```bash
180
+ # 1. Buat dan aktifkan virtual environment
181
+ python3 -m venv venv
182
+ source venv/bin/activate # Di Windows: venv\Scripts\activate
183
+
184
+ # 2. Perbarui pip dan pasang dependensi
185
+ pip install --upgrade pip
186
+ pip install -r requirements.txt
187
+
188
+ # 3. Pasang paket ke sistem lokal
189
+ pip install -e .
190
+
191
+ # 4. Siapkan file konfigurasi
192
+ cp config/config.example.yaml config/config.yaml
193
+ ```
194
+
195
+ ---
196
+
197
+ ## 🎯 Cara Penggunaan
198
+
199
+ ### 1. Mode Interaktif (Pilih Domain Langsung)
200
+
201
+ Ketik `osint` tanpa argumen untuk membuka menu selektor interaktif:
202
+
203
+ ```bash
204
+ osint
205
+ ```
206
+
207
+ ```text
208
+ ===================================================================
209
+ ____ _ _____ ____ ___ ____ _____ ___ ____ ___ _ _ _____
210
+ | _ \ / \|_ _| _ \|_ _/ ___|_ _| / _ \/ ___|_ _| \ | |_ _|
211
+ | |_) | / _ \ | | | |_) || | | | | ____ | | | \___ \| || \| | | |
212
+ | __/ / ___ \| | | _ < | | |___ | | |____|| |_| |___) | || |\ | | |
213
+ |_| /_/ \_\_| |_| \_\___\____| |_| \___/|____/___|_| \_| |_|
214
+ ===================================================================
215
+ PATRICT-OSINT v2.2.0
216
+ ===================================================================
217
+
218
+ [+] PILIH DOMAIN PENYELIDIKAN:
219
+
220
+ > Phone Intelligence
221
+ Web & Tech Recon
222
+ Media & File Forensics
223
+ Keluar
224
+ ```
225
+
226
+ Navigasi menu dapat menggunakan **Page Up / Page Down**, **Arrow Up / Arrow Down**, atau tombol `j`/`k`, lalu tekan **Enter** untuk memilih domain penyelidikan.
227
+
228
+ ---
229
+
230
+ ### 2. Mode Baris Perintah (Direct CLI / Scope Control)
231
+
232
+ Anda dapat langsung memasukkan target pada perintah terminal dengan berbagai opsi flag:
233
+
234
+ ```bash
235
+ # Penyelidikan Nomor Telepon (Auto-detect Phone)
236
+ osint +6281234567890
237
+
238
+ # Penyelidikan Web & WhatWeb Fingerprint dengan Scope Mendalam
239
+ osint -t https://target-website.com -m web -S full -T 15
240
+
241
+ # Forensik Berkas Gambar / Media
242
+ osint -t /home/user/Downloads/foto_tersangka.jpg -m file
243
+
244
+ # Eksekusi Modul Spesifik & Simpan Output Kustom
245
+ osint -t +6281234567890 -M phone_osint,whatsapp_osint -o hasil_wa.json
246
+ ```
247
+
248
+ ---
249
+
250
+ ## 📊 Format Output & Laporan per Domain
251
+
252
+ Setiap domain menghasilkan laporan yang disesuaikan di folder `./output/`:
253
+
254
+ 1. **Domain Phone Intelligence**:
255
+ - `report_<target>.html`: Dashboard interaktif bertema gelap dengan tab navigasi lengkap, peta lokasi HLR, dan graf hubungan identitas.
256
+ - `graph_<target>.html`: Graf relasi interaktif berbasis PyVis/NetworkX.
257
+ - `report_<target>.json` & `report_<target>.csv`.
258
+
259
+ 2. **Domain Web & Tech Recon**:
260
+ - `report_web_<domain>.html`: Dashboard arsitektur web, security headers, alur redirect, tech stack matrix, record DNS, dan lokasi server GeoIP.
261
+ - `report_web_<domain>.json` & `report_web_<domain>.csv`.
262
+
263
+ 3. **Domain Media & File Forensics**:
264
+ - `report_file_<filename>.html`: Dashboard forensik biner, tabel hash (MD5/SHA1/SHA256/SHA512), verifikasi magic bytes, metadata kamera EXIF, koordinat GPS foto, dan deteksi steganografi/appended data.
265
+ - `report_file_<filename>.json` & `report_file_<filename>.csv`.
266
+
267
+ ---
268
+
269
+ ## 🤝 Dokumentasi & Panduan Komunitas
270
+
271
+ - 💬 [Komunitas Discord](https://discord.gg/snGDCZT2E) — Bergabunglah ke server Discord kami untuk diskusi, tanya jawab, kolaborasi, dan koordinasi kontribusi.
272
+ - 📘 [Panduan Kontribusi (CONTRIBUTING.md)](CONTRIBUTING.md) — Alur kerja git branch, standar kode, dan cara menambahkan modul baru.
273
+ - 🛡️ [Kebijakan Keamanan (SECURITY.md)](SECURITY.md) — Prosedur pelaporan celah keamanan dan *responsible disclosure*.
274
+ - 📜 [Lisensi Proyek (LICENSE)](LICENSE) — Lisensi lisensi terbuka MIT.
275
+ - 🐛 [Laporkan Bug / Error](https://github.com/tb245950-wq/PATRICT-OSINT/issues/new?template=bug_report.md) — Buat tiket laporan masalah teknis.
276
+ - 💡 [Usulkan Fitur Baru](https://github.com/tb245950-wq/PATRICT-OSINT/issues/new?template=feature_request.md) — Ajukan ide atau modul reconnaissance baru.
277
+
278
+ ---
279
+
280
+ ## ⚠️ Disclaimer & Etika
281
+
282
+ > **PENTING**: Framework **PATRICT-OSINT** dikembangkan secara khusus untuk tujuan penelitian keamanan informasi, edukasi, investigasi pertahanan (*defensive reconnaissance*), dan analisis intelijen yang sah (*authorized OSINT analysis*).
283
+ >
284
+ > Pengembang dan kontributor tidak bertanggung jawab atas segala bentuk penyalahgunaan, aktivitas ilegal, atau pelanggaran privasi yang dilakukan oleh pengguna pihak ketiga. Selalu patuhi hukum dan regulasi privasi data yang berlaku di yurisdiksi Anda.
285
+
286
+ ---
287
+
288
+ <div align="center">
289
+ <sub>Dibangun dengan ❤️ untuk Komunitas Keamanan Siber & Open-Source Intelligence.</sub>
290
+ </div>