├── images
└── helpPanel.png
├── README.md
└── bruteForce.sh
/images/helpPanel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/m4lal0/bruteForce/HEAD/images/helpPanel.png
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # BruteForce
2 |
3 | [](#)
4 | [](#)
5 | [](#)
6 | [](#)
7 | [](#)
8 | [](#)
9 |
10 |
11 | ┏━━┓━━━━━━━━━┏┓━━━━━━━━━━┏━━━┓━━━━━━━━━━━━━━━
12 | ┃┏┓┃━━━━━━━━┏┛┗┓━━━━━━━━━┃┏━━┛━━━━━━━━━━━━━━━
13 | ┃┗┛┗┓┏━┓┏┓┏┓┗┓┏┛┏━━┓━━━━━┃┗━━┓┏━━┓┏━┓┏━━┓┏━━┓
14 | ┃┏━┓┃┃┏┛┃┃┃┃━┃┃━┃┏┓┃━━━━━┃┏━━┛┃┏┓┃┃┏┛┃┏━┛┃┏┓┃
15 | ┃┗━┛┃┃┃━┃┗┛┃━┃┗┓┃┃━┫━━━━┏┛┗┓━━┃┗┛┃┃┃━┃┗━┓┃┃━┫
16 | ┗━━━┛┗┛━┗━━┛━┗━┛┗━━┛━━━━┗━━┛━━┗━━┛┗┛━┗━━┛┗━━┛
17 | ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
18 | ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
19 |
20 | Pequeño script en Bash para realizar fuerza bruta a diferentes servicios
21 |
22 |
23 | ## Instalación y Uso
24 |
25 | ```bash
26 | git clone https://github.com/m4lal0/bruteForce
27 | cd bruteForce; chmod +x bruteForce.sh
28 | ./bruteForce.sh
29 | ```
30 |
31 | Al ejecutarlo nos mostrará un panel de ayuda:
32 |
33 | 
34 |
35 | Con los parámetros definidos, en función del servicio seleccionado... se despleglará todo lo necesario de forma automática.
--------------------------------------------------------------------------------
/bruteForce.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # by @m4lal0
3 |
4 | # Regular Colors
5 | Black='\033[0;30m' # Black
6 | Red='\033[0;31m' # Red
7 | Green='\033[0;32m' # Green
8 | Yellow='\033[0;33m' # Yellow
9 | Blue='\033[0;34m' # Blue
10 | Purple='\033[0;35m' # Purple
11 | Cyan='\033[0;36m' # Cyan
12 | White='\033[0;97m' # White
13 | Blink='\033[5m' # Blink
14 | Color_Off='\033[0m' # Text Reset
15 |
16 | # Additional colors
17 | LGray='\033[0;90m' # Ligth Gray
18 | LRed='\033[0;91m' # Ligth Red
19 | LGreen='\033[0;92m' # Ligth Green
20 | LYellow='\033[0;93m' # Ligth Yellow
21 | LBlue='\033[0;94m' # Ligth Blue
22 | LPurple='\033[0;95m' # Light Purple
23 | LCyan='\033[0;96m' # Ligth Cyan
24 |
25 | # Bold
26 | BBlack='\033[1;30m' # Black
27 | BGray='\033[1;37m' # Gray
28 | BRed='\033[1;31m' # Red
29 | BGreen='\033[1;32m' # Green
30 | BYellow='\033[1;33m' # Yellow
31 | BBlue='\033[1;34m' # Blue
32 | BPurple='\033[1;35m' # Purple
33 | BCyan='\033[1;36m' # Cyan
34 | BWhite='\033[1;37m' # White
35 |
36 | # Italics
37 | IBlack='\033[3;30m' # Black
38 | IGray='\033[3;90m' # Gray
39 | IRed='\033[3;31m' # Red
40 | IGreen='\033[3;32m' # Green
41 | IYellow='\033[3;33m' # Yellow
42 | IBlue='\033[3;34m' # Blue
43 | IPurple='\033[3;35m' # Purple
44 | ICyan='\033[3;36m' # Cyan
45 | IWhite='\033[3;37m' # White
46 |
47 | # Underline
48 | UBlack='\033[4;30m' # Black
49 | UGray='\033[4;37m' # Gray
50 | URed='\033[4;31m' # Red
51 | UGreen='\033[4;32m' # Green
52 | UYellow='\033[4;33m' # Yellow
53 | UBlue='\033[4;34m' # Blue
54 | UPurple='\033[4;35m' # Purple
55 | UCyan='\033[4;36m' # Cyan
56 | UWhite='\033[4;37m' # White
57 |
58 | # Background
59 | On_Black='\033[40m' # Black
60 | On_Red='\033[41m' # Red
61 | On_Green='\033[42m' # Green
62 | On_Yellow='\033[43m' # Yellow
63 | On_Blue='\033[44m' # Blue
64 | On_Purple='\033[45m' # Purple
65 | On_Cyan='\033[46m' # Cyan
66 | On_White='\033[47m' # White
67 |
68 | VERSION=1.0.1
69 |
70 | trap ctrl_c INT
71 |
72 | function ctrl_c(){
73 | echo -e "\n\n${Cyan}[${BYellow}!${Cyan}] ${BRed}Saliendo de la aplicación...${Color_Off}"
74 | tput cnorm; exit 1
75 | }
76 |
77 | function banner(){
78 | clear
79 | echo -e "\t${LRed}____________________________________________________________________________________"
80 | echo -e "\t__|____|______|_____|______|_______|___|___|____|________|_____|______|__|____|___|_"
81 | echo -e "\t___|____|______|_______|_____|____|___|______|____|___|_________|____|${LRed}By${LRed}_${LYellow}@m4lal0${LRed}_|__"
82 | echo -e "\t\_____ \__|__|____|_____/ |_____|____\_ _____/___|______|__|_____|_______|____"
83 | echo -e "\t__| | /\ _ \| | \ _\_/ _ \_|_| ___)___/ __ \_\ _ \_/ ___\__/ _ \_"
84 | echo -e "\t__| | \_| |_\/| | /_| |__\ __/___| \___|_( \_\ )_| |_\/\ \____\ __/_"
85 | echo -e "\t_/______ /_|__|___|____/__|__|___\___ /_/___ /|___\____/__|__|____\___ /_\___ /"
86 | echo -e "\t____|___\/___|_______|_______|________\/______\/__|___|_______|__________\/______\/_"
87 | echo -e "\t_|_____|______|_________|___|______|_______|_____|______|______|_______|______|_____${Color_Off}\n"
88 | }
89 |
90 | function helpPanel(){
91 | echo -e "\n${BGray}Script para realizar fuerza bruta a diferentes servicios.${Color_Off}"
92 | echo -e "\n${BGray}USO:${Color_Off}"
93 | echo -e "\t${BGray}./bruteForce.sh ${BRed}[opción]${Color_Off}"
94 | echo -e "\n${BGray}OPCIONES:${Color_Off}"
95 | echo -e "\t${Cyan}[${BRed}-t, --target ${Cyan}] \t${BPurple}Dirección IP del objetivo.${Color_Off}"
96 | echo -e "\t${Cyan}[${BRed}-s, --service ${Cyan}] \t${BPurple}Nombre del Servicio: [FTP|SSH|TELNET|SMTP|POP3|SMB|SNMP|LDAP|REXEC|RLOGIN|IMAP|${Color_Off}"
97 | echo -e "\t\t\t\t\t${BPurple}ORACLE|MYSQL|VNC|HTTP|JOOMLA|WORDPRESS|IRC|ALL].${Color_Off}"
98 | echo -e "\t${Cyan}[${BRed}-p, --port ${Cyan}] \t${BPurple}Especificar otro puerto o rango de puertos del servicio.${Color_Off}"
99 | echo -e "\t${Cyan}[${BRed}-o, --output ${Cyan}] \t\t${BPurple}Guardar el resultado en un archivo.${Color_Off}"
100 | echo -e "\t${Cyan}[${BRed}-u, --update${Cyan}] \t\t\t${BPurple}Actualizar la herramienta a la última versión.${Color_Off}"
101 | echo -e "\t${Cyan}[${BRed}-h, --help${Cyan}] \t\t\t${BPurple}Mostrar este panel de ayuda.${Color_Off}"
102 | echo -e "\n${BGray}EJEMPLOS:${Color_Off}"
103 | echo -e "\t${BGreen}./bruteForce.sh -t -s ftp ${IGray}: Fuerza bruta al servicio FTP por el puerto por default.${Color_Off}"
104 | echo -e "\t${BGreen}./bruteForce.sh -t -s ssh -o prueba.txt ${IGray}: Fuerza bruta al servicio SSH y guardar el resultado en un archivo.${Color_Off}"
105 | echo -e "\t${BGreen}./bruteForce.sh -t -s http -p 8080,8081 ${IGray}: Fuerza bruta al servicio HTTP en los puertos 8080 y 8081.${Color_Off}"
106 | echo -e "\t${BGreen}./bruteForce.sh -t --service all ${IGray}: Realiza fuerza bruta a todos los servicios que encuentra.${Color_Off}\n"
107 | tput cnorm; exit 0
108 | }
109 |
110 | function checkUpdate(){
111 | GIT=$(curl --silent https://github.com/m4lal0/bruteForce/blob/main/bruteForce.sh | grep 'VERSION=' | cut -d">" -f2 | cut -d"<" -f1 | cut -d"=" -f 2)
112 | if [[ "$GIT" == "$VERSION" || -z $GIT ]]; then
113 | echo -e "${BGreen}[✔]${Color_Off} ${BGreen}La versión actual es la más reciente.${Color_Off}\n"
114 | tput cnorm; exit 0
115 | else
116 | echo -e "${Yellow}[*]${Color_Off} ${IWhite}Actualización disponible${Color_Off}"
117 | echo -e "${Yellow}[*]${Color_Off} ${IWhite}Actualización de la versión${Color_Off} ${BWhite}$VERSION${Color_Off} ${IWhite}a la${Color_Off} ${BWhite}$GIT${Color_Off}"
118 | update="1"
119 | fi
120 | }
121 |
122 | function installUpdate(){
123 | echo -en "${Yellow}[*]${Color_Off} ${IWhite}Instalando actualización...${Color_Off}"
124 | git clone https://github.com/m4lal0/bruteForce &>/dev/null
125 | chmod +x bruteForce/bruteForce.sh &>/dev/null
126 | mv bruteForce/bruteForce.sh . &>/dev/null
127 | if [ "$(echo $?)" == "0" ]; then
128 | echo -e "${BGreen}[ OK ]${Color_Off}"
129 | else
130 | echo -e "${BRed}[ FAIL ]${Color_Off}"
131 | tput cnorm && exit 1
132 | fi
133 | echo -en "${Yellow}[*]${Color_Off} ${IWhite}Limpiando...${Color_Off}"
134 | wait
135 | rm -rf bruteForce images README.md &>/dev/null
136 | if [ "$(echo $?)" == "0" ]; then
137 | echo -e "${BGreen}[ OK ]${Color_Off}"
138 | else
139 | echo -e "${BRed}[ FAIL ]${Color_Off}"
140 | tput cnorm && exit 1
141 | fi
142 | echo -e "\n${BGreen}[✔]${Color_Off} ${IGreen}Versión actualizada a${Color_Off} ${BWhite}$GIT${Color_Off}\n"
143 | tput cnorm && exit 0
144 | }
145 |
146 | function update(){
147 | banner
148 | echo -e "\n${BBlue}[+]${Color_Off} ${BWhite}bruteForce Versión $VERSION${Color_Off}"
149 | echo -e "${BBlue}[+]${Color_Off} ${BWhite}Verificando actualización de bruteForce${Color_Off}"
150 | checkUpdate
151 | echo -e "\t${BWhite}$VERSION ${IWhite}Versión Instalada${Color_Off}"
152 | echo -e "\t${BWhite}$GIT ${IWhite}Versión en Git${Color_Off}\n"
153 | if [ "$update" != "1" ]; then
154 | tput cnorm && exit 0;
155 | else
156 | echo -e "${BBlue}[+]${Color_Off} ${BWhite}Necesita actualizar!${Color_Off}"
157 | tput cnorm
158 | echo -en "${BPurple}[?]${Color_Off} ${BCyan}Quiere actualizar? (${BGreen}Y${BCyan}/${BRed}n${BCyan}):${Color_Off} " && read CONDITION
159 | tput civis
160 | case "$CONDITION" in
161 | n|N) echo -e "\n${LBlue}[${BYellow}!${LBlue}] ${BRed}No se actualizo, se queda en la versión ${BWhite}$VERSION${Color_Off}\n" && tput cnorm && exit 0;;
162 | *) installUpdate;;
163 | esac
164 | fi
165 | }
166 |
167 | function dependencies(){
168 | dependencies=(nmap)
169 | echo -e "\n${Cyan}[${BYellow}!${Cyan}] ${BYellow}Comprobando programas necesarios...${Color_Off}"
170 | sleep 2
171 | for program in "${dependencies[@]}"; do
172 | echo -ne "\n${Cyan}[${BBlue}*${Cyan}] ${BBlue}Herramienta ${IGreen}$program${BBlue}...${Color_Off}"
173 | test -f /usr/bin/$program
174 | if [ "$(echo $?)" == "0" ]; then
175 | echo -e " ${Cyan}[${BGreen}✔${Cyan}]${Color_Off}"
176 | else
177 | echo -e " ${Cyan}[${BRed}✘${Cyan}]${Color_Off}\n"
178 | echo -e "${Cyan}[${BBlue}*${Cyan}] ${BBlue}Instalando herramienta ${IGreen}$program${BBlue}...${Color_Off}"
179 | apt-get install $program -y > /dev/null 2>&1
180 | fi; sleep 1
181 | done
182 | }
183 |
184 | arg=""
185 | for arg; do
186 | delim=""
187 | case $arg in
188 | --target) args="${args}-t";;
189 | --service) args="${args}-s";;
190 | --output) args="${args}-o";;
191 | --port) args="${args}-p";;
192 | --update) args="${args}-u";;
193 | --help) args="${args}-h";;
194 | *) [[ "${arg:0:1}" == "-" ]] || delim="\""
195 | args="${args}${delim}${arg}${delim} ";;
196 | esac
197 | done
198 |
199 | eval set -- $args
200 |
201 | declare -i parameter_counter=0; while getopts ":t:s:o:p:h:u" opt; do
202 | case $opt in
203 | t) HOST_IP=$OPTARG && let parameter_counter+=1 ;;
204 | s) SERVICE=$OPTARG && let parameter_counter+=1 ;;
205 | o) OUTPUT=$OPTARG && let parameter_counter+=1 ;;
206 | p) PORT=$OPTARG && let parameter_counter+=1 ;;
207 | u) update ;;
208 | h) helpPanel ;;
209 | esac
210 | done
211 |
212 | if [ "$EUID" -ne 0 ]; then
213 | echo -e "\n${Cyan}[${BYellow}!${Cyan}] ${BRed}Este script debe ser ejecutado por r00t!${Color_Off}\n"
214 | exit 1
215 | fi
216 |
217 | if [ $parameter_counter -eq 0 ]; then
218 | banner
219 | helpPanel
220 | else
221 | if [ "$(echo $HOST_IP)" ]; then
222 | tput civis; dependencies ; banner
223 | if [ "$(echo $SERVICE)" == "FTP" ] || [ "$(echo $SERVICE)" == "ftp" ]; then
224 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio FTP =====${Color_Off}"
225 | if [ ! "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
226 | OUTPUT=$HOST_IP-FTP
227 | PORT=21
228 | nmap -v --script ftp-brute -p$PORT $HOST_IP -oN $OUTPUT
229 | tput cnorm
230 | elif [ "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
231 | nmap -v --script ftp-brute -p$PORT $HOST_IP -oN $OUTPUT
232 | tput cnorm
233 | elif [ "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
234 | PORT=21
235 | nmap -v --script ftp-brute -p$PORT $HOST_IP -oN $OUTPUT
236 | tput cnorm
237 | elif [ ! "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
238 | OUTPUT=$HOST_IP-FTP
239 | nmap -v --script ftp-brute -p$PORT $HOST_IP -oN $OUTPUT
240 | tput cnorm
241 | fi
242 | elif [ "$(echo $SERVICE)" == "SSH" ] || [ "$(echo $SERVICE)" == "ssh" ]; then
243 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio SSH =====${Color_Off}"
244 | if [ ! "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
245 | OUTPUT=$HOST_IP-SSH
246 | PORT=22
247 | nmap -v --script ssh-brute -p$PORT $HOST_IP -oN $OUTPUT
248 | tput cnorm
249 | elif [ "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
250 | nmap -v --script ssh-brute -p$PORT $HOST_IP -oN $OUTPUT
251 | tput cnorm
252 | elif [ "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
253 | PORT=22
254 | nmap -v --script ssh-brute -p$PORT $HOST_IP -oN $OUTPUT
255 | tput cnorm
256 | elif [ ! "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
257 | OUTPUT=$HOST_IP-SSH
258 | nmap -v --script ssh-brute -p$PORT $HOST_IP -oN $OUTPUT
259 | tput cnorm
260 | fi
261 | elif [ "$(echo $SERVICE)" == "MYSQL" ] || [ "$(echo $SERVICE)" == "mysql" ]; then
262 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio MySQL =====${Color_Off}"
263 | if [ ! "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
264 | OUTPUT=$HOST_IP-MYSQL
265 | PORT=3306
266 | nmap -v --script mysql-brute -p$PORT $HOST_IP -oN $OUTPUT
267 | tput cnorm
268 | elif [ "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
269 | nmap -v --script mysql-brute -p$PORT $HOST_IP -oN $OUTPUT
270 | tput cnorm
271 | elif [ "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
272 | PORT=3306
273 | nmap -v --script mysql-brute -p$PORT $HOST_IP -oN $OUTPUT
274 | tput cnorm
275 | elif [ ! "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
276 | OUTPUT=$HOST_IP-MYSQL
277 | nmap -v --script mysql-brute -p$PORT $HOST_IP -oN $OUTPUT
278 | tput cnorm
279 | fi
280 | elif [ "$(echo $SERVICE)" == "TELNET" ] || [ "$(echo $SERVICE)" == "telnet" ]; then
281 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio Telnet =====${Color_Off}"
282 | if [ ! "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
283 | OUTPUT=$HOST_IP-TELNET
284 | PORT=23
285 | nmap -v --script telnet-brute -p$PORT $HOST_IP -oN $OUTPUT
286 | tput cnorm
287 | elif [ "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
288 | nmap -v --script telnet-brute -p$PORT $HOST_IP -oN $OUTPUT
289 | tput cnorm
290 | elif [ "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
291 | PORT=23
292 | nmap -v --script telnet-brute -p$PORT $HOST_IP -oN $OUTPUT
293 | tput cnorm
294 | elif [ ! "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
295 | OUTPUT=$HOST_IP-TELNET
296 | nmap -v --script telnet-brute -p$PORT $HOST_IP -oN $OUTPUT
297 | tput cnorm
298 | fi
299 | elif [ "$(echo $SERVICE)" == "VNC" ] || [ "$(echo $SERVICE)" == "vnc" ]; then
300 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio VNC =====${Color_Off}"
301 | if [ ! "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
302 | OUTPUT=$HOST_IP-VNC
303 | PORT="5900,5901"
304 | nmap -v --script vnc-brute -p$PORT $HOST_IP -oN $OUTPUT
305 | tput cnorm
306 | elif [ "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
307 | nmap -v --script vnc-brute -p$PORT $HOST_IP -oN $OUTPUT
308 | tput cnorm
309 | elif [ "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
310 | PORT="5900,5901"
311 | nmap -v --script vnc-brute -p$PORT $HOST_IP -oN $OUTPUT
312 | tput cnorm
313 | elif [ ! "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
314 | OUTPUT=$HOST_IP-VNC
315 | nmap -v --script vnc-brute -p$PORT $HOST_IP -oN $OUTPUT
316 | tput cnorm
317 | fi
318 | elif [ "$(echo $SERVICE)" == "HTTP" ] || [ "$(echo $SERVICE)" == "http" ]; then
319 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio HTTP =====${Color_Off}"
320 | if [ ! "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
321 | OUTPUT=$HOST_IP-HTTP
322 | PORT="80,443"
323 | nmap -v --script http-brute -p$PORT $HOST_IP -oN $OUTPUT
324 | tput cnorm
325 | elif [ "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
326 | nmap -v --script http-brute -p$PORT $HOST_IP -oN $OUTPUT
327 | tput cnorm
328 | elif [ "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
329 | PORT="80,443"
330 | nmap -v --script http-brute -p$PORT $HOST_IP -oN $OUTPUT
331 | tput cnorm
332 | elif [ ! "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
333 | OUTPUT=$HOST_IP-HTTP
334 | nmap -v --script http-brute -p$PORT $HOST_IP -oN $OUTPUT
335 | tput cnorm
336 | fi
337 | elif [ "$(echo $SERVICE)" == "JOOMLA" ] || [ "$(echo $SERVICE)" == "joomla" ]; then
338 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio Joomla =====${Color_Off}"
339 | if [ ! "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
340 | OUTPUT=$HOST_IP-JOOMLA
341 | PORT="80,443"
342 | nmap -v --script http-joomla-brute -p$PORT $HOST_IP -oN $OUTPUT
343 | tput cnorm
344 | elif [ "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
345 | nmap -v --script http-joomla-brute -p$PORT $HOST_IP -oN $OUTPUT
346 | tput cnorm
347 | elif [ "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
348 | PORT="80,443"
349 | nmap -v --script http-joomla-brute -p$PORT $HOST_IP -oN $OUTPUT
350 | tput cnorm
351 | elif [ ! "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
352 | OUTPUT=$HOST_IP-JOOMLA
353 | nmap -v --script http-joomla-brute -p$PORT $HOST_IP -oN $OUTPUT
354 | tput cnorm
355 | fi
356 | elif [ "$(echo $SERVICE)" == "WORDPRESS" ] || [ "$(echo $SERVICE)" == "wordpress" ]; then
357 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio Wordpress =====${Color_Off}"
358 | if [ ! "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
359 | OUTPUT=$HOST_IP-WORDPRESS
360 | PORT="80,443"
361 | nmap -v --script http-wordpress-brute -p$PORT $HOST_IP -oN $OUTPUT
362 | tput cnorm
363 | elif [ "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
364 | nmap -v --script http-wordpress-brute -p$PORT $HOST_IP -oN $OUTPUT
365 | tput cnorm
366 | elif [ "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
367 | PORT="80,443"
368 | nmap -v --script http-wordpress-brute -p$PORT $HOST_IP -oN $OUTPUT
369 | tput cnorm
370 | elif [ ! "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
371 | OUTPUT=$HOST_IP-WORDPRESS
372 | nmap -v --script http-wordpress-brute -p$PORT $HOST_IP -oN $OUTPUT
373 | tput cnorm
374 | fi
375 | elif [ "$(echo $SERVICE)" == "SMTP" ] || [ "$(echo $SERVICE)" == "smtp" ]; then
376 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio SMTP =====${Color_Off}"
377 | if [ ! "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
378 | OUTPUT=$HOST_IP-SMTP
379 | PORT=25
380 | nmap -v --script smtp-brute -p$PORT $HOST_IP -oN $OUTPUT
381 | tput cnorm
382 | elif [ "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
383 | nmap -v --script smtp-brute -p$PORT $HOST_IP -oN $OUTPUT
384 | tput cnorm
385 | elif [ "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
386 | PORT=25
387 | nmap -v --script smtp-brute -p$PORT $HOST_IP -oN $OUTPUT
388 | tput cnorm
389 | elif [ ! "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
390 | OUTPUT=$HOST_IP-SMTP
391 | nmap -v --script smtp-brute -p$PORT $HOST_IP -oN $OUTPUT
392 | tput cnorm
393 | fi
394 | elif [ "$(echo $SERVICE)" == "POP3" ] || [ "$(echo $SERVICE)" == "pop3" ]; then
395 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio POP3 =====${Color_Off}"
396 | if [ ! "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
397 | OUTPUT=$HOST_IP-POP3
398 | PORT="110,445"
399 | nmap -v --script pop3-brute -p$PORT $HOST_IP -oN $OUTPUT
400 | tput cnorm
401 | elif [ "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
402 | nmap -v --script pop3-brute -p$PORT $HOST_IP -oN $OUTPUT
403 | tput cnorm
404 | elif [ "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
405 | PORT="110,445"
406 | nmap -v --script pop3-brute -p$PORT $HOST_IP -oN $OUTPUT
407 | tput cnorm
408 | elif [ ! "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
409 | OUTPUT=$HOST_IP-POP3
410 | nmap -v --script pop3-brute -p$PORT $HOST_IP -oN $OUTPUT
411 | tput cnorm
412 | fi
413 | elif [ "$(echo $SERVICE)" == "SMB" ] || [ "$(echo $SERVICE)" == "smb" ]; then
414 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio SMB =====${Color_Off}"
415 | if [ ! "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
416 | OUTPUT=$HOST_IP-SMB
417 | PORT=162
418 | nmap -v --script smb-brute -p$PORT $HOST_IP -oN $OUTPUT
419 | tput cnorm
420 | elif [ "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
421 | nmap -v --script smb-brute -p$PORT $HOST_IP -oN $OUTPUT
422 | tput cnorm
423 | elif [ "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
424 | PORT=162
425 | nmap -v --script smb-brute -p$PORT $HOST_IP -oN $OUTPUT
426 | tput cnorm
427 | elif [ ! "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
428 | OUTPUT=$HOST_IP-SMB
429 | nmap -v --script smb-brute -p$PORT $HOST_IP -oN $OUTPUT
430 | tput cnorm
431 | fi
432 | elif [ "$(echo $SERVICE)" == "LDAP" ] || [ "$(echo $SERVICE)" == "ldap" ]; then
433 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio LDAP =====${Color_Off}"
434 | if [ ! "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
435 | OUTPUT=$HOST_IP-LDAP
436 | PORT=389
437 | nmap -v --script ldap-brute -p$PORT $HOST_IP -oN $OUTPUT
438 | tput cnorm
439 | elif [ "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
440 | nmap -v --script ldap-brute -p$PORT $HOST_IP -oN $OUTPUT
441 | tput cnorm
442 | elif [ "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
443 | PORT=389
444 | nmap -v --script ldap-brute -p$PORT $HOST_IP -oN $OUTPUT
445 | tput cnorm
446 | elif [ ! "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
447 | OUTPUT=$HOST_IP-LDAP
448 | nmap -v --script ldap-brute -p$PORT $HOST_IP -oN $OUTPUT
449 | tput cnorm
450 | fi
451 | elif [ "$(echo $SERVICE)" == "REXEC" ] || [ "$(echo $SERVICE)" == "recex" ]; then
452 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio rexec =====${Color_Off}"
453 | if [ ! "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
454 | OUTPUT=$HOST_IP-REXEC
455 | PORT=512
456 | nmap -v --script rexec-brute -p$PORT $HOST_IP -oN $OUTPUT
457 | tput cnorm
458 | elif [ "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
459 | nmap -v --script rexec-brute -p$PORT $HOST_IP -oN $OUTPUT
460 | tput cnorm
461 | elif [ "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
462 | PORT=512
463 | nmap -v --script rexec-brute -p$PORT $HOST_IP -oN $OUTPUT
464 | tput cnorm
465 | elif [ ! "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
466 | OUTPUT=$HOST_IP-REXEC
467 | nmap -v --script rexec-brute -p$PORT $HOST_IP -oN $OUTPUT
468 | tput cnorm
469 | fi
470 | elif [ "$(echo $SERVICE)" == "RLOGIN" ] || [ "$(echo $SERVICE)" == "rlogin" ]; then
471 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio rlogin =====${Color_Off}"
472 | if [ ! "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
473 | OUTPUT=$HOST_IP-RLOGIN
474 | PORT=513
475 | nmap -v --script rlogin-brute -p$PORT $HOST_IP -oN $OUTPUT
476 | tput cnorm
477 | elif [ "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
478 | nmap -v --script rlogin-brute -p$PORT $HOST_IP -oN $OUTPUT
479 | tput cnorm
480 | elif [ "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
481 | PORT=513
482 | nmap -v --script rlogin-brute -p$PORT $HOST_IP -oN $OUTPUT
483 | tput cnorm
484 | elif [ ! "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
485 | OUTPUT=$HOST_IP-RLOGIN
486 | nmap -v --script rlogin-brute -p$PORT $HOST_IP -oN $OUTPUT
487 | tput cnorm
488 | fi
489 | elif [ "$(echo $SERVICE)" == "IMAP" ] || [ "$(echo $SERVICE)" == "imap" ]; then
490 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio IMAP =====${Color_Off}"
491 | if [ ! "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
492 | OUTPUT=$HOST_IP-IMAP
493 | PORT=993
494 | nmap -v --script imap-brute -p$PORT $HOST_IP -oN $OUTPUT
495 | tput cnorm
496 | elif [ "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
497 | nmap -v --script imap-brute -p$PORT $HOST_IP -oN $OUTPUT
498 | tput cnorm
499 | elif [ "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
500 | PORT=993
501 | nmap -v --script imap-brute -p$PORT $HOST_IP -oN $OUTPUT
502 | tput cnorm
503 | elif [ ! "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
504 | OUTPUT=$HOST_IP-IMAP
505 | nmap -v --script imap-brute -p$PORT $HOST_IP -oN $OUTPUT
506 | tput cnorm
507 | fi
508 | elif [ "$(echo $SERVICE)" == "ORACLE" ] || [ "$(echo $SERVICE)" == "oracle" ]; then
509 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio ORACLE =====${Color_Off}"
510 | if [ ! "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
511 | OUTPUT=$HOST_IP-ORACLE
512 | PORT=1521
513 | nmap -v --script oracle-brute -p$PORT $HOST_IP -oN $OUTPUT
514 | tput cnorm
515 | elif [ "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
516 | nmap -v --script oracle-brute -p$PORT $HOST_IP -oN $OUTPUT
517 | tput cnorm
518 | elif [ "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
519 | PORT=1521
520 | nmap -v --script oracle-brute -p$PORT $HOST_IP -oN $OUTPUT
521 | tput cnorm
522 | elif [ ! "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
523 | OUTPUT=$HOST_IP-ORACLE
524 | nmap -v --script oracle-brute -p$PORT $HOST_IP -oN $OUTPUT
525 | tput cnorm
526 | fi
527 | elif [ "$(echo $SERVICE)" == "IRC" ] || [ "$(echo $SERVICE)" == "irc" ]; then
528 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio IRC =====${Color_Off}"
529 | if [ ! "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
530 | OUTPUT=$HOST_IP-IRC
531 | PORT=6667
532 | nmap -v --script irc-brute -p$PORT $HOST_IP -oN $OUTPUT
533 | tput cnorm
534 | elif [ "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
535 | nmap -v --script irc-brute -p$PORT $HOST_IP -oN $OUTPUT
536 | tput cnorm
537 | elif [ "$(echo $OUTPUT)" ] && [ ! "$(echo $PORT)" ]; then
538 | PORT=6667
539 | nmap -v --script irc-brute -p$PORT $HOST_IP -oN $OUTPUT
540 | tput cnorm
541 | elif [ ! "$(echo $OUTPUT)" ] && [ "$(echo $PORT)" ]; then
542 | OUTPUT=$HOST_IP-IRC
543 | nmap -v --script irc-brute -p$PORT $HOST_IP -oN $OUTPUT
544 | tput cnorm
545 | fi
546 | elif [ "$(echo $SERVICE)" == "ALL" ] || [ "$(echo $SERVICE)" == "all" ]; then
547 | nmap -T4 -P0 --open $HOST_IP -p21,22,23,25,80,110,162,389,443,445,512,513,993,3306,1521,5900,5901,6667 -oN nmap-$HOST_IP &> /dev/null
548 | echo -e "\n${On_White}${BBlack}===== Puertos Abiertos =====${Color_Off}"
549 | cat nmap-$HOST_IP | grep -w "open" | grep -v "Nmap"
550 | PORT_21=`grep '21/tcp' nmap-$HOST_IP | grep -oP '\d{1,5}/tcp' | awk '{print $1}' FS='/' | xargs`
551 | PORT_22=`grep '22/tcp' nmap-$HOST_IP | grep -oP '\d{1,5}/tcp' | awk '{print $1}' FS='/' | xargs`
552 | PORT_23=`grep '23/tcp' nmap-$HOST_IP | grep -oP '\d{1,5}/tcp' | awk '{print $1}' FS='/' | xargs`
553 | PORT_25=`grep '25/tcp' nmap-$HOST_IP | grep -oP '\d{1,5}/tcp' | awk '{print $1}' FS='/' | xargs`
554 | PORT_80=`grep '80/tcp' nmap-$HOST_IP | grep -oP '\d{1,5}/tcp' | awk '{print $1}' FS='/' | xargs`
555 | PORT_110=`grep '110/tcp' nmap-$HOST_IP | grep -oP '\d{1,5}/tcp' | awk '{print $1}' FS='/' | xargs`
556 | PORT_162=`grep '162/tcp' nmap-$HOST_IP | grep -oP '\d{1,5}/tcp' | awk '{print $1}' FS='/' | xargs`
557 | PORT_389=`grep '389/tcp' nmap-$HOST_IP | grep -oP '\d{1,5}/tcp' | awk '{print $1}' FS='/' | xargs`
558 | PORT_443=`grep '443/tcp' nmap-$HOST_IP | grep -oP '\d{1,5}/tcp' | awk '{print $1}' FS='/' | xargs`
559 | PORT_445=`grep '445/tcp' nmap-$HOST_IP | grep -oP '\d{1,5}/tcp' | awk '{print $1}' FS='/' | xargs`
560 | PORT_512=`grep '512/tcp' nmap-$HOST_IP | grep -oP '\d{1,5}/tcp' | awk '{print $1}' FS='/' | xargs`
561 | PORT_513=`grep '513/tcp' nmap-$HOST_IP | grep -oP '\d{1,5}/tcp' | awk '{print $1}' FS='/' | xargs`
562 | PORT_993=`grep '993/tcp' nmap-$HOST_IP | grep -oP '\d{1,5}/tcp' | awk '{print $1}' FS='/' | xargs`
563 | PORT_3306=`grep '3306/tcp' nmap-$HOST_IP | grep -oP '\d{1,5}/tcp' | awk '{print $1}' FS='/' | xargs`
564 | PORT_1521=`grep '1521/tcp' nmap-$HOST_IP | grep -oP '\d{1,5}/tcp' | awk '{print $1}' FS='/' | xargs`
565 | PORT_5900=`grep '5900/tcp' nmap-$HOST_IP | grep -oP '\d{1,5}/tcp' | awk '{print $1}' FS='/' | xargs`
566 | PORT_5901=`grep '5901/tcp' nmap-$HOST_IP | grep -oP '\d{1,5}/tcp' | awk '{print $1}' FS='/' | xargs`
567 | PORT_6667=`grep '6667/tcp' nmap-$HOST_IP | grep -oP '\d{1,5}/tcp' | awk '{print $1}' FS='/' | xargs`
568 |
569 | if [ ! -z "$PORT_21" ]; then
570 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio FTP =====${Color_Off}"
571 | OUTPUT=$HOST_IP-FTP
572 | nmap -v --script ftp-brute -p$PORT_21 $HOST_IP -oN $OUTPUT
573 | fi
574 | if [ ! -z "$PORT_22" ]; then
575 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio SSH =====${Color_Off}"
576 | OUTPUT=$HOST_IP-SSH
577 | nmap -v --script ssh-brute -p$PORT_22 $HOST_IP -oN $OUTPUT
578 | fi
579 | if [ ! -z "$PORT_23" ]; then
580 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio TELNET =====${Color_Off}"
581 | OUTPUT=$HOST_IP-TELNET
582 | nmap -v --script telnet-brute -p$PORT_23 $HOST_IP -oN $OUTPUT
583 | fi
584 | if [ ! -z "$PORT_25" ]; then
585 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio SMTP =====${Color_Off}"
586 | OUTPUT=$HOST_IP-SMTP
587 | nmap -v --script smtp-brute -p$PORT_25 $HOST_IP -oN $OUTPUT
588 | fi
589 | if [ ! -z "$PORT_80" ]; then
590 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio HTTP =====${Color_Off}"
591 | OUTPUT=$HOST_IP-HTTP
592 | nmap -v --script http-enum -p$PORT_80 $HOST_IP -oN $OUTPUT
593 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio Joomla =====${Color_Off}"
594 | OUTPUT=$HOST_IP-JOOMLA
595 | nmap -v --script http-joomla-brute -p$PORT_80 $HOST_IP -oN $OUTPUT
596 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio Wordpress =====${Color_Off}"
597 | OUTPUT=$HOST_IP-WORDPRESS
598 | nmap -v --script http-wordpress-brute -p$PORT_80 $HOST_IP -oN $OUTPUT
599 | fi
600 | if [ ! -z "$PORT_443" ]; then
601 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio HTTP =====${Color_Off}"
602 | OUTPUT=$HOST_IP-HTTP
603 | nmap -v --script http-enum -p$PORT_443 $HOST_IP -oN $OUTPUT
604 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio Joomla =====${Color_Off}"
605 | OUTPUT=$HOST_IP-JOOMLA
606 | nmap -v --script http-joomla-brute -p$PORT_443 $HOST_IP -oN $OUTPUT
607 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio Wordpress =====${Color_Off}"
608 | OUTPUT=$HOST_IP-WORDPRESS
609 | nmap -v --script http-wordpress-brute -p$PORT_443 $HOST_IP -oN $OUTPUT
610 | fi
611 | if [ ! -z "$PORT_110" ]; then
612 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio POP3 =====${Color_Off}"
613 | OUTPUT=$HOST_IP-POP3
614 | nmap -v --script pop3-brute -p$PORT_110 $HOST_IP -oN $OUTPUT
615 | fi
616 | if [ ! -z "$PORT_445" ]; then
617 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio POP3 =====${Color_Off}"
618 | OUTPUT=$HOST_IP-POP3
619 | nmap -v --script pop3-brute -p$PORT_445 $HOST_IP -oN $OUTPUT
620 | fi
621 | if [ ! -z "$PORT_162" ]; then
622 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio SMB =====${Color_Off}"
623 | OUTPUT=$HOST_IP-SMB
624 | nmap -v --script smb-brute -p$PORT_162 $HOST_IP -oN $OUTPUT
625 | fi
626 | if [ ! -z "$PORT_389" ]; then
627 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio LDAP =====${Color_Off}"
628 | OUTPUT=$HOST_IP-LDAP
629 | nmap -v --script ldap-brute -p$PORT_389 $HOST_IP -oN $OUTPUT
630 | fi
631 | if [ ! -z "$PORT_512" ]; then
632 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio rexec =====${Color_Off}"
633 | OUTPUT=$HOST_IP-REXEC
634 | nmap -v --script rexec-brute -p$PORT_512 $HOST_IP -oN $OUTPUT
635 | fi
636 | if [ ! -z "$PORT_513" ]; then
637 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio rlogin =====${Color_Off}"
638 | OUTPUT=$HOST_IP-RLOGIN
639 | nmap -v --script rlogin-brute -p$PORT_513 $HOST_IP -oN $OUTPUT
640 | fi
641 | if [ ! -z "$PORT_993" ]; then
642 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio IMAP =====${Color_Off}"
643 | OUTPUT=$HOST_IP-IMAP
644 | nmap -v --script imap-brute -p$PORT_993 $HOST_IP -oN $OUTPUT
645 | fi
646 | if [ ! -z "$PORT_1521" ]; then
647 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio ORACLE =====${Color_Off}"
648 | OUTPUT=$HOST_IP-ORACLE
649 | nmap -v --script oracle-brute -p$PORT_1521 $HOST_IP -oN $OUTPUT
650 | fi
651 | if [ ! -z "$PORT_3306" ]; then
652 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio MySQL =====${Color_Off}"
653 | OUTPUT=$HOST_IP-MYSQL
654 | nmap -v --script mysql-brute -p$PORT_3306 $HOST_IP -oN $OUTPUT
655 | fi
656 | if [ ! -z "$PORT_5900" ]; then
657 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio VNC =====${Color_Off}"
658 | OUTPUT=$HOST_IP-VNC
659 | nmap -v --script vnc-brute -p$PORT_5900 $HOST_IP -oN $OUTPUT
660 | fi
661 | if [ ! -z "$PORT_5901" ]; then
662 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio VNC =====${Color_Off}"
663 | OUTPUT=$HOST_IP-VNC
664 | nmap -v --script vnc-brute -p$PORT_5901 $HOST_IP -oN $OUTPUT
665 | fi
666 | if [ ! -z "$PORT_6667" ]; then
667 | echo -e "\n${On_Blue}${BWhite}===== Brute Force al servicio IRC =====${Color_Off}"
668 | OUTPUT=$HOST_IP-IRC
669 | nmap -v --script irc-brute -p$PORT_6667 $HOST_IP -oN $OUTPUT
670 | fi
671 | tput cnorm
672 | else
673 | echo -e "\n${Cyan}[${BRed}✘${Cyan}] ${BRed}Debe especificar un servicio.${Color_Off}\n"
674 | sleep 5; clear
675 | banner; helpPanel
676 | fi
677 | else
678 | banner
679 | helpPanel
680 | fi
681 | fi
--------------------------------------------------------------------------------