Skip to content

Repository files navigation

ReConan Logo

ReConan

License Version Language Contributions

ReConan is a Desktop-based OSINT and cyber investigation platform. It aggregates intelligence from multiple public data sources, storing and visualizing relationships between digital entities (such as domains, IPs, emails, and usernames).

Fun Fact: The name ReConan is just a highly sophisticated portmanteau of Reconnaissance and Conan the Detective. Because who better to investigate cyber threats than a brilliant, permanently-young anime detective?

Use Case

ReConan is designed for digital reconnaissance and relationship analysis. Investigators can use the platform to seamlessly connect the dots between various online identities and infrastructure elements. It serves as an interactive environment to discover, store, and explore entity relationships through a dynamic investigation graph.

Technologies Used

  • Language: Java
  • User Interface: JavaFX
  • Graph Visualization: JavaFX SmartGraph
  • Database: SQL Server
  • Data Access: JDBC
  • JSON Parsing: Jackson Databind
  • Build Tool: Maven

Architecture

ReConan follows a clean, layered architecture designed for modularity and maintainability:

graph TD
    UI[User Interface - JavaFX / FXML] --> Controller[Controllers]
    Controller --> Service[Investigation Service]
    Service --> Transform[Transform Registry / OSINT Layer]
    Transform --> API[External APIs: Shodan, Hunter.io, etc.]
    Controller --> Graph[Graph Manager - SmartGraph]
    Controller --> Repo[Repositories]
    Graph --> Model[Entity Models]
    Repo --> Model
    Repo --> DB[(SQL Server)]
Loading

Layered Structure

  1. User Interface (JavaFX):
    • Uses FXML for layout and CSS for professional styling.
    • ViewLoader manages scene transitions and FXML loading.
  2. Controller Layer:
    • Manages UI events and coordinates between the Graph Manager, Data Repositories, and Enrichment Services.
    • Implements complex session-to-database persistence logic (ID mapping).
  3. OSINT & Transform Layer:
    • InvestigationService: Orchestrates the data enrichment process.
    • TransformRegistry: A modular registry of OSINT adapters (Shodan, Hunter.io, etc.).
    • Transforms: Concrete implementations that communicate with external APIs to discover new entities and properties.
  4. Graph Management:
    • Built on JavaFX SmartGraph, providing a dynamic, force-directed graph environment.
    • GraphManager encapsulates graph logic, custom styling, and layout physics.
  5. Data Access Layer (Repositories):
    • Uses the Repository Pattern with JDBC for database interactions.
    • Handles CRUD operations for investigations, entities, and relationships.
  6. Entity Models:
    • Plain Java Objects (POJOs) representing the core domain: Investigation, Entity, and Relationship.
  7. Persistence Layer:
    • SQL Server database with a relational schema optimized for entity-relationship mapping.
    • DatabaseManager handles automated schema initialization and connectivity.

Contributing

We welcome contributions! Please see our Contributing Guidelines for details on how to fork the repository, set up your .env file, compile the project using mvn javafx:run, and submit Pull Requests.

Contributors

Thanks to these wonderful people for contributing to ReConan!

About

A desktop-based Open-source Intelligence (OSINT) and Cyber Investigation platform.

Topics

Resources

Code of conduct

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages