martes, 19 de noviembre de 2013

Posted by darksystem79 |
CONCEPTO GENERALES

Es  una  situación  en la que un sistema se bloquea a causa de que varios procesos tienen recursos asignados para su terminación pero se quedan en espera a que otros procesos liberen recursos necesarios para completar el proceso.



CONDICIONES PARA UN DEADLOCK

Exclucion mutua: Los recursos compartidos se usan mutuamente exclusiva

Hold and wait: Cada proceso mantiene el control de un recurso mientras espera por otro

No preemption: los recursos dados por el sistema a un proceso puede ser liberado al sistema únicamente si el proceso asi lo desea.

Espera ciclica : los procesos bloqueados estan en una cadena circular ya que cada proceso mantiene un recurso mientras espera otro.

MANEJO DE INTERBLOQUEOS

Para prevenir el interbloqueo se pueden seguir las siguientes estrategias :

  • Hacer qué cada proceso adquiera por anticipación los recursos qué vaya a utilizar
  • Reitetar el uso de un recurso al conceder una nueva solicirud. Es decir que el sistema advierta al proceso solicitante que el recurso ya esta siendo  utilizado por oteo proceso.


Evitacion de deadlock:

Para evitar el interbloqueo el sistema no debe otoro recuesos a un nuevo proceso si no esta seguro de que los procesos actuales en estado de ejecución terminaran.



lunes, 18 de noviembre de 2013

Posted by darksystem79 |
DEFINICIÓN

Esteganografía (del griego steganos=encubierto, oculto y graphos=escritura nace el término esteganografía ) es la técnica de ocultar archivos de texto dentro de un medio multimedia (audio, imagen), sirve para ocultar archivos importantes y/o privados alejándolos de miradas indiscretas. Esto se hace ocultando el archivo en cuestión en otro para pasar inadvertido para otros usuarios. La esteganografía trata de esconder un mensaje dentro de otro mensaje, de forma que el segundo mensaje pueda estar a la vista de todos, y sólo el receptor, procesándolo de alguna forma especial, pueda recuperar el mensaje codificado. Por un lado ocultamos la existencia del mensaje y por otro, en caso de ser descubiertos, el cifrado complicará su lectura en función del algoritmo empleado y la mayor o menor complejidad de la clave utilizada. La esteganografía es razonablemente segura para intercambiar información en la red, o para almacenar datos en la nube.


PRACTICA

Para la práctica utilizamos ImageHide 2004, pero existen otros en los cuales se puede ocultar informacion u otros archivos como:

OpenPuff: Permite usar varios archivos portadores simultáneamente, aumentando la seguridad. Puedes usar también archivos de música (mp3) o videos para esconder los archivos secretos. 

File Camouflage: Agrega un pequeño menú en Windows Explorer para cifrar o descifrar archivos escondidos en la imagen. Trabaja más rápido.

QuickCrypto: Otro programa de estenografía, sumamente sencillo de usar aunque no tiene todas las medidas de seguridad de otros programas.

MP3Stego: Esconde los archivos en un mp3

PicCrypt: Un pequeño y sencillo programa de estenografía para las Mac

Xiao Steganography: Otro programa de estenografía desarrollado por una compañía venezolana

ejecutamos el programar y elegimos la imagen en la cual esconderemos nuestro mensaje:



Luego de cargar la imagen escribimos el mensaje:



Luego ponemos contraseña y escrbimos los datos en la imagen:


Para poder ver el mensaje basta con cargar la imagen desde el programa y dar la opción DeCrypt







domingo, 17 de noviembre de 2013

Posted by darksystem79 |
El taller de los filósofos básicamente se hace para explicar el tema de semáforos e hilos.

El problema de los filósofos comensales es un problema clásico de las ciencias de computación propuesto por Edsger Dijkstra en 1965 para representar el problema de la sincronizacion de procesos en un sistema operativo.

El ejercicio dice que hay cinco filósofos sentados alrededor de una mesa que pasan su vida cenando y pensando. Cada uno dispone de un plato de arroz y un palillo a la izquierda de su plato, pero para comer son necesarios dos palillos y cada filosofo solo puede coger el que esta a su izquierda o el que hay a su derecha. Con un solo palillo en la mano no tienen mas remedio que esperar hasta que atrapen otro y puedan seguir comiendo.

Si dos filósofos adyacentes intentan tomar el mismo palillo a la vez se produce una condición de carrera: ambos compiten por lo mismo pero uno se queda sin comer.

Si todos los filósofos cogen el palillo de su derecha al mismo tiempo, todos quedaran esperando eternamente porque alguien debe liberar el palillo que les falta, cosa que nadie hará porque todos se encuentran en la misma situación (esperando que alguno deje su palillo). Llegado esto, los filósofos se morirán de hambre.

El algoritmo que planteamos para darle solución a este problemas es:

1. Los filósofos empiezan en el estado Pensando.
2. Después le damos un nombre a cada filosofo.
3. Validamos si el filosofo i tiene hambre y si los filósofos de los costados no están comiendo. Si esto se cumple el filosofo i comienza a comer. Esto lo validamos con un for.
4.Luego cambiamos el estado del filosofo a Hambre y verificamos que si no pasa a Comer, tiene que esperar su turno.
5.Luego que el filosofo haya terminado de Comer, pasa a estado Pensando y luego validamos si los filósofos de los costados tienen Hambre.

La simulación seria así:

Filósofos Pensando

El filosofo 2 pasa a estado de hambre, y como los filósofos de los costados no están comiendo empieza a Comer.


El filosofo 1 pasa a estado de Hambre y como el filosofo 2 esta comiendo se queda en estado de espera.

El filosofo 4 pasa a estado de Hambre y como los filósofos de los costados no están comiendo empieza a Comer.

Cuando el filosofo 2 termina de comer pasa a estado pensar, y activa al filosofo 1 que estaba en espera y empieza a comer.

El filosofo 5 pasa a estado de hambre y como los filósofos 1 y  4 están comiendo se queda en espera.

El filosofo 3 pasa a estado de hambre y como el filosofo 4 esta comiendo se queda en espera.

Cuando el filosofo 4 termina de comer pasa a estado pensar y activa el filosofo 3 que estaba en espera y empieza a comer.


Cuando el filosofo 1 termina de comer pasa a estado pensar y activa a filosofo 5 que estaba en espera y este empieza a comer.


Cuando el filosofo 3 termina de comer pasa a pensar.

Cuando el filosofo 5 termina de comer pasa a pensar.

Cuando los cinco filósofos terminan de comer, finaliza la ejecución del proceso.

Así demostramos que todos los filósofos comieron y se cumplió la regla establecida que todos no podían comer al mismo tiempo.

Posted by darksystem79 |
SCANNING

El término escáner de puertos o escaneo de puertos se emplea para designar la acción de analizar por medio de un programa el estado de los puertos de una máquina conectada a una red de comunicaciones. Detecta si un puerto está abierto, cerrado, o protegido por un cortafuegos.
Se utiliza para detectar qué servicios comunes está ofreciendo la máquina y posibles vulnerabilidades de seguridad según los puertos abiertos. También puede llegar a detectar el sistema operativo que está ejecutando la máquina según los puertos que tiene abiertos. Es usado por administradores de sistemas para analizar posibles problemas de seguridad, pero también es utilizado por usuarios malintencionados que intentan comprometer la seguridad de la máquina o la red.

La primera herramienta que vamos a utilizar va hacer:

Angry IP

La herramienta Angry IP Scanner no solo permite escanear puertos abiertos del sistema objetivo sino que además permite conectar a los recursos compartidos disponibles en la máquina objetivo.

Procedimiento: Desde la herramienta será posible escanear una máquina objetivo, o varias máquinas, para luego seleccionar las opciones disponibles según los resultados obtenidos.

