Archivo por meses: Noviembre 2010

compendio de las ultimas paginas web que he hecho

teclado web
Este post lo quiero dedicar a todos mis compañeros ITC (Ingeniería en Tecnologías Computacionales) con los que conviví este semestre en la universidad y que mejor forma que mostrando algunas de las webs que nos dejaron hacer para el modulo de IHC (Interfaz Humano Computadora), ya casi acabamos el proyecto de wiimote también x’D

PD si alguien ocupa el cogido fuente nada mas mande me un DM en twitter @Alevsk y con mucho gusto

PD son pequeños proyectos, como trabajos para entregar en clase, no tiene gran cosa de php (si acaso en los formularios y ya), pero tengo cosas mas elaboradas también 🙂

salu2

0-Day en Windows Vista y Windows 7 (Escalada de Privilegios)

Se ha publicado una vulnerabilidad y una PoC sobre una vulnerabilidad en las versiones de Windows Vista y Windows 7 que permiten una elevacion de privilegios con el cual un atacante podria ejecutar codigo malisioso. El problema reside en Win32k.sys, por lo tanto incluso un usuario con privilegios limitados podria ejecutar codigo en modo kernel.

El problema esta en que la API NtGdiEnableEUDC no valida correctamente algunas entradas causando un Stack Overflow y sobre escribiendo la direccion de retorno guardado en la pila. Un atacante podria modificar el valor de la direccion de retorno para apuntar a la direccion del su propio codigo malicioso y asi ejecutarlo en modo kernel. Al ser una vulnerabilidad de escalacion de privilegios esta incluso traspasa la proteccion de la UAC implementada en los sistemas Windows Vista y Window 7.

PoC:

Mas Informacion:

USA entrena un Ciber comando AntiHack

Los ataques informáticos ya han costado unos US$ 100 millones a USA. La Cyber Estrategia del Pentágono señala que el ciberespacio debe equipararse a la tierra, el mar y el aire en lo que respecta a la guerra y que las ciberdefensas no deben limitarse al mundo informático, sino extenderse a las redes comerciales.

El Pentágono ya cuenta, desde los primeros días de octubre, con el denominado Ciber-Comando, una unidad altamente especializada que se encargara de defender las redes de información – especialmente contra hackers vinculados a China y Rusia – y prepararse para, cuando sea oportuno, realizar una gran variedad de operaciones militares ciberespaciales.

La creación del USCYBERCOM coincide con los recientes ataques de espías informáticos en uno de los programas más costosos del Pentágono: el caza F-35 Lightning II, un proyecto valorado en más de US$ 300.000 millones y cuyo contratista principal es la compañía Lockheed Martin. El ataque, aparentemente originado en China, habría permitido la extracción y copia de varios cientos de terabytes (equivalente a un millar de gigabytes) de información confidencial relacionada con el diseño y los sistemas electrónicos de uno de los más avanzados cazas de USA.

Las redes informáticas del Pentágono han sido objeto de múltiples intentos de penetración lo que llevó al Departamento de Defensa a gastar en más de US$ 100 millones durante los últimos meses para responder y reparar los daños causados por estos ataques. Más aun, durante su campaña presidencial, Barack Obama se comprometió a dedicar más atención a la defensa de la infraestructura informática de USA, llegando incluso a comparar el peligro para la seguridad nacional planteado por posibles ataques informáticos con la amenaza que representan en la actualidad las armas nucleares o biológicas.

Los puntos claves de la estrategia que aplicará el Ciber-Comando los determinó el Subsecretario de Defensa, William Linn III en su artículo Cyber Estrategia del Pentágono donde señala que el ciberespacio debe equipararse a la tierra, el mar y el aire en lo que respecta a la guerra y que las ciberdefensas no deben limitarse al mundo informático, sino extenderse a las redes comerciales, controladas por el departamento de seguridad territorial (Homeland Security).

De otro lado, el general Keith Alexander, director de la Agencia Nacional de Seguridad (NSA) y jefe del Ciber-Comando, manifestó en mayo de 2010 que el único camino para contrarrestar tanto el espionaje como las actividades criminales en la red es siendo proactivos. Si USA está tomando una aproximación formal a este asunto, es algo bueno. Los chinos son la
principal fuente de la mayoría de ataques de las infraestructuras del oeste y recientemente, el sistema de suministro eléctrico de USA. Si se determina que esto fue un ataque organizado, ven preciso eliminar el origen de esos ataques. El único problema es que internet, por su naturaleza, no tiene fronteras y si USA asume el mando de la policía mundial, esto no podría funcionar tan bien”.

