3.8 KiB
🏦 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
go run main.go -port 8081
2. Testiraj HTTP (nezaščiten)
Odprite brskalnik: http://localhost:8081
3. Zagon s Caddy za HTTPS
# 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
-
Zaženite Wireshark
sudo wireshark -
Nastavite filtre:
- Vmesnik:
Loopback: lo - Filter:
http and tcp.port == 8080
- Vmesnik:
-
Testirajte prenose:
- Prijavite se z:
admin/admin123 - Opazujte pakete v Wireshark-u
- Prijavite se z:
-
Poiščite POST request:
- Desni klik na paket → Follow → HTTP Stream
- Videli boste geslo v običajnem besedilu!
Korak 2: HTTPS primerjava
-
Nastavite Wireshark filter:
tcp.port == 8443 -
Dostopajte do HTTPS verzije:
https://localhost:8443 -
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
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:
- HTTP telovi - pokažite kako so gesla vidna
- TLS Encryption - razložite razliko v Wireshark-u
- Headers analiza - pokažite HTTP vs HTTPS headers
- 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:
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)