Initial commit

This commit is contained in:
k_lar 2026-02-12 00:11:37 +01:00
commit 8421c6999a
10 changed files with 1794 additions and 0 deletions

154
README.md Normal file
View file

@ -0,0 +1,154 @@
# 🏦 SecureBank Demo - MiTM Napadalna Aplikacija
Preprosta Go spletna aplikacija za demonstracijo razlike med HTTP in HTTPS pri prenosu občutljivih podatkov (MiTM napadi).
## 🎯 Namen aplikacije
Ta aplikacija je namenjena **izobraževalnim** namenom za prikaz:
- Kako so podatki vidni v HTTP prometu
- Kako HTTPS ščiti podatke pred prisluškovalci
- Praktična uporaba Wireshark-a za analizo mrežnega prometa
## 🚀 Hitri zagon
### 1. Zaženite Go aplikacijo
```bash
go run main.go -port 8081
```
### 2. Testiraj HTTP (nezaščiten)
Odprite brskalnik: `http://localhost:8081`
### 3. Zagon s Caddy za HTTPS
```bash
# Namestite Caddy (če še ni nameščen)
# Na Ubuntu/Debian:
sudo apt install caddy
# Na macOS:
brew install caddy
# Zaženite Caddy z našo konfiguracijo
caddy run --config Caddyfile
# Aplikacija bo dostopna na:
# HTTP: http://localhost:8080 (preko Caddy proxy)
# HTTPS: https://localhost:8443 (z avtomatskimi SSL certifikati)
```
## 🔍 MiTM Demo navodila
### Korak 1: HTTP analiza
1. **Zaženite Wireshark**
```bash
sudo wireshark
```
2. **Nastavite filtre:**
- Vmesnik: `Loopback: lo`
- Filter: `http and tcp.port == 8080`
3. **Testirajte prenose:**
- Prijavite se z: `admin` / `admin123`
- Opazujte pakete v Wireshark-u
4. **Poiščite POST request:**
- Desni klik na paket → Follow → HTTP Stream
- Videli boste geslo v običajnem besedilu!
### Korak 2: HTTPS primerjava
1. **Nastavite Wireshark filter:**
```
tcp.port == 8443
```
2. **Dostopajte do HTTPS verzije:**
```
https://localhost:8443
```
3. **Primerjajte pakete:**
- Videli boste samo TLS handshake
- Aplikacijski podatki so šifrirani
- Gesla niso več vidna!
## 👤 Demo uporabniki
| Uporabniško ime | Geslo | Opis |
|-----------------|----------|------|
| `admin` | `admin123` | Administrator |
| `janez` | `geslo123` | Običajen uporabnik |
## 📂 Struktura projekta
```
server/
├── main.go # Glavna Go aplikacija
├── Caddyfile # Caddy konfiguracija
├── templates/ # HTML predloge
│ ├── home.html
│ ├── login.html
│ ├── register.html
│ └── dashboard.html
└── static/
└── style.css # CSS styling
```
## 🛠️ Comandni argumenti
```bash
go run main.go -port 8081 # Nastavi drug port
```
## ⚠️ Varnostna opozorila
**Ta aplikacija je namenoma NEZAŠČITENA in vsebuje varnostne luknje:**
- ❌ Gesla se shranjujejo v običajnem besedilu
- ❌ Ni session managementa
- ❌ Ni CSRF zaščite
- ❌ Ni proper input validacije
- ❌ Ni rate limiting-a
**NE UPORABLJAJTE V PRODUKCIJI!** To je samo demonstracijska aplikacija.
## 🎓 Za prezetnje
### Ključne točke za predstavo:
1. **HTTP telovi** - pokažite kako so gesla vidna
2. **TLS Encryption** - razložite razliko v Wireshark-u
3. **Headers analiza** - pokažite HTTP vs HTTPS headers
4. **Certificate validation** - pokažite browser warnings za self-signed certs
### Dodatni filtri za Wireshark:
```
# Samo POST requesti
http.request.method == POST
# Form data
urlencoded-form
# TLS paketi
tls
```
## 🔧 Troubleshooting
**Problem:** Caddy se ne zažene
**Rešitev:** Preverite če port 8080/8443 ni že zaseden:
```bash
lsof -i :8080
lsof -i :8443
```
**Problem:** Browser SSL warning
**Rešitev:** To je normalno za self-signed certifikate. Kliknite "Advanced" → "Proceed to localhost"
**Problem:** Wireshark ne vidi paketov
**Rešitev:** Poskusite filter `tcp.port == 8081` (direct Go app port)
## 📚 Dodatni viri
- [Caddy dokumentacija](https://caddyserver.com/docs/)
- [Wireshark User Guide](https://www.wireshark.org/docs/wsug_html_chunked/)
- [OWASP TLS Guidelines](https://owasp.org/www-project-cheat-sheets/cheatsheets/Transport_Layer_Protection_Cheat_Sheet.html)