IP-Pakete mitschneiden

From Fritz!Box
Jump to: navigation, search

AVM Wiki >> Tipps+Tricks >> IP-Pakete mitschneiden @ whmf   -   IRC-Chat   -   hu nl it English
Community Modelle Zubehör Environment Konfiguration Shell-Befehle Software Freetz Lexikon Tipps+Tricks Bilder

Hardware-Tipps System-Tipps Netzwerk-Tipps Telefonie-Tipps Software-Tipps Sonstige Tipps Todo

Contents

Mitschneiden der IP-Pakete

Die Fritzbox kann DUMP-Dateien der übertragenen Daten bereitstellen. Die URL dazu lautet:

fritz.box/cgi-bin/webcm?getpage=../html/capture.html

oder [1]

Start startet den Datei-Download, Stop ... beendet ihn. Es sind folgende Ebenen verfügbar:

  • Paketmitschnitt auf DSL-Ebene (Standard), angeboten wird die Datei fritzbox-vcc0.eth, enthalten sind die Protokolle llc, eth, pppoes, ppp und lcp beziehungsweise ip sowie die in IP enthaltenen Nutzdaten. Als Source wird die WAN-IP-Nummer der Box dargestellt.
  • Paketmitschnitt auf DSL-Ebene (nur 2. PVC)
  • Paketmitschnitt ohne DSL-Rahmen, angeboten wird die Datei fritzbox-ip.eth, enthalten ist das IP-Protokoll und dessen Nutzdaten (TCP/UDP, HTTP usw.). Es werden die internen IP-Nummern dargestellt.

Bei der FRITZ!Box Fon WLAN 7050 ab Firmware-Version 14.03.86 wird der Mitschnitt direkt als "extended tcpdump capture file" (Ethereal) geschrieben.--Ido tiphares 14:00, 17 Oct 2005 (CEST) --Hb 13:41, 14 May 2006 (CEST)

Bei älteren Boxen enthält die angebotene Datei fritzbox.eth den Traffic, der mit diesem Windows-Programm von Spongebob in ein Ethereal-fähiges Format umgewandelt werden kann. --Udo SW 01:57, 17 Oct 2004 (CEST) --[User: Pfeffer 23:57 18.11.2004] --spongebob 08:20, 10 Jan 2005 (CEST) --Hb 13:41, 14 May 2006 (CEST)

Da ich nach einiger Offlinezeit jetzt wieder online bin, würde ich raten, die jeweils aktuelle Version des Konverters von http://people.freenet.de/spongebob/avm2er.zip herunterzuladen. Die dort liegende aktuellste Version zeigt jetzt auch die Timestamps... --Sbx 21:37, 19 Oct 2004 (CEST)

Ich habe einen Konverter ins libpcap-Format geschrieben. Source gibt es hier. Zum Übersetzten benötigt man neben einer Standard-Linux-Entwicklungsumgebung noch libpcap, die aber bei den allermeisten Distributionen auch dabei sein sollte (Entwicklerpaket installieren, nicht nur die dynamische Library"). -- Enrik 12:01, 8 Nov 2004 (CET)

Man kann sich den dump auch in Live anschauen. Dazu muss man nur die Daten direkt an Wireshark (ehemals Ethereal) pipen, z.B. für eth0:

wget -O - http://fritz.box/cgi-bin/capture_notimeout\?start=Start\&snaplen=1600\&iface=eth0 | wireshark -i - -S -l -k -N nmtC --Js 13:08, 7 Mar 2007 (CET) (Leider meldet in der OpenSuSE 10.3 Beta der Wireshark "Unrecognized libpcap format") --Lowfyr 18:19 18 Sep 2007 (CET) - Das passiert genau dann wenn du ein FRITZ!Box-Kennwort gesetzt hast und nicht eingeloggt bist. Log dich in deinem Browser ein und probier es dann nochmal, jetzt sollte es gehen. -- Nexno

Auch unter Windows kann man live mitschneiden. Siehe hierzu NAT32. Diese Fähigkeit ist auch in der kostenlosen Version von NAT32 drin. -- Nat32support 21:24, 03 Apr 2015 (CET)

Paketmitschnitt von der Box holen und mit tshark Live anzeigen (Beispiel für neues Loginverfahren mit SID)

Folgendes in eine Datei unter Linux pasten und mit chmod +x Datei ausführbar machen

#!/bin/sh
# Stolen from Hippie2000 and modified by Jackfritt ;)
IP="IP oder DNS Name deiner Box"
Passwd="Password deiner Fritz!Box"

# Challenge abholen
ChallengeXML=`wget -O - "http://$IP/cgi-bin/webcm?getpage=../html/login_sid.xml" 2>/dev/null| grep Challenge`
Challenge=`echo $ChallengeXML | awk '{match($0,/>[^<>]+</); print substr($0,RSTART+1,RLENGTH-2)}'`

# login aufbauen und hashen
CPSTR="$Challenge-$Passwd"
MD5=`echo -n $CPSTR | iconv -f ISO8859-1 -t UTF-16LE | md5sum -b | awk '{print substr($0,1,32)}'`
RESPONSE="$Challenge-$MD5"
POSTDATA="login:command/response=$RESPONSE&getpage=../html/de/menus/menu2.html"

# login senden und SID herausfischen
SID=`wget -O - --post-data="$POSTDATA" "http://$IP/cgi-bin/webcm" 2>/dev/null| grep "name=\"sid\"" | head -1 | awk '{match($0,/value="[^"]+"/); print substr($0,RSTART+7,RLENGTH-8)}'`

# Internet Capture
wget -O - "http://$IP/cgi-bin/capture_notimeout?ifaceorminor=3-17 \
&snaplen=1600&capture=Start&sid=$SID" 2>/dev/null | \
tshark -i - -S -l -N nmtC

Hoffe es konnte anderen helfen :) -- Jackfritt 17:39, 30 December 2010 (CET)

