Skip to content
Snippets Groups Projects
run.sh 2.87 KiB
Newer Older
  • Learn to ignore specific revisions
  • Lukas Koenen's avatar
    Lukas Koenen committed
    ip6_regex="(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))"
    ip4_regex="((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])"
    
    
    current_time=$(date "+%Y.%m.%d-%H.%M")
    
    
    report_extension="tex"
    
    if [[ ! -z $format ]]
    then
        report_extension=$format
    fi
    
    
    root_dir=/shared
    xml_dir=xml_files
    report_dir=reports
    
    xml_subdir=$xml_dir/$current_time
    
    report_subdir=$report_dir/$current_time
    
    report_file=report_$current_time.$report_extension
    
    severity_file=report_$current_time.severity
    
    
    if [[ ! -z $project ]]
    then
    
        xml_subdir=$xml_dir/$project/$current_time
    
        report_subdir=$report_dir/$project/$current_time
    
    
        report_file=report_$project\_$current_time.$report_extension
    
        severity_file=report_$project\_$current_time.severity
    
    function upload {
        if [[ -z $upload ]]
        then
            return
    
        else
            cp -r $root_dir/$xml_dir /
            cp -r $root_dir/$report_dir /
    
            if [ $upload = "aws" ]
            then
                python /aws_push.py $1
            elif [ $upload = "gcp" ]
            then
                python /gcp_push.py $1
            fi
    
        fi
    }
    
    function get_filename(){
        echo $1 | tr / -
    }
    
    
    mkdir -p $root_dir/$report_dir
    mkdir -p $root_dir/$xml_dir
    
    rm -rf $root_dir/$xml_dir/*
    rm -rf $root_dir/$report_dir/*
    
    mkdir -p $root_dir/$xml_subdir
    
    mkdir -p $root_dir/$report_subdir
    
    while IFS= read -r line
    do
      current_time=$(date "+%Y.%m.%d-%H.%M.%S")
      filename=$(get_filename $line)".xml"
    
    Lukas Koenen's avatar
    Lukas Koenen committed
      if [[ $line =~ $ip6_regex ]]
      then
    
          nmap -Pn -sV -oX $root_dir/$xml_subdir/$filename -oN - -v1 -6 $@ --script=vulners/vulners.nse,ssh-auth-methods.nse $line
    
    Lukas Koenen's avatar
    Lukas Koenen committed
      elif [[ $line =~ $ip4_regex ]]
      then
    
          nmap -Pn -sV -oX $root_dir/$xml_subdir/$filename -oN - -v1 $@ --script=vulners/vulners.nse,ssh-auth-methods.nse $line
    
    Lukas Koenen's avatar
    Lukas Koenen committed
      else
          return -1 
      fi
    
      upload $xml_subdir/$filename
    done < $root_dir/ips.txt
    
    python /output_report.py $root_dir/$xml_subdir $root_dir/$report_subdir/$report_file $root_dir/ips.txt
    
    if [[ $report_extension = "tex" ]]
    then
    
        sed -i 's/_/\\_/g' $root_dir/$report_dir/$report_file
        sed -i 's/\$/\\\$/g' $root_dir/$report_dir/$report_file
        sed -i 's/#/\\#/g' $root_dir/$report_dir/$report_file
        sed -i 's/%/\\%/g' $root_dir/$report_dir/$report_file
    
    upload $report_subdir/$report_file
    
    upload $report_subdir/$severity_file