TEMPLATE ERROR: Unknown runtime binding: else in widget

sábado, 9 de julio de 2011

DESCARGAR MANUALES

para descargar manuales que necesiten de seguridad y redes, programacion mejor dicho todo lo que quieran, en todos los campos hay manuales aqui: elhacker.net van en donde dice textos-manuales en la parte izquierda de la pagina y hay van a descargar el que quieran y listo, yo los descargue casi todos jajajajjajaja y hay pueden encontrar noticias sobre sistemas, las nuevas actualizaciones, ultimas versiones de software y muchas cosas mas.

NMAP ESCANEO DE PUERTOS

Escaneando puertos con nmap en Ubuntu.

En este documento voy a usar el funcionamiento y la instalación de Nmap, dicho programa es una herramienta
opensource que se ocupa para realizar auditorías de seguridad en una red de computadoras o en sitios externos
como servidores web ETC.
Es una herramienta que desde hace mucho la conozco y mas cuando era un puberto en esas épocas de IRC CHAT,
donde se ocupaba para verificar puertos abiertos de shells para ya bien ingresar un Script Kiddie o por fuerza bruta
extraer la clave ahora estoy metiéndome mas a fondo para saber su funcionamiento.
La mejor forma de comprobar la seguridad de nuestra red o de nuestra propia maquina es intentando nosotros
mismos entrar por eso es que pongo este tutorial.

La sintaxys basica de nmap es la siguiente:

nmap [tipo de scan] [opciones]
Un claro ejemplo, es el siguiente, supongamos que tenemos un host en nuestra red local con dirección ip:
192.168.1.77 y nos gustaría saber que puertos tiene abiertos dicha ip local, ejecutamos el siguiente comando en la
terminal de linux.
nmap 74.125.45.132
Nmap nos va a mostrar los puertos abiertos de la siguiente manera:


PORT    STATE SERVICE
80/tcp  open  http
443/tcp open  https


que sistema operativo esta corriendo el host de destino, ejecutamos:

nmap -sX -O 74.125.45.132

-D: Esta opción se utiliza para tratar de engañar al host, al cual se esta "scaneando",
que los scans se están generando desde otros hosts, que se especifican
en la opción -D.

Si queremos escanear puertos de ISPs seria algo así:
sudo nmap -p 21,80 -sX -P0 -D 1.2.3.4,5.6.7.8 187.171.26.10-200
Poniendo los puertos que nos interesa que analice el scanner.
Supongamos que queremos escanear la ip 192.168.1.1 hasta la ip 192.168.1.255 , y deseamos guardar el
resultado del scan en un archivo de texto normal entonces ejecutamos:
#nmap -sX -O 192.168.1.1-255 -oN scanresult.txt
Conceptos importantes.
Hay que tomar mucho en cuenta que para Nmap un puerto puede estar de las siguientes 3 maneras:
open: el puerto es accesible y hay un demonio escuchando.
closed: el puerto es accesible pero no hay un demonio escuchando.
filtered: el puerto no es accesible, un firewall filtra el puerto.
¿Que es un puerto?: Un puerto es una zona en la que dos ordenadores (hosts) intercambian información
¿Que es un servicio?: Un servicio es el tipo de información que se intercambia con una utilidad determinada como
ssh o telnet.
¿Que es un Firewall?: Un firewall acepta o no el trafico entrante o saliente de un ordenador.
¿Que son paquetes SYN?: Así por encima, pueden ser paquetes que abren un intento de establecer una conexión
TCP.
Glosario de comandos.
sT se intenta hacer un barrido de puertos por TCP la ventaja de esta técnica es que no requiere usuarios
privilegiados, opuesto a sS
sU se intenta hacer un barrido de puertos por UDP, es útil cuando se intentan descubrir puertos de nivel superior
que pueden estar detrás de un firewall, lenta pero permite hacer auditorías mas exactas.
sA se usan mensajes de ACK para lograr que sistema responda y así determinar si el puerto esta abierto algunos
Firewall no filtran estos Mensajes y por ello puede ser efectivo en algunos casos.
sX puede pasar algunos Firewall con malas configuraciones y detectar servicios prestándose dentro de la red
sN puede pasar algunos Firewall con malas configuraciones y detectar servicios prestándose dentro de la red
sF puede pasar algunos Firewall con malas configuraciones y detectar servicios prestándose dentro de la red
sP este modificador ayuda a identificar que sistemas están arriba en la red (en funcionamiento) para luego poder
hacer pruebas mas especificas, similar a Ping.
sV intenta identificar los servicios por los puertos abiertos en el sistema esto permite evaluar cada servicio de
forma individual para intentar ubicar vulnerabilidades en los mismos.
sO con esta opción se identifica que protocolos de nivel superior a capa tres (Red o Network) responden en el
sistema, de esta manera es mas fácil saber las características de la red o el sistema que se intenta evaluar.
Adicionalmente a las opciones de scan se pueden especificar opciones que permiten explotar mas aun la
herramienta, dentro de las opciones que mas frecuentemente se usan están las de evitar el Ping o mostrar todos
los resultados en pantalla al máximo detalle, veamos cuales son estas opciones:
b Para determinar si la víctima es vulnerable al “bounce attack”
n no hace conversiones DNS para hacer el -sP mas rapido
vv hacer la salida de la herramienta detallada en pantalla
f habilita la fragmentacion de esta forma es mucho mas complejo para un un firewall u otro tipo de sistema lograr
hacer el rastreo.
oN redirige la salida a un archivo
oX redirige la salida a un archivo XML
–stylesheet con esta opción se usa una hoja de estilo que hace mas fácil la lectura de la salida en XML
P0 indica que no se debe hacer ping a los sistemas objetivo antes de iniciar el análisis útil para evitar el bloque en
algunos Firewall.
p se usa para especificar puertos de análisis o rango de puertos.
T se usa para especificar la velocidad general del scan de esta forma se puede pasar inadvertido en algunos
sistemas que detectan la velocidad de los paquetes entrantes.
Veamos algunos ejemplos:
nmap –sV –P0 –O –vv –o archivo.txt 192.168.1.77
El anterior comando ejecuta un barrido (scan) de puertos sobre la IP seleccionada, evita que se ejecute
Ping sobre la maquina, además de esto intenta detectar el sistema operativo, para cada puerto según
las cabeceras que se retornan se detecten los servicios ejecutándose y la información se dejara en el
archivo.txt
nmap 192.168.1.0/24
El anterior comando escanea una red completa.
nmap 192.168.1.100 -p 10-200
El anterior comando escanea un rango de puertos.
Manual y términos de nmap: http://nmap.org/nmap_doc.html
Espero que mi documento este muy explicito por que es lo que yo trato de hacer, aclaro que no soy ningún experto de
hecho a como me llega el interés de las cosas es como voy probándolas y aprendiéndolas a usar, sin embargo si tienen una
duda y tengo el conocimiento con mucho gusto les podre ayudar, en caso que no tenga idea pues investigo

