lunes, 22 de noviembre de 2010

CGI

Ahora, dejemos un momento acerca de seguridad en las redes y veamos algo acerca de la web una de ella sera:

"Common Gateway Interface" (CGI) su traducción significa Interfaz de Entrada Común.
Esta es una gran herramienta la cual se emplea muy seguido, ya que permite a un usuario solicitar datos o información de un programa que se este ejecutando en un servidor.

En pocas palabras es una transferencia de usuario a servidor.
Por ejemplo cuando uno pregunta y obtiene una respuesta, viene siendo algo así su funcionamiento.

Podemos mencionar que esto es un contenido dinámico, ya que hay puede variar, dependiendo de la solicitud que se haga.
Este programa puede estar escrito en cualquier lenguaje de programación, aunque yo te recomiendo que uses python o java, perl, ya que son fáciles de usar y hay muchos tutoriales en linea que te describen su funcionamiento.

Como actúa?
  • Lo que primero que se hace es que el servidor recibe o le llega una pregunta (petición)
  • Después el servidor prepara el entorno para su ejecución e inmediata mente la ejecuta.
  • Aquí es cuando la aplicación hace su función
  • Ya una ves que termina, el servidor manda la información producida.
Ejemplo:
Algunos ejemplos muy comunes de estos, es por ejemplo, cuando queremos entrar a una cuenta en linea, primero tenemos que llenar varios formularios y ya después obtenemos una respuesta, también al momento de una encuesta, o de algunas preguntas que hay que contestar, para conocer el resultado, etc.

Aqui les dejo un ejemplo que hice:
El ejemplo trata acerca de acceder al sistema pidiéndote tu usuario y clave.
Aqui les dejo las capturas de pantalla:
Aqui te pide los datosLlenamos el formulario, para esto cree un .txt que se llama abraham y en la cual en esta contiene la clave, la clave la puse visible.Ya, aquí te da la respuesta.

Funcionamiento:

Aquí esta el código html en el cual hay que guardarlo en /var/www/nombre del archivo.html.
El código es simple, si acaso lo único a destacar es en la 6ta linea que menciono donde esta localizado el programa que hará la respuesta.
Y ya en las ultimas lineas, menciona que aparecerá un botón para enviarse la solicitud.

La otra pate del codigo, que sera su respuesta esta guardada en /usr/lib/cgi-bin/nombre del archivo.py ya que lo estamos realizando en python
Las primeras lineas que hace es que imprime la respuesta, como la respuesta, sera en html tiene que ponerse el encabezado de este.
Aquí esta pidiendo acceso y toma la lectura de la solicitud que se envió y se guardo en la variable "nombre" e imprimirá el nombre del "usuario".
Aquí tomara lo que se halla mandado en la variable contraseña que esta sera la clave que introdujo el usuario, para esto, leerá un archivo que se llamara "usuario".txt, leerá su contenido, este es gracias al comando split que lee hasta el ";", que el contenido sera la clave, si esta es la clave, imprime la contra es correcta.
De lo contrario mostrara error,

Así de fácil, es crear un cgi, solo es cuestión que te pongas a practicar y listo.

domingo, 21 de noviembre de 2010

Puertos de Red

Esta es una interfaz que sirve a los dispositivos para comunicarse con un programa atraves de la red, los puerto general mente, los vemos enumerados.

Como funciona esto?
Como se menciono, los puertos, están enumerados estos, utilizan un protocolo, el cual sirve para decir el destino del paquete o a cual recibirá.
Esto, se puede hacer en simultaneas ocaciones, un ejemplo, fue como en la entrada, en la cual queríamos escuchar los puertos que teníamos abiertos.
Los puertos se indican mediante una palabra de 16 bits, así que existiran 65535 puertos disponibles, nosotros podemos usar cualquiera de estos para algo en especifico, por ejemplo si queremos transmitir datos importantes en el servidor, pero nosotros queremos decirle en cual puerto, para que no sea fácil al intruso o a la persona que esta escuchando del lugar donde sale la información.

Aqui les dejo un listado de los puertos mas comunes
Pero si nosotros queremos ver los puertos, que tenemos basta, con abrir la terminar y teclear lo siguiente:
sudo gedit /etc/services que es el lugar donde estan localizados los puertos.
Te abrirá una ventana como la anterior y te dará el nombre de los puertos, por ejemplo el 22/tcp que tengo yo como para transferencia de ssh, entre otras.
Ya solo es cuestión de que explores los puertos para que sepas para que sirve cada uno.

