Projects STRLCPY 0rly Commits ce21b1cb
🤬
  • ■ ■ ■ ■ ■ ■
    v1-bash/0rly.sh
    skipped 30 lines
    31 31  #### most package managers:
    32 32  # - nmap
    33 33  # - xsltproc
     34 +# - whois
    34 35   
    35 36  #### fancy shit:
    36 37  # - rustscan
    skipped 4 lines
    41 42  # --- without: https://github.com/Findomain/Findomain/releases/tag/3.1.0
    42 43   
    43 44  ###############################################################################
    44  - 
    45 45  ####################### https://github.com/tlatsas/bash-spinner
    46  - 
    47 46  function _spinner() {
    48  - # $1 start/stop
    49  - #
    50  - # on start: $2 display message
    51  - # on stop : $2 process exit status
    52  - # $3 spinner function pid (supplied from stop_spinner)
    53  - 
    54 47   local on_success="DONE"
    55 48   local on_fail="FAIL"
    56 49   local white="\e[1;37m"
    skipped 8 lines
    65 58   # display message and position the cursor in $column column
    66 59   echo -ne ${2}
    67 60   printf "%${column}s"
    68  - 
    69 61   # start spinner
    70 62   i=1
    71  - sp='\|/-'
    72  - delay=${SPINNER_DELAY:-0.15}
     63 + sp='0rly?'
     64 + delay=${SPINNER_DELAY:-0.10}
    73 65   
    74 66   while :
    75 67   do
    skipped 16 lines
    92 84   else
    93 85   echo -en "${red}${on_fail}${nc}"
    94 86   fi
    95  - echo -e "]"
     87 + echo -en "]"
    96 88   ;;
    97 89   *)
    98 90   echo "invalid argument, try {start/stop}"
    skipped 1 lines
    100 92   ;;
    101 93   esac
    102 94  }
    103  - 
    104 95  function start_spinner {
    105 96   # $1 : msg to display
    106 97   _spinner "start" "${1}" &
    skipped 1 lines
    108 99   _sp_pid=$!
    109 100   disown
    110 101  }
    111  - 
    112 102  function stop_spinner {
    113 103   # $1 : command exit status
    114 104   _spinner "stop" $1 $_sp_pid
    115 105   unset _sp_pid
    116 106  }
    117  - 
    118 107  ################################################
    119  - 
    120  -rmap() {
    121  - sudo $HOME/.cargo/bin/rustscan --ulimit 10000 -a $1 -- -Pn -A -T Aggressive -oX $RESULTS/XML/$1.xml
    122  - sudo xsltproc $RESULTS/XML/$1.xml -o $RESULTS/HTML/$1.html
     108 +function _html {
     109 + xsltproc $1 -o "$RESULTS/$HTML/$1.html"
    123 110  }
    124  - 
    125  - 
     111 +#######
     112 +clear
     113 +#
    126 114  echo $BNR | base64 -d
    127  - 
    128 115  set -e
    129  - 
    130 116  RESULTS="$HOME/0rly/$1"
    131  -echo "Creating directory: $RESULTS"
    132  -echo ""
     117 +echo -e "Creating directory: \n\e[93m$RESULTS\e[0m"
    133 118  mkdir -p $RESULTS
    134 119  if [ ! -f $HOME/0rly/resolvers.txt ]; then
    135 120   echo -e "\e[33m$HOME/0rly/resolvers.txt not found!"
    skipped 11 lines
    147 132   echo "using nameservers:"
    148 133   cat /etc/resolv.conf | grep 'nameserver' | grep '\.' | sed 's/nameserver //g' | tee $HOME/0rly/resolvers.txt
    149 134  fi
    150  - 
    151  -echo ""
    152  - 
    153 135  start_spinner "running findomain..."
    154  - 
    155  -findomain -q -i --resolvers $HOME/0rly/resolvers.txt --target "$1" -u $RESULTS/findomain.txt>/dev/null;
    156  -awk -F ',' '{print $NF}' $RESULTS/findomain.txt | sort -u > $RESULTS/findomain.unique.ips.txt;
    157  - 
    158  -stop_spinner $?
    159  - 
    160  -echo ""
     136 +findomain -q -i --resolvers "$HOME/0rly/resolvers.txt" --target "$1" -u "$RESULTS/findomain.txt">/dev/null;
     137 +awk -F ',' '{print $NF}' "$RESULTS/findomain.txt" | sort -u > "$RESULTS/findomain.unique.ips.txt"; stop_spinner $?
     138 +start_spinner ""
     139 +_cfips=0
     140 +_realips=0
     141 +_cfpref="cloudflare: "
     142 +_stdpref="other: "
     143 +while read line; do
     144 + tput cup 8 $l
     145 + echo -n -e "\e[39m$_cfpref \e[2m$_cfips\e[0m";
     146 + tput cup 9 $l
     147 + echo -n -e "\e[32m$_stdpref \e[95m$_realips\e[0m";
    161 148   
    162  -start_spinner "running whois and deteecting cloudflare IPs..."
     149 + echo ""
    163 150   
    164  -while read line; do
    165 151   whois "$line" > $RESULTS/$line.whois.txt
    166  - if ! cat $RESULTS/$line.whois.txt | grep -i -q cloudflare; then
    167  - echo "cloudflare ip found: $line"
    168  -# echo -e "\e[2m$line (cloudflare)\e[0m";
     152 + if cat "$RESULTS/$line.whois.txt" | grep -i -q cloudflare; then
    169 153   echo "$line" >> $RESULTS/cloudflare.ips.txt;
     154 + ((_cfips=_cfips+1))
    170 155   else
    171 156   echo "$line" >> $RESULTS/noncloudflare.ips.txt;
    172  - echo -n "$line ("; cat $RESULTS/$line.whois.txt | grep -i -m1 org-name; echo -n ")";
     157 + ((_realips=_realips+1))
    173 158   fi
    174 159  done < $RESULTS/findomain.unique.ips.txt
    175 160   
    176  -echo -n "would you like to execute rustscan on all non-cloudflare IPs and generate HTML reports?"
     161 +stop_spinner $?
     162 + 
     163 +echo ""
     164 + 
     165 +if [ $_realips -eq 0 ]; then
     166 + echo "no non-cloudflare ip's found, gg"
     167 + exit
     168 +fi
     169 + 
     170 +echo -n "port scan all non-cloudflare IPs?"
    177 171  read -r -p " [y/N] " response
    178 172  case "$response" in
    179 173  [yY][eE][sS]|[yY])
    skipped 11 lines
    191 185   
    192 186  set +e
    193 187   
     188 +sudo echo ""
     189 + 
    194 190  while read line; do
    195  - start_spinner "Scanning $line..."
    196  - rmap $line >/dev/null
     191 + start_spinner "Scanning $line...\n"
     192 + sudo $HOME/.cargo/bin/rustscan --ulimit 10000 -a $line -- -Pn -A -T Aggressive -oX "$RESULTS/XML/$line.xml" >/dev/null
    197 193   stop_spinner $?
     194 + echo ""
    198 195  done < $RESULTS/noncloudflare.ips.txt
     196 + 
     197 +start_spinner "Generating HTML reports...\n"
     198 + 
     199 +cd $RESULTS
     200 +find . -iname "*.xml" -print -exec _html {} \;
     201 +stop_spinnder $?
     202 + 
     203 +echo "fin. results in $HOME/0rly"
     204 + 
     205 + 
     206 + 
    199 207   
    200 208   
Please wait...
Page is in error, reload to recover