martes, 19 de noviembre de 2013

TIPOS DE ATAQUES

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.


INGENIERÍA SOCIAL

Ingeniería Social

Es la manipulación de las personas para convencerlas de que ejecuten acciones o actos que normalmente no realizan para que revele todo lo necesario para superar las barreras de seguridad. Si el atacante tiene la experiencia suficiente (generalmente es así), puede engañar fácilmente a un usuario (que desconoce las mínimas medidas de seguridad) en beneficio propio. Esta técnica es una de las más usadas y efectivas a la hora de averiguar nombres de usuarios y passwords.

Por ejemplo, suele llamarse a un usuario haciéndose pasar por administrador del sistema y requerirle la password con alguna excusa convincente. O bien, podría enviarse un mail (falsificando la dirección origen a nombre del administrador) pidiendo al usuario que modifique su password a una palabra que el atacante suministra.

Para evitar situaciones de IS es conveniente tener en cuenta estas recomendaciones:

    Tener servicio técnico propio o de confianza.
    Instruir a los usuarios para que no respondan ninguna pregunta sobre cualquier característica del sistema y deriven la inquietud a los responsables que tenga competencia para dar esa información.

Asegurarse que las personas que llaman por teléfono son quien dicen ser. Por ejemplo si la persona que llama se identifica como proveedor de Internet lo mejor es cortar y devolver la llamada a forma de confirmación.

Ingeniería Social Inversa

Consiste en la generación, por parte de los intrusos, de una situación inversa a la originada en Ingeniería Social.

En este caso el intruso publicita de alguna manera que es capaz de brindar ayuda a los usuarios, y estos lo llaman ante algún imprevisto. El intruso aprovechara esta oportunidad para pedir información necesaria para solucionar el problema del usuario y el suyo propio (la forma de acceso al sistema).

La ISI es más difícil de llevara cabo y por lo general se aplica cuando los usuarios están alertados de acerca de las técnicas de IS. Puede usarse en algunas situaciones específicas y después de mucha preparación e investigación por parte del intruso:

    Generación de una falla en el funcionamiento normal del sistema. Generalmente esta falla es fácil de solucionar pero puede ser difícil de encontrar por los usuarios inexpertos (sabotaje). Requiere que el intruso tenga un mínimo contacto con el sistema.
    Comunicación a los usuarios de que la solución es brindada por el intruso (publicidad).
    Provisión de ayuda por parte del intruso encubierto como servicio técnico.

Trashing (Cartoneo)

Generalmente, un usuario anota su login y password en un papelito y luego, cuando lo recuerda, lo arroja a la basura. Este procedimiento por más inocente que parezca es el que puede aprovechar un atacante para hacerse de una llave para entrar el sistema..."nada se destruye, todo se transforma".

El Trashing puede ser físico (como el caso descripto) o lógico, como analizar buffers de impresora y memoria, bloques de discos, etc.

El Trashing físico suele ser común en organizaciones que no disponen de alta confidencialidad, como colegios y universidades

¿Cómo defenderse de estos Ataques?

La mayoría de los ataques mencionados se basan en fallos de diseño inherentes a Internet (y sus protocolos) y a los sistemas operativos utilizados, por lo que no son "solucionables" en un plazo breve de tiempo.
La solución inmediata en cada caso es mantenerse informado sobre todos los tipos de ataques existentes y las actualizaciones que permanentemente lanzan las empresas desarrolladoras de software, principalmente de sistemas operativos.
Las siguientes son medidas preventivas. Medidas que toda red y administrador deben conocer y desplegar cuanto antes:

  1. Mantener las máquinas actualizadas y seguras físicamente
  2. Mantener personal especializado en cuestiones de seguridad (o subcontratarlo).
  3. Aunque una máquina no contenga información valiosa, hay que tener en cuenta que puede resultar útil para un atacante, a la hora de ser empleada en un DoS coordinado o para ocultar su verdadera dirección.
  4. No permitir el tráfico "broadcast" desde fuera de nuestra red. De esta forma evitamos ser empleados como "multiplicadores" durante un ataque Smurf.
  5. Filtrar el tráfico IP Spoof.
  6. Auditorias de seguridad y sistemas de detección.
  7. Mantenerse informado constantemente sobre cada unas de las vulnerabilidades encontradas y parches lanzados. Para esto es recomendable estar suscripto a listas que brinden este servicio de información.
  8. Por último, pero quizás lo más importante, la capacitación continua del usuario.
