v4.5 Demo initial commit
This commit is contained in:
+136
@@ -0,0 +1,136 @@
|
||||
# IoT PreTester V4.5
|
||||
|
||||
[](./LICENSE)
|
||||
|
||||
## Overview
|
||||
|
||||
The **IoT PreTester V3** project is an integrated platform for analyzing and evaluating IoT devices, firmware files, and network traffic.
|
||||
It combines a **Django backend** for data storage, API, and analysis with a **Next.js frontend** for user management, device administration, and result visualization.
|
||||
|
||||
The solution allows administrators to manage manufacturers, device types, and users, analyze firmware uploads (Binwalk, Strings, Hashes, PCAP), and view results via a modern web interface.
|
||||
|
||||
---
|
||||
|
||||
## Main Components
|
||||
|
||||
### Backend – Django
|
||||
|
||||
**Path:** `django_project/`
|
||||
**Framework:** Django + Django REST Framework
|
||||
|
||||
Structure and main modules:
|
||||
|
||||
- **IoTAnalyzer/** – Core application containing models, views, URLs, and analysis functions
|
||||
- `models.py` – Data model (devices, firmware, manufacturers, analysis results)
|
||||
- `views.py` – REST APIs for device management, file uploads, authentication
|
||||
- `urls.py` – API routing and endpoint definition
|
||||
- `db_create.py`, `db_read.py`, `db_update.py`, `db_delete.py` – CRUD logic
|
||||
- `analyze/` – Modules for firmware, PCAP, URL, and hash analysis
|
||||
- `management/commands/` – Management commands for automated analysis
|
||||
- **IoTPreTester/** – Django project configuration (settings, middleware, routing)
|
||||
- **templates/** – Classic Django template (e.g., index page)
|
||||
- **static/** – Static assets for legacy UI components
|
||||
- **tests/** – Unit and integration tests
|
||||
|
||||
---
|
||||
|
||||
### Frontend – Next.js
|
||||
|
||||
**Path:** `Frontend/iot-pre-tester-frontend/`
|
||||
**Framework:** Next.js + TypeScript + Tailwind CSS + shadcn/ui
|
||||
|
||||
Structure and main modules:
|
||||
|
||||
- **`src/app/`** – App routes in Next.js App Router style
|
||||
- `login/`, `change-password/` – Authentication
|
||||
- `devices/` – Device management and details view
|
||||
- `manage-users/`, `manage-device-types/`, `manage-manufacturers/` – Admin features
|
||||
- `scan-results/`, `analysis/` – Display of analysis results
|
||||
- **`src/components/`** – UI components, upload modules, authentication, providers
|
||||
- **`src/lib/`** – API hooks, contexts, utility functions
|
||||
- **`src/services/`** – HTTP services and file upload handlers
|
||||
- **`src/types/`** – TypeScript type definitions
|
||||
- **`public/`** – Static assets, images, and upload directories
|
||||
- **Configuration files:** `next.config.ts`, `tailwind.config.ts`, `tsconfig.json`
|
||||
|
||||
---
|
||||
|
||||
### Analysis and Data Processing
|
||||
|
||||
**Path:** `django_project/IoTAnalyzer/analyze/`
|
||||
|
||||
Included modules:
|
||||
|
||||
- `analyze_pcap.py` – Evaluation of PCAP files (e.g., hashes, URLs)
|
||||
- `analyze_firmware.py` – Extraction of strings and binary data from firmware
|
||||
- `analyze_hashes.py` – Hash analysis (including password cracking via rockyou.txt)
|
||||
- `analyze_url.py`, `analyze_dns.py` – DNS/URL validation and network checks
|
||||
|
||||
Results are persisted in the _RawData_, _AnalyzedData_, _Firmware_, _Device_, and related models.
|
||||
|
||||
---
|
||||
|
||||
## Docker Commands
|
||||
|
||||
### Starting the Containers
|
||||
|
||||
```bash
|
||||
# 1. Change to this directory
|
||||
cd V4.5
|
||||
|
||||
# 2. Configure environment variables (only the first time)
|
||||
cp .env.example .env
|
||||
nano .env # Adjust: SECRET_KEY, DJANGO_SUPERUSER_PASSWORD, etc.
|
||||
|
||||
# 3. Build and start the containers
|
||||
docker compose up -d --build
|
||||
|
||||
# 4. Wait until both containers report "healthy"
|
||||
docker compose ps
|
||||
```
|
||||
|
||||
The first start takes a few minutes (images are built, the database is created and
|
||||
seeded with default manufacturers/device types). The frontend only starts once the
|
||||
backend healthcheck passes. After the first successful start, set
|
||||
`INIT_DATABASE=false` in `.env` to skip re-seeding on later starts.
|
||||
|
||||
Then log in at http://localhost:3000 with the superuser from `.env`
|
||||
(default username `admin`, password = `DJANGO_SUPERUSER_PASSWORD`).
|
||||
Demo files for trying out the analysis are in [`demo_files/`](./demo_files/).
|
||||
|
||||
A full German step-by-step guide (start, usage, shutdown) is in the
|
||||
[repository README](../README.md).
|
||||
|
||||
## Stopping the Containers
|
||||
|
||||
```bash
|
||||
# Stop containers (data is preserved)
|
||||
docker compose stop
|
||||
|
||||
# OR: Stop and remove containers (data is preserved)
|
||||
docker compose down
|
||||
|
||||
# OR: Remove everything including volumes/data (caution!)
|
||||
docker compose down -v
|
||||
```
|
||||
|
||||
## Quick overview
|
||||
|
||||
| Action | Command |
|
||||
| ------ | ------------------------ |
|
||||
| Start | `docker compose up -d` |
|
||||
| Stop | `docker compose stop` |
|
||||
| Status | `docker compose ps` |
|
||||
| Logs | `docker compose logs -f` |
|
||||
|
||||
## Access
|
||||
|
||||
- **Frontend**: http://localhost:3000
|
||||
- **Backend API**: http://localhost:8000
|
||||
|
||||
---
|
||||
|
||||
## License
|
||||
|
||||
This project is licensed under an internal research and development license.
|
||||
Commercial use or distribution requires written permission from the project owner.
|
||||
Reference in New Issue
Block a user