Ingresamos la IP de la máquina objetivo que en nuestro caso es 97.74.141.128, luego clic en el botón Start. Nos mostró la siguiente información:


Si queremos hacer un escaneo de puertos vamos a Tools - Preferences damos click y nos mostrara la siguiente ventana.


Damos click en la pestaña ports


Y en el recuadro anotamos los puertos que queremos analizar, para este ejemplo utilizamos los siguientes puertos: 21, 23, 25, 80, 8080, 1433, 2100, 1521, 1421, 5100, dimos click en Start y el resultado fue el siguiente:


Luego de utilizar la herramienta Angry IP, podemos darnos cuenta los puerto que el host tiene abierto y por los cuales podemos enviar un ataque.

SuperScan

La herramienta SuperScan puede descubrir los puertos y servicios del sistema objetivo. Ahora tenemos claro que este tipo de información es la que nos posibilitará poder llevar a cabo ataques más elaborados.

Procedimiento: Es muy similar al de Angry IP, ingresamos la IP a analizar y le damos Start. Nos muestra el siguiente informe.


Existen una gran cantidad de herramientas para hacer scanning pero todas cumplen el mismo objetivo analizar los puerto y encontrar los puertos que pueden ser atracados con facilidad.

En este taller hemos aprendido a que tenemos que proteger cada uno de nuestros puertos para evitar posibles ataques. 
__________________________________________________________

sábado, 16 de noviembre de 2013

Posted by darksystem79 |
Jamming o Flooding


Esta técnica  se orienta a los recursos del sistema atacado, saturandolo de tal forma que lo deja sin memoria ni espacio en discos duros.

Una técnica empleada de jamming se presenta en un dispositivo wireles, el cual envía tramas de datos con el fin de de interferir con las tramas legitimas, con esto se logra que que los dispositivos wireles como los receptores envíen a un mas tramas para poder ser capturadas por el dispositivo atacante.

Tipos de jamming:

Jamming por ruido:

Se modula una señal de jamming por una señal de ruido cualquiera la cualquiera la cual puede ocupar todo el ancho de banda empleado por la señal.

Jamming por tonos: 

En este caso se coloca uno o varios tonos sobre el ancho de banda en el cual se encuentra la señal que se quiere atacar. En este caso si es necesario estudiar la señal la cual se desea atacar pues el exito de este método depende del lugar en el espectro del ancho de banda en el cual se coloca el tono.


Jamming por pulsos:

Esta tecnica es similar a la de ruido pero en este caso no se tiene en cuenta el ancho de banda de la señal si no el tiempo que dure el dispositivo jammer encendido.

Jamming por Barrido: 

Consiste en introducir ruido en una pequeña parte del espectro de la banda ancha y una vez puesta alli, se realiza un barrido por todo el espectro.


Net flood (inundacion de red)

Este tipo de ataque no esta dirigido a una sola maquina, sino por el contrario a toda una red victima, la cual tiene gran efectividad puesto que la red victima no puede defenderse de este ataque.


la razón es que aunque la red trata de filtrar trafico por medio de dispositivos de control como Firewall, las lineas estarán saturadas de trafico malicioso, lo cual les impide cursar trafico útil.


podremos compara este tipo de ataque,con una linea telefónica  solo basta con realizar llamadas constantemente, para  así impedir que se utilice adecuadamente.

Syn Flood


Se tara de realizar un ataque tratando de establecer conexión mediante los protocolos TCP IP, a un host de la red a la cual se desea atacar, pero no se permite que esta conexión se realice por completo, con esto lo que se quiere lograra es que la computadora victima reserve una estructura de datos para estas falsas conexiones, logrando que rachase las conexiones verdaderas mierras se queda esperando las falsas medio abiertas.






LAND ATTACK

Este es un ataque dirigido a redes que consiste en la suplatacion en el direccionamiento IP, con el fin de explorar fallas en los protocolos TCP/IP, causando inestabilidad en los sitemas vulnerables.