El Ciber-Comando, ubicado en Fort Meade (Maryland) – donde también se encuentra la sede de la NSA – coordinará a cerca de 90 mil soldados digitales pertenecientes a cuatro comandancias cibernéticas recientemente creadas en las fuerzas armadas norteamericanas.

via http://www.whitesec.com.mx/2010/10/en-estados-unidos-se-entrena-ciber-comando-antihackers/

Ejercicios Java: Tabla de pitagoras

Este es el programa que nos dejaron hacer en el tercer parcial, una aplicacion que mostrar la tabla de pitagoras y si el usuario daba un numero mostrar la tabla de ese numero nada mas.

import java.io.*;
import javax.swing.*;

public class tablasMultiplicar {
int[][] tabla = new int[10][10];
int columnas = tabla.length;
int filas = tabla[0].length;

  void llenarMatriz()
  {
    int i = 0, j = 0;
    
    //Llenar en horizontal y vertical
    for(i = 0;i < filas; i++)
    {
      tabla[0][i] = i+1;
      tabla[i][0] = i+1;
    }
    
    for(i = 1;i < filas; i++)
    {
      for(j = 1; j < columnas; j++)
      {
        tabla[i][j] = tabla[0][j] * tabla[i][0];
      }
      
    }
  }
  
  void imprimirMatriz(int n)
  {
    int i = 0, j = 0;
    String matrizArray = "";
    
    //imprimir matriz completa
    if(n == 0)
    {
      for(i = 0;i < filas; i++)
      {
        for(j = 0; j < columnas; j++)
        {
          //Para que la matriz se vea mas bonita
          if(tabla[i][j] >= 10)
          {
            matrizArray = matrizArray+"["+tabla[i][j]+"]   ";
          }
          else
          {
            matrizArray = matrizArray+"["+tabla[i][j]+"  ]   ";
          }
          
        }
        //System.out.print("\n");
        matrizArray = matrizArray+"\n\n";
      }
      JOptionPane.showMessageDialog(null, matrizArray, "Toda la tabla de multiplicar", JOptionPane.INFORMATION_MESSAGE);
    }
    else
    
    //Imprimir solo una tabla de multiplicar
    if(n > 0 && n <= 10)
    {
      for(i = 0;i < filas; i++)
      {
        //matrizArray = matrizArray+"["+tabla[n-1][i]+"]";
        matrizArray = matrizArray+(n)+" * "+(i+1)+"    = "+tabla[n-1][i]+"\n";
      }
      JOptionPane.showMessageDialog(null, matrizArray, "Tabla del numero: "+n, JOptionPane.INFORMATION_MESSAGE);
    }
    else
    {
      JOptionPane.showMessageDialog(null, "Ese numero esta fuera de rango de 1 - 0", "#FAIL", JOptionPane.INFORMATION_MESSAGE);
    }
  }
  

  public static void main(String[] args) throws IOException
  {
    int n;
    String opc = "";
    tablasMultiplicar matriz = new tablasMultiplicar();
    matriz.llenarMatriz();
    
    JOptionPane.showMessageDialog(null, "Programa que muestra la tabla de pitagoras", "Programa Chido", JOptionPane.INFORMATION_MESSAGE);
    
    do
    {
      opc = JOptionPane.showInputDialog("0 = Mostrar toda la tabla\nEscribe un numero 1-10 para consultar esa tabla nada mas\nEscribre SALIR para terminar el programa");
      opc = opc.toUpperCase();
      if(opc.equals("SALIR"))
      {
        JOptionPane.showMessageDialog(null, "Gracias por usar el programa", "Gracias!", JOptionPane.INFORMATION_MESSAGE);
        break;
      }
      
      n = Integer.parseInt(opc);
      matriz.imprimirMatriz(n);
      
    }while(!opc.equals("salir"));    
  }

}

salu2

Teoria: Local File Inclusion

Local FIle Inclusion