SCANNING

|\/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\
\|/ \|/
/|\ /|\
\|/ \|/
/|\ Scanning... Seek & Destroy. /|\
\|/ --------------------------- \|/
/|\ /|\
\|/ por CAOS - Ezkracho Team \|/
/|\ /|\
\|/ \|/
/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\
\|/ \|/
/|\ mail: ezkracho@hotmail.com /|\
\|/ \|/
/|\ web: ezkracho.piratas.org /|\
\|/ www.ezkracho.com.ar \|/
/|\ /|\
\|/\|/\|/\|/\|/\|/\|/\|/\|/\|/\|/\|/\|/\|/\|/\|/\|/\|/\|/\|/







-----------------------------------------------
Este texto esta escrito dentro de los primeros
"127" caracteres del codigo ASCII para evitar
posibles errores al visualizarlo; por lo que no
se usaran acentos y la "enie" se pondra como ~.
-----------------------------------------------




T E M A R I O

0. Introduccion.
1. Breve teoria de TCP.
2. Que es el escaneo de puertos ?
3. Diferentes tecnicas de escaneo de puertos.
4. Averiguando el Sistema Operativo.
5. Fingerprinting.
6. Interpretando y explotando la informacion.
7. Acerca del Ezkracho Team.
8. Contacto.



0. [ Introduccion ]


En este texto vamos a ver distintas tecnicas con las que podemos
buscar informacion sobre un host, y luego de que forma podemos
aprovechar la informacion obtenida. Nos concentraremos mas que
nada en el escaneo de puertos y en las tecnicas existentes para
identificar que sistema operativo corre nuestra victima.

Muchas veces recibi mails diciendo cosas como "ayudame a hackear
pirulo.com, ya le hice un escaneo de puertos pero ahora no se que
hacer". Esto es algo muy comun, muchos al fijar los ojos en una
victima lo primero que hacen es un port scanning, pero cuantos mas
alla de la simple teoria conocen las diferentes tecnicas de escaneo,
y mucho mas importante que hacer con la informacino obtenida.

Con este texto intento que no solo sepamos que hacen muchos de los
metodos que utilizamos, sino tambien como funcionan, porque al
saber como funcionan comprenderemos mejor lo que estamos haciendo
y aprovecharemos mas la informacion obtenida.

Bueno, como siempre espero que disfruten tanto en leer este texto
como yo en escribirlo.



1. [ Breve teoria de TCP ]


No es el objetivo de este texto explicar como funciona el protocolo
TCP, pero dado que a medida que avansemos con la lectura se nos van
a presentar terminos y conceptos referidos mas que nada a este
protocolo, decidi hacer una breve introducion a la teoria del TCP,
y a lo que mas nos interesa saber para este texto. Al que le interese
saber mas sobre el TCP o el TCP/IP que busque en el respectivo RFC.

El TCP es un protocolo que generalmente se usa con otros, o es mas
conocido como TCP/IP; quiero aclarar que el TCP/IP es una suit de
protocolos y no un solo protocolo como se cree comunmente, esto
quiere decir que dentro del TCP/IP tenemos muchos protocolos pero
se lo conoce asi por ser estos dos los mas representativos.

El protocolo TCP es un servicio de comunicacion que forma un circuito,
o lo que podriamos llamar una conexion. A diferencia de otros programas
que usan UDP, con el TCP tenemos un servicio de conexion entre los
programas llamados y los que llaman, chequeo de errores, control de
flujo y capacidad de interrupcion. Por todo esto es que se dice que el
TCP es un protocolo orientado a la conexion.

A continuacion veremos como es el segmento TCP, ya que esto es lo que
mas usaremos al ver escaneo de puertos y fingerprinting.


Formato del segmento TCP

El segmento TCP consiste en una cabecera y datos. A continuacion
veremos una descripcion de los campos del segmento TCP.

- Numero de puerto del origen/destino (Source/Destination Port
Numbers): Este campo tiene una longitud de 16 bits.

- Numeros de secuencia (Secuence Numbers): existen dos numeros de
secuencia en la cabecera TCP. El primer numero de secuencia es el
numero de secuencia final y el otro numero de secuencia es el numero
de secuencia esperado de recepcion.

- Longitud de la cabecera (Header Length): este campo tiene una
longitud de 4 bits y contiene un entero igual al numero de octetos
que forman la cabecera TCP dividido por cuatro.

- Codigo de bits (Code bits): el motivo y contenido del segmento TCP
lo indica este campo. Este campo tiene una longitud de seis bits:

Bit URG (bit +5): cin este bit identificamos datos urgentes.

Bit ACK (bit +4): cuando este bit se pone a 1, el campo reconocimiento
es valido.

Bit PSH (Bit +3): aunque el buffer no este lleno, como emisores
podemos forzar a enviarlo.

Bit RST (Bit +2): con este bit abortamos la conexion y todos los
buffers asociados se vacian.

Bit SYN (Bit +1): este bit sirve para sincronizar los numeros de
secuencia.

Bit FIN (Bit +0): este bit se utiliza solo cuando se esta cerrando la
conexion.

Ventana (Window): este campo contiene un entero de 32 bits. Se utiliza
para indicar el tama~o de buffer disponible que tiene el emisor para
recibir datos.

Opciones (Options): este campo permite que una aplicacion negocie
durante la configuracion de la conexion caracteristicas como el tama~o
maximo del segmento TCP. Si este campo tiene el primer octeto a cero,
esto indica que no hay opciones.

Relleno (Padding): este campo consiste en un numero de octetos (De uno
a tres), que tienen valor cero y sirven para que la longitud de la
cabecera sea divisible por cuatro.

Checksum: mientras que el protocolo IP no tiene ningun mecanismo para
garantizar la integridad de los datos, ya que solo comprueba la
cabecera del mensaje, el TCP dispone de su propio metodo para garantizar
dicha integridad.



2. [ Que es el escaneo de puertos ? ]


El escaneo de puertos consiste basicamente en detectar que servicios
nos esta ofreciendo un determinado host. Si al hacer un escaneo
encontramos un puerto abierto, segun cual fuese este es el servicio
que nos ofrece.

Por ejemplo vamos a escanear el host zapala.com.ar:

Interesting ports on zapala.com.ar (200.32.91.1)
Port State Service Protocol
21 open tcp ftp
25 open tcp smtp
80 open tcp http

Suponiendo que solo estos puertos estuvieran abiertos (HEH!) lo que nos
resulta de este escaneo, es que zapala.com.ar esta ofreciendo servicios
de transferencia de archivos, de correo y de web.
Mas adelante veremos de que forma podemos explotar la informacion que
hemos obtenido ahora.



3. [ Diferentes tecnicas de escaneo de puertos ]


Debido a los diferentes tipos de protocolos, los numerosos puertos que
pueden estar escuchando, y a los dispositivos empleados para evitar o
detectar el escaneo de puertos, han surgido diferentes tecnicas las
cuales tienen sus ventajas como desventajas. A continuacion veremos
algunas de las distintas tecnicas que hoy dia conocemos.