Se debe crear un paquete SYN TCP, en la cual la informacion de IP y puerto del origen resulte ser la misma que la del destino, y que ademas se fija para que señale un puerto abierto de la maquina victima. Si resulta ser vulnerable a este ataque, la información recibida es enviada a la dirección de destino en un bucle infinito lo que causa que se consuman todos los recursos de CPU y la maquina colapse.

ATAQUES MODIFICACIÓN Y DAÑO

Tampering o Data Didding:

Este tipo de ataque hace referencia a la modificación no autorizada de los datos o el software en el sistema victima, es decir que a la victima se le podrán borrara los archivos alojados en las unidades de almacenamiento. Adicional mete el borrado de archivos puede llevar al daño total del sistema. 

Este tipo de ataque puede ser realizado por un atacante interno en la red o externo es decir que que un usuario sin privilegios de administrador puede haber obtenido algún usuario y contraseña de administradores y causar el daño en un equipo victima.

Como ejemplos podríamos citar que los alumnos de una institución  podrían realizar la modificación de las notas a su favor o de terceros, o empleados para eliminar o copiar información de bases de clientes con fines lucrativos.

En ocasiones los atacantes realizan la instalación de softwere, reemplazando las versiones legitimas del equipo victima con versiones que incluyen código malicioso como virus, troyanos.

Ataques por medio de Java Applets:

Los navegadores modernos emplean maquinas virtuales de java (MVJ), lo cual los hacen capases de ejecutar programas denominados Applets, estos son código de programación ejecutable, y por esta razón puede este código ser modificado no solo con fines de optimizarlo sino por el contrario con el fin de realizar daño al sistema victima.

Java se caracteriza por ser uno de los lenguajes mas seguros, tanto que sus aplicaciones pueden estar restringidas para acceder a ciertas zonas de la memoria física  o a realizar modificaciones a archivos a menos que el usuario lo solicite, por lo que esto hace muy difícil la tarea de lanzar ataques con este tipo de aplicaciones.

Ataques por medio de JavaScript :

Los Script son aplicaciones web, lo que hace que un equipo sea vulnerable mediante los diferentes navegadores que ejecutan esta clase de código.

Un equipo vulnerable, puede ser aquel que no cuente con restricciones al abrir alguna URL, y permita la ejecución del código el cual puede o no ser visto por el usuario.

Se pueden evitar mejorando la seguridad del navegador, los cuales en algunos casos advierten que el sitio web solicita la ejecución o instalación del softwere el cual puede contener código malintencionado.

Los códigos Script, si son ejecutados satisfactoriamente en el navegador del host victima, puede llegar a tener acceso a recursos del navegador como identificadores de inicio de sesión






Ataques por medio de ActiveX :

Esta es una tecnología de Microsoft® la cual permite descargar código de un sitio remoto. El problema de seguridad se soluciona mediante firmas digitales, expedidos en certificados, antes de ser ejecutado se le pregunta al usuario si la firma o certificado es confiable y de esta manera se permitirá la ejecución por medio del navegador.


El siguiente es un certificado de un sitio web:


Vulnerabilidad en navegadores :

Una de las fallas en los navegadores pueden ser "Buffer Overflow", que consiste en modificar la URL escrita por un usuario después de haberse guardado para posteriormente ser procesada.

Los protocolos usados tambien pueden ser HTTP, pero exiten otros menos conocidos propios de cada navegador como "res" o el "mk"  .

Para lanzar este tipo de ataque se debe tener conocimiento en el lenguaje Assembler y de la escritura interna de la memoria del S.O. utilizado:

Ejemplo

www.servidor.com/_vti_bin/..%c0%af../..%c0%af../..%c0%af../winnt/system32/cmd.exe?/c+dir+c:\   

devuelve el directorio de la unidad c del servidor desead.   


            Ingeniería Social    

Que es?:

Se trata de aprovechar la vulnerabilidad de los usuarios de sistemas informáticos  para obtener información sensible, y aprovecharse y sacar provecho de alguna manera de esta.