Das selbe funktioniert auch mit Wireshark

#!/bin/sh
# Stolen from Hippie2000 and modified by Jackfritt ;)
# Stolen from Jackfritt and modified by Chaosmaster :-P
ipddr="fritz.box"
unset dumpfile
unset passwd
if [ "$1" = "-h" ] || [ "$1" = "--help" ] || [ ! $1 ]; then
	echo "Usage: $0 <PASSWORD> [<DUMPFILE>] [<IP>]"
	exit 1
fi

[ $1 ] && passwd=$1
[ $2 ] && dumpfile="-w $2"
[ $3 ] && ipaddr=$3

# Challenge abholen
ChallengeXML=`wget -O - "http://$ipddr/cgi-bin/webcm?getpage=../html/login_sid.xml" 2>/dev/null| grep Challenge`
Challenge=`echo $ChallengeXML | awk '{match($0,/>[^<>]+</); print substr($0,RSTART+1,RLENGTH-2)}'`

# login aufbauen und hashen
CPSTR="$Challenge-$passwd"
MD5=`echo -n $CPSTR | iconv -f ISO8859-1 -t UTF-16LE | md5sum -b | awk '{print substr($0,1,32)}'`
RESPONSE="$Challenge-$MD5"
POSTDATA="login:command/response=$RESPONSE&getpage=../html/de/menus/menu2.html"

# login senden und SID herausfischen
SID=`wget -O - --post-data="$POSTDATA" "http://$ipddr/cgi-bin/webcm" 2>/dev/null| grep "name=\"sid\"" | head -1 | awk '{match($0,/value="[^"]+"/); print substr($0,RSTART+7,RLENGTH-8)}'`

# Internet Capture
wget -O - "http://$ipddr/cgi-bin/capture_notimeout?ifaceorminor=3-17 \
&snaplen=1600&capture=Start&sid=$SID" 2>/dev/null | \
wireshark -k $dumpfile -i -

Nun auch für FRITZ!OS 05.50 und per Pipe an andere Programme verfüttern die das libpcap Format unterstützen

Aufruf mit
scriptname | tshark -i - -S -l -N nmtC
oder für Chaosmaster ;)
scriptname | wireshark -i -

#!/bin/sh
IP="fritz.box"
Passwd="xxxxxx"

# Challenge abholen
Challenge=`wget -O - "http://$IP/login_sid.lua" 2>/dev/null | sed 's/.*<Challenge>\(.*\)<\/Challenge>.*/\1/'`

# login aufbauen und hashen
CPSTR="$Challenge-$Passwd"
MD5=`echo -n $CPSTR | iconv -f ISO8859-1 -t UTF-16LE | md5sum -b | awk '{print substr($0,1,32)}'`
RESPONSE="$Challenge-$MD5"
POSTDATA="?username=&response=$RESPONSE"

# login senden und SID herausfischen
SID=`wget -O - --post-data="$POSTDATA" "http://$IP/login_sid.lua" 2>/dev/null | sed 's/.*<SID>\(.*\)<\/SID>.*/\1/'`

# Internet Capture
#Schnittstelle 1(Internet)=3-17
#wget -O - "http://$IP/cgi-bin/capture_notimeout?ifaceorminor=3-17 \
#alle Schnittstellen =3-0
#wget -O - "http://$IP/cgi-bin/capture_notimeout?ifaceorminor=3-0 \
#&snaplen=1600&capture=Start&sid=$SID" 2>/dev/null | \
#tshark -i - -S -l -N nmtC
#wget -O - "http://$IP/cgi-bin/capture_notimeout?ifaceorminor=3-0 \
#Externe Schnittstelle
#wget -O - "http://$IP/cgi-bin/capture_notimeout?ifaceorminor=3-17 \
#Lokal LAN
wget -O - "http://$IP/cgi-bin/capture_notimeout?ifaceorminor=1-eth0\
&snaplen=1600&capture=Start&sid=$SID" 2>/dev/null

--Jackfritt 15:29, 12 April 2013 (CEST)