FRITZ!Box Packet Sniffer – Netzwerk Traffic direkt mit der FRITZ!Box aufzeichnen und mit Wireshark online auswerten

fritz_logo.png   Dazu muss man einfach nur die Adresse http://fritz.box/html/capture.html in einem Browser öffnen – einloggen und den Mitschnitt auf der gewünschten Netzwerkschnittstelle starten … oder eben online mittels dem u.a. Linux Script plus Wireshark

root@js-FUTRO-S740:~# apt-get install wireshark

js@js-FUTRO-S740:~$ vi FritzBoxPacketSniffer
#!/bin/bash
set -x
# This is the address of the router
FRITZIP=http://IP@
# This is the WAN interface
IFACE=“2-0″
# Lan Interface
#IFACE=“1-lan“
# If you use password-only authentication use ‚dslf-config‘ as username.
FRITZUSER=<user>
FRITZPWD=<password>
SIDFILE=“/tmp/fritz.sid“
if [ -z „$FRITZPWD“ ] || [ -z „$FRITZUSER“ ] ; then echo „Username/Password empty. Usage: $0 <username> <password>“ ; exit 1; fi
echo „Trying to login into $FRITZIP as user $FRITZUSER“
if [ ! -f $SIDFILE ]; then
touch $SIDFILE
fi
SID=$(cat $SIDFILE)
# Request challenge token from Fritz!Box
CHALLENGE=$(curl -k -s $FRITZIP/login_sid.lua | grep -o „<Challenge>[a-z0-9]\{8\}“ | cut -d‘>‘ -f 2)
# Very proprieatry way of AVM: Create a authentication token by hashing challenge token with password
HASH=$(perl -MPOSIX -e ‚
use Digest::MD5 „md5_hex“;
my $ch_Pw = „$ARGV[0]-$ARGV[1]“;
$ch_Pw =~ s/(.)/$1 . chr(0)/eg;
my $md5 = lc(md5_hex($ch_Pw));
print $md5;
‚ — „$CHALLENGE“ „$FRITZPWD“)
curl -k -s „$FRITZIP/login_sid.lua“ -d „response=$CHALLENGE-$HASH“ -d ‚username=’${FRITZUSER} | grep -o „<SID>[a-z0-9]\{16\}“ | cut -d‘>‘ -f 2 > $SIDFILE
SID=$(cat $SIDFILE)
# Check for successfull authentification
if [[ $SID =~ ^0+$ ]] ; then echo „Login failed. Did you create & use explicit Fritz!Box users?“ ; exit 1 ; fi
echo „Capturing traffic on Fritz!Box interface $IFACE …“ 1>&2
# How to use wireshark
wireshark -k -i <(wget –no-check-certificate -qO- $FRITZIP/cgi-bin/capture_notimeout?ifaceorminor=$IFACE\&snaplen=\&capture=Start\&sid=$SID)

Leave a Reply

You must be logged in to post a comment.