Bueno hace ya bastante rato que no me meto a temas de seguridad informatica, mi laptop se descompuso y entonces tube que recuperar mis archivos, ahi me encontre unos ejemplo que habia hecho hace ya tiempo sobre un Local File Inclusion, algo asi como un Wargame jeje, y dije bueno aqui no sirve para nada mejor lo subo a un server.

Este articulo va orientado  a los usuarios ++ novatos que recien se inician en la seguridad informatica y el Hacking etico.

LFI, Local File Inclusion o inclusión local de archivos, es un tipo de vulnerabilidad que se encuentra en paginas mal programadas en lenguaje PHP(de hecho el LFile y Rfile inclusion solo afecta al PHP), un usuario malicioso puede utilizar este bug para obtener archivos locales del servidor por ejemplo archivos de conexion a bases de datos, scrips PHP privados, el archivos passwd (que nunca me ha servido para nada x’D) y en general cosas que no tendria por que obtener.

Comunmente el codigo vulnerable en PHP seria el siguiente

include($_GET['page']);

La pagina incluye en si misma el parametro que le hayamos pasado a la variable “page” sin hacer validacion de nada, podiendo de esta manera incluir cualquier archivo que queramos como ya comente mas arriba, por ejemplo:

http://mipaginaweb.com/index.php?pagina=../../../var/log/apache/error.log
http://mipaginaweb.com/index.php?pagina=wp-config.php
http://mipaginaweb.com/index.php?pagina=../../../etc/passwd

Hay varias maneras de solucionar el Local File Inclusion, algunos lo que hacen es agregarle una extencion al parametros que recibe la variable (osea el archivo a incluir)

require $_GET['pagina'] . '.inc.php');

Al parecer con esto ya quedaria solucionado por que solo se cargarian los archivos que tuvieran “.inc.php” en su nombre, sin embargo es posible terminar una cadena añadiendo un caracter nulo (0×00) (solo funciona con magic_quotes_gpc desactivado en un server) de la siguiente manera:


http://mipaginaweb.com/index.php?pagina=../../../etc/passwd%00

Debido al exito no obtenido una de las maneras que nos quedan para evitar el Local FIle Inclusion seria aceptar solo ciertos caracteres:

if(isset($_GET['pagina']))
{
    $pagina = preg_replace('/[^a-z^A-Z]*/', '', $_GET['pagina']);
    require $_GET['pagina'] '.inc.php';
}
else
{
   die('Nada sucede');
}

Ahora esta de mas que decir que para vulnerar un servidor es casi imposible hacer uso de una sola tecnica, por ejemplo para hacer un LFile Inclusion satisfactorio primero tendriamos que haber subido una shell al servidor por algun uploader que tambien fuera vulnerable (esto generalmente se hace por que el uploader solo valida que la extencion del archivo sea .php pero si nos permite subir la shell ya sea en formato .jpg,etc, etc o tambien subir una imagen con codigo php) entonces despues se hace uso del Local File Inclusion que cargara el archivo y leera el codigo php 🙂

Sin embargo hay veces que no es posible subir archivos al servidor por que no tiene uploader 🙁 entonces tenemos que hacer uso de la infeccion de archivos particularmente de los ficheros/archivos logs de Apache añadiendo alguna shell, backdoor, exploit o que se yo dentro de un archivo legitimo del server que como acabo de decir serian los logs de Apache, pero eso queda para otro post ;D

Y como les prometi al inicio del post aqui esta un ejemplo de Local File Inclusion hecho en PHP, chequen los paths que les arroja y el numero de directorios para sacar el archivo passwd 🙂

Lectura Obligatoria:

La información de este post en especifico asi como los otros que traten sobre hacking, es con fines únicamente de informar y de que el lector aprenda de las amenazas que existen en la red, no es para andar haciendo cosas maliciosas, www.alevsk.com así como el administrador @Alevsk no se responsabiliza del mal uso que se pueda llegar a hacer con estos estudios de hacking ético … nuevamente los exhorto a ver el hacking desde un punto de vista ético, de aprendizaje y mas que nada como una disciplina muy interesante 🙂 Happy hacking

salu2

PD Disculpen mi mala ortografía no tengo mi laptop ahorita y no tengo el plugin de correccion ortografica de Firefox instalado :p