enero 2014 ~ HD_Breaker Seguridad Informatica

Ethical Hacking And Exploits Development

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Wargames Challenges and Solutions

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Python App Development

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Java Development Tools

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Android App Development

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

lunes, 27 de enero de 2014

Faraday: Coperative Pentesting

Faraday


Hoy tenia ganas de escribir en mi blog, ya que hace mucho no pasaba por estos pagos, y sentía que me estaba fallando en mi misión de educar a las personas sobre la importancia de la seguridad informática y la protección de los datos que dejamos por internet.

Que es Faraday?


Faraday es un framework que nace de la necesidad de realizar pruebas de penetración de forma cooperativa, cosa que de momento solventaban algunas aplicaciones como Dradis, que generaban un entorno similar a Sharpoint de Microsoft, donde cada pentester podía dejar constancia de su trabajo y compartir las vulnerabilidades que encontraba.

Faraday presenta un futuro en el Pentesting Grupal, ya que por medio de CouchDB y un sistema de replicación de datos, permite de forma instantánea y en tiempo real compartir los datos de una intrusión, reduciendo al mínimo la perdida de tiempo al momento de generar reportes y distribuir la información entre el grupo de pentesters.

Esquema de como funciona


  Pentester 1<---------------Servidor CouchDB--------------->Pentester 2
Couch Replica 1--------------------->|<---------------------Couch Replica 2


El servidor CouchDB brinda un espacio de almacenamiento compartido similar a un SVN el cual alimenta las replicas en las bases de datos locales de cada pentester. A su vez, a medida que Faraday Encuentra diferencias entre las DB Replicas y la DB Servidor, actualiza el Servidor con los datos nuevos de las replicas, disparando nuevamente el ciclo de actualización para el resto de las replicas

Por ejemplo, dado un Servidor nuevo vació, 2 pentester se conecta, se genera una replica vacia en su entorno local de trabajo.
El Pentester 1 encuentra un SQL Injection, automaticamente se actualiza el Servidor y por consecuencia se actualiza la replica local del Pentester 2
A su vez, el Pentester 2 encuentra un XSS, esto dispara la actualizacion del Servidor y por consecuencia la actualizacion de la replica del Pentester 1. Una maravilla de los sistemas distribuidos!!!

Como se trabaja con Faraday?


Para auditar con Faraday no necesitas ningún cambio de concepto, simplemente utilizas las herramientas que acostumbras y ataques manuales, el Framework captura las respuestas de las herramientas en su terminal y va generando un patrón de datos que se almacena en CouchDB.
Además, como todos sabemos, los pentester que nos arrimamos a la profesionalidad del trabajo, solemos auditar de forma manual, y Faraday también contempla esto, permitiéndonos añadir Notas, Vulnerabilidades y Credenciales de forma manual con un simple click derecho!!!

Por lo que podemos auditar Cooperativamente, utilizando herramientas como Nmap, Sqlmap, nikto, etc dejando que la herramienta trabaje sola y capture las respuestas, mientras que a la vez, auditamos manualmente y agregamos notas, como datos de VPN, contraseñas de correos electrónicos, información social, comentarios, vulnerabilidades que no encuentran los scanners, acotaciones, hasta exploits codeados por nosotros mismos.

Además de su increíble versatilidad, me deslumbra su poderosa flexibilidad, ya que si no estamos a gusto o simplemente queremos incluir una nueva herramienta que Faraday no captura, podemos nosotros mismos codear el plugin I/O y agregarlo al Framework

Existen 2 tipos de versión en desarollo:

Comunity Edition & Professional Edition


Esta ultima permite generar reportes modulares web para realizar presentaciones a nuestros clientes.



Invito a todos los interesados a probar su Comunity Edition, yo estoy sorprendido por el potencial de esta herramienta

Dejo algunas capturas:






Documentación Oficial: http://www.faradaysec.com/
Github: https://github.com/infobyte/faraday/