Resumen
Si no entendiste del todo bien, imaginate esto, quieres mandar un paquete a Alemania, y tu eres de algún otro lugar del mundo, lo que haces es vas a la mensajería o alguno que te brinde el servicio, ellos lo que hacen es que clasifican hacia los lugares, por ejemplo el paquete de Alemania no puede ir con el de Corea, ya que no van al mismo destino, así que se va a su lugar especifico para el envió, ya al momento de llegar, este se clasifica también, del lugar de donde vino, este seria un simple ejemplo de como funciona.

Escuchar paquetes en transferencia

Ahora como ya vimos una breve introducción de lo que son los puertos y su funcionamiento. Aprenderemos a oír los paquetes que se envían. A esta accion es comun mente conocido como sniffer.

Para que nos puede servir oírlos?
Esto nos puede servir para escuchar el trafico que pasa atraves de nuestra computadora, ya que toda la red esta conectada entre si, ya que para llegar a su destino tiene que pasar por otros sitios, antes de lograr su objetivo.
Un ejemplo en la vida real de esto, seria cuando salimos de nuestra casa para llegar a cierto lugar, pasamos por calles, estamos a la vista de todos, hasta llegar a nuestro destino.

Para esto existen herramientas que podemos emplear para escucharlas, como:
  • WireShark
Esta herramienta, vamos a emplear para escuchar paquetes en transferencia.

Instalación y funcinamiento:
Abrimos terminal y ponemos el siguiente código:
sudo apt-get install wireshark
te pedirá clave y que confirmes la instalación, esperas un momento y listo ya tienes instalado wireshark.
Ahora escribimos nuevamente en la terminal:
sudo wireshark
ya que tiene que entrar como root porque necesita algunos permisos
Y nos abrirá la siguiente ventana:
Enseguida, nos vamos donde dice Interface List y escogemos wlan0 (en mi caso escogí esta, que es la inalámbrica, tu has lo dependiendo si estas conectado por cable o por red)
De ahí te abrirá una venta en la cual estará oyendo los paquetes que se van transfiriendo.
Nos esperamos un rato y lo detenemos, en la parte superior hay un botón que tiene una tachita, le damos click y se detendrá.
Dejara de escuchar y podrás ver la información, por ejemplo de donde es el lugar que salen y cual es su destino.

Si le damos click a una de ellas nos desplegara toda su información especifica, que es a donde va que puerto emplea, protocolo, entre otrosTambién lo que se puede hacer es que le des 2do botón y le des Follos TCP Stream y te enseñara la información que se esta enviando.
Si tratamos de leerla, no podremos, ya que muchas veces esta viene encriptada, así que no vera, mas que alguna que otra linea.

Ya es tu opción como la quieras manejar, yo te aconsejo que la uses para saber la seguridad de tu red, usarla para resolver problemas en esta, examines problemas de seguridad, entre otras.
Si tienes alguna pregunta, haz un comentario y yo con gusto te responderé, suerte y saludos.

Boot.kernel

En la entrada anterior habíamos hablado algo acerca de la nube, así que ahora pondré un ejemplo de este que sera. Arrancar un sistema operativo en internet.

Claro que se te hará algo raro esto, ya que lo mas probable sera no haberla escuchado o visto.
Para esto utilizaremos el boot.kernel


Empezando
Primero que anda hay que ir a la pagina si quieres le das una leída para ver que onda con esto.
La forma en que haremos esto, serán dos: por medio de usb o un cd.

Requisitos:

Los requisitos, son mínimos, seria tener una computadora, un cd o memoria usb para hacer el booteable, y una buena colección a internet, ya que arrancaremos desde ella.

Pasos:
Los pasos son bien sencillos para hacerlo en un Cd, ya que te descargas la imagen y la quemas en un cd, no pesa nada solo si acaso unos 500K.

Para hacerlo en una usb, es un poco diferente, ya que te descargas la que dice USB image. Se descargara un gpxe.usb.
De aquí metemos la memoria a usar, se formatea, te vas al escritorio/2do boton/formatear y listo.
de ahí te vas a la terminal y escribes
mount
para que te diga la información de esta ya que la necesitaremos.
Por ejemplo, la mia es /dev/sdb/ que es como identifica la memoria.
Desmontamos la memoria dándole 2do botón expulsar de manera segura.
De ahi nos vamos a la terminal y escribimos
sudo dd if=~/lugar donde lo descargado/gpxe.dsk of=/dev/sbd

