103 lines
4.3 KiB
Markdown
103 lines
4.3 KiB
Markdown
# IoT PreTester 4.6 Demo
|
|
|
|
IoT PreTester 4.6 Demo is a partner-ready demonstration platform for security analysis of IoT network captures. A Django REST backend extracts and evaluates PCAP/PCAPNG traffic, while a Next.js frontend manages devices, starts analyses, and presents prioritized findings with packet-level evidence.
|
|
|
|
## Demo scope
|
|
|
|
- Upload and analyze `.pcap` and `.pcapng` captures.
|
|
- Detect credential exposure, secrets, suspicious traffic patterns, weak protocols, TLS issues, DNS anomalies, scanning, and possible exfiltration.
|
|
- Review affected endpoints, evidence, packet references, severity, confidence, and recommendations.
|
|
- Export reports as Markdown, plain text, or JSON.
|
|
- Optionally run user-selected URL probes and offline hash checks.
|
|
- Manage demo devices, manufacturers, device types, and users.
|
|
|
|
Firmware binary analysis and historical prototype pages are intentionally not part of this demo.
|
|
|
|
## Requirements
|
|
|
|
- Docker Desktop or Docker Engine with Docker Compose
|
|
- At least 4 GB of free memory for the two application containers
|
|
- A modern web browser
|
|
|
|
No local Python, Node.js, tshark, nmap, or hashcat installation is required for the Docker workflow.
|
|
|
|
## Quick start
|
|
|
|
1. Create the local configuration:
|
|
|
|
```bash
|
|
cp .env.example .env
|
|
```
|
|
|
|
2. Set secure values for `SECRET_KEY` and `DJANGO_SUPERUSER_PASSWORD` in `.env`.
|
|
|
|
3. Build and start the demo:
|
|
|
|
```bash
|
|
docker compose up -d --build
|
|
docker compose ps
|
|
```
|
|
|
|
4. Open [http://localhost:3000](http://localhost:3000) and sign in with the admin credentials from `.env`.
|
|
|
|
5. Open the sample device, upload [`demo_files/demo_capture.pcapng`](./demo_files/demo_capture.pcapng), enter the device IP and firmware metadata, then start the scan.
|
|
|
|
The initial image build can take several minutes because the backend includes network-analysis tools. The application is ready when both containers are healthy.
|
|
|
|
## Common commands
|
|
|
|
| Task | Command |
|
|
| --- | --- |
|
|
| Start | `docker compose up -d` |
|
|
| Stop | `docker compose stop` |
|
|
| Status | `docker compose ps` |
|
|
| Follow logs | `docker compose logs -f` |
|
|
| Run backend tests | `make test` |
|
|
| Rebuild | `docker compose up -d --build --force-recreate` |
|
|
|
|
Equivalent shortcuts are available through `make help`.
|
|
|
|
## Repository structure
|
|
|
|
```text
|
|
.
|
|
├── frontend/ Next.js user interface
|
|
├── django_project/
|
|
│ ├── IoTAnalyzer/ Django API and persistence adapters
|
|
│ ├── IoTPreTester/ Django configuration
|
|
│ └── analyzer/ Framework-independent analysis engine
|
|
├── demo_files/ Partner-safe sample capture and wordlist
|
|
├── docker/ Container entrypoints
|
|
├── ARCHITECTURE.md Architecture and security-detection design
|
|
├── docker-compose.yml Demo runtime
|
|
└── Makefile Convenience commands
|
|
```
|
|
|
|
## Headless analysis
|
|
|
|
The analysis core can also run without Django:
|
|
|
|
```bash
|
|
cd django_project
|
|
python -m analyzer.cli ../demo_files/demo_capture.pcapng -f md -o report.md
|
|
```
|
|
|
|
Exit code `0` means no high/critical findings, `2` means at least one high/critical finding, and `1` indicates an execution error.
|
|
|
|
## Demo safety notes
|
|
|
|
- Only upload captures that you are authorized to inspect. Captures can contain credentials, tokens, personal data, and internal addresses.
|
|
- Active URL probing is started manually for selected endpoints. Do not probe third-party systems without permission.
|
|
- Hash recovery uses the deliberately small `demo_files/demo_wordlist.txt`. Supply an authorized external wordlist only when required.
|
|
- This configuration is intended for controlled demonstrations, not public internet exposure.
|
|
- Runtime data, uploaded captures, logs, and `.env` are excluded from version control.
|
|
|
|
## Documentation
|
|
|
|
- [`ARCHITECTURE.md`](./ARCHITECTURE.md) describes the data flow, detector model, and module boundaries.
|
|
- [`django_project/analyzer/README.md`](./django_project/analyzer/README.md) documents the standalone analysis package.
|
|
|
|
## Distribution
|
|
|
|
This repository is supplied as **IoT PreTester 4.6 Demo** for an agreed partner demonstration. No public license is granted by the repository; redistribution or commercial use requires the owner's written permission.
|