154 lines
No EOL
3.8 KiB
Markdown
154 lines
No EOL
3.8 KiB
Markdown
# 🏦 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) |