Read More ->>

INTERBLOQUEOS

El interbloqueo se puede definir como el bloqueo permanente de un conjunto de procesos que compiten por los recursos del sistema o bien se comunican unos con otros. A diferencia de otros problemas de la gestión concurrente de procesos, no existe una solución eficiente para el caso general.
Todos los interbloqueos suponen necesidades contradictorias de recursos por parte de dos o más procesos.

EJEMPLOS DE INTERBLOQUEO


Ejemplo 1: Interbloqueo de tráfico

Cuatro coches llegan aproximadamente en el mismo instante a un cruce de cuatro caminos. Los cuatro cuadrantes de la intersección son los recursos compartidos sobre los que se demanda control; por tanto, si los coches desean atravesar el cruce, las necesidades de recursos son las siguientes:
-         El coche que va hacia el norte necesita los cuadrantes 1 y 2.
-         El coche que va hacia el oeste necesita los cuadrantes 2 y 3.
-         El coche que va hacia el sur necesita los cuadrantes 3 y 4.
-         El coche que va hacia el este necesita los cuadrantes 4 y 1.

          
a norma mas habitual en la carretera es que un coche en un cruce de cuatro caminos debe ceder el paso al coche que está a su derecha. Esta norma funciona si solo hay dos o tres coches en el cruce. Por ejemplo, si solo llegan al cruce los coches del norte y del oeste, el coche del norte esperará hasta que el del oeste pase. Sin embargo, si los cuatro coches llegan al mismo tiempo cada uno se abstendrá de entrar en el cruce, provocando interbloqueo. Si todos los coches ignoran las normas y entran (con cuidado) en el cruce, cada coche obtendrá un recurso (un cuadrante) pero no podrá continuar porque el segundo recurso que necesita ya ha sido invadido por otro coche. De nuevo, se tiene interbloqueo

CONDICIONES PARA PRODUCIR INTERBLOQUEO


En la política del sistema operativo, deben darse tres condiciones para que pueda producirse un interbloqueo:
1-     Condición de exclusión mutua: Cada recurso esta asignado a un único proceso o esta disponible.
2-     Condición de posesión y espera: Los procesos que tienen, en un momento dado, recursos asignados con anterioridad, pueden solicitar nuevos recursos.
3-     Condición de no apropiación: Los recursos otorgados con anterioridad no pueden ser forzados a dejar un  proceso. El proceso que los posee debe liberarlos en forma explicita.
En la mayoría de los casos, estas condiciones son bastantes necesarias. La exclusión mutua hace falta para asegurar la consistencia de resultados y la integridad de la base de datos. De forma similar, la apropiación no se puede aplicar arbitrariamente y, cuando se encuentran involucrados recursos de datos, debe estar acompañada de un mecanismo de recuperación y reanulación, que devuelva un proceso y sus recursos a un estado previo adecuado, desde el que el proceso puede finalmente repetir sus acciones.
Puede no existir interbloqueo con solo estas tres condiciones. Para que se produzca interbloqueo, se necesita una cuarta condición:
4-     Condición de espera circular (o circulo vicioso de espera): Debe existir una cadena circular de dos o mas procesos, cada uno de los cuales espera un recurso poseído por el siguiente miembro de la cadena.


Las tres primeras condiciones son necesarias, pero no suficientes, para que exista interbloqueo. La cuarta condición es, en realidad, una consecuencia potencial de las tres primeras. Es decir, dado que se producen las tres primeras condiciones, puede ocurrir una secuencia de eventos que desemboque en un circulo vicioso de espera irresoluble. El circulo de espera de la condición 4 es irresoluble porque se mantienen las tres primeras condiciones. Las cuatro condiciones en conjunto constituyen una condición necesaria y suficiente para el interbloqueo.

PREVENCIÓN DEL INTERBLOQUEO


