ZOYKUHot Board

termuxhackers-id/sigitTài liệu kỹ thuật

Simple Information Gathering Toolkit

Thông báo ngôn ngữ:Chưa có tài liệu tiếng Việt cho kho lưu trữ này. Đang hiển thị bản gốc tiếng Anh chính thức.
Cài đặt nhanh
pip install sigit
SIGIT Banner

last-commit repo-top-language Python


Overview

SIGIT (Simple Information Gathering Toolkit) is a modular, high-performance open-source intelligence (OSINT) framework written in modern Python. It provides automated reconnaissance capabilities across network infrastructure, domain metadata, security configurations, digital identities, and social profiles.

The architecture is built around schema-validated services, recursive auto-discovery, stealth asynchronous HTTP transport via browser TLS impersonation, and dual execution modes (scriptable CLI and interactive terminal interface).


Key Capabilities

  • Stealth Transport: Asynchronous network I/O powered by curl_cffi with browser fingerprint impersonation (JA3/JA4) and bounded concurrency controls.
  • Typed Schema Validation: Parameter contracts and input validation powered by Pydantic models for every service.
  • Dual Execution Modes: Fully scriptable command-line interface with dynamic argument parsing (argparse), alongside a rich interactive terminal menu.
  • Categorized Architecture: Modular service organization partitioned by domain responsibilities for clean horizontal scalability.
  • Universal Output Rendering: Format-agnostic presentation supporting structured tables, key-value panels, lists, raw text, and automated JSON export.

Architecture and Directory Layout

sigit/
├── core/
│   ├── base.py                 # BaseService contract, Category, RenderType, ServiceResult
│   ├── config.py               # Central environment settings (pydantic-settings)
│   ├── http.py                 # Shared curl_cffi AsyncSession with concurrency control
│   └── registry.py             # Recursive package auto-discovery engine
├── cli/
│   ├── display.py              # Rich table, panel, and file output rendering
│   ├── menu.py                 # Interactive terminal navigation and execution loop
│   ├── parser.py               # Dynamic argparse generator derived from Pydantic schemas
│   └── prompt.py               # Schema-driven interactive prompt collector
└── services/                   # Category-partitioned and isolated tool packages
    ├── domain/                 # dns_recon/, subdomain_scanner/, whois/
    ├── email/                  # email_recon/, mail_finder/
    ├── network/                # ip_location/, port_scanner/, reverse_ip/
    ├── recon/                  # phone_info/, tech_detector/
    ├── security/               # breach_checker/, header_analyzer/, ssl_checker/
    └── social/                 # github_recon/, user_recon/

Service Catalog

Category Service Name Command Identifier Description
Domain DNSRecon dns_recon Resolves A, MX, NS, and TXT DNS records via Google DNS over HTTPS.
Domain SubdomainScan subdomain_scan Concurrent DNS and HTTP enumeration for common subdomain prefixes.
Domain WHOISLookup whois_lookup Retrieves full domain registration data via system whois utility.
Email EmailRecon email_recon Checks email registration status across 100+ platforms with multi-factor validation.
Email MailFinder mail_finder Audits known email registrations or generates permutations to probe targets.
Network IPLocation ip_location Queries geolocation, Autonomous System (ASN), ISP, and coordinates.
Network PortScanner port_scanner Non-blocking asynchronous TCP port scanner over configurable ports.
Network ReverseIP reverse_ip Discovers virtual hosts and domains collocated on the same IP.
Recon PhoneInfo phone_info Validates international phone numbering formats, country, and carrier.
Recon TechDetector tech_detector Inspects HTTP response headers and signatures for CMS, frameworks, and CDNs.
Security BreachChecker breach_checker Verifies account exposure against indexed public data breaches.
Security HeaderAnalyzer header_analyzer Audits HTTP response security policies (HSTS, CSP, X-Frame-Options).
Security SSLChecker ssl_checker Extracts X.509 certificate metadata, validity windows, and issuers.
Social GitHubRecon git_hub_recon Collects public user metrics and latest repository activities.
Social UserRecon user_recon Cross-checks username availability across 105+ platforms with anti-bot bypass.

Installation

Prerequisites

  • Python 3.11 or higher
  • uv (recommended package and project manager) or standard pip

Using uv

git clone https://github.com/termuxhackers-id/SIGIT.git
cd SIGIT
uv sync

This automatically registers the sigit executable into the environment. You can also install it globally via:

uv tool install .
# or
pip install .

Usage

1. Interactive Terminal Mode

To start the guided terminal menu:

sigit
# or with uv
uv run sigit

2. Headless CLI Mode (Scriptable)

Every service exposes a dedicated subcommand generated automatically from its parameter schema.

Global Help

sigit --help

Service Help and Parameter Inspection

sigit port_scanner --help
sigit email_recon --help
sigit user_recon --help

Execution Examples

# Geolocation lookup for IP address
sigit ip_location --ip 8.8.8.8

# Email reconnaissance across 140+ platforms
sigit email_recon --email [email protected]

# Social username reconnaissance across 105+ platforms
sigit user_recon --username targetuser -o user_profiles.json

# DNS record enumeration with direct JSON export
sigit dns_recon --domain google.com -o results_dns.json

# Asynchronous TCP port scanning
sigit port_scanner --target 127.0.0.1 --ports 22,80,443 --timeout 1.0

# Inspect security headers
sigit header_analyzer --url https://example.com

Configuration

Configuration variables can be passed via environment variables or a .env file located in the project root:

# Concurrency and timeout controls
SIGIT_TIMEOUT=15
SIGIT_MAX_CONCURRENCY=25
SIGIT_IMPERSONATE=chrome124
SIGIT_PROXY=http://127.0.0.1:8080

# External API credentials (optional)
SIGIT_VERIPHONE_KEY=your_api_key_here
SIGIT_ISITAREALEMAIL_KEY=your_api_key_here

Adding a New Service

  1. Create a dedicated tool directory under the appropriate category (e.g., sigit/services/network/my_scanner/).

  2. Create sigit/services/network/my_scanner/service.py:

from pydantic import BaseModel, Field
from sigit.core.base import BaseService, Category, RenderType, ServiceResult


class ScannerInput(BaseModel):
    target: str = Field(description="Target host")


class MyScanner(BaseService):
    name = "MyScanner"
    description = "Custom network scanner implementation"
    category = Category.NETWORK
    input_schema = ScannerInput

    async def execute(self, params: ScannerInput) -> ServiceResult:
        data = {"host": params.target, "status": "active"}
        return ServiceResult.ok(data, render_type=RenderType.KEY_VALUE)
  1. Expose the service in sigit/services/network/my_scanner/__init__.py:
from sigit.services.network.my_scanner.service import MyScanner, ScannerInput

__all__ = ["MyScanner", "ScannerInput"]
  1. The service is automatically indexed by ServiceRegistry and immediately accessible in both the interactive menu and the CLI subcommand interface.

License

This project is licensed under the MIT License.

Bản sao tài liệu lưu trữ từ kho lưu trữ GitHub chính thức · Xem trên GitHub
Ngày đồng bộ: 2026-11-13