Por ejemplo un ataque de ingeniería social podría ser por medio del correo electrónico  de una victima, enviar masiva-mente correos Spam.

Objetivo de la ingeniería social:

Se tiene como principio en la Ingeniería social, que el usuario de cualquier sistema informático es el eslabón mas débil, por esto el objetivo es obtener por medio de engaños información sobre usuarios de estos sistemas para que el atacante pueda aprovecharse de esta y manipular el sistema atacado.

Tipos de ataques:

Los ataques de ingeniería social no solo pueden ser mediante la utilización de software  es decir que aunque se puede desarrollar aplicaciones para engañar a un usuario, para que este instale aplicaciones maliciosas para que el atacante pueda acceder al sistema victima, también los tipos de ataques pueden ser simplemente manipulado al usurario engañándolo para que que de esta forma se suministre la información que se desea de el sistema victima.

Dumpster diving:

Se refiere a la búsqueda de información valiosa en la basura, esto se refiere a la información que se da como eliminada pero que aun se puede recuperar y es valiosa o de vital importancia para una empresa o persona, por ejemplo, si una empresa no se asegura en destruir los DD de maquinas obsoletas  que fueron remplazadas, se puede recuperar dicha información mediante tenencia de ingeniería forense 



lunes, 11 de noviembre de 2013

Posted by darksystem79 |
La enumeración, es la actividad mediante la cual podemos obtener, recolectar y organizar la información de máquinas, redes, aplicaciones, servicios y/o otras tecnologías disponibles y ofrecidas por el o los objetivos.

Realmente no se considera un ataque, púes solo pretende recopilar de manera organizada información disponible mediante consultas, con el fin de elaborar verdaderos ataques, basados en los resultados obtenidos mediante la enumeración.

Las herramientas y técnicas de enumeración están basadas en su mayoría en escaneos simples a la máquina objetivo, o en simples peticiones o consultas.

Establecer sesiones nulas

Las sesiones nulas son utilizadas en máquinas haciendo uso de la comunicación entre procesos (Inter-Comunication Process -IPC$), para permitir la visualización de los recursos compartidos. Este tipo de conexiones es realizada sin utilizar usuario/contraseña. Por este motivo los atacantes podrían utilizar este tipo de conexiones para enumerar la información de los objetivos .

Desde la línea de comandos de Windows ejecutamos la siguiente sintaxis, net use \\97.74.141.128\IPC$ “” /u:”” y obtuvimos el siguiente resultado. Cabe resaltar que primero utilizamos nmap para obtener la IP con la que vamos a trabajar.




USER2SID

Descripción: Todas las cuentas de usuarios están identificadas con un SID (Identificador de Seguridad – Security Identifier). El identificador de seguridad de los usuarios en Windows es un valor fijo en la máquina y la función que realiza la herramienta USER2SID es enumerar el SID de un usuario determinado, sin importar que este usuario haya sido renombrado.

Procedimiento: Ejecutamos desde la línea de comandos la siguiente sintaxis.
user2sid \\ 97.74.141.128 Administrador o puede ser otro nombre de usuario

Los resultados de enumeración de SID para administrador son:
SID 5-21-2213796941-1208922877-1245299738
Dominio XOFTWARE_INC

El valor 500 es el número establecido del Identificador Relativo (RID) de la cuenta de administrador de cualquier máquina Windows.


USERDUMP

USERDUMP esta diseñada para recolectar la información del usuario en la máquina objetivo. Algunos datos de información que puede ser recolectada mediante el uso de la herramienta es la siguiente: RID, privilegios, fechas y duración de login’s, expriración de cuentas, etc.

Ejecutamos desde la línea de comandos la siguiente sintaxis.UserDump para conocer los nombres de los usuarios.
Luego escribimos UserDump \\ 97.74.141.128 y obtendremos esto


Después de haber hecho este taller, observamos como podemos ir levantando la información de usuarios, grupos, host desde cesiones nulas para no dejar ningún rastro.