
ورشة عمل OSINT محلية أولاً، تعمل بلوحة المفاتيح، مخصصة للطرفية مع 28 وحدة تغطي عمليات البحث عن أسماء المستخدمين والنطاقات وعناوين IP والبريد الإلكتروني والاختراقات والموقع الجغرافي، بالإضافة إلى تخزين الحالات في SQLite.
h-osint)منصة عمل OSINT محلية أولاً، تُدار بلوحة المفاتيح، للطرفية — اختصارات بأسلوب Neovim، إعدادات Lua، 12 سمة، ومخزن حالات محلي SQLite. بلا حساب، بلا خادم سحابي، بلا تتبّع.
kitty ~ » h-osint
المستودع:
h-osint· الملف التنفيذي:h-osint· الموقع: https://t-beckett.gitlab.io/h-osint/
يعمل h-osint بالكامل على جهازك. ملاحظات الحالات، وتتبّع الحسابات الوهمية، ونتائج كل عملية بحث تعيش في ملف SQLite محلي واحد — لا يوجد مكوّن خادم، ولا مزامنة، ولا شيء تفعله هذه الأداة يرفع بيانات حالتك إلى أي مكان. كل وحدة تتواصل مع خدمة طرف ثالث (HaveIBeenPwned، Shodan، WiGLE، Nominatim، RDAP، crt.sh، NVD، Team Cymru، ip-api.com) تفعل ذلك باستخدام مفتاح API الخاص بك حيثما كان مطلوباً، وفقط لأنك شغّلت تلك العملية المحددة.
لأن مراجع تقنيات OSINT الجيدة (مثل OSINT Fundamentals من TCM Security، و قائمة موارد OSINT من TCM) لا تأتي بأي برمجيات، والبرمجيات الموجودة إما كومة من سكربتات CLI أحادية الغرض (Sherlock، theHarvester، ...) أو واجهة رسومية ثقيلة (Maltego). يستعير h-osint الأجزاء من منظومة تطبيقات الطرفية التي تبدو أصلاً راقية ويضع منصة عمل واحدة متماسكة حول التقنيات المعروفة بدلاً من ذلك:
إنها ليست مبنية من أجل، وتحذف عمداً، أي شيء يكون استخدامه الواقعي
الوحيد هو المطاردة أو التحرش أو الاختراق غير المصرّح به أو التعامل
مع مخزونات بيانات اعتماد مسروقة — راجع docs/ETHICS.md لمعرفة أين
تُرسم تلك الحدود بالضبط ولماذا.
git clone https://gitlab.com/t-beckett/h-osint.git
cd h-osint
# Build prerequisites: a C compiler + linker (for the bundled SQLite and
# vendored Lua) and pkg-config. On Debian/Ubuntu:
sudo apt install build-essential pkg-config
cargo build --release
./target/release/h-osint # launches the TUI
./target/release/h-osint --help # see the scriptable subcommands
أدوات خارجية اختيارية تفتح المزيد من شاشة Tools: whois
(احتياطي للنطاقات التي لا يدعمها RDAP)، dig (سجلات DNS + فحص AXFR)،
exiftool، nmap، openssl، curl. يعمل التطبيق جيداً بدونها — فهو
يخبرك بما هو مفقود بدلاً من الفشل بصمت.
عند التشغيل الأول، يكتب h-osint إعداداً افتراضياً معلّقاً بالكامل إلى
~/.config/h-osint/init.lua من أجلك (إن لم يكن هناك شيء بعد) —
لا شيء لنسخه يدوياً. افتح ذلك الملف لضبط سمتك، ومفاتيح API،
والسمات المخصصة، وتجاوزات خريطة المفاتيح. لا شيء فيه مطلوب؛
كل حقل له قيمة افتراضية معقولة وكل وحدة تحتاج مفتاحاً تخبرك
بذلك بدلاً من الفشل بصمت. (ملف config/init.lua المضمّن في هذا
المستودع هو القالب الدقيق المستخدم — اقرأه هنا إن كنت تفضّل عدم تشغيل
التطبيق أولاً.)
جميع قدرات OSINT الـ22 المحددة أصلاً بالإضافة إلى 6 أدوات موسّعة — خريطة
الحالة/الوحدة الكاملة في docs/FEATURES.md:
ملاحظات وملفات الحالات · مدير الحسابات الوهمية / الشخصيات · منشئ استعلامات محركات البحث · تسليم البحث العكسي عن الصور · عارض EXIF مع معاينة مضمّنة ببروتوكول Kitty · أدوات الموقع الفيزيائي وتحديد الموقع الجغرافي · OSINT البريد الإلكتروني (التنسيق/MX/Gravatar) · OSINT البيانات المسرّبة (اختراقات + لصق HaveIBeenPwned) · OSINT الأشخاص · OSINT أرقام الهواتف · OSINT أسماء المستخدمين بأسلوب Sherlock · OSINT المواقع الإلكترونية (DNS، RDAP، crt.sh، Wayback، SPF/DMARC/DKIM، robots.txt/sitemap) · OSINT وسائل التواصل الاجتماعي · OSINT الشبكات اللاسلكية (WiGLE) · OSINT عناوين IP (تحديد الموقع الجغرافي، DNS العكسي، ASN/BGP عبر Team Cymru، RDAP) · OSINT عناوين MAC · تنسيق الأدوات الخارجية · خطوط الأتمتة · كتابة تقارير Markdown · OSINT أمني منخفض المستوى (شهادات TLS، ترويسات الأمان) · بالإضافة إلى استخبارات مضيف Shodan، ومعرّف التجزئة، وموسّع إعادة توجيه URL، وبحث CVE/NVD، وماسح النطاقات المشابهة/المتشابهة، وفحص سوء تكوين نقل منطقة DNS (AXFR).
ثلاثة أنماط، بنكهة Neovim — الجدول الكامل في
KEYBINDINGS.md:
كل ما سبق قابل للتجاوز من init.lua. اضغط ? في أي وقت للحصول على
ورقة الغش داخل التطبيق.
:theme <name> أو اضبط theme في init.lua — جدول اللوحة الكامل وتنسيق
السمة المخصصة في THEMES.md:
ocean-depths · forest-canopy · modern-minimalist · arctic-frost ·
botanical-garden · midnight-galaxy · nord · catppuccin-frappe ·
everforest · gruvbox · onedark · tokyonight (افتراضية)
كل سمة تربط نفس الأدوار الدلالية الـ12 (bg/fg/accent/danger/...)
— لا تخصّص أي شاشة سمة بالاسم أبداً — ويمكنك تعريف سماتك
الخاصة بالكامل في init.lua دون لمس كود Rust.
المنطق الأساسي لكل وحدة يمكن الوصول إليه بلا واجهة، لذا يمكنك تمريره إلى أدوات أخرى أو تشغيله من cron:
h-osint username johndoe
h-osint domain example.com
h-osint ip 8.8.8.8
h-osint asn 8.8.8.8
h-osint email [email protected]
h-osint mac AA:BB:CC:DD:EE:FF
h-osint phone "+1 555 0100"
h-osint dork --site example.com --filetype pdf "quarterly report"
h-osint breach [email protected] --api-key YOUR_HIBP_KEY
h-osint shodan 1.2.3.4 --api-key YOUR_SHODAN_KEY
h-osint hash 5f4dcc3b5aa765d61d8327deb882cf99
h-osint expand https://bit.ly/example
h-osint cve CVE-2024-3094
h-osint typosquat example.com
h-osint security example.com
h-osint axfr example.com ns1.example.com
h-osint pipeline example.com --steps domain,ip --case 1
h-osint report 1 --out case-1.md
src/
main.rs, cli.rs entry point + headless CLI
app.rs tab/mode state machine, :command execution
config.rs, keymap.rs Lua config loading, modal keybind resolution
themes/mod.rs 12 built-in themes + custom-theme support
db.rs SQLite case/notes/findings/personas storage
ui/ tab bar, status bar (mode pill), help popup
modules/
notes.rs, sockpuppet.rs full modules (state + DB + UI)
dork.rs, exif.rs, username.rs full modules (logic + UI)
domain.rs, network.rs, pure OSINT logic (no UI — see
identity.rs, geo.rs lookup.rs for the shared screen)
lookup.rs generic single-input screen used by
Domain/IP/MAC/Email/Phone/Breach/Geo/
Wireless/People/Social/Shodan/Hash/
UrlExpand/Cve/Typosquat/Security/Axfr/
ReverseImage
tools.rs, automation.rs, report.rs full modules
docs/
ARCHITECTURE.md how it's wired together + where to extend it
FEATURES.md every requested + extended feature -> module mapping
ETHICS.md responsible-use scope and why some modules are limited
THEMES.md full palette table + how to define a custom theme
KEYBINDINGS.md the complete keybind + command reference
CONTRIBUTING.md dev setup, how to add a module, commit style
SECURITY.md responsible-disclosure policy for this tool itself
CODE_OF_CONDUCT.md
CHANGELOG.md
config/init.lua example config
site/ source for the project website (published via GitLab Pages)
.gitlab-ci.yml build/lint/test + Pages deploy
يحتوي site/ على الصفحة الرئيسية الثابتة للمشروع؛ يبني .gitlab-ci.yml
ويفحص عند كل دفعة وينشر site/ إلى GitLab Pages على الفرع
الافتراضي، على https://t-beckett.gitlab.io/h-osint/.
تم تأطير هذا المشروع أصلاً في بيئة بلا وصول شبكي
إلى cargo build مقابل crates.io. روجع كل سطر يدوياً للتأكد من
صحته (الأنواع، شكل مدقّق الاستعارة، توقيعات API مقابل إصدارات الحزم
الموثّقة)، لكن اعتبر أول cargo build لنسخة مستنسخة حديثاً
خطوة التحقق الحقيقية — يشغّل خط CI هذا، وcargo clippy،
وcargo test عند كل دفعة، لذا فإن خط أنابيب أخضر على main هو الضمان
الفعلي. راجع قسم "الفجوات المعروفة" في docs/ARCHITECTURE.md لمعرفة
المواضع المحددة الأكثر استحقاقاً لنظرة ثانية (تغطية جدول MAC OUI، دقة
تحليل الهاتف، تحليل استجابة ASN).
MIT — راجع LICENSE. © T. Beckett.
| مستعار من | ما أخذناه |
|---|
| lazydocker | تخطيط قائم على الألواح، شريط تلميحات الاختصارات في الأسفل، قابل للتخصيص بالكامل |
| tuicr | تنقّل نمطي أصيل لـ Vim، Rust، ملف تنفيذي ثابت واحد |
| superfile | نموذج متعدد التبويبات، 12 سمة مضمّنة، صقل "كل شيء يبدو متقناً بعناية" |
| Sherlock / Maigret | تقنية المسح الشامل لأسماء المستخدمين عبر المنصات (أُعيد تنفيذها هنا، لا منسوخة) |
| SpiderFoot / recon-ng | تنسيق العديد من واجهات/أدوات OSINT السلبية خلف واجهة واحدة متسقة + خطوط أتمتة |
| المفتاح | النمط العادي |
|---|
j/k، ↑/↓ | التنقل داخل قائمة |
i | الدخول إلى نمط الإدراج (الكتابة في الحقل المركّز عليه) |
Esc | العودة إلى النمط العادي |
: | نمط الأوامر (:theme nord، :open username، :case new "Acme intake"، :q) — اضغط Tab لتدوير الإكمالات لاسم الأمر أو وسيطته |
r / Enter | تشغيل إجراء الشاشة الحالية |
Tab / Shift-Tab | تبديل التبويبات |
ctrl-t / ctrl-w | تبويب جديد (Home) / إغلاق التبويب |
[ / ] | السمة السابقة / التالية |
? | تبديل المساعدة |
:q | الخروج (هذه هي الطريقة الوحيدة للخروج — لا يوجد ربط لـ q المجرّد، لذا لا يمكن أبداً أن يكون مفتاحاً مكتوباً بالخطأ) |