informativec2026/bank
2026-02-12 00:23:02 +01:00
..
dist Added windows binary 2026-02-12 00:23:02 +01:00
static Moved files and added embed support + binary in repo now 2026-02-12 00:21:50 +01:00
templates Moved files and added embed support + binary in repo now 2026-02-12 00:21:50 +01:00
build.sh Moved files and added embed support + binary in repo now 2026-02-12 00:21:50 +01:00
Caddyfile Moved files and added embed support + binary in repo now 2026-02-12 00:21:50 +01:00
go.mod Moved files and added embed support + binary in repo now 2026-02-12 00:21:50 +01:00
launch_browsers.sh Moved files and added embed support + binary in repo now 2026-02-12 00:21:50 +01:00
main.go Moved files and added embed support + binary in repo now 2026-02-12 00:21:50 +01:00
README.md Moved files and added embed support + binary in repo now 2026-02-12 00:21:50 +01:00
securebank-embedded Moved files and added embed support + binary in repo now 2026-02-12 00:21:50 +01:00

🏦 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

  1. Zaženite Wireshark

    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

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:

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