La estrategia básica de la prevención del interbloqueo consiste, a grandes rasgos, en diseñar su sistema de manera que esté excluida, a priori, la posibilidad de interbloqueo.
Los métodos para prevenir el interbloqueo son de dos tipos:
-         Los métodos indirectos que consisten en impedir la aparición de alguna de las tres condiciones necesarias para que se de el interbloqeo.
-         Los métodos directos que consisten en evitar la aparición del circulo vicioso de espera.
Read More ->>

FILOSOFOS COMENSALES

Problema:

Cinco filósofos se sientan alrededor de una mesa y pasan su vida cenando y pensando. Cada filósofo tiene un plato de fideos y un tenedor a la izquierda de su plato. Para comer los fideos son necesarios dos tenedores y cada filósofo sólo puede tomar los que están a su izquierda y derecha. Si cualquier filósofo toma un tenedor y el otro está ocupado, se quedará esperando, con el tenedor en la mano, hasta que pueda tomar el otro tenedor, para luego empezar a comer.
Si dos filósofos adyacentes intentan tomar el mismo tenedor a una vez, se produce una condición de carrera: ambos compiten por tomar el mismo tenedor, y uno de ellos se queda sin comer.
Si todos los filósofos toman el tenedor que está a su derecha al mismo tiempo, entonces todos se quedarán esperando eternamente, porque alguien debe liberar el tenedor que les falta. Nadie lo hará porque todos se encuentran en la misma situación (esperando que alguno deje sus tenedores). Entonces los filósofos se morirán de hambre. Este bloqueo mutuo se denomina interbloqueo o deadlock.

Se genero una soluciona en código C la cual le presentare continuación:

# include < conio.h >
# include < iostream.h >
# include < dos.h >
# include < stdio.h >