- TCP connect() scanning: esta es la forma mas popular de escaneo TCP y
consiste basicamente en usar la llamada a sistema connect() del sistema
operativo, si se logra establecer la coneccion con el puerto de la otra
computadora entonces este puerto esta abierto. Las ventajas que tiene
esta forma de escaneo es que no se necesita ningun privilegio especial
para poder llevarla a cabo, en la mayoria de los Unix cualquier usuario
puede hacer uso de la llamada connect(). Otra gran ventaja es la
velocidad. El lado negativo que encontramos es que es muy facil de
detectar y de filtrar, y generalmente el host loguea que establecemos
una coneccion e inmediatamente nos desconectamos.

- TCP SYN scanning: esta tecnica es la llamada escaneo "half-open" (o
mitad-abierta), porque no establecemos una coneccion TCP completa. Lo
que hacemos es enviar un paquete SYN como si fueramos a entablar una
coneccion TCP completa y esperamos por una respuesta. Podemos recibir
un SYN|ACK si el puerto esta escuchando o un RST si el puerto esta
cerrado. Si recibimos un SYN|ACK en respuesta, inmediatamente le
enviamos un RST. La mayor ventaja de esta tecnica es que muy pocos
servers nos loguean; y la desventaja es que se necesita privilegios de
root para construir estos paquetes SYN a enviar.

- TCP FIN scanning: algunos firewalls y packets filters escuchan por los
paquetes SYN en algunos puertos, y programas como el synlogger puden
detectar este tipo de escaneo. En cambio los paquetes FIN pueden penetrar
sin mayor problemas. La idea consiste en que al enviar un paquete FIN
si el puerto esta cerrado nos va a devolver un RST, y si el puerto esta
abierto nos va a ignorar. Esto se debe a un error en las implementaciones
TCP pero no funciona en un 100%. La mayoria de los sistemas parecen
susceptibles excepto los sistemas Microsoft que son inmunes (aunque
usted no lo crea).

- Fragmentation scanning: esta no es una tecnica en si misma, sino una
modificacion de otras tecnicas. Consiste en hacer una divicion de los
paquetes que enviamos, para no ser detectados por los packet filters y
los firewalls. Por ejemplo podemos hacer un SYN o un FIN scanning
fragmentando los paquetes que enviamos, y al ir quedando en cola en los
firewalls y en los packet filters no somos detectados.

- TCP reverse ident scanning: el protocolo ident permite averiguar el
nombre de usuario y el due~o de cualquier servicio corriendo dentro de
una coneccion TCP. Por ejemplo podemos conectarnos al puerto http y
usar identd para averiguar que esta corriendo la victima como root; esto
solo es posible estableciendo una coneccion TCP completa.

- FTP bounce attack: algo interesante del protocolo ftp, es que permite
lo que se llama coneccion proxy ftp. Osea yo podria conectarme a un ftp
desde un servidor proxy y al hacer esto establecer una coneccion y enviar
un archivo a cualquier parte de la Internet. Esto lo podemos aprovechar
tambien para hacer por ejemplo un escaneo TCP, ya que estariamos haciendolo
desde un servidor ftp pero detras de un firewall. Lo bueno que tiene esta
tecnica es obviamente que es muy dificil de rastrear, y lo malo es que
puede volverse sumamente lento.

- UDP ICMP port unreachable scanning: Lo que varia significativamente de
esta tecnica con respecta a las otras es que estamos usando el protocolo
UDP, este protocolo puede ser mas simple que el TCP pero al escanear se
vuelve sumamente mas complejo; esto se debe a que si un puerto esta abierto
no tiene que enviarnos un paquete de respuesta, y si un puerto esta cerrado
tampoco tiene que enviarnos un paquete de error. Afortunadamente, la
mayoria de los hosts nos envian un paquete de error "ICMP_PORT_UNREACH"
cuando un puerto UDP esta cerrado. Esta tecnica suele volverse muy lenta.



4. [ Averiguando el Sistema Operativo ]


Saber que sistema operativo esta corriendo nuestra victima es algo
obviamente muy valioso, ya que muchas de las vulnerabilidades que podemos
encontrar dependen del sistema y la version que tenga.

La forma mas efectiva de poder conocer que sistema corre nuestra victima
seria hacerle un telnet. Suponiendo que el puerto 21 estuviera abierto
veriamos algo asi:

caos@CAOS~ telnet afrodita.unrl.edu
Trying 208.145.173.12...
Connected to afrodita.unrl.edu.
Escape character is '^]'.

HP-UX hpux B.10.01 A 9000/715 (ttyp2)

login:

Como podemos ver al telnetear al host hpux.u-aizu.ac.jp nos aparece que
sistema operativoy que version esta corriendo; y nos aparece un prompt
pidiendonos los datos del login. Lamentablemente esta tecnica no es muy
efectiva ya que el banner que nos muestra los datos del sistema es
facilmente modificable; en los Linux solo basta con modificar los archivos
/etc/issue y /etc/issue.net, por ejemplo al telnetear a mi computadora
veriamos algo asi:

/////// CAOS - Ezkracho Team
// - = -
/////// Feel the Power !

login:

Pero el modificar los banners del login no afecta los banners defaults
que vienen en los demas servicios; por ejemplo al telnetear a un ftp nos
apareceria lo siguiente:

caos@CAOS~ telnet ftp.netscape.com 21
Trying 207.200.74.26 ...
Connected to ftp.netscape.com.
Escape character is '^]'.
220 ftp29 FTP server (UNIX(r) System V Release 4.0) ready.
SYST
215 UNIX Type: L8 Version: SUNOS

Otra truco que podemos utilizar si nuestra victima tiene montado un
servidor web seria el siguiente:

caos@CAOS~ echo 'GET / HTTP/1.0\n' | nc hotbot.com 80 | egrep '^Server:'
Server: Microsoft-IIS/4.0
caos@CAOS~

Con lo que nos aparece creo que todos pueden deducir el sistema opreativo
que esta corriendo.



5. [ Fingerprinting ]


El fingerprinting es basicamente determinar que sistema operativo corre
una computadora, diferenciando las distintas respuestas que tiene un
sistema a un pedido que hacemos. Asi comparando la respuesta de un
sistema con respecto de otro, y de otro, podemos ubicar cual es el sistema
que corre. Vale decir que el fingerprinting no es 100% seguro con ningun
programa que utilisemos, pero segun cual fuese nos puede acercar lo
suficiente como para ubicar el sistema, yo personalmente recomiendo el
Nmap(www.insecure.org/nmap). A continuacion veremos las tecnicas mas
representativas del fingerprinting que muchos programas utilizan:

- El FIN probe: mandamos un paquete FIN, o cualquiera que no mande un
flag SYN o ACK, a un puerto abierto y esperamos por una respuesta. Segun
el RFC 793 no deberiamos obtener ninguna respuesta pero muchas malas
implementaciones como el MS Windows, CISCO, BSDI, HP/UX, MVS e IRIX
mandan un RESET de respuesta.

