| 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 | | |