| skipped 76 lines |
77 | 77 | | fi |
78 | 78 | | #------------------------ |
79 | 79 | | echo -e "Creating directory structure under: $_YLW $_RESULTS $_RST ..." |
80 | | - | _TMP="$_RESULTS/tmp" |
| 80 | + | _TMP="$_RESULTS/tmp"; rm -rf "$_TMP" |
81 | 81 | | _XML="$_RESULTS/XML" |
82 | 82 | | _HTML="$_RESULTS/HTML" |
83 | | - | echo -e "$_TMP\n$_XML\n$_HTML" | while read -r line; do |
| 83 | + | _TXT="$_RESULTS/TXT" |
| 84 | + | echo -e "$_TMP\n$_XML\n$_HTML\n$_TXT/WHOIS" | while read -r line; do |
84 | 85 | | mkdir -p "$line"; |
85 | 86 | | done |
86 | 87 | | #------------------------ |
| skipped 4 lines |
91 | 92 | | set -e #-======================= |
92 | 93 | | #-----/ |
93 | 94 | | |
94 | | - | #------------------------------- |
95 | | - | _cfips=0 |
96 | | - | _realips=0 |
97 | | - | ######## |
98 | 95 | | _PROCESS() { |
| 96 | + | _DEBUGLOG="$_RESULTS/debug.log" |
99 | 97 | | _ADDR=$(echo "$1" | awk -F ',' '{print $NF}') |
100 | 98 | | if grep -x -i -q "$_ADDR" "$_DONE"; then |
101 | | - | echo -e "duplicate address $_YLW skipped $_RST: $_ADDR" |
| 99 | + | echo -e "duplicate address $_YLW skipped $_RST: $_ADDR" >> "$_DEBUGLOG" |
102 | 100 | | return |
103 | 101 | | fi |
104 | 102 | | if echo "$_ADDR" | grep -E '^(192\.168|10\.|172\.1[6789]\.|172\.2[0-9]\.|172\.3[01]\.)'; then |
105 | | - | echo -e "private address $_YLW skipped $_RST: $_ADDR" |
| 103 | + | echo -e "private address $_YLW skipped $_RST: $_ADDR" >> "$_DEBUGLOG" |
106 | 104 | | return |
107 | 105 | | fi |
108 | 106 | | echo "$_ADDR" >> "$_DONE" |
109 | | - | echo -e "analyzing whois of $_YLW $_ADDR cloudflare $_RST...." |
110 | | - | _WHOIS="$_RESULTS/$_ADDR.whois.txt" |
| 107 | + | _WHOIS="$_TXT/WHOIS/$_ADDR.whois.txt" |
111 | 108 | | whois "$_ADDR" >> "$_WHOIS" |
112 | | - | if grep -i -q "cloudflare" "$_RESULTS/$_ADDR.whois.txt"; then |
113 | | - | echo "$_ADDR" >> "$_RESULTS/cloudflare.ips.txt"; |
114 | | - | ((_cfips=_cfips+1)) |
| 109 | + | if grep -i -q "cloudflare" "$_WHOIS"; then |
| 110 | + | echo "$_ADDR" >> "$_TXT/cloudflare.ips.txt"; |
115 | 111 | | return |
116 | 112 | | fi |
117 | | - | ((_realips=_realips+1)) |
118 | | - | echo -e "no cloudflare here $_GRN $_ADDR $_RST :^)" |
119 | | - | echo "$_ADDR" >> "$_RESULTS/noncloudflare.ips.txt"; |
| 113 | + | |
| 114 | + | #((_realips=_realips+1)) |
| 115 | + | echo "$_ADDR" >> "$_TXT/noncloudflare.ips.txt"; |
120 | 116 | | threadScan() { |
121 | | - | echo -e "Scanning $_YLW $1... $_RST"; |
122 | | - | $_RUSTSCAN -a "$1" -- -Pn -A -T Aggressive -oX "$_RESULTS/XML/$1.xml" >/dev/null; |
123 | | - | echo "$_GRN done scanning $_YLW $1 $_RST. Generating HTML report..."; |
124 | | - | xsltproc "$_RESULTS/XML/$1.xml" -o "$_HTML/$1.html"; |
| 117 | + | echo -e "Scanning $_YLW $1... $_RST">>"$_DEBUGLOG" |
| 118 | + | $_RUSTSCAN -a "$1" -- -Pn -A -T Aggressive -oX "$_XML/$1.xml" >> "$_DEBUGLOG" |
| 119 | + | echo -e "$_GRN done scanning $_YLW $1 $_RST. Generating HTML report..."; >> "$_DEBUGLOG" |
| 120 | + | if [ -f "$_XML/$1" ]; then |
| 121 | + | xsltproc "$_XML/$1.xml" -o "$_HTML/$1.html" && echo -e "$_YLW $_HTML/$1.html $_RST $_GRN Done! :) $_RST" |
| 122 | + | return |
| 123 | + | else |
| 124 | + | echo "No open ports found on $1 :(" >> "$_DEBUGLOG" |
| 125 | + | return |
| 126 | + | fi |
| 127 | + | return |
125 | 128 | | } |
126 | 129 | | export -f threadScan |
| 130 | + | export _DEBUGLOG |
127 | 131 | | export _RUSTSCAN |
128 | 132 | | export _RESULTS |
129 | 133 | | export _HTML |
| 134 | + | export _XML |
130 | 135 | | export _YLW |
| 136 | + | export _GRN |
131 | 137 | | export _RST |
132 | | - | SHELL=$(type -p bash) sem -j10 threadScan "$_ADDR" |
| 138 | + | |
| 139 | + | SHELL=$(type -p bash) sem -P 20 --jobs 20 threadScan "$_ADDR" 2>/dev/null |
| 140 | + | _scanning=false |
133 | 141 | | } |
134 | 142 | | |
135 | 143 | | # # # --- --- ~*~ TIME FOR MAGIC ~*~ --- --- # # # |
| skipped 4 lines |
140 | 148 | | # ------------ |
141 | 149 | | # <- open pipe for reading |
142 | 150 | | _scanning=true |
143 | | - | cat $_FIFO | while read line; do _PROCESS "$line"; done & exec 3>"$_FIFO" # define file descriptor |
| 151 | + | cat "$_FIFO" | while read -r line; do \ |
| 152 | + | _PROCESS "$line"; \ |
| 153 | + | done & exec 3>"$_FIFO" # define file descriptor |
144 | 154 | | # ------------ |
145 | 155 | | # open pipe for writing <- |
146 | 156 | | $_FINDOMAIN -i --resolvers "$_DNS" --target "$1" -u "$_FIFO" >/dev/null; |
| skipped 22 lines |