- El BOGUS flag probe: la idea es marcar un flag TCP indefinido (64 o
128) en la cabezera de un paquete SYN. Algunos Linux anteriores al
2.0.35 dejan marcado este flag en la respuesta; y algunos sistemas
resetean la coneccion cuando reciben un paquete SYN+BOGUS.

- TCP ISN sampling: la idea aqui es encontar patrones en el ISN(Initial
Sequence Number) en aplicaciones TCP ante un pedido de coneccion. Osea
hay distintos grupos de Sistemas Operativos que usan diferentes formas
de generar los ISN, de esta manera podemos ubicar al sistema.

- Don't fragment bit: muchos sistemas comienzan seteando el "Don't
fragment" bit en el IP, en algunos de los paquetes que envian. Y muchos
otros sistemas lo hacen pero solo en algunos casos. Osea que si vemos
como va marcado este bit podemos obtener informacion interesante.

- TCP initial window: aqui lo unico que hacemos es chequear el tama~o
del window de los paquetes que nos devuelven. Algunos sistemas tienen
un window unico, por lo que esta tecnica muchas veces es por la unica
forma en que los podemos detectar.

- ACK value: mas alla de que supongamos que el valor del ACK va a ser
siempre estandar, en algunas implementaciones este valor varia. Por
ejemplo supongamos que mandamos un FIN|PSH|URG a un puerto TCP cerrado,
la mayoria de las implementaciones van a setear el ACK como el mismo
numero de ISN que nosotros enviamos, pero no Windows claro, que manda
nuestro ISN + 1.

- ICMP error message quenching: esta tecnica consiste en ver la cantidad
de menasjes de error que se nos devuelve ante un pedido. Muchos sistemas
limitan la cantidad de mensajes de error usando un ratio por segundo o
otros formulas. Esta tecnica no es muy usada porque se hace muy lento el
tener que estar esperando a que nos devuelva los mensajes de error.

- ICMP message quoting: segun los RFC los mensajes ICMP de error deben
seguir una constante, sin embargo algunos sistemas no lo hacen asi y
varian en las respuestas. Este es un gran punto con el cual podemos
identificar algunos sistemas.

- Exploit chronology: esta tecnica es muy divertida. Dado que no se
puede distinguir entre el TCP stack de Windows 95, 98 y NT, porque no
lo han actualizado en lo mas minimo, osea el NT sigue teniendo el mismo
stack que el 95 y que el 98, surgio esta tecnica que todos seguramente
hemos usado alguna vez. Consiste en hacer un ataque de DOS (Denial of
Service) para tirar al Windows, podemos empezar con un Nuke, o un Ping
de la Muerte, y luego vamos usando tecnicas un poco mas avanzadas como
Teardrop y Land; entonces despues de cada ataque hacemos un PING a la
victima y segun con que tecnica haya caido podemos deducir que sistema
es y hasta que Service Pack o Hotfix tiene instalado.

- SYN flood resistance: muchos sistemas paran de aceptar conexiones
cuando uno les envia varios paquetes SYN; algunos solo aceptan 8
paquetes. simplemente podemos determinar el sistema por la cantidad de
paquetes que puede aceptar.



6. [ Interpretando y explotando la informacion ]


Solo veremos algunos de los puertos mas utiles para nuestro objetivo,
los demas se los dejo para que los investiguen ustedes y usen su
imaginacion.
Lo que aqui haremos en definitiva es tratar de averiguar las versiones
de los demonios que esta corriendo el sistema, para encontrar algun
bug de esa version y su respectivo exploit. Tambien veremos algunos
puertos que nos pueden brindar datos interesantes.

Interesting ports on zapala.com.ar (200.32.91.1)
Port State Service Protocol
21 open tcp ftp
25 open tcp smtp
79 open tcp finger
80 open tcp http


- Puerto 21: yo lo primero que provaria es intentar hacer un ftp
anonimo, muchos sistemas estan tan mal configurados que hasta
podriamos conseguir el archivo de password. Luego tendriamos que
intentar ver que version del demonio ftp esta corriendo, seria
algo asi:

caos@CAOS~ telnet ftp.zapala.com.ar 21
Trying 200.32.91.1 ...
Connected to ftp.zapala.com.ar.
Escape character is '^]'.
220 ftp.zapala.com.ar FTP server (Version wu-2.5.0(1) Tue Sep 21
16:48:12 EDT 1999) ready.

Aqui vemos que version del FTP server esta corriendo el host, que
no hace falta decir lo famoso que es por sus innumerables bugs,
ahora lo que hacemos es buscar el exploit para esa version.

- Puerto 25: en este puerto generalmente encontraremos el servidor
de correo; si es el sendmail u otro, telneteamos a este puerto y
vemos cual es la version, y por supuesto vemos si podemos encontrar
algun exploit que nos sirva.

Para lo que tambien nos puede ser util este puerto es para enviar
mails anonimos o fake mails. Por ejemplo nos podriamos hacer pasar
por el Administrador del sistema y pedirle que nos envie su
contrase~a:

telnet universidad.edu.ar 25
220 universidad.edu.ar Microsoft Sendmail 1.0 ready at Sat, 2-1-98
HELO CAOS
250 Hello CAOS
MAIL FROM: administrador@universidad.edu.ar
250 ...Sender OKay
RCTP TO: victima@universidad.edu.ar
250 ...Recipient OKay
DATA
354 Enter mail, end with "." on a line by itself
Estimado usuario, debido a una reestructuracion del sistema
necesitamos nos envie su contrase~a para agregarla a la nueva
base de datos. Muchas gracias y disculpe las molestias.
El Administrador.
.
250 Mail accepted
QUIT
221 universidad.edu.ar closing connection.

Este ejemplo es muy inocente pero todo esta en la imaginacion
de cada uno. Algo a tener en cuenta es que muchos servidores de
correo loguean nuestra direccion IP y puede aparecer en el mail
que enviamos, por eso es preferible primero enviarnos un mail a
nosotros mismos para ver si aparece nuestra IP.

- Puerto 79: en este puerto podemos encontrar importante
informacion sobre los usuarios que se encuentran en el sistema.
Por ejemplo podemos probar hacer algo como esto:

telnet jperez@victima.edu.ar 79

Login Name Tty Idle Login Time Office Office Phone
jperez Juan Perez 1 Feb 7 02:06 4785-6548

Y obtendriamos informacion personal de ese usuario como ser su
telefono, que podriamos utilizar para hacer Ingenieria social.

Ahora si queremos ver todos los usuarios que hay en un sistema en
algunos servidores podemos hacer esto:

telnet @victima.edu.ar 79

Login Name Tty Idle Login Time Office Office Phone
jperez Juan Perez 1 Feb 7 02:06 4785-6548
root root *2 4:28 Feb 7 02:05

