BlackArch Linux

BlackArch: déjate seducir por el lado oscuro de Arch Linux

Muchos de los que trabajamos con Linux un buen tiempo hemos oído hablar de la distribución BackTrack Linux, que hoy en día, después de sufrir ciertos cambios ha pasado a llamarse Kali Linux. Es una distribución basada en Debian que se centra en proporcionar ciertas herramientas para la auditoría de la seguridad informática. Actualmente, esta distribución es una de las más famosas para hacer este tipo de tareas desde una distribución Linux, pero no es ni mucho menos la única que existe.

Los que les gusten las distribuciones basadas en Arch Linux estarán contentos de leer, que hay otra distro que está desarrollándose de forma activa. Su nombre es BlackArch Linux y podras disfrutar de esta fantastica distribución haciendo una instalación desde cero o añadiendo el repositorio BlackArch a nuestra lista de repositorios.

¿Qué es BlackArch Linux?

BlackArch Linux Entorno

BlackArch Linux es una distribución basada en Arch Linux (también funciona como una expansión para una instalación normal de Arch) que posee en este momento 1106 herramientas para pentesters. Es uno de los repositorios con herramientas de este tipo más grandes que encontraréis en Linux. La comunidad colabora con BlackArch añadiendo herramientas nuevas a su página en GitHub, por lo que no es de extrañar que hayan alcanzado un número tan alto.

Lo interesante de BlackArch Linux es que podemos instalar desde cero esta distribución mediante un “pendrive usb” o simplemente añadir el repositorio de BlackArch a nuestra instalación de Arch, pudiendo disfrutar de todas las herramientas sin hacer una instalación desde cero. Si instalamos desde cero tendremos para elegir como entorno varios window managers, entre ellos: openbox, awesome wm, fluxbox o spetrwm. Si simplemente queremos añadir el repositorio a Arch el proceso es sencillo.

Cómo Añadir el repositorio BlacArch Linux a Arch Linux

Tenemos que ejecutar los siguientes comandos como root para la firma de paquetes (os dejo enlace a la guía oficial):

$ wget -q http://blackarch.org/keyring/blackarch-keyring.pkg.tar.xz{,.sig}
$ gpg --keyserver hkp://pgp.mit.edu --recv 4345771566D76038C7FEB43863EC0ADBEA87E4E3
$ gpg --keyserver-o no-auto-key-retrieve --with-f blackarch-keyring.pkg.tar.xz.sig
$ pacman-key --init
$ rm blackarch-keyring.pkg.tar.xz.sig
$ pacman --noc -U blackarch-keyring.pkg.tar.xz

 

Añadiremos las siguientes líneas a nuestro archivo /etc/pacman.conf, reemplazando ´mirror_site´ por el mirror que queramos:

[blackarch]
Server = mirror_site/$repo/os/$arch

Solo nos queda actualizar y dispondremos del repositorio BlackArch:

$ sudo pacman -Syyu

Tanto para expertos en seguridad, como para gente que quiera empezar a adentrarse en este mundo de la seguridad informatica, pienso que BlackArch Linux puede ser una de las distribuciones mejor equipadas que podras en contrar.

 

Anuncios

Exploit Scanner v1.1 Gr3eNoX SQLI / XSS / LFI / RFI

Actualizaciones:
XSS Scanner
Scanner RFi Bug fijado
Remove Duplicate chanded algoritm

Gr3eNoX Es un escaneador  de vulnerabilidades web, su uso es sencillo y simple. No es necesario instalarlo ya que con un clic el programa se abre y ya esta listo para usarse.

Modo de uso:
———————————–

Dork: escribimos la dirección completa de la pagina que vamos a a escanear.

Use Custom Domain: debemos de seleccionarlo y poner el dominio de la pagina que vamos a escanear para así buscar nada mas las vulnerabilidades de esa pagina si no seleccionamos esta opción, el escaneador buscara también en los enlaces externos que tenga la pagina

Search: es para buscar

Las opciones Simple Sqli, XSS, ect: es para que vulnerabilidad queremos buscar en la pagina.

 

Para mi siguiente post les traeré un videotutorial de como usarlo.

 Descargar

Código Hash Cracker v121

Hash Code Cracker v121

Descripción:
—————–
. Esta galleta de la contraseña se ha desarrollado para pentesters y hackers éticos
. Por favor utilice este software para los efectos legales (Prueba de la Fortaleza de la contraseña)

Características:

==== =====

** Este software romper el MD5, SHA, NTLM (Windows Password), Cisco 7 códigos hash .

** No es necesario instalar .

** soporta todas las plataformas V1.2.1

Cambios:

—– ———————-

** agrietamiento apoyo en línea para SHA-256, SHA-384, SHA-512, CISCO7

