miércoles, 28 de marzo de 2012

Llave publica y privada? firma digital no es una imagen!!!

Bienvenidos una vez más mis apreciados lectores!!!

En esta ocasión le traigo un tutorial de GnuPG la verdad me motivo el hecho que hace un tiempo atrás cuando alguien me pidió una firma digital de un documento y al enviar y re-enviar el documento con su respectiva firma una y otra vez la persona en cuestión insistía en que el documento no estaba firmado, solo puedo decirles que al final esta persona quería una imagen de mi firma personal sobre la línea de firma al final del documento…

…adicional a esto hace poco realice un trabajo para la U sobre esta herramienta y de paso genere el contenido que a continuación les presento, el cual sé que les va a ser de gran utilidad
En esta ocasión todo lo hare con una herramienta basada en entornos Windows (es gratuita) lo bueno de GPG es que existen versiones de este para los diversos sistemas operativos de modo que todos podemos realizar este proceso, no siendo más manos a la obra

Primero vamos al sitio de la herramienta y después de descargarla realizamos el proceso de instalación que como cosa rara es next next next

 
Una vez tenemos nuestro software instalado podemos verificar que este nos instala diversas herramientas, en este caso iniciamos por la que nos permite realizar la gestión de nuestro llavero kleopatra


¿llavero?, si mis lectores para el uso de GPG en vista que se basa en la criptografía asimétrica, es necesario el uso de las llaves de las cuales existen dos tipos llaves públicas y privadas, una explicación breve del uso de estas que le hago de manera rápida seria:

Publica: es la llave con la que verifican tú firma en documentos y con la que cifran la información que te van a enviar

Privada: es la llave con la que firmas los documentos y descifras lo que te envían

Como en este punto no se poseen las llaves respectivas simplemente vamos a generarlas haciendo uso de kleopatra de modo que vamos al menu y seleccionamos..


escogemos el tipo de certificado, en este caso el par de llaves PGP


Al final recuerden crear un backup de sus llaves!!!


En este punto ya tienes tu par de llaves generado y lo único que resta es distribuir tu llave publica, lo cual puedes realizarlo enviado la misma por mail o alojándola en algún servidor de llaves como keys.gnupg.net  la mía además de este, también está en este server keyserver.pgp.com  (Este proceso no lo explico pues es bastante largo pero a la vez obvio, al punto que si tienen un correo electrónico y/o facebook les aseguro que podrán realizar este  proceso)

Si queremos importar la llave publica de algún amigo simplemente la buscamos en el servidor…


…o si nos ha sido enviada la misma copiamos el texto de la misma en un archivo.txt y lo importamos con kleopatra


Una vez tenemos lo necesario podemos usar a kleopatra para cifrar, verificar, firmar y descifrar, sin embargo les muestro el proceso más simplificado con la integración que tiene este software con el explorador de Windows

Primero vamos a firmar un archivo de texto:

De modo que en el explorador damos click derecho sobre el mismo y vamos al menú de nuestro software donde elegimos firmar


Una vez hecho esto se nos presenta esta interface en la cual nos dan opciones adicionales, en la cual  elegimos una vez mas solo firmar


En seguida nos pregunta con que vamos a firmar (ahora por comodidad simplemente vamos a hacer las cosas por defecto)


hecho esto nos pide la contraseña de desbloqueo de nuestra clave y por ultimo tenemos la confirmación del final de las tareas


como se puede ver se genera un archivo .sig el cual debemos enviar con el documento cifrado ya que el archivo original queda intacto y la firma como tal se almacena en el .sig

Para el proceso de cifrado realizamos lo siguiente:

De nuevo desde el explorador con click derecho vamos al menú del software y en este caso seleccionamos cifrar


en este punto se nos presentan las mismas opciones que en el proceso de firmado solo que seleccionada la de cifrado,


hecho esto se presentan las llaves que tenemos en nuestro llavero


