#!/bin/bash
# gizleme_olc MODE
# Switch Mullvad's anti-censorship mode, reconnect, record 6 s of what leaves
# the Wi-Fi card (en0) and ask Wireshark (tshark) what it thinks the traffic is.
m="$1"; R="$HOME/Projects/csint-mullvad-test/raw"; P="$R/gizleme_$m.pcap"
mullvad anti-censorship set mode "$m" >/dev/null
t0=$(now); mullvad reconnect -w >/dev/null 2>&1; t1=$(now)
st=$(mullvad status | head -1)
rel=$(mullvad status -v | sed -n 's/^ *Relay: *//p')
printf 'mode %s, %s in %.1f s\n' "$m" "$st" "$(echo "$t1 - $t0" | bc)"
echo "server $rel" | maske
tcpdump -n -i en0 -Q out -s 128 -G 6 -W 1 -w "$P" not arp 2>/dev/null &
sleep 0.5; curl -s -o /dev/null -m 5 https://www.debian.org; wait
tot=$(tshark -r "$P" 2>/dev/null | wc -l | tr -d ' ')
wg=$(tshark -r "$P" -Y wg 2>/dev/null | wc -l | tr -d ' ')
top=$(tshark -r "$P" -T fields -e _ws.col.protocol 2>/dev/null | sort | uniq -c | sort -rn | head -2 | awk '{printf "%s%s %s", (NR>1?", ":""), $2, $1}')
echo "Wireshark sees      $top"
echo "seen as WireGuard   $wg of $tot packets"
echo "$m $t0 $t1 $st $wg $tot" >> "$R/gizleme.log"
