4.6 KiB
IoT PreTester V4.5
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, authenticationurls.py– API routing and endpoint definitiondb_create.py,db_read.py,db_update.py,db_delete.py– CRUD logicanalyze/– Modules for firmware, PCAP, URL, and hash analysismanagement/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 stylelogin/,change-password/– Authenticationdevices/– Device management and details viewmanage-users/,manage-device-types/,manage-manufacturers/– Admin featuresscan-results/,analysis/– Display of analysis results
src/components/– UI components, upload modules, authentication, providerssrc/lib/– API hooks, contexts, utility functionssrc/services/– HTTP services and file upload handlerssrc/types/– TypeScript type definitionspublic/– 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 firmwareanalyze_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
# 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/.
A full German step-by-step guide (start, usage, shutdown) is in the repository README.
Stopping the Containers
# 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.