en este punto debido a que se va cifrar debemos seleccionar la llave publica de la persona a la que le vamos a enviar la información cifrada, ya que es con esa llave con la que se cifra, en el caso que queramos cifrar y firmar adicionamos nuestra llave


una vez seleccionado simplemente se nos presenta la confirmación del proceso,


vale la pena aclarar que en este caso solo enviamos al destinatario el archivo cifrado, cuya extensión es .gpg


El descifrado y la verificación es similar de modo que para no aburrirlos les presento el proceso de descifrado:

Seleccionamos el archivo en cuestión y con click derecho vamos a descifrar


en este punto, en caso de tenerlos nos solicita los archivos de firmas


los caules una vez seleccionados presionamos descifrar/verificar y nos pide la contraseña, una vez terminado tenemos la confirmación (la nota de validez de la firma si se esta verificando)...

 
...y el archivo original!!!


¿Fácil o no?, la cuestión es: si estamos en una era tecnológica donde las comunicaciones son un componente fundamental ¿será que debemos seguir comunicándonos de manera insegura?,

Yo los invito a que se animen y aunque tome un tiempito de mas nos comuniquemos de una forma más segura y por qué no se anime e inicien con esto en el mundo de la criptografía!!!

hasta una proxima entrada!!!


Carlos Andres Rodallega Obando
@crodallega

PD: Saludos a mi compa Dario Gomez y a d7n0 que me roto una info para hacerles el otro post de pgp pero with nails!!!

martes, 20 de marzo de 2012

Inversiones en nuevas tecnologías, pero a la vez sin darse cuenta incrementando su inseguridad!!!

Bienvenidos a esta nueva entrada mis tan apreciados lectores...

Hace unos días por casualidad tenía una reunión en una de las tantas sedes de una entidad muy reconocida y me encontré que habían instalado un dispositivo para consulta de información, por curiosear me acerque y en efecto se podía visualizar el navegador web con la pagina en cuestión destinada para ello, en este caso más que por la aplicación me incline por visualizar el dispositivo como tal, el cual solo tenía la conexión física de corriente mas no una de datos, de inmediato pensé en las posibles fuentes de la información a consultar las cuales serian una base de datos local o remota así como una aplicación desplegada en el equipo en cuestión o no, sin embargo el mismo navegador en la URL con aquella IP privada me dio la respuesta, una vez en ese punto si había algo claro era que este debía tener algún tipo de conexión inalámbrica ya fuese wifi, gsm en fin...

...para verificar esto dirigí el cursor a la parte inferior de la pantalla y oh! sorpresa apareció la barra de menú de aquel win7 (le habían activado la opción ocultar) en la cual pude por el icono verificar que se trataba de una conexión wifi, la cual al tratar de ver las propiedades se obtuvo!!!


Ahí les presento la única imagen que saque como evidencia ya que no quería ser tan evidente y mucho menos ganarme un problema con la entidad y el vigi que estaba a unos pocos metros...



...pero bueno sin salirnos del caso en este punto ya tenía la clave de acceso a la wifi y al menú de inicio de modo que ya podía navegar por los diferentes directorios así como ejecutar cosas por ejemplo en este caso probé con el blog de notas. 

La verdad hasta este punto llegue debido a que no tenía la autorización y como lo dije antes mucho menos quería problemas. 

Analizando a partir de este punto las condiciones actuales tenemos que:
Con lo anterior solo quedaba hacer algo al estilo de lo que hicimos usando metasploit en el artículo del café internet, cosa que como todos vimos era solo conectarnos a la wifi transferir y ejecutar un archivo X para comprometer el equipo en cuestión, ahora con el acceso a la red wifi ya se puede pensar en realizar un escaneo en búsqueda de equipos en la red y desde este punto lanzar un ataque desde y/o hacia la red interna (eso si esto depende de la arquitectura de la red a la que accederíamos).

El resto ya es imaginación de cada uno de ustedes, aquí la cuestión es ¿porque se hacen o se instalan este tipo de cosas sin antes realizar un estudio previo? o en otro caso estudiar la posibilidad de contratar, designar personal o en un punto llamar algún asesor outsoursing que les pueda evitarse más de un dolor de cabeza