Retiramos la memoria.
Apagamos la computadora y metemos de nuevo la memoria, la prendemos y este arrancará con la memoria.
Aparecerá una pantalla con lo siguiente:

Ya después escogemos con que sistema operativo queremos iniciar, la opciones son las siguientes:
  • Debian
  • Ubuntu
  • Damm Small Linux
  • Knopixx
  • Fedora
Aquí nos da la opción de escoger la versión del OS y le damos arrancar, hay que tomar en cuenta, que sera algo tardado iniciar, ya que dependerán de la conexión de internet que se tenga.
por ejemplo con ubuntu, a mi me tardo unos 25 a 30 minutos arrancar, habrá otros que tarde mas o tarde menos.

Por lo pronto, sera todo, no olviden comentar. y si tienen dudas, pregunten.

La Nube

En esta publicación, hablare hacerca de algo que me esta llamando mucho la atención y creo suponer, que también a muchos de ustedes, ya que es lo que se viene en camino y lo estamos viendo muy seguido, que es el caso de "Cloud Computing".
Hagamos esto muy sencillo.

Donde nos pasamos la mayor parte de nosotros cuando prendemos una computadora?
Hace tiempo, realice una encuesta a amigos y familiares haciéndoles esta pregunta, la respuesta como muchos de ustedes hubieran respondido seria: facebook, youtube, twitter, etc y otros me respondieron: para hacer presentaciones o trabajos, noticias, entre otras.
La encuesta se la hice a 27 personas el cual 22 de ellas fueron las primeras y el resto la segunda.
A que quiero llegar a esto? En un inicio, la computadora, fue hecha para poder realizar cálculos matemáticos, fue evolucionando como todo, y ahora, la mayoría de nosotros la usamos para estar en un entorno que sea hacia el internet.
A que quiero llegar con todo esto? Esta seria la aproximación a la respuesta de que es "la nube".
Pero en si esto, viene siendo un paradigma de la programación que ofrece servicios de computación, por medio de la internet.

En mi punto de vista personal y en varios medios dicen que este es el futuro y lo que viene y claro lo estamos viviendo, como anterior mente comente.

Algunos servicios o lugares que vemos hacerca de esto son:
facebook
youtube
twitter
dropbox (servicio de cuenta en la nube que nos sirve para guardar cosas y abrirlas de cualquier otro lugar, sin necesidad de disco duro, usb o alguna memoria externa, mas que internet)
android (el nuevo SO que sacara google para equipos de computo)
entre otros.

Comando Nmap

Ahora veamos un comando que es algo entretenido y que nos ayudara a conocer información de puertos y personas que estén conectados al router ó módem.

Que es Nmap?
Nmap es un programa de código libre, el cual nos sirve para: descubrimiento de servidores, servicios que se estén ejecutando, la identificación y rastreo de puertos en una computadora, sacar información de la computadora que estamos explorando (debo de señalar que no estoy haciendo esto con fines de lucro, sino por diversión) y que también este nos ayudara a obtener información acerca del hardware del sistema que estamos explorando.

Como lo instalo y lo utilizo?
Para poder usarlo primero hay que instalarlo, así que abrimos la terminal y escribimos el siguiente código:
sudo apt-get install Nmap
Ya después le damos que si o yes para su instalación, esperamos un momento y listo, ya se instalo, hay que recordar que todo esto es por medio de comandos, para que no esperes ver un botón bonito que diga siguiente o algo por el estilo, hay que acostumbrarse a ver la terminal.

Aquí empieza lo divertido, así que abrimos la terminal o en la terminal que tenias abierta y pones:
nmap -?
Esto lo que hace es decirte todos los comandos útiles que podemos emplear, te sugiero que le des una rápida leída para que te des una idea de lo que usa.

Ahora lo que haremos sera escribir:
nmap -sP 192.168.0.*
Este comando sirve para que busque ip's que hayan en el rango de 192.168.0.*buscar
y nos desplegara lo siguiente.