Y como vemos obtenemos todos los usuarios que en ese momento se
encuentran logueados en el sistema.

- Puerto 80: este puerto es el que nos ofrece el servicio de
web. Podriamos utilizarlo para conseguir el archivo de password
mediante la tecnica del PHF, pero como esta tecnica ya esta
quedando obsoleta no mencionare como hacerlo. Todo depende de
lo actualizado que estemos en los bugs que dia a dia aparecen,
hoy si este host estuviera corriendo el servidor web de Microsoft
podriamos probar la vulnerabilidad del ISS que afecta al 90% de
los servidores web existentes en Internet, o como ya hemos visto
antes podriamos usarlo para obtener informacion del sistema.



7. [ Acerca del Ezkracho Team ]


Puedo definir al Ezkracho Team como un grupo de Seguridad e
Inseguridad Informatica. Este grupo surgio en un principio por
el simple hecho de querer compartir conocimientos e ideas, con
quienes nos dimos cuenta teniamos las mismas curiosidades y
ansias de saber; mas adelante al empezar a organizarnos
surgimos por la necesidad de una propuesta seria entre las
pocas que hay en lo que es la seguridad informatica.

En lo que es hoy el Ezkracho Team tenemos muchos proyectos que
estamos llevando adelante, y muchos ideas para muchos mas;
tambien estamos comenzando grandes proyectos con otros grupos
que con el tiempo van a salir a la luz.

Los miembros actuales del Ezkracho Team son:

CAOS (osea yo), Powertech, Giba, Bach y [Hellraiser]

El Ezkracho Team es un grupo cerrado por lo que no se aceptan
nuevos miembros, pero siempre es bienvenido cualquier tipo de
colaboracion.



8. [ Contacto ]


Si me queres contactar por cualquier cosa que se te ocurra, como
tambien a los demas miembros de Eskracho nuestras direcciones de
mail son estas:

CAOS ezkracho@hotmail.com <---- este soy yo ;)
Powertech powertech@mixmail.com
Bach bach@lacasilla.com.ar
Giba giba@lacasilla.com.ar
[Hellraiser] askhell@ciudad.com.ar

Si queres ver mas trabajos de mi autoria como de todo el Ezkracho
Team, lo podes hacer en nuestro website.
NOTA: debido a que actualmente estamos registrando nuestro dominio
y estamos cambiando de server nos podes encontrar en estas URL's.

ezkracho.piratas.org
www.ezkracho.com
www.ezkracho.com.ar
www.ezkrachoteam.com.ar

Tambien podes encontrar todo nuestro material y mucho mas en el
Ezkracho BBS, pero por razones operativas busca el numero de
telefono y los horarios que esta online en la web.



- EOT - Hasta la proxima, CAOS.

UNA NUEVA PAGINA QUE ENCONTRE HOY

http://www.securitybydefault.com/ ES MUY BUENA TAMBIEN

LA COMUNIDAD QUE ME A ENSEÑADO UNA PARTE DE LO QUE SE

ragonjar.org

lunes, 31 de enero de 2011

CRIPTOGRAFIA

Criptografía

Desde que se lleva registro escrito de los hechos del hombre, ha sido necesario proteger los documentos en los que se asienta la información. Antes del surgimiento de la computación, los documentos de contenido importante han sido resguardados mediante medios físicos, limitando el acceso a ellos mediante el uso de instalaciones especiales, procedimientos administrativos, etc.

El término seguridad de la información surge de la necesidad de proteger los contenidos y los sistemas que administran la información. Podría decirse que la Seguridad de la Información es el conjunto de reglas, planes y acciones que permiten asegurar la información manteniendo las propiedades de confidencialidad, integridad y disponibilidad de la misma. Estos términos involucran:

 Confidencialidad: la información sólo debe ser leída por las personas autorizadas para hacerlo.
 Integridad: la información sólo puede ser creada, modificada o eliminada por quienes posean autorización.
 Disponibilidad: la información debe ser accesible por el personal autorizado para su lectura o modificación.

Para garantizar las propiedades de confidencialidad e integridad se puede usar los sistemas criptográficos, los cuales se apoyan en algoritmos complejos, algoritmos que se han visto fortalecidos con el desarrollo que ha tenido la criptografía.

Observando las situaciones de riesgo anteriormente planteadas, concluimos que para tener un sistema seguro deben reforzarse los atributos de confidencialidad, integridad y disponibilidad. Dado que es imposible la creación de sistemas cerrados que no sean susceptibles a fallas, se crean mecanismos que refuerzan las propiedades de la seguridad de la información.

La disponibilidad, generalmente, se trata de solucionar con sistemas redundantes. La confidencialidad se puede lograr usando un mecanismo que, aunque sea robada la información, permita que no se pueda acceder a ésta. La integridad es más difícil de proporcionar, para ello se implementan soluciones destinadas a certificar la identidad del emisor/creador de la información, de forma que posteriormente pueda verificarse su identidad. También estos mecanismos permiten comprobar que la información no ha sufrido alteraciones desde su emisión.

Es así como surge la criptografía, palabra de raíces griegas (“criptos” = oculto, “grafos” = escritura). De allí que su definición sea: es la técnica o arte de la escritura secreta. su principio básico es mantener la privacidad de la comunicación entre dos entes, alterando el mensaje original de modo que sea incomprensible a toda persona distinta del destinatario; a esto se le puede atribuir de cierta forma la autenticación de quien manda el mensaje, de modo que un tercero no pueda suplantar al emisor.

A la transformación del mensaje original en el mensaje cifrado se le llama cifrar, y a la operación inversa, se le llama descifrar; estos pasos se realizan mediante un conjunto de reglas preestablecidas entre los comunicantes a la que se le denomina clave. Tanto el emisor como el receptor deben concordar en la forma que se generará la clave ya que con ella es que se hacen los procesos de codificación y descodificación del mensaje.


Funcionamiento del proceso criptográfico

En forma simplificada podríamos decir que el emisor transforma el mensaje original mediante un procedimiento previamente definido por una clave, el mensaje es enviado a través de un medio público. El receptor, conociendo de antemano la clave, la utiliza para transformar el texto cifrado en legible, recuperando así la información original.

El tipo particular de transmisión aplicada al texto fuente o las características de las claves utilizadas marcan la diferencia entre los diversos métodos criptográficos. Una primera clasificación con base en las claves utilizadas pueden ser las siguientes:

Cifrado Simétrico
Los sistemas de cifrado simétrico, consisten en la utilización de la misma clave para cifrar y descifrar una información. Este tipo de fuentes posee como ventaja la sencillez para su aplicación, ya que se utiliza la misma clave para cifrar y descifrar la información. El principal problema de éste tipo de técnica reside en que se debe disponer de un medio seguro para el intercambio de la clave entre el emisor y el receptor.

Se recomienda para emplear el cifrado simétrico la utilización de una clave difícil de adivinar, ya que se cuenta con sistemas computacionales muy potentes que se utilizan para obtener dichas claves. Además, se hace necesario la utilización de claves fuertes, que utilicen una combinación de números aleatorios fáciles de recordar, letras mayúsculas y minúsculas y signos, y que posean una longitud de al menos 12 caracteres.