Utilizar LED de notificaciones ANDROID

En mi vida de desarrollador ANDROID me he topado con la necesidad de encender y apagar el LED de notificaciones que poseen algunos celulares, con el fin de demostrar una carga de datos correcta (LED en  Verde) o una carga erronea (LED en Rojo).

Al no encontrar casi documentación sobre este tema, decidi idear mi propia solución y quiero compartir la forma en que yo trabajo con este LED.
//Led en Verde
private void GreenFlashLight()
{
  String ns = Context.NOTIFICATION_SERVICE;
     NotificationManager mNotificationManager = (NotificationManager) act.getSystemService(ns);

     Notification notification = new Notification(R.drawable.check_acept, "", System.currentTimeMillis());
     notification.flags = Notification.FLAG_SHOW_LIGHTS | Notification.FLAG_AUTO_CANCEL;
     //Indico el color del led en verde
     notification.ledARGB = Color.GREEN;
     //Indico que el Notification Led se encienda por tiempo indeterminado
     notification.ledOnMS = 1;
     

     Context context = act.getApplicationContext();
     CharSequence contentTitle = "Producto Escaneado";
     CharSequence contentText = "Correcto!";
     Intent notificationIntent = new Intent(act, MainActivity.class);
     PendingIntent contentIntent = PendingIntent.getActivity(act, 0, notificationIntent, 0);

     notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
     //Actualizo el estado del LED
     mNotificationManager.notify(1, notification);
     //Espero 20 mili segundos con el led prendido
      try{
         Thread.sleep(200);
      }catch(InterruptedException e){}
     //Función que apaga el LED
     OffLed();
}
//Led en Rojo
private void RedFlashLight()
{
  String ns = Context.NOTIFICATION_SERVICE;
     NotificationManager mNotificationManager = (NotificationManager) act.getSystemService(ns);

     Notification notification = new Notification(R.drawable.check_acept, "", System.currentTimeMillis());
     notification.flags = Notification.FLAG_SHOW_LIGHTS | Notification.FLAG_AUTO_CANCEL;
     //Establesco el color del LED en Rojo
     notification.ledARGB = Color.RED;
     //Enciendo el LED por tiempo Indeterminado
     notification.ledOnMS = 1;
     

     Context context = act.getApplicationContext();
     CharSequence contentTitle = "Producto Escaneado";
     CharSequence contentText = "Correcto!";
     Intent notificationIntent = new Intent(act, MainActivity.class);
     PendingIntent contentIntent = PendingIntent.getActivity(act, 0, notificationIntent, 0);

     notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
     //Actualizo el estado del LED
     mNotificationManager.notify(1, notification);
     try{
         Thread.sleep(200);
      }catch(InterruptedException e){}
     //Funcion que apaga el LED
     OffLed();
}
//Apago el Led
private void OffLed(){
 String ns = Context.NOTIFICATION_SERVICE;
    NotificationManager mNotificationManager = (NotificationManager) act.getSystemService(ns);

    Notification notification = new Notification(R.drawable.check_acept, "Hello", System.currentTimeMillis());
    notification.flags = Notification.FLAG_SHOW_LIGHTS | Notification.FLAG_AUTO_CANCEL;
    //Elimino el Color del LED
    notification.ledARGB = 0;
    //Elimino tiempo de encendido del LED
    notification.ledOnMS = 0;
    //Elimino tiempo de apagado del LED
    notification.ledOffMS = 0;

    Context context = act.getApplicationContext();
    CharSequence contentTitle = "Producto Escaneado";
    CharSequence contentText = "Correcto!";
    Intent notificationIntent = new Intent(act, MainActivity.class);
    PendingIntent contentIntent = PendingIntent.getActivity(act, 0, notificationIntent, 0);

    notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
    //Actualizo el estado del LED
    mNotificationManager.notify(1, notification);
    
    
}