** botón “Cancelar” interfaz gráfica de usuario ** cambiado

=====================

Requisitos mínimos:

=====================

Sistema operativo: Cualquier . OS

Java Runtime Environment: JRE 1.6 se debe instalar (lo puede conseguir a partir oracle.com).

Cómo ejecutar el software?

====================== =

Descarga el “Cracker Hash Código v121.jar” archivo.

Método 1: Haga doble clic en el archivo jar, que se ejecutará automáticamente con el JRE. Método

2: Abra el terminal y vaya a la ruta del archivo jar. Escriba este comando “java-jar HashCodeCracker v121.jar “.

Descargar

Que es la inyección SQL

 

Inyección SQL

es un método de infiltración de código intruso que se vale de una vulnerabilidad informática presente en una aplicación en el nivel de validación de las entradas para realizar consultas a unabase de datos.

El origen de la vulnerabilidad radica en el incorrecto chequeo y/o filtrado de las variables utilizadas en un programa que contiene, o bien genera, código SQL. Es, de hecho, un error de una clase más general de vulnerabilidades que puede ocurrir en cualquier lenguaje de programación o script que esté embebido dentro de otro.

Se conoce como Inyección SQL, indistintamente, al tipo de vulnerabilidad, al método de infiltración, al hecho de incrustar código SQL intruso y a la porción de código incrustado.

Descripción

Se dice que existe o se produjo una inyección SQL cuando, de alguna manera, se inserta o “inyecta” código SQL invasor dentro del código SQL programado, a fin de alterar el funcionamiento normal del programa y lograr así que se ejecute la porción de código “invasor” incrustado, en la base de datos.

Este tipo de intrusión normalmente es de carácter malicioso, dañino o espía, por tanto es un problema de seguridad informática, y debe ser tomado en cuenta por el programador de la aplicación para poder prevenirlo. Un programa elaborado con descuido, displicencia o con ignorancia del problema, podrá resultar ser vulnerable, y la seguridad del sistema (base de datos) podrá quedar eventualmente comprometida.

La intrusión ocurre durante la ejecución del programa vulnerable, ya sea, en computadores de escritorio o bien en sitios Web, en éste último caso obviamente ejecutándose en el servidor que los aloja.

La vulnerabilidad se puede producir automáticamente cuando un programa ”arma descuidadamente” una sentencia SQL en tiempo de ejecución, o bien durante la fase de desarrollo, cuando el programador explicita la sentencia SQL a ejecutar en forma desprotegida. En cualquier caso, siempre que el programador necesite y haga uso de parámetros a ingresar por parte del usuario, a efectos de consultar una base de datos; ya que, justamente, dentro de los parámetros es donde se puede incorporar el código SQL intruso.

Al ejecutarse la consulta en la base de datos, el código SQL inyectado también se ejecutará y podría hacer un sinnúmero de cosas, como insertar registros, modificar o eliminar datos, autorizar accesos e, incluso, ejecutar otro tipo de código malicioso en el computador.

Por ejemplo, asumiendo que el siguiente código reside en una aplicación web y que existe un parámetro “nombreUsuario” que contiene el nombre de usuario a consultar, una inyección SQL se podría provocar de la siguiente forma:

El código SQL original y vulnerable es:

consulta := "SELECT * FROM usuarios WHERE nombre = '" + nombreUsuario + "';"

Si el operador escribe un nombre, por ejemplo “Alicia”, nada anormal sucederá, la aplicación generaría una sentencia SQL similar a la siguiente, que es perfectamente correcta, en donde se seleccionarían todos los registros con el nombre “Alicia” en la base de datos:

SELECT * FROM usuarios WHERE nombre = ‘Alicia‘;

Pero si un operador malintencionado escribe como nombre de usuario a consultar:

Alicia'; DROP TABLE usuarios; SELECT * FROM datos WHERE nombre LIKE '%

(sin las comillas externas), se generaría la siguiente consulta SQL, (el color verde es lo que pretende el programador, el azul es el dato, y el rojo, el código SQL inyectado):

SELECT * FROM usuarios WHERE nombre = 'Alicia'; DROP TABLE usuarios; SELECT * FROM datos WHERE nombre LIKE '%';

En la base de datos se ejecutaría la consulta en el orden dado, se seleccionarían todos los registros con el nombre ‘Alicia’, se borraría la tabla ‘usuarios’ y finalmente se seleccionaría toda la tabla “datos”, que no debería estar disponible para los usuarios web comunes.

En resumen, cualquier dato de la base de datos puede quedar disponible para ser leído o modificado por un usuario malintencionado.

Nótese por qué se llama “Inyección” SQL. Si se observa el código malicioso, de color rojo, se notará que está insertado en el medio del código bueno, el verde. Así, el código rojo ha sido “inyectado” dentro del verde.