Actualmente, las computadoras pueden descifrar claves con extrema rapidez, y ésta es la razón por la cual el tamaño de la clave es importante en los criptosistemas modernos. El algoritmo de cifrado DES usa una clave de 56 bits, lo que significa que hay 2 elevado a 56 claves posibles (72.057.594.037.927.936 claves). Esto representa un número muy alto de claves, pero un ordenador genérico puede comprobar el conjunto posible de claves en cuestión de días. Una máquina especializada puede hacerlo en horas. Algoritmos de cifrado de diseño más reciente como 3DES, Blowfish e IDEA usan claves de 128 bits, lo que significa que existen 2 elevado a 128 claves posibles. Esto equivale a muchísimas más claves, y aun en el caso de que todas las máquinas del planeta estuvieran cooperando, tardarían más tiempo en encontrar la clave que la edad del universo.

Mediante la utilización de una clave conocida por ambos entes, se cifra y descifra el mensaje

Cifrado Asimétrico
El cifrado asimétrico, consiste en que las dos claves pertenecen a la misma persona a la que se ha enviado el mensaje. Una clave es pública y se puede entregar a cualquier persona. La otra clave es privada y el propietario debe guardarla para que nadie tenga acceso a ella. El remitente usa la clave pública del destinatario para cifrar el mensaje, y una vez cifrado, sólo la clave privada del destinatario podrá descifrar este mensaje.

Para enviar un mensaje, el remitente usa la clave pública del destinatario y así se cifra el mensaje. Una vez cifrado, solamente con la clave privada del destinatario se puede descifrar; ni siquiera quien ha cifrado el mensaje puede volver a descifrarlo. Por ello, se puede dar a conocer perfectamente la clave pública para que todo aquel que se desee comunicar con el destinatario lo pueda hacer.

Mediante la utilización de una clave pública, se cifra, el mensaje se descifra con la clave privada del receptor

Las dos principales ramas de la criptografía de clave pública son:

 Cifrado de clave pública: un mensaje cifrado con la clave pública de un destinatario no puede ser descifrado por nadie, excepto un poseedor de la clave privada correspondiente--presumiblemente, este será el propietario de esa clave y la persona asociada con la clave pública utilizada. Se utiliza para confidencialidad.

 Firmas digitales: un mensaje firmado con la clave privada del remitente puede ser verificado por cualquier persona que tenga acceso a la clave pública del remitente, lo que demuestra que el remitente tenía acceso a la clave privada (y por lo tanto, es probable que sea la persona asociada con la clave pública utilizada) y la parte del mensaje que no se ha manipulado. Sobre la cuestión de la autenticidad.

Una analogía con el cifrado de clave pública es la de un buzón de correo con una ranura de correo. La ranura de correo está expuesta y accesible al público; su ubicación (la dirección de la calle) es, en esencia, la clave pública. Alguien que no sepa la dirección de la calle puede ir a la puerta y colocar un mensaje escrito a través de la ranura; sin embargo, sólo la persona que posee la clave puede abrir el buzón de correo y leer el mensaje.

Una analogía para firmas digitales es el sellado de un envolvente con un personal, sello de cera. El mensaje puede ser abierto por cualquier persona, pero la presencia del sello autentifica la remitente.

La criptografía asimétrica permite identificar al emisor y al receptor del mensaje. Para identificar el mensaje propiamente dicho, se utilizan las llamadas funciones resumen (en inglés, hash). Una función hash es una operación que se realiza sobre un conjunto de datos de cualquier tamaño de tal forma que se obtiene como resultado otro conjunto de datos, en ocasiones denominado resumen de los datos originales, de tamaño fijo e independiente del tamaño original que, además, tiene la propiedad de estar asociado unívocamente a los datos iníciales, es decir, es prácticamente imposible encontrar dos mensajes distintos que tengan un resumen hash idéntico.

Algunos algoritmos de técnicas de clave asimétrica son:
 Diffie-Hellman
 RSA
 DSA


Cifrado Híbrido
Es el sistema de cifrado que usan tanto los sistemas de clave simétrica como asimétrica. Funciona mediante el cifrado de clave pública para compartir un código para el cifrado simétrico. En cada mensaje, la clave simétrica utilizada es diferente por lo que si un atacante pudiera descubrir ésta, solo le valdría para ese mensaje y no para los restantes.

La clave simétrica es cifrada con la clave pública, y el mensaje saliente es cifrado con la clave simétrica, todo combinado automáticamente en un sólo paquete. El destinatario usa su clave privada para descifrar la clave simétrica y acto seguido usa la clave simétrica para descifrar el mensaje.

Certificados Digitales

La Certificación Digital o Electrónica se define como el proceso mediante el cual se generan certificados electrónicos, garantizando la integridad de un documento digital o una acción cometida sobre éste. Pueden identificar a las personas y/u organizaciones, convirtiéndose de esta manera en documentos de identidad que contienen información importante con respecto a su portador, por ejemplo: nombre, fecha de nacimiento o constitución y dirección. Además, contienen el dato más importante para la identificación de la persona natural o jurídica: La clave pública de su signatario. La función de esta clave es establecer un parámetro técnico que permita darle seguridad a una información y el acceso a ella cuando sea necesario o deseado.

Los certificados electrónicos son generados siguiendo los estándares internacionales, con la finalidad de unificar criterios y lograr a futuro su uso en otros países. El estándar utilizado es el X.509 V3, el cual define la estructura de los certificados, desarrollado por la Unión Internacional de Telecomunicaciones (UIT) y la Organización Internacional para la Estandarización (ISO).

Básicamente el estándar X.509 V3 tiene una serie de campos básicos, entre los cuales están:

 La identificación del signatario
 La clave pública del signatario
 El período de validez
 El nombre de la autoridad o entidad emisora.

A su vez, el estándar presenta una serie de extensiones, como la localización de la información de estado de certificado, la ubicación del certificado de la entidad emisora, los campos alternativos del nombre del signatario, las restricciones de uso y la información de las políticas.

Beneficios del uso de Certificados Digitales

Para el Estado Venezolano:

 La simplificación de trámites administrativos: Con el uso de los certificados electrónicos, el usuario podrá autenticarse (es decir, identificándose según quien dice ser) en los portales del gobierno y la empresa privada. De ésta manera podrá realizar las transacciones en línea de forma segura y eficiente, eliminando el flagelo de procesos largos y engorrosos de los trámites administrativos.
 Descentralización: El estado venezolano se perfila como estado pionero en la descentralización de trámites administrativos mediante el impulso regional de la implementación de certificados electrónicos para realizar transacciones electrónicas en los portales del gobierno sin necesidad de trasladarse los ciudadanos del interior hacia la capital.
 Ahorro: El uso de la plataforma tecnológica acarrea un ahorro evidente en uso de papel y otros insumos para el Estado Venezolano respondiendo a políticas de protección ambiental y a las iniciativas de Gobierno sin papel.