Lo cual nos esta diciendo que encontró 2 hosts, cual es su ip privada, el tiempo que demoro encontrarla y la distancia en la que se encuentra, claro en términos de frecuencia.
El primero por lógica sabemos que es el de router o modem y el segundo que es el mio, esto también nos ayuda, por ejemplo para saber quienes están conectados en nuestra red, y si hubiera una tercera, podemos también obtener la información de esta, mas adelante explico esto.

Ahora el siguiente comando que haremos sera el de obtener información de alguna de estas ip's privadas, para esto escribamos el siguiente código y escogemos cualquier ip que queramos (apartir de aquí utilizaremos sudo, ya que necesita algunos permisos especiales para acceder):
sudo nmap -O 192.168.0.3

Lo que nos desplegó fue acerca de la información que hay en esa ip por ejemplo indica cuales son los puertos que tengo abiertos, que sistema operativo estoy empleando y que distribución y el tiempo que demoro hacerlo, si tu le das a la ip del modem te desplegara igualmente los datos, o al igual que si lo haces a la ip de otra que aparesca.
Pero si quieres sacar mas información pon:
sudo nmap -A 192.168.0.3
Hace lo mismo que las anteriores la diferencia es que te la da mas detallada, al igual si pones -i, -m, entre otros, es aquí donde tu empezaras a explorar, hacerca de esto.

Como veras, esto es sencillo, pero te preguntaras para que uso esto, la verdad con esto te esta dando mucha información acerca de las ip's disponibles, puedes sacar sus puertos que tiene abierto y así hacerle un ataque, mas adelante pondré una publicación de la información que no esta encriptada.

Dato curioso
En la película de Matrix, para ser específicos en la segunda, Serenety, hace uso de este comando, para penetrar en la red eléctrica

Tor


Ahora hablemos sobre Tor, Tor no es el dios vikingo del trueno, es todo lo contrario, aunque nos podría ayudar a acercarnos a ser un dios ya que sera difícil encontrarnos.

Que es Tor?
Pero para empezar deja te digo que es, Tor es una herramienta de implementación libre llamado onion routing, de ahí es su nombre. Esto lo que hace es comunicar a usuarios a internet de manera anónima (para eso necesitabamos saber lo que es una ip y para que sirve).
Tor es usualmente combinado con Privoxy, para poder acceder de manera anónima, ya que este es un proxy HTTP, el cual esta hecho para proteger la privacidad en la negación.
El principal objetivo de Tor es que no puedan rastrear la información que se envía, ya que cifra la información desde su salida hasta la llegada.

Porque hace esto? Bueno hace esto, ya que la información antes de llegar a nosotros o mandarlos a otras personas pasan pasan por otras partes que pueden ser escuchadas por otras personas, mas adelante en otra publicación hablare de como escuchar paquetes que están en transferencia y que pasan por nosotros.

Hay muchas personas y organizaciones que usan Tor, entre las cuales se encuentran, organizaciones pivadas, organizaciones de seguridad, hackers, usuarios como nosotros, entre otros.

Como instalarlo?

Para instalar Tor es algo muy fácil, lo que tenemos que hacer es abrir la terminal y escribir lo siguiente (tomar en cuenta que también se instalara Privoxy, ya que lo necesitamos):
apt-get update && apt get install -y tor Aquí indicamos que instalaremos Tor y Privoxy
gedit /etc/privoxyconfig Ya una ves instalado, abrimos el archivo de configuración de Privoxy
forward-socks4a / 127.0.0.1:9050 .Después escribimos este código para indicar que actuaremos en el puesto 9050 y ya podremos usar Tor y navegar anónimamente.

De aquí también podemos descargar un plugin para Firefox.
Y ya, para ejecutarlo, basta que en la terminal pongas Tor, y se empezara a ejecutar claro, te recomiendo que escribas help para que te indique que caracteres usar para su configuración.

Ya si quieres, tener algo mas organizado, como una ventana, instala Vidalia, que es un gestor.
Aquí te dejo una captura de como es:

Únicamente le das en iniciar Tor y a disfrutar en anonimato, así que si te daba un poco de miedo la idea que supieran toda tu información con esto se soluciona y claro no hay que hacerlo con malos lucros, aunque una que otra broma no estaría mal, ya que no sabrán quienes somos, por lo pronto los dejo.
No se les olvide comentar y dar sugerencias, lo mismo si tienen preguntas acerca de esto, ya que fue un tema que me intereso mucho así que te puedo dar mas tips.