Mostrando las entradas con la etiqueta Python. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Python. Mostrar todas las entradas

2012/04/16

Recopilatorio de recursos de análisis de malware de Claus Valca

Claus Valca del blog grand stream dreams ha publicado una interesante lista de recursos para análisis de malware. Este recopilatorio se complementa con otra de sus entradas y queríamos postearlo también aquí para tenerlo siempre a mano:


Escáners en línea y herramientas de análisis de Virus/Malware
Herramientas de análisis de ficheros PDF
Aunque no es para PDF el servicio Malware Tracker’s +Cryptam también puede escanear documentos "Office” en busca de contenidos maliciosos.
Herramientas Sandbox para el análisis de malware
Herramientas de análisis de Adobe Shockwave/Flash
Mandiant - en una palabra hará…
  • MANDIANT - Red Curtain - de su descripción del producto: "MRC examina los archivos ejecutables (por ejemplo, EXE, DLL, etc.). para determinar si son sospechosos basándose en un conjunto de criterios. Se examinan múltiples aspectos de un archivo ejecutable, tales como la entropía (en otras palabras, aleatorización), indicaciones de packing, compilador y firmas, la presencia de las firmas digitales y otras características para generar una puntuación de la amenaza. Esta puntuación se puede utilizar para identificar si un conjunto de archivos requiere mayor investigación."
  • MANDIANT Find Evil - herramienta de desensamblado para detectar ejecutables paquetizados
  • Comprueba Mandiant’s Free Software así como otras herramientas que pueden ayudar en la investigación de malware.
Lecciones aprendidas y conocimientos compartidos por los profesionales del análisis de malware
Gracias al duro trabajo y al espíritu comunitario de los analistas de malware, podemos aprender de sus aportes. Estos son algunos de los mejores lugares para empezar.

2012/03/15

10 tecnologías web a aprender en el 2012

Este es el año más divertido para ser un tejedor de experiencias web.

El 2011 fue un año de DOLOR. HTML5 era brillante y raro. Flash fue herido por el presidente de Adobe, quizas el CEO más idiota de la industria. Android aplastaba al iPhone pero era aplastado por el iPad. Y la gente, al fin, entendió que usar Blackberry en ésta decada es como ver TV blanco y negro en un mundo HD.

Este año 2012, si eres frontend, backend, diseñador, programador o te encargas de cualquier cosa que tenga que ver con poner colores en una pantalla conectada a Internet, estas son las 10 tecnologías que, sin duda, debes amaestrar:
  • HTML5 y CSS3
  • Stylus o LESS
  • Node.js
  • CoffeeScript
  • jQuery Mobile o Sencha Touch
  • Phonegap o Flash Mobile
  • MongoDB o Redis
  • Django + Python
  • Responsive Design
  • El iPad

HTML5 y CSS3... duh!


Es obvio, pero lo reiteramos. No saber HTML5 es irresponsable. No conocer CSS3 es odiarte y un signo de masoquismo. HTML5 y CSS3 hacen todo TAN FÁCIL que no usarlos es autodestructivo.

¿Quieres detectar eventos touch en móviles o tablets? ¿Acelerometros? ¿Saber la latitud y longitud de un usuario? ¿Guardar en disco? ¿Crear bordes redondeados? ¿Transparencias? ¿Animaciones? Todo desde el navegador. ¡Aprende HTML5!


Stylus o LESS


CSS es el lenguaje declarativo más estúpido del mundo. CSS fue creado por gente que odia el amor. ¿Cómo es posible no tener herencia real? ¿No tener variables? ¿No tener sumas y restas básicas? No pido ciclos y condiciones, ¡Pido sentido común y decencia!

Stylus y LESS, dos "pre-procesadores" de CSS, lo arreglan. Compatibles con CSS3, generan un CSS limpio, lindo y optimizado, compatible con todos los navegadores y que agrega lo que a CSS le falta.


Cristalab usa Stylus. 



Node.js


Node.js es un servidor que corre cada webapp en un nodo independiente por usuario, comunicables entre sí a través de una grilla al estilo de los Apaches mejor configurados. PERO además se programa con Javascript. Ni PHP, ni Python, ni Java: El buen y viejo Javascript. PERO además es REAL TIME y estupidamente veloz. Es magia de la buena.


Mejorando.la usa Node.js.

(Tutoriales de Node.js, fuck yeah!)


CoffeeScript


Javascript es el lenguaje más famoso y usado del mundo web. En serio. Más que PHP. Y similar a PHP, es horrible, feo, viejo, mal hecho, lleno de malas prácticas y similar a afeitarse con un cactus.