Para la Ciudadanía:

 Autenticación: Su uso genera esquemas de confianza entre la identidad del usuario que accede al sistema y el portal del gobierno o empresas.
 Disminución de tiempos de respuestas: El usuario podrá gestionar un mayor número de trámites a través de internet.
 Acceso Gobierno - Ciudadano: Permitirá al ciudadano común mantener esa condición de portabilidad y movilidad permanente de sus operaciones en línea con los portales del estado en cualquier parte del país.
 Disponibilidad: Organizar información para tenerla “a la mano”. Conocer el estado de un trámite.

Marco Legal
Decreto-Ley sobre Mensajes de Datos y Firmas Electrónicas

El Decreto-Ley N° 1.204 de fecha 10/02/2001, tiene por objeto, otorgar y reconocer
eficacia y valor jurídico a la Firma Electrónica, al Mensaje de Datos y a toda información inteligible en formato electrónico (video, música, fotografía, entre otros), independientemente de su soporte material, atribuible a personas naturales o jurídicas, públicas o privadas, así como regular lo relativo a los PSC y los Certificados Electrónicos.

Una de las características más resaltantes de esta normativa, es que atribuye valor legal y probatorio a los mensajes de datos (documentos electrónicos) y el uso en los mismos de la firma electrónica. Los documentos electrónicos tienen la misma garantía legal que los documentos en papel, tal como lo establece la Ley Sobre Mensajes de Datos y Firma Electrónica en su Artículo 4°:

“Los Mensajes de Datos tendrán la misma eficacia probatoria que la ley otorga a los documentos escritos, sin perjuicio de lo establecido en la primera parte del artículo 6
de este decreto ley. Su promoción, control, contradicción y evacuación como medio de
prueba, se realizará conforme a lo previsto para las pruebas libres en el Código de Procedimiento Civil. La información contenida en un Mensaje de Datos, reproducida en
formato impreso, tendrá la misma eficacia probatoria atribuida en la ley a las copias o
reproducciones fotostáticas”.

De acuerdo a lo anterior, es conveniente establecer las siguientes distinciones:

1. Si el certificado electrónico es emitido por un PSC, constituirá plena prueba, pues la ley le otorga la misma validez que a la firma autógrafa, ya que éste debe cumplir con los requisitos del Art.16.
2. Si el certificado electrónico no es emitido por un PSC y no cumple los requisitos del citado artículo, en caso de un litigio, el juez valorará los documentos firmados electrónicamente conforme a las regla de la sana crítica (lógica y máximas de experiencia).

En este orden de ideas, es conveniente acotar que la responsabilidad del signatario del certificado se asumirá por medio de una declaración, negocio u otro acto y no desaparecerá porque el medio en cuestión sea electrónico, salvo que alguna condición legal exija lo contrario. Por último, este decreto ley pretende convertirse en la piedra angular del comercio y gobierno electrónico, generando confianza y estimulando su uso en el Estado Venezolano.

Infraestructura Nacional de Certificación Electrónica
La Infraestructura Nacional de Certificación Electrónica es el conjunto de servidores, programas (software), dispositivos criptográficos, políticas, normas y procedimientos, dispuestos y utilizados de manera exclusiva por la Autoridad de Certificación Raíz y los PSC acreditados para la generación, almacenamiento y publicación de los certificados electrónicos, así como también, para la publicación de información y consulta del estado de vigencia y validez de dichos certificados. Esta Infraestructura se basa en dos pilares fundamentales, tales como la confianza y la tecnología.

A continuación se grafica como están constituidos los elementos de la Infraestructura Nacional de Certificación Electrónica:

En esta perspectiva, SUSCERTE promueve y divulga el uso de los certificados y firma electrónica en Venezuela, es por ello que en febrero de 2007 crea la Autoridad de Certificación (AC) Raíz del Estado Venezolano, la cual es la encargada de acreditar a los PSC que se encuentren aptos para operar en el país, fortaleciendo con esto al Sistema Nacional de Certificación Electrónica (SNCE).
Firma Electrónica

La firma electrónica es la forma análoga de una firma escrita, la cual identifica al firmante y lo relaciona con los datos firmados. Toda persona está acostumbrada a usar su firma autógrafa, especialmente para sus actos civiles y mercantiles, pues firma cheques, contratos, entre otros. Por lo tanto cada día se acerca el momento en que la firma electrónica se emplee con mayor auge.

La seguridad de la firma electrónica se basa en el uso de la criptografía , es decir, se vale de mecanismos de cifrado de la información para que no sea accedida por terceras personas no autorizadas, estas características de cifrado otorgan las siguientes propiedades a la firma electrónica:

 Autenticidad, vincula de forma única el documento a su autor.
 Integridad, verifica la no alteración de los datos del documento original, desde que fue firmado.
 No repudio, garantiza que el emisor no pueda negar o repudiar su autoría o existencia, ser susceptible de verificación ante terceros.

Existen concepciones erradas sobre lo que es la firma electrónica, y en muchos casos se le confunde con una firma manuscrita escaneada, una contraseña, un sistema biométrico, o un documento cifrado, no debemos olvidar que la firma electrónica es información creada o utilizada por el signatario, asociada al mensaje de datos, que permite atribuirle su autoría bajo el contexto en el cual ha sido empleado.

La aplicación de la firma electrónica es diversa, y se puede utilizar en la firma de datos enviados mediante un formulario web, imágenes, una base de datos, una transacción electrónica segura, un correo, una hoja de cálculo o documento de texto, el código fuente de un programa, uno o varios archivos en general.

La firma electrónica es un conjunto de datos que vincula de manera única el documento al usuario y garantiza la integridad del documento electrónico, se genera como resultado de la aplicación de una función matemática llamada “función de Hash”, lo cual podemos decir que es una especie de impresión digital de un mensaje.

A través del siguiente ejemplo, se explicará como se genera una Firma Electrónica: Rosa necesita enviar un mensaje a Juan:
El mensaje dice lo siguiente: “Estimado Juan: Te envío la minuta de la reunión sostenida ayer. Atentamente, Rosa”. Al mensaje de Rosa se le aplica una “función de Hash”, la cual genera un valor único, de manera que si alguien intenta alterar su mensaje, éste genera automáticamente un nuevo código Hash, pudiéndose comprobar luego que ha sido modificado. La firma electrónica es por lo tanto, una forma segura de conseguir una autenticación.
En el paso siguiente, Rosa cifra el valor Hash con su clave privada, la consecuencia de esto es la generación de un archivo electrónico que representa su firma electrónica. Luego, la firma electrónica generada por Rosa se anexa al material (documento) que será enviado electrónicamente a Juan.

Juan, luego de recibir el mensaje, se le aplica la función de Hash para obtener la impresión digital del mensaje. Al mismo tiempo, él descifra el mensaje con la utilización de la clave pública de Rosa, con ello se obtiene, nuevamente, otra impresión digital del mensaje. A continuación podemos observar una ilustración de lo explicado:

Proceso de generación de la firma electrónica

Fortalezas y usos del certificado electrónico
A continuación se resaltarán tres aspectos fundamentales que fortalecen el uso del certificado electrónico:
1. Las claves privadas que se usan en los procesos de cifrado y firma requieren una garantía de exclusividad de uso y por ello se debe generar y custodiar en un dispositivo seguro.
2. Los procesos de firma electrónica requieren un gran volumen de operaciones y por tanto necesitan de una alta velocidad de proceso.
3. El algoritmo empleado en el proceso de generación, cifrado y firma, debe estar certificado por un laboratorio acreditado por la Autoridad de Certificación correspondiente.

Tipos de certificados electrónicos

 Certificados de Personas Naturales: Autoriza la firma y/o cifrado de los mensajes de correo electrónico y documentos con el certificado electrónico de su signatario.
 Certificados de Personas Jurídicas: Con este tipo de certificado se autoriza la firma y/o cifrado de los mensajes de correo electrónico y documentos con el certificado electrónico, en nombre de la persona jurídica o entidad del Estado venezolano que figura en el certificado electrónico como signatario.
 Certificados para Servidores: Permite incorporar el protocolo Secure Sockets Layer (SSL) en un servidor Web. Gracias a este protocolo toda comunicación entre el cliente y el servidor permanece segura, cifrando toda la información que se envían ambas partes. Los certificados de servidor no pueden ser utilizados como certificados electrónicos que respalden firmas electrónicas del suscriptor.
 Certificados para operadores del PSC: Otorga a las personas responsables de las tareas de la Autoridad de Registro (AR) y la Autoridad de Certificación (AC).

Dispositivos de almacenamiento de certificados electrónicos
Existen diversos dispositivos para la generación y custodia de las claves, aunque no todos ofrecen iguales prestaciones y garantías. Entre ellos se pueden mencionar: la Tarjeta Inteligente, las tarjetas criptográficas o tokens y los HSMs (Hardware Criptográfico).

A continuación se describen cada uno de los
dispositivos:

Tarjeta Inteligente: Consiste en una tarjeta criptográfica que genera y almacena las claves criptográficas que componen el certificado electrónico.

HSM (Hardware Security Module): Un HSM es un dispositivo criptográfico basado en hardware que genera, almacena y protege claves criptográficas y suele aportar mayor rapidez en las operaciones criptográficas. El uso de HSM es una solución que ofrece un mayor nivel de prestaciones, calidad de servicio y garantías de seguridad, de hecho, es capaz de almacenar miles de claves internamente con mecanismos de respuestas ante la manipulación, es decir, detectando cualquier intento malicioso de acceso a sus memorias y reaccionando ante cualquier ataque, borrando las mismas.


http://es.wikipedia.org/wiki/Criptograf%C3%ADa_sim%C3%A9trica
http://es.wikipedia.org/wiki/Criptograf%C3%ADa_asim%C3%A9trica

EN QUE CONSISTE LAS INYECCIONES SQL

¿En qué consiste la inyección SQL? Es una técnica de hackeo con un funcionamiento bastante simple. Se basa en atacar aplicaciones cuyo formulario de inicio de sesión o cuadros de texto no se encuentran validados completamente o de la manera adecuada.

Paso a ilustrarles un ejemplo, se necesita que tengan nociones de SQL.

Supongamos que tenemos una aplicación construida en PHP y MySQL, pueden instalarlo localmente si tienen WampServer, la cual tiene una página de inicio de sesión: login.php.

Ahora bien, login.php tiene dos campos de texto, uno para el usuario y otro para la clave. El del usuario tendrá name user y el de la clave tendrá name pass.

Los name son campos que sirven para identificar los inputs y recuperarlos desde la página a la cual es enviada la acción. El formulario sería algo así:
Usuario:
Clave:


Supongamos que al iniciar sesión aqui seremos redirigidos a una página de tipo index.php. Aquí es donde suelen haber errores. Comúnmente lo que hacen las aplicaciones aquí es recuperar el código de ésta manera:

$usua = $_POST['user'];
$clav = $_POST['pass'];

Lo cual no tiene gran relevancia, si estamos usando un método POST en el formulario de login.php, pero lo que ocasiona el problema es el código que le sigue … éste:

$sql="SELECT * FROM usuarios WHERE user = '$usua' AND password='$clav'";

Lo que hace esa sentencia es verificar que existe el usuario mediante la devolución de un registro completo (y único en teoría). Por ejemplo, suponiendo que nuestro nombre de usuario sea Pepe y nuestra clave sea pepito123, entonces la cadena sql quedaría de ésta forma:

$sql="SELECT * FROM usuarios WHERE user = 'Pepe' AND password='pepito123'";

Aquí es donde entra la inyección SQL. No nos complicaremos mucho y comenzaremos con el clásico usuario vacío que valida todo y omitiremos la validación de clave. ¿Cómo? De la siguiente manera:

Usuario: ' or 1=1 --'
Clave: dsadsadas (da igual, escriban lo que sea, luego veremos por qué)

Al pasar estos valores por la cadena de validación SQL tendremos lo siguiente:

$sql="SELECT * FROM usuarios WHERE user = '' or 1=1 --'' AND password='dsadsadas'";

En MySQL un — es el inicio de un comentario, por lo que todo lo que se encuentra luego de éste par de caracteres no se ejecutará, por lo que solo nos quedará:

$sql="SELECT * FROM usuarios WHERE user = '' or 1=1 ";

Obviamente es improbable que se cumpla que exista nuestro usuario de login con nombre vacío (user = ''), sin embargo la segunda condición (1=1) siempre se cumple, por lo que podemos acceder a sistemas con bastante facilidad.

Evidentemente se exhiben cambios entre versiones de bases de datos y lenguajes de programación, por eso me tomé el trabajo de referirlos a un material bastante interesante que encontré en la web (enlace al final del post).

Esta hoja de referencia para inyección en SQL contiene códigos de guía para bases de dato Oracle, MySQL, SQL Server, PostgreSQL y lenguajes de programación como PHP, ASP, ASP.NET y Java, además de las diferentes combinaciones.

Se sorprenderán de la cantidad de aplicaciones que tienen vulnerabilidades que permiten inyección SQL en su formulario de login o inicio de sesión, ustedes no comentan los mismos errores. Yo mismo encontré problemas de este tipo en aplicaciones web de mi facultad como parte de un proyecto para mi curso de Seguridad Informática en la UNI.

Enlace: Ferruh

Disclaimer: Este artículo solo tiene fines informativos y académicos, el autor no se hace responsable del uso indebido que se le pueda dar al conocimiento aqui expuesto.

Etiquetas: bases de datos, hackear paginas, hacking, inyeccion bd oracle, inyeccion mysql, inyeccion sql server, mysql, sql, SQL injection