main()
{
int op=0,b=0,x,y,ti1=0,td1=0,ti2=0,td2=0,ti3=0,td3=0,ti4=0,td4=0,ti5=0,
td5=0;
do{
clrscr();
gotoxy(2,1);printf("Cena de filosofos");
gotoxy(2,2);printf("Escoge opcion");
gotoxy(2,4);printf("1.-Filosofo 1 9.- Quitar tenedores del filosofo 1");
gotoxy(2,5);printf("2.-Filosofo 2 10.-Quitar tenedores del filosofo 2");
gotoxy(2,6);printf("3.-Filosofo 3 11.-Quitar tenedores del filosofo 3");
gotoxy(2,7);printf("4.-Filosofo 4 12.-Quitar tenedores del filosofo 4");
gotoxy(2,8);printf("5.-Filosofo 5 13.-Quitar tenedores del filosofo 5");
gotoxy(2,10);printf("6.-Simular bloqueo irreversible");
gotoxy(2,11);printf("7.-Dejar de simular bloqueo irreversible");
gotoxy(2,12);printf("8.-Salir");

gotoxy(20,13);printf("1 %d",td1);printf("~(-_-)~");printf("%d",ti1);

if(ti2==0 && td1==0) {
gotoxy(18,14);printf("T");
}else{gotoxy(18,14);printf("0");}

if(td2==0 && ti4==0) {
gotoxy(14,22);printf("T");
}else{gotoxy(14,22);printf("0");}

if(ti1==0 && td3==0) {
gotoxy(36,14);printf("T");
}else{gotoxy(36,14);printf("0");}

if(td5==0 && ti3==0) {
gotoxy(36,22);printf("T");
}else{gotoxy(36,22);printf("0");}

if(td4==0 && ti5==0) {
gotoxy(26,24);printf("T");
}else{gotoxy(26,24);printf("0"); }

gotoxy(12,16);printf(" %d",ti2);
gotoxy(11,17);printf("2 (|)");
gotoxy(10,18);printf(" ( )");
gotoxy(11,19);printf(" (|)");
gotoxy(12,20);printf(" %d",td2);

gotoxy(35,16);printf(" %d",td3);
gotoxy(34,17);printf("3 (|)");
gotoxy(33,18);printf(" ( )");
gotoxy(34,19);printf(" (|)");
gotoxy(35,20);printf(" %d",ti3);

gotoxy(12,25);printf("4 %d",ti4);printf("~(_-_)~");printf("%d",td4);

gotoxy(28,25);printf("5 %d",ti5);printf("~(_-_)~");printf("%d",td5);

gotoxy(10,12);scanf("%d",&op);

switch(op)
{
case 1:

gotoxy(28,28);printf("Intentando levantar Tenedor Izquierdo");
delay(1000);
gotoxy(28,28);printf("Intentando levantar Tenedor Derecho ");
delay(1000);
if(td3==0&&ti2==0)
{ti1=1;td1=1; }else
{gotoxy(28,28);printf("Uno o los dos de los tenedores ya se estan utilizando");
delay(1500);}
break;

case 2:
gotoxy(28,28);printf("Intentando levantar Tenedor Izquierdo");
delay(1000);
gotoxy(28,28);printf("Intentando levantar Tenedor Derecho ");
delay(1000);
if(td1==0&&ti4==0)
{ti2=1;td2=1; }else
{gotoxy(28,28);printf("Uno o los dos de los tenedores ya se estan utilizando");
delay(1500);}
break;

case 3:
gotoxy(28,28);printf("Intentando levantar Tenedor Izquierdo");
delay(1000);
gotoxy(28,28);printf("Intentando levantar Tenedor Derecho ");
delay(1000);
if(ti1==0&&td5==0)
{ti3=1;td3=1; }else
{gotoxy(28,28);printf("Uno o los dos de los tenedores ya se estan utilizando");
delay(1500);}
break;

case 4:
gotoxy(28,28);printf("Intentando levantar Tenedor Izquierdo");
delay(1000);
gotoxy(28,28);printf("Intentando levantar Tenedor Derecho ");
delay(1000);
if(td2==0&&ti5==0)
{ti4=1;td4=1; }else
{gotoxy(28,28);printf("Uno o los dos de los tenedores ya se estan utilizando");
delay(1500);}
break;

case 5:
gotoxy(28,28);printf("Intentando levantar Tenedor Izquierdo");
delay(1000);
gotoxy(28,28);printf("Intentando levantar Tenedor Derecho ");
delay(1000);
if(td4==0&&ti3==0)
{ti5=1;td5=1; }else
{gotoxy(28,28);printf("Uno o los dos de los tenedores ya se estan utilizando");
delay(1500);}
break;

case 6:
b=1;
ti1=1;ti2=1;ti3=1;ti4=1;ti5=1;
break;

case 7:
if(b==1){
ti1=0;ti2=0;ti3=0;ti4=0;ti5=0;
b=0;
}else{ gotoxy(28,28);printf("No se esta simulando un bloqueo irreversible ");
delay(1500);}
break;

case 8:
break;

case 9:
td1=0; ti1=0;
break;
case 10:
td2=0; ti2=0;
break;
case 11:
td3=0; ti3=0;
break;
case 12:
td4=0; ti4=0;
break;
case 13:
td5=0; ti5=0;
break;

default:
gotoxy(20,11);printf("Opcion no disponible");
getch();
break;
}

}while(op!=8);
}





Read More ->>

ENUMERACION

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.
Esta información objetivo a recopilar comprende: 
 Recursos compartidos de red--- Nombres De Usuarios y Grupos---Aplicaciones y Banners- Configuraciones De Auditoria
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 
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.
Los tipos de enumeración que debemos efectuar son:
  • Extraccion de nombres de usuario
  • Extracción de nombres de usuario usando SNMP                                                                                            (“Sistema de administración de red que tiene un supervisor y unos agentes. El supervisor, es una terminal que le permite a la administrador de la red realizar las solicitudes de administración. Los Agentes son entidades que conectan a la red dispositivos,para recopilar información de los diferentes objetos”).
  • Extracción de nombres de usuarios de lds de E-mail.
  • Ataques de fuerza bruta al directorio activo.
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.12\IPC$ “” /u:”” y obtuvimos el siguiente resultado. Cabe resaltar que primero utilizamos nmap para obtener la IP con la que vamos a trabajar.

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

USERDUMP

Ejecutamos desde la línea de comandos la siguiente sintaxis.UserDump para conocer los nombres de los usuarios.

 Luego escribimos UserDump \\ 97.74.141.12 y obtendremos esto


y nos damos cuenta q obtener información de un ordenador es muy facil para posteriormente organizar un buen ataque
Read More ->>