CoffeeScript hace por Javascript lo que Stylus y LESS hacen por CSS. Agrega una sintaxis decente y elegante, orientada a objetos y llena de sentido común, el cual exporta a Javascript de toda la vida, compatible con jQuery y cualquier otro JS que tengas allá afuera.


Cristalab usa CoffeeScript. 



jQuery Mobile, en serio


Si conoces jQuery este no es tu negocio. En serio, aunque seas de marketing. jQuery es la forma fácil, de rápido desarrollo (y lenta ejecución) de hacer web apps.

¿Y jQuery Mobile? Es una obra tan linda que si fuera más inteligente sería millonaria. La forma más fácil de crear no sólo interacción en móviles, sino diseños enteros de apps compatibles con TODOS los teléfonos modernos. TODOS. Aprendanlo por el amor a los tubos.

O si son muy fancy, tienen dinero y no les gusta jQuery Mobile vean Sencha Touch.

PhoneGap/Cordova y Flash/Flex Mobile


PhoneGap es una idea digna de un nobel de paz. Crea apps en HTML5, CSS3 y Javascript, usa el "API" de PhoneGap para acceder a los APIs de teléfonos Android y iPhone y con el mismo código, en un click, compila apps nativas completas para iPhone y Android que puedes vender o regalar en el Google Play (Android Market) o la App Store. Belleza. Belleza que Adobe compró y renombró como el Proyecto Cordova.

PERO si quieres hacer videojuegos móviles, Flash/Flex es la MEJOR opción. Actionscript 3 es un excelente lenguaje y ahora que Steve Jobs está muerto, el compilador de Flash para iPhone y Android con AIR Mobile tiene mucho futuro. ESTE es el futuro de Flash. Apps móviles interactivas multiplataforma.

MongoDB, Redis o... cualquier base de datos NO relacional


SQL no es tan buena idea siempre. A veces las DBs son tan sencillas que una base de datos SQL relacional sólo crea problemas y cuellos de botella. Hay un nuevo tipo de bases de datos basadas en el concepto de "nombre => valor" donde sólo hay un "key", no hay relaciones ni intersecciones de conjuntos, sino más teoría de matrices, hashes y/o diccionarios.

¿Muy técnico? Hay DBs que en su simpleza son MUCHO más veloces que las SQL. Se llaman "no relacionales" y vienen en varios sabores ¿Las más famosas? MongoDB y Redis. Aunque hay más, como BigTable de Google o SimpleDB de Amazon.

(¿Quien se anima a hacer un tuto de esto? Publicalo en Cristalab)

Django/Python


¿Siguen con PHP? Dejen de sufrir. En el 2012, programar en PHP desnudo es cómo hacer un sitio con CSS3 para IE6. Conoce el mundo del futuro: Node.js, Ruby on Rails y sobre todo, Django con Python. Lenguajes modernos, con experiencia y caracteristicas futuristas que los PHPeros no conocen.

Una simple prueba: Django viene con un sistema de manejo de base de datos que abstrae SQL, lo hace innecesario y vuelve imposible las inyecciones SQL. Pero ADEMÁS crea automaticamente los sistemas de administración de los sitios web al entender de manera inteligente la estructura de la información.

(Tutoriales de Python y Django)

"Responsive Design"


El "diseño receptivo adaptivo" o Responsive Design es una nueva corriente. El mismo diseño que pones en una web a 1024px lo puedes "reorganizar" para que se vea lindo en un iPad, en un iPhone o en un Android. No se trata de hacer sitios móviles, sino mantener una unidad de diseño a través de los dispositivos, cambiando de diseños multicolumna a una sola sin sacrificar muchos elementos, sino reorganizar.

Dos ejemplos que resaltan de Responsive Design:

El iPad


El iPad ganó y darme cuenta me dolió. He probado tablets Android chinas, el Samsung Galaxy Tab 10.1, el Blackberry Playbook, el Kindle Fire, la Asus Transformer, el Galaxy Tab 7" y hasta el desproposito de Chromebook. Ya está, Apple ganó.

Contra el iPhone se podía pelear. No tuvieron una App Store en lanzamiento, todos en la industria estaban aprendiendo y había suficiente interés porque Android fuera el sistema que compitiera con fuerza. Android ya había entendido los teléfonos antes que el iPhone saliera al mercado.

¿Pero el iPad? El iPad se adelantó al futuro por completo. Un diseño simplón y obvio por fuera, un iPhone grandote, pero al probarlo, un mundo diferente.