La inyección SQL es fácil de evitar, por parte del programador, en la mayoría de los lenguajes de programación que permiten desarrollar aplicaciones web. En la siguiente sección se trata brevemente ese tema.

[editar]Algunas formas de evitar la Inyección SQL

Ruby on Rails

En el framework Ruby on Rails (RoR), las consultas son verificadas automáticamente por cualquiera de los métodos de búsqueda incluidos. Por ejemplo:

 Project.find(:all, :conditions => ["name = ?", params[:name]])
 # o bien
 Project.find(:all, :conditions => {:name => params[:name]})

La única forma de que un usuario mal intencionado pueda usar una inyección de SQL en RoR es que mediante código se transforme la variable a tipo string y se utilice como argumento de la búsqueda directamente. Por ejemplo:

 # NO SE DEBERÍA HACER ESTO
 Project.find(:all, :conditions => "name = '#{params[:name]}'")

Perl

En lenguaje Perl DBI, el método DBI::quote filtra los caracteres especiales (asumiendo que la variable $sql contiene una referencia a un objeto DBI):

 $query = $sql->prepare
   (
         "SELECT * FROM usuarios WHERE nombre = "
     .
         $sql->quote($nombre_usuario)
    );

O también se puede usar la característica placeholder (con comillado automático) como sigue:

 $query = $sql->prepare("SELECT * FROM usuario WHERE nombre = ?");
 $query->execute($nombre_usuario);

PHP

En el lenguaje PHP, hay diferentes funciones que pueden servir de ayuda para usar con distintos sistemas de gestión de bases de datos. Para MySQL, la función a usar es mysql_real_escape_string:

 $query_result = mysql_query("SELECT * FROM usuarios WHERE nombre = \"" . mysql_real_escape_string($nombre_usuario) . "\"");

Java

En lenguaje Java, se puede usar la clase PreparedStatement

En lugar de:

 Connection con = (acquire Connection)
 Statement stmt = con.createStatement();
 ResultSet rset = stmt.executeQuery("SELECT * FROM usuarios WHERE nombre = '" + nombreUsuario + "';");

se puede usar parametrización o escape de variables, como se indica en los siguiente apartados.

Parametrización de sentencias SQL

 Connection con = (acquire Connection)
 PreparedStatement pstmt = con.prepareStatement("SELECT * FROM usuarios WHERE nombre = ?");
 pstmt.setString(1, nombreUsuario);
 ResultSet rset = pstmt.executeQuery();

Escape de las variables a insertar en la sentencia SQL

Escapar el texto contenido en la variable reemplazando los caracteres especiales en SQL por su equivalente textual, de tal forma que SQL interprete todo el contenido de la variable como si fuera texto.

 Connection con = (acquire Connection)
 Statement stmt = con.createStatement();
 ResultSet rset = stmt.executeQuery("SELECT * FROM usuarios WHERE nombre = '" + nombreUsuario.replace("\\", "\\\\").replace("'", "\\'") + "';");

También se puede utilizar el método escapeSQL de la clase StringEscapeUtils procedente de la librería de Apache Commons Lang

 Connection con = (acquire Connection)
 Statement stmt = con.createStatement();
 ResultSet rset = stmt.executeQuery("SELECT * FROM usuarios WHERE nombre = '" + StringEscapeUtils.escapeSQL(nombreUsuario) + "';");

En C#

En lenguaje C#, de la plataforma .NET (o su alternativa libre Mono), se tiene ADO.NET SqlCommand (para Microsoft SQL Server) o OracleCommand (para servidores de bases de datos Oracle). El ejemplo siguiente muestra cómo prevenir los ataques de inyección de código usando el objeto SqlCommand. El código para ADO.NET se programa de forma similar, aunque puede variar levemente según la implementación específica de cada proveedor.

En vez de:

 using( SqlConnection con = (acquire connection) ) {
     con. Open();
     using( SqlCommand cmd = new SqlCommand("SELECT * FROM usuarios WHERE nombre = '" + nombreUsuario + "'", con) ) {
        using( SqlDataReader rdr = cmd.ExecuteReader() ){
            ...
        }
     }
 }

se podría usar lo siguiente:

 using( SqlConnection con = (acquire connection) ) {
     con. Open();
     using( SqlCommand cmd = new SqlCommand("SELECT * FROM usuarios WHERE nombre = @nombreUsuario", con) ) { 

        cmd.Parameters.AddWithValue("@nombreUsuario", nombreUsuario); 

        using( SqlDataReader rdr = cmd.ExecuteReader() ){
            ...
        }
     }
 }
Espero que le sea de utilidad!
Fuente: Wikipedia