#!/bin/bash # # web-ui http://fritz.box/html/capture.html # HOST="fritz.box" ARGUMENTS="" IFACE="" function get_session_id() { local SID CHALLENGE=$(wget -O - "http://$HOST/login_sid.lua" 2>/dev/null \ | sed 's/.*\(.*\)<\/Challenge>.*/\1/') CPSTR="$CHALLENGE-$PASSWORD" MD5=$(echo -n $CPSTR | iconv -f ISO8859-1 -t UTF-16LE \ | md5sum -b | awk '{print substr($0,1,32)}') RESPONSE="$CHALLENGE-$MD5" SID=$(wget -O - --post-data="?username=&response=$RESPONSE" \ "http://$HOST/login_sid.lua" 2>/dev/null \ | sed 's/.*\(.*\)<\/SID>.*/\1/') echo "$SID" } echo -n "Enter your router password: "; read PASSWORD; SID=$(get_session_id) if [ "$SID" == "0000000000000000" ]; then echo "Authentication failure!" exit fi echo "" echo "What do you want to capture?" echo "INTERNET:" echo " 1) Internet" echo " 2) Interface 0" echo " 3) Routing Interface" echo "INTERFACES:" echo " 4) tunl0" echo " 5) eth0" echo " 6) eth1" echo " 7) eth2" echo " 8) eth3" echo " 9) lan" echo " 10) hotspot" echo " 11) wifi0" echo " 12) ath0" echo "WIFI:" echo " 13) AP 2,4 GHz ath0, Interface 1" echo " 14) AP 2,4 GHz ath0, Interface 0" echo " 15) HW 2,4 GHz wifi0, Interface 0" echo "" while true; do echo -n "Enter your choice [0-15] ('q' for quit): "; read MODE; if (("$MODE" > "0")) && (("$MODE" < "16")); then if [ "$MODE" == "1" ]; then IFACE="2-1" elif [ "$MODE" == "2" ]; then IFACE="3-17" elif [ "$MODE" == "3" ]; then IFACE="3-0" elif [ "$MODE" == "4" ]; then IFACE="1-tunl0" elif [ "$MODE" == "5" ]; then IFACE="1-eth0" elif [ "$MODE" == "6" ]; then IFACE="1-eth1" elif [ "$MODE" == "7" ]; then IFACE="1-eth2" elif [ "$MODE" == "8" ]; then IFACE="1-eth3" elif [ "$MODE" == "9" ]; then IFACE="1-lan" elif [ "$MODE" == "10" ]; then IFACE="1-hotspot" elif [ "$MODE" == "11" ]; then IFACE="1-wifi0" elif [ "$MODE" == "12" ]; then IFACE="1-ath0" elif [ "$MODE" == "13" ]; then IFACE="4-131" elif [ "$MODE" == "14" ]; then IFACE="4-130" elif [ "$MODE" == "15" ]; then IFACE="4-128" fi break elif [ "$MODE" == "q" ]; then exit fi done echo "" echo "Do you also want to write a pcap file?" echo "" while true; do echo -n "Enter your choice [y-n] ('q' for quit): "; read WRITE_PCAP; if [ "$WRITE_PCAP" == "y" ]; then PCAP_FILE="$(date +%Y-%m-%d_%H:%M:%S).pcap" WIRESHARK_ARGS="-w $PCAP_FILE" break elif [ "$WRITE_PCAP" == "n" ]; then WIRESHARK_ARGS="" break elif [ "$WRITE_PCAP" == "q" ]; then exit fi done echo "" echo "Starting wireshark ..." echo "" wget -O - "http://$HOST/cgi-bin/capture_notimeout?ifaceorminor=$IFACE&snaplen=1600&capture=Start&sid=$SID" \ 2>/dev/null \ | wireshark -k $WIRESHARK_ARGS -i -