Un petit script permettant d'analyser les réactions face à l'envoie de plusieurs flags TCP








Hping3 sera utilisé pour forger les paquets avec les différents flags.
Le principe est simple : envoyer un ensemble de flag, sur un ensemble de port... sur un ensemble d'adresses IP
Le synopsis :


 _____ ___ ___     ___ _               ___
|_   _/ __| _ \___| __| |__ _ __ _ ___| __|  _ ______
  | || (__|  _/___| _|| / _` / _` |___| _| || |_ /_ /
  |_| \___|_|     |_| |_\__,_\__, |   |_| \_,_/__/__|
                             |___/

Usage: tcp-flag-fuzz <-i interface> <-t target> <-p dest-ports> <-f tcp-flags*> <-o report.csv>

tcp flags : S F U P A R
            may be a combination of tcp flags, ex.: XMAS scan = FUP flags

Ex.: tcp-flag-fuzz eth0 192.168.0.1 80 S F FUP A


La sortie se présente ainsi :


Target: 
Port: 
 -> 




./files/tcpflagfuzz/sample.png




#!/bin/bash
 
APP="$(basename "$0")"
 
#######################################################################################################################
#
# Usage
#
##
 
if [ $# -eq 0 ]; then
  echo
  printf "\033[1;34m"
  echo ' _____ ___ ___     ___ _               ___'
  echo '|_   _/ __| _ \___| __| |__ _ __ _ ___| __|  _ ______'
  echo '  | || (__|  _/___| _|| / _` / _` |___| _| || |_ /_ /'
  echo '  |_| \___|_|     |_| |_\__,_\__, |   |_| \_,_/__/__|'
  echo '                             |___/'
  printf "\033[0m"
  echo
  echo "Usage: $APP <-i interface> <-t target> <-p dest-ports> <-f tcp-flags*> <-o report.csv>"
  echo
  echo "tcp flags : S F U P A R"
  echo "            may be a combination of tcp flags, ex.: XMAS scan = FUP flags"
  echo
  echo "Ex.: $APP eth0 192.168.0.1 80 S F FUP A"
  echo
  exit 0
fi
 
 
 
#######################################################################################################################
#
# Args
#
##
 
shift # -i <interface>
ifce="$1" ; shift
 
shift # -t <target1 [target2 [target3 [...]]]>
while true ; do
  [ "$1" = "-p" ] && break
  [ $# -eq 0 ] && break
  targets=$targets"$1 "
  shift
done
 
shift # -p <port1 [port2 [port3 [...]]]>
while true ; do
  [ "$1" = "-f" ] && break
  [ $# -eq 0 ] && break
  ports=$ports"$1 "
  shift
done
 
shift # -f <flags1 [flags2 [flags3 [...]]]>
while true ; do
  [ "$1" = "-o" ] && break
  [ $# -eq 0 ] && break
  flags=$flags"$1 "
  shift
done
 
shift
report=$1
rm -f "$report"
 
src="$(ip a show dev "$ifce"|awk '/inet / { print $2 }'|cut -d'/' -f1)"
 
 
 
#######################################################################################################################
#
# Scan
#
##
 
echo
 
for target in $targets ; do 
 
  echo -e "\033[1;36mTarget: $target\033[0m"
  for dport in $ports ; do
 
    echo -e "\033[1;35mPort: $dport\033[0m"
    for flag in $flags ; do
      sport=$(( (RANDOM+1024)%65535 )) 
      ans=$(hping3 -c 1 -$flag $target -s $sport -p $dport 2>/dev/null|awk -F'=' '/^len=.+flags=/ { print $7 }'|cut -d' ' -f1|grep . || echo '<none>')
      echo "$flag -> $ans"
      echo "$src;$sport;$flag;$target;$dport;$ans" >> $report
 
    done
    echo
 
  done
  echo
 
done
 
 



   =>   Écrit par : Nicolas, le 12 décembre 2018


 
Mots clés :  
  network 
  
  bash 
  
  linux 
  
  macos 
    >   Articles connexes :

GitVuln

GitVuln


HTTP Server, tell me who you are ?


Discuter avec un serveur web *apparement* muet ? Voici comment faire...


Chiffrement multicouche

Chiffrement multicouche



HTTP Download

HTTP Download



Cheat SHeet OpenSSL

Cheat SHeet OpenSSL



Comment gagner du temps sur Internet

Comment gagner du temps sur Internet



/tmp et /var/log en noexec sur macOS

/tmp et /var/log en noexec sur macOS


1640364