Quizá muchos dirán que soy un poco paranoico, pero prefiero serlo a tomar el enfoque negligente   que dice "Eso que me va pasar a mí" (me acorde de wizard :P)

Espero que este artículo haya sido de su agrado y hasta una próxima entrada!!!


Saludos a todos

Carlos Andrés Rodallega Obando
@crodallega

martes, 13 de marzo de 2012

Taller ARP-Spoofing

Bienvenidos mi apreciados lectores...

...en esta ocasión por motivos de tiempo no logre terminar la publicacion que tenia pensado, pero la intencion es generarles algo de contenido para que se motiven y puedan pasar un buen rato y/o porque no entretenerse un buen rato aquí en mi blog, que mas que mio es de todos ustedes!!!

De modo que en esta oportunidad les dejo el taller que realicé en el  CAMPUS PARTY COLOMBIA  en el 2010, así que a montar las maquinas virtuales y a jugar!!!

Pero antes(por recomendación de los que ya lo miraron) miren los slides de introducción



Ahora si no siendo mas el taller!!!
Taller
View more documents from campus party

Espero que este taller haya sido de su agrado...
...y hasta una proxima entrada!!!

Carlos Andrés Rodallega Obando
@crodallega
Roguer Comunidad DragonJAR

viernes, 2 de marzo de 2012

Kioptrix 4 solucionario

Bienvenidos una vez más!!!
Con el fin de aportar una vez mas en el proyecto sec-track, realizó la publicación de este solucionario (se los debía), el cual es el ultimo de esta serie, no siendo mas manos al teclado y hagámosle

Iniciamos realizando el típico barrido de pings


Y una vez identificada realizamos el escaneo de puertos a la maquina objetivo


Con esto ya tenemos los servicios que presta nuestro objetivo, en donde tenemos
SSH
http Apache (web)
Samba (Servidor de archivos compartidos)

Con estos servicios podríamos orientar nuestro ataque por SSH usando fuerza bruta, sin embargo quiero en este punto hacer referencia a la fase de recolección de información,  debido que estos tipos de ataque pueden llegar a ser más efectivos cuando se ha logrado obtener información de posibles usuarios del sistema así como información personal de los mismos (eh aquí una vez más la referencia a la tan mencionada ingeniería social), de la misma forma una gran sección de la páginas web que nos puede brindar información de este tipo es la tan conocida sección de ¿Quiénes somos? o Contáctenos así como también es posible llegar a realizar una enumeración de usuarios apoyándonos sobre vulnerabilidades de otros servicios pero este no es el caso (uy ya me extendí )

En este punto iniciamos una vez más probando las vulnerabilidades que puede presentar la página o aplicación web en cuestión, de modo una vez más corremos nuestro escáner de vulnerabilidades web nikto (como pueden ver me toco de nuevo hacer un barrido de pings ya que la VM objetivo se reinicio y tomo otra IP)


Como podemos ver en este punto tenemos varias salidas interesantes debido a que el apache esta desactualizado, así como la posible indexación de directorios.
Sin embargo y con el fin de obtener más información realizamos la enumeración de archivos y directorios del servidor haciendo uso del tan útil dirbuster


El cual nos aporta información interesante como la de la existencia de los directorios  John y Robert (poco a poco vamos recolectando información) los cuales en este punto pasan a ser usuarios potenciales!!!
Sin más ni menos y con el fin de ver en la parte web a que nos enfrentamos vamos a  una de las herramientas de juaking que todos usamos, “el navegador web “ al punto que la página de inicio nos presenta una interface de inicio de sesión




Sobre la cual probamos iniciar sesión  con el nombre de usuario de uno de los usuarios potenciales antes identificados (nombre de usuario = john y password = john), sin embargo el resultado no es tan agradable como lo esperábamos!!!


