Commit Graph

30 Commits

Author SHA1 Message Date
carnivuth
9306fe641e added endpoint for blocklist download api 2026-01-29 23:29:11 +01:00
carnivuth
b7e26f1735 added api endpoint to list public malicious ips 2026-01-29 23:26:34 +01:00
carnivuth
2e2e4d65d0 linted code 2026-01-29 23:23:52 +01:00
carnivuth
cadf77da44 added endpoint for blocklist download api 2026-01-29 23:22:39 +01:00
carnivuth
04549cc57c added api endpoint to list public malicious ips 2026-01-29 23:22:39 +01:00
Lorenzo Venerandi
e93bcb959a Doc/updated documentation (#60)
* added documentation, updated repo pointer in the dashboard, added dashboard link highlighting and mionor fixes

* added doc

* added logo to dashboard

* Fixed dashboard attack chart

* Enhance fake data generation with varied request counts for better visualization

* Add automatic migrations and support for latitude/longitude in IP stats

* Update Helm chart version to 0.2.2 and add timezone configuration option

---------

Co-authored-by: BlessedRebuS <patrick.difa@gmail.com>
2026-01-29 11:55:06 +01:00
Lorenzo Venerandi
8c76f6c847 Feat/deployment update (#56)
* feat: update analyzer thresholds and add crawl configuration options

* feat: update Helm chart version and add README for installation instructions

* feat: update installation instructions in README and add Docker support

* feat: update deployment manifests and configuration for improved service handling and analyzer settings

* feat: add API endpoint for paginated IP retrieval and enhance dashboard visualization with category filters

* feat: update configuration for Krawl service to use external config file

* feat: refactor code for improved readability and consistency across multiple files

* feat: remove Flake8, Pylint, and test steps from PR checks workflow
2026-01-26 12:36:22 +01:00
Lorenzo Venerandi
130e81ad64 Feat/dashboard improvements (#55)
* fixed external ip resoultion

* added dashboard logic division, filtering capabilities, geoip map, attacker stats

* refactor: replace print statements with applogger for error logging in DatabaseManager

* feat: add click listeners for IP cells in dashboard tables to fetch and display stats

---------

Co-authored-by: BlessedRebuS <patrick.difa@gmail.com>
2026-01-25 22:50:27 +01:00
Lorenzo Venerandi
4450d3a4e3 Linted code iwht black tool 2026-01-23 22:00:21 +01:00
leonardobambini
4e4c370b72 added site depth limit mechanism (#48)
* added site depth limit mechanism

* modified max pages limit and ban duration seconds

---------

Co-authored-by: Leonardo Bambini <lbambini@Leonardos-MacBook-Air.local>
Co-authored-by: BlessedRebuS <patrick.difa@gmail.com>
2026-01-23 21:33:32 +01:00
carnivuth
9d9a718aec feat:removed manual timezone management, delegate timezone configuration to execution environment
removed code that manages timezone setup from config file, krawl now
obeys to the environment configuration
2026-01-17 18:06:09 +01:00
Leonardo Bambini
77196952d1 made ip analysis and ip rep info fetch a scheduled task 2026-01-10 14:53:31 +01:00
Patrick Di Fazio
be7ba1f820 added download button 2026-01-09 20:37:20 +01:00
Patrick Di Fazio
b61461d028 fixed categorization visualization, fixed date in the dashboard, fixed attack regex detection 2026-01-08 19:20:22 +01:00
Leonardo Bambini
4f42b946f3 added ip rep fetch + bug fix 2026-01-07 22:56:01 +01:00
Patrick Di Fazio
02aed9e65a added drop down menu and scoring graph to the dashboard 2026-01-06 18:50:36 +01:00
Patrick Di Fazio
4478c60956 added krawl homepage to templates 2026-01-05 17:07:10 +01:00
Leonardo Bambini
ff98a77e1a parametrized into config.yaml + bug fix 2026-01-04 22:20:10 +01:00
Leonardo Bambini
48f38cb28e added scoring system + db model modifications 2026-01-04 19:12:23 +01:00
Patrick Di Fazio
12dcf5ba39 Merge branch 'dev' into feat/randomized-server-header 2025-12-30 00:14:14 +01:00
Leonardo Bambini
c2c43ac985 Added randomized server header and changed behavior of SERVER_HEADER env var 2025-12-29 18:51:37 +01:00
Phillip Tarrant
f1c142c53d feat: add SQLite persistent storage for request logging
- Add SQLAlchemy-based database layer for persistent storage
  - Create models for access_logs, credential_attempts, attack_detections, ip_stats
  - Include fields for future GeoIP and reputation enrichment
  - Implement sanitization utilities to protect against malicious payloads
  - Fix XSS vulnerability in dashboard template (HTML escape all user data)
  - Add DATABASE_PATH and DATABASE_RETENTION_DAYS config options
  - Dual storage: in-memory for dashboard performance + SQLite for persistence

  New files:
  - src/models.py - SQLAlchemy ORM models
  - src/database.py - DatabaseManager singleton
  - src/sanitizer.py - Input sanitization and HTML escaping
  - requirements.txt - SQLAlchemy dependency

  Security protections:
  - Parameterized queries via SQLAlchemy ORM
  - Field length limits to prevent storage exhaustion
  - Null byte and control character stripping
  - HTML escaping on dashboard output
2025-12-28 10:43:32 -06:00
Patrick Di Fazio
61ba574e92 Added POST log and dashboard for used credentials 2025-12-27 19:17:27 +01:00
Phillip Tarrant
6ab4cf428f Merge branch 'main' into feat/logging-system 2025-12-26 11:52:52 -06:00
Phillip Tarrant
7916932ea7 Add rotating file logging system with app and access loggers
Implement a centralized logging singleton using Python's built-in
  logging module with RotatingFileHandler. Replaces all print()
  statements with structured logging.

  - Create LoggerManager singleton in src/logger.py
  - Add two loggers: app (krawl.log) and access (access.log)
  - Configure 1MB file rotation with 5 backups
  - Output to both files and stdout for container compatibility
  - Update handler.py, server.py, wordlists.py to use new loggers

  Benefits over print():
  - Persistent logs survive restarts for forensic analysis
  - Automatic rotation prevents unbounded disk growth
  - Separate access/app logs for easier analysis and SIEM integration
  - Consistent timestamps and log levels across all messages
  - Configurable verbosity without code changes
2025-12-26 08:23:38 -06:00
Phillip Tarrant
16aca9bba6 Add configurable HTTP Server header for deception
Add SERVER_HEADER environment variable to customize the HTTP Server
  response header, defaulting to Apache/2.2.22 (Ubuntu). This allows the
  honeypot to masquerade as different web servers to attract attackers.

  - Add server_header field to Config dataclass
  - Override version_string() in Handler to return configured header
  - Update documentation and all deployment configs
2025-12-26 07:53:05 -06:00
Patrick Di Fazio
26273fdf4e unified style and added error handling 2025-12-25 21:26:13 +01:00
Phillip Tarrant
47a49b03be updating templates to have dedicated wordpress login page, updated phpmyadmin page to be more correct 2025-12-25 13:35:42 -06:00
Phillip Tarrant
72f7293995 added attack classification, added attack types to stats and dashboard, also added a tiny curl script to simulate attacks for testing purposes 2025-12-24 10:25:00 -06:00
BlessedRebuS
076b2de584 First commit 2025-12-14 19:08:01 +01:00