El Galaxy Tab 10.1 es lo más cercano y NO es cercano. No tiene la calidad de apps, la calidad de interfaz, la calidad de gestos, la calidad de construcción. El iPad ganó. Es la mejor tablet, de lejos. 3 años adelante de Samsung, de Asus, de Microsoft. Y me jode un montón.

Con el iPad Pepito (O New iPad o iPad 3 o como se llame), Apple simplemente aplastó a todos. Pasará un año o dos antes que veamos un Retina Display de 10 pulgadas en otra tablet. Pasarán AÑOS antes que veamos apps con la calidad de iPhoto o Keynote de iPad en Android. Pasará una decada antes que cualquier otra tablet llegue al market share que el iPad ha consolidado.

Si te importa el futuro post-PC y el tipo de experiencias web que serán creadas en ese futuro, comprate un iPad ya y empieza a testear.

2012/01/23

De 0x90 a 0x4c454554, un viaje dentro de la explotación

Hoy vamos a rescatar una entrada un poco antigua pero genial para todos aquellos que quieren aprender a desarrollar exploits.
'From 0x90 to 0x4c454554, a journey into exploitation' contiene una lista de recursos ordenados que describen el camino que se ha de seguir para llegar a ser un auténtico ninja en este arte, una estructura jerárquica en la que habrá que ir entendiendo y profundizando en cada sección antes de saltar a la siguiente.

Además se incluyen temas de aprendizaje paralelos para evitar la monotonía.
Parte 1: Programación
Aprendizaje paralelo # 1: (completa esta sección antes de llegar a la lectura del libro "Hacking Art of exploitation")
Aprender a programar es fundamental para escribir exploits. Es imprescindible dominar algún lenguaje de scripting. A continuación se enumeran algunos de los lenguajes de programación más populares y que se consideran más útiles.

- Python: uno de los lenguajes que más popularidad está ganando. Es potente, fácil de usar y está bien documentado.

- Ruby: si lo que quieres es trabajar fundamentalmente con Metasploit entonces debes empezar con Ruby.


- Perl: aunque es más antiguo continua siendo uno de los lenguajes de scripting más extendidos y por lo tanto utilizados en numerosos exploits.

- C y C++: tener un buen conocimiento de estos lenguajes es muy importante para entender como funcionan muchos exploits.
- Ensamblador x86: conocer el lenguaje máquina nos ayudará a comprender lo que el ordenador lee a la hora de compilar C y C++.

- Programación en Windows: para explotar los sistemas de Microsoft es necesario entender la estructura y las bibliotecas del sistema operativo.


- Desensamblado: más que programación se trata de comprender lo que el ordenador entiende y la forma que es interpretado por la CPU y la memoria. Aquí empieza lo bueno.


Parte 2: Iniciación

Ahora que tenemos una buena comprensión de los lenguajes de programación y de lo que la máquina está haciendo podemos empezar a trabajar en la tarea que nos ocupa, la explotación.


(
Aprendizaje paralelo# 1 terminado: ahora deberías tener un buen conocimiento de uno de los tres lenguajes de scripting listados)

Aprendizaje paralelo # 2: (completa esta sección antes de finalizar la parte 2)

(lee primero algunas entradas de este blog)


(este blog contiene información muy útil para empezar con fuzzers)


(el siguiente enlace es una demo, pero en este blog también encontrarás muchas cosas interesantes)


(papers de overflowedminds recomendados por Borja Merino)
(Aprendizaje paralelo# 2 terminado)

Parte 3: Herramientas comerciales
A continuación se listan algunas herramientas útiles



Parte 4: Networking y Metasploit(Networking)

(Metasploit)


Parte 5: Shellcode

Parte 6: Ingeniería inversaAprendizaje paralelo # 3: (sitios de referencia y uso para reversing)



Parte 7: Profundizando un poco en desbordamientos de buffer (BOF)Aprendizaje paralelo # 4: (para el final del curso y para después)
Encontrar exploits antiguos en Exploit-db, descargarlos, probarlos, reescribirlos y entenderlos.

(Parte A: contramedidas)


(Parte B: BOF Avanzado)


Parte 8: Desbordamientos de cabecera (heap overflow)



Parte 9: Lista de sitios de exploiting

(bonus: sitio que lista los tipos de vulnerabilidad e info)


Parte 10: Para añadir...1. Fuzzing
2. Formato de ficheros
3. y más


Y hasta aquí llega el camino. ¿Conocéis algún otro enlace de interés? ¿habéis seguido alguno una senda distinta? ¡Comenta por favor!.


Fuente: http://www.hackplayers.com