Aunque sería el colmo, sin embargo aunque no lo crean aun se ven este tipo de casos, sino me creen preguntenle a wizard de su usuario webadmin (los que han leído las publicaciones anteriores sabrán!!!)

En este punto con este posible nombre de usuario y con el primer intento fallido, no queda de otra más que intentar realizar un típico bypass usando SQL-Injection de modo que usamos en este caso Username = John y en el campo de password simplemente ‘‘OR’’=’’ (ojo con las comillas pueden provocar errores de sintaxis!!!)


Como podemos ver en este punto nuestro ataque funciona, de modo que hasta aquí obtenemos más información de este usuario y por ende de nuestro objetivo (y valla que información)


De modo que hacemos lo mismo con el otro usuario potencial y llegamos al mismo punto, probamos con una cuenta casi al azar y …


En efecto como no existe saca error (un apunte, esta página de notificaciones permite hacer XSS),  con la información obtenida, solo nos queda realizar nuestro intento de conexión usando el servicio de SSH



El cual se realiza de forma exitosa, sin embargo…



…nos encontramos que esta no es una típica Shell, en este caso tenemos una Shell limitada la cual solo nos permite ejecutar algunos comandos.  La verdad esto me puso a pensar un rato ya que hasta ahora no me había enfrentado a esta situación, de modo que buscando en la web encontré un muy buen articulo de elevación de privilegios en donde hacía referencia a una Shell enjaulada, cuya forma de salto fue efectiva en este caso (no doy referencias del sitio como tenía pensado ya que mi buen amigo d7n0 me hizo caer en cuenta que era un copy-paste de otro blog)


En este punto podemos preguntar al sistema como quien estamos logueados, información del usuario, información del sistema, información de usuarios del mismo, y porque no intentar usar sudo



Pero desafortunadamente no hacemos parte de los sudoers, de modo que no queda más que intentar escalar privilegios con algún exploit local para esto,  buscando con base en la información del kernel obtenida previamente seleccionamos el exploit 5093.c (de la base de datos de exploit-db) y lo copiamos al directorio de publicación del apache



Pero en esta ocasión la descarga con wget uich no funciono!!!


 De modo que (algo muy práctico que le aprendí a d7n0) tal y como se ve en la imagen anterior tratamos de listar las reglas de iptables configuradas, pero no tenemos permisos

Así que buscamos con locate la ubicación del archivo en el cual se almacenan estas e intentamos leerlo


Como podemos ver el tráfico saliente hacia el puerto 80 así como otros más está bloqueado, de modo que debemos usar otra estrategia para la transferencia del mismo.
Aquí les comento que una vez transferí este exploit, me di cuenta que en la maquina objetivo no se podía compilar de modo que tocaba pasarle un exploit ya compilado, para no complicarme use un exploit que ya he usado en otros entornos (por eso ya lo tengo compilado, sin embargo pueden ver el archivo run para ver los comandos para esto), tratando de recrear el escenario tenemos la búsqueda del mismo en la base de datos de exploit-db (estos dos últimos me han dado la mano varias veces, se los recomiendo!!)


y la descarga sobre la maquina atacante



Una vez tenemos el exploit compilado lo transferimos el mismo usando la navaja suiza nc poniendo en la maquina atacante un puerto no bloqueado a la escucha


Y desde el objetivo nos conectamos al mismo y una vez termina la transferencia (esto es lo que tu instinto te diga) cortamos la comunicación y tenemos el archivo en la maquina objetivo.


Hecho esto simplemente lo ejecutamos verificamos quien somos y damos por terminado el reto verificando el archivo del directorio de root congrats.txt

No siendo más mis apreciados lectores espero y esta publicación haya sido de su agrado, hasta una próxima entrada

Carlos Andrés Rodallega Obando
@crodallega
Roguer Comunidad DragonJAR


PD: nc o netcat fue la primera herramienta de seguridad que use...
...gracias Siler Amador Donado (relis.inc) por orientarme en este campo!!!