Se acerca la tercera edición de Sec/Admin, la CON de Sevilla

El próximo 25 y 26 de noviembre tendrá lugar en la facultad de informática de la universidad de Sevilla la tercera edición de la conferencia SecAdmin, sin duda una cita ineludible para todo aquel que le guste el hacking y la seguridad informática.

Por sólo 30€ que es lo que cuesta la entrada general tendrás acceso a todas las charlas (desayuno incluido) y a uno de los talleres, con 4 horas de formación incluidas.  También sortearán libros de 0XWord, camisetas y habrá muchas otras sorpresas.

Además este año habrá muchas e interesantes novedades:

- CTF #secadmin2016 con el apoyo de Incibe. El ganador se llevará la katana de esta tercera edición.

- Artillería: una sección de 'arsenal' en el que los asistentes tendrán la oportunidad de presentar a la comunidad sus últimas herramientas, con la posibilidad de que la ganadora será promocionada por Toolswatch


- Zona Fsociety: una zona lúdica con máquinas recreaticas para poder echarse una que otra partida en los descansos

- Arte digital:  todo lo relacionado con drones, robótica, arduino, raspberry, gadgets, etc. Al igual que se exponen en galerías obras de arte como pinturas y esculturas ¿por que no exponer el arte digital? Una buena ocasión de exponer estos productos.

- Keynotes: para expresarse libremente, exponer investigaciones, contar inquietudes, dudas, etc.

- Hacking Solidario: unas charlas de concienciación en seguridad TIC a familias, donde se recogerán alimentos/juguetes para los más necesitados.

- Zona Recruiter: para la recogida de CVs en mano y tener la posibilidad de desarrollar tu carrera profesional en unas de las consultoras de seguridad más punteras del momento.

- Black Sec/Admin: después del cierre del viernes en un establecimieto (todavía a confirmar) habrá una Sec/Admin más underground en la que no faltará la cerveza y la posibilidad de charlas improvisadas & Wargames al más puro estilo underground.

- After hour: Fiesta final, tras clausurar el evento los mejores hackers de España invadirán Sevilla. La diversión esta garantiza  en los locales de moda de la capital andaluza.

Agenda (7 Talleres & 18 Charlas)

Web oficial: https://www.secadmin.es/

VPNs concurrentes con OpenVPN

Ya sabéis que hace poco liberamos 4nonimizer, un script en bash que permite ocultar la IP con la que salimos a Internet usando un proveedor VPN que soporte OpenVPN. Inicialmente la herramienta levanta un único túnel pero, ¿por qué no levantar varios de forma concurrente?"

Imaginad la posibilidad de usar una "cadena de proveedores VPN", es decir, establecer una VPN teniendo previamente otra levantada, y así varias veces para ocultar la IP real detrás de varias "capas". O la posibilidad de distribuir tráfico paralelamente durante un escaneo de puertos multiplicando la rapidez y de paso facilitando la evasión de IDS/IPS. Por poner dos claros ejemplos...

Pues nada más fácil, simplemente hay que levantar cada uno de los túneles añadiendo cada ruta con una métrica diferente y pata ello sólo hay que especificarlo en cada fichero de configuración correspondiente del cliente openvpn (.ovpn).

El siguiente script levantará automáticamente tantos túneles VPN como indiquemos:
#!/bin/bash
cp pass.txt ./multivpn
rm ./multivpn/*.ovpn

echo introduce numero de vpns concurrentes
read novpns

# Copia 3 ficheros ovpn adicionales por si algún peer falla
novpns=$((novpns + 3))

currentnovpns=0
while [ $novpns != $currentnovpns ]
do    
    randomvpn=$(ls *.ovpn | shuf -n 1)
    if [ ! -f ./multivpn/$randomvpn ]; then
        cp $randomvpn ./multivpn/ 
        echo "Copiado el fichero $randomvpn"
    fi
    currentnovpns=`ls -1 ./multivpn/*.ovpn 2>/dev/null | wc -l`
done

novpns=$((novpns - 3))

# levanta cada tunel con diferentes metricas
metric="20"
INT=$(ls /sys/class/net/ | grep -E '^eth|^en' | head -1)
GW=$(ip route show 0.0.0.0/0 dev $INT | cut -d\  -f3 | sort -u)

for file in $(ls ./multivpn/*.ovpn) 
    do
    echo "route-metric $metric" >> $file
    echo "route-nopull 1" >> $file
    echo "route 0.0.0.0 0.0.0.0 vpn_gateway $metric" >> $file
    metric=$((metric + 1))
done

cd multivpn

musthavetun=1
tries=1

for file in $(ls *.ovpn) 
do

    currenttun=$(ifconfig | grep tun | awk '{print $1}' | wc -l)
    echo -en "\nNúmero de túneles levantados: $currenttun\n"

    nohup openvpn $file 2>/dev/null &

    echo "Levantando interfaz de túnel"
    while [[ $currenttun -lt $musthavetun ]]
        do
            echo -en "."
            tries=$((tries + 1))
            sleep 1
            currenttun=$(ifconfig | grep tun | awk '{print $1}' | wc -l)
            if [ "$tries" = 30 ]
            then
                break
            fi
        done
    
    route del default gw $GW $INT 2>/dev/null
    route add default gw $GW $INT 2>/dev/null
    sleep 3
    if [ "$currenttun" = "$novpns" ]
    then 
        break    
    else
        musthavetun=$((musthavetun + 1))
        echo "ok!"
    fi
done

echo -e " todos los túneles levantados."

SAIVS, ¿el principio del fin de los pentesters humanos?

Actualmente las auditorías de aplicaciones web son realizadas por ingenieros de seguridad o pentesters y muchas veces la identificación de las vulnerabilidades depende en gran medida de su pericia, experiencia e intuición. ¿Y si elimináramos el factor humano para automatizar estas auditorías?

¿Sería posible sustituir completamente a un pentester humano por un software que no comete errores ni descuidos, capaz de obtener mayores tasas de detección de vulnerabilidades? ¿Y si se aprovecharan estos bots para los programas de recompensas de bugs?


Dejo en el aire estas preguntas, pero no me extrañaría que esto empiece a ponerse en práctica en pocos años...

Y es que una de las herramientas que más me impresionó del arsenal de la Black Hat en Asia de este año es la herramienta SAIVS (Spider Artificial Intelligence Vulnerability Scanner) de los japoneses Isao Takaesu y Takeshi Terada, que usa Inteligencia Artificial para encontrar vulnerabilidades de forma automática. Es decir, su objetivo es encontrar vulnerabilidades en aplicaciones web tal y como la haría un pentester humano.

De momento desde enero de 2016 ya están mostrando los resultados de la versión beta, que ya puede recorrer (llamarle spidering o crawling) aplicaciones web sencillas, incluyendo páginas dinámicas como "login," "create account" y "information search", y detectar vulnerabilidades como XSS y SQLi.

Mediante machine learning es capaz de establecer e imitar comportamientos humanos en tests de intrusión: "SAIVS reconoce el tipo de la página. Si se llega a la página de inicio de sesión sin tener credenciales, crea un login de inicio de sesión en la página de creación de cuentas. Después, inicia sesión con el nombre del usuario creado y rastrea el resto de las páginas y las escanea en busca de vulnerabilidades. Cuando termina todas las páginas, emite un informe del escaneo". Para ello utiliza algoritmos de aprendizaje automático como Naive Bayes, Q-Learning y Perceptrón multi-capa con el fin de lograr una de las capacidades mencionadas anteriormente, por lo que ya se puede utilizar para escanear aplicaciones web sencillas.

Aquí tenéis un vídeo con la demostración: https://www.mbsd.jp/blog/img/20160113_4.mp4 

Podéis encontrar más detalle en el blog de Isao Takaesu así como el material de la BlackHat (paper y presentación) y de la Code Blue (presentación) de 2016.

¿Llegará el día en que no haya pentesters humanos?

Drammer, un exploit para hacerse root en Android mediante un fallo... ¡en el hardware!

La memoria DRAM que tiene nuestras computadoras, incluido los smartphones, es un tipo de memoria volátil que utiliza millones de transistores y condensadores que se dividen en celdas de filas y columnas. Cada uno de estos condensadores tiene un estado de carga para almacenar el valor de un bit (1 con carga y 0 sin carga). Dado que están muy próximos entre sí (micro o nano escala) es posible afectar al estado de los condensadores contiguos cambiando el estado de los más cercanos una y otra vez (bit flipping), como si se tratase de las vibraciones de un martilleo continuo. 

Hace un par de años se habló de la técnica llamada 'row hammer' que se aprovechaba de eso: inundar una fila o columna entera de datos una y otra vez para afectar a las celdas de memoria contiguas cambiando su estado.

Sin embargo, parecía que aplicar está técnica era sólo factible con componentes de hardware muy específicos con fallos o que podían repelerse mediante capacidades avanzadas de gestión de memoria.

Pero nada más lejos de la realidad... un grupo de investigadores acaba de demostrar que este ataque puede llevarse a la práctica ahora mediante código javascript (rowhammer.js) capaz de escapar del sandbox del navegador y hacerse con la memoria del ordenador e incluso en nuestros smartphones.
De aquí surge Drammer que permite además llevar a cabo esta técnica en smartphones. En el siguiente vídeo podéis como en apenas un minuto se consigue acceso root en un Nexus 5 con Android 6.0.1:

La solución contra este ataque se presenta complicada puesto que, como comentamos, se trata fundamentalmente de un problema de hardware, así que veremos hasta que punto son efectivas las mitigaciones que vayan publicando en los próximos días. En cualquier caso es algo serio, más aún si se combina con otros vectores de ataque como Stagefright o BAndroid.

Respecto a los dispositivos afectados en este caso no se espera que se publique listados estáticos ya que hay dispositivos que aún siendo el mismo modelo podrían tener distintos componentes y por lo tanto unos podrían ser vulnerables y otros no. Los investigadores prometen una aplicación en Google play que podremos instalar en nuestros dispositivos para comprobar de forma específica si son vulnerables a Drammer o no. Estaremos atentos.

Paper: Rowhammer.js: A Remote Software-Induced Fault Attack in JavaScript
Drammer: https://www.vusec.net/projects/drammer/

#DirtyC0w, una condición de carrera desde hace 11 años que permite hacerse root

Dirty Cow es un bug que lleva presente 11 años en Linux y permite a cualquiera elevar privilegios como root. El fallo se encuentra desde la versión 2.6.22 (de 2007) y ha sido corregida el 18 de Oct, 2016.

Su nombre es considerado un BWAIN (Bug With An Impressive Name) y COW viene de Copy On Write (copiar al escribir), un truco que los sistemas operativos más modernos utilizan para ahorrar tiempo cuando se copia algo (por ejemplo un archivo o un bloque de memoria), que en realidad consiste simple y llanamente en que por debajo no realizan la copia de inmediato. Es decir, cuando accedes a un elemento copiado sigues accediendo al elemento original, y realmente sólo se copia si se modifica porque sólo entonces habrá dos versiones distintas que necesitan divergir.

Por supuesto, si hay un fallo en el mecanismo COW y la copia no sucede cuando debe, o sucede cuando debería no ser así, los cambios se pueden perder, o realizarse en lugar equivocado.

El bug DirtyCOW, conocido oficialmente como CVE-2016-5195, es un fallo del segundo tipo: los datos se escriben en una ubicación de memoria incorrecta.

Concretamente es una condición de carrera que se ha encontrado en la forma en la que el subsistema de memoria del kernel de Linux maneja las asignaciones del acceso de escritura de las operaciones COW. Un usuario local sin privilegios podría usar este fallo para obtener acceso de escritura a mapas de memoria de sólo lectura y aumentar así sus privilegios en el sistema.

Ya se han publicado varias PoCs que demuestran cómo funciona y puede explotarse esta vulnerabilidad. Los exploit hacen más o menos lo siguiente:

- Primero mapean su propio proceso en lo que es conocido como un mapeo privado de escritura. Como decimos, con COW no se copiará inmediatamente por podremos modificar ese mapeo privado sin afectar al programa en ejecución.

- Segundo mapean en memoria un archivo con acceso de sólo lectura. En teoría, COW debería ser irrelevante aquí: no se tiene acceso de escritura al archivo por lo que tampoco se tiene acceso de escritura en el mapa de memoria y no se debería poder cambiarlo en absoluto.

- Y tercero, se ejecutan dos threads o hilos en paralelo. Uno que escribe los cambios en el mapa de memoria escribible y privado y el otro que le dice al kernel que puede liberar temporalmente cualquier memoria utilizada para el archivo asignado. Ambos hilos "colisionarán" y los datos que se están intentando escribir en el memory map privado "accidentalmente" se volcarán en el memory map del archivo de sólo lectura.

King Phisher 1.5.2 – Toolkit para campañas de phishing

King Phisher es una herramienta para probar y promover la sensibilización de los usuarios mediante la simulación de ataques de phishing (suplantación de identidad) en el mundo real. Cuenta con una arquitectura fácil de usar pero muy flexible, que permite un control total sobre los correos electrónicos y el contenido del servidor. King Phisher puede ser utilizado para ejecutar las campañas que van desde la formación y concienciación simple hasta los escenarios más complicados en los que se sirven contenidos al usuario para recopilar credenciales.

Descripción general de funciones

- Ejecución de varias campañas de phishing de forma simultánea
- Envío de correo electrónico con imágenes incrustadas para una apariencia más legítima
- Autenticación opcional de dos factores
- Recolección de credenciales de páginas de destino
- Alertas SMS en relación con el estado de la campaña
- Capacidades de clonación de las páginas web
- Comprobación integrada de Sender Policy Framework (SPF)
- Geo localización de visitantes de phishing
- Envío de correo electrónico con invitaciones de calendario


Plugins

Tanto el cliente como el servidor pueden ampliar su funcionalidad mediante plugins. Por defecto King Phisher viene con un pequeño número de plugins y otros adicionales están disponibles en el repositorio de plugins.

Archivos de plantilla (templates)

Las plantillas, tanto para los mensajes como para las páginas de servidor, se pueden encontrar por separado en el repositorio de plantillas de King Phisher. Cualquier contribución con respecto a las plantillas deberá realizarse a través de una petición de pull en el repositorio correspondiente.

XI Concurso Universitario de Software Libre

El pasado día 15 de Octubre se abrió el plazo de inscripción para la undécima edición del Concurso Universitario de Software Libre, correspondiente con el curso académico 2016/17. En el concurso pueden inscribirse estudiantes de bachillerato, ciclos de grado medio y superior; y universitarios (incluido grado, máster y doctorado) matriculados en centros españoles durante este curso. Las inscripciones podrán realizarse a través de la web http://www.concursosoftwarelibre.org/1617/.

Con esta nueva edición que comienza a andar acumulan ya once ediciones del concurso. Allá por 2006, empezaron a trabajar con mucha ilusión y muy pocos recursos con el objetivo de acercar el desarrollo de software libre a los estudiantes.

Ahora se cumplen once años desde que comenzó esta actividad de promoción del desarrollo de software libre en el ámbito educativo y universitario. Y así, siguen acumulando “números interesantes”: la cifra de estudiantes participantes asciende ya a casi 1300, los cuales han presentado más de 890 proyectos. También son cerca de 50.000 los euros repartidos en premios desde la creación del concurso.

Fase final del X Concurso Universitario de Software Libre en Mayo de 2016, Sevilla.
Este XI CUSL cuenta de momento con el apoyo organizativo de las oficinas del software libre de las universidades de Sevilla, La Laguna, Miguel Hernández (Elche), Zaragoza, Córdoba y Almería.

Desde la organización del concurso creen que el Software Libre se presenta como un complemento perfecto para la formación de los estudiantes, ya que les permite obtener experiencia en el proceso de desarrollo de software o hardware en etapas previas a la inserción en la vida laboral. Es por eso por lo que animan a los estudiantes a que participen en dicho evento.

Recordar también que aún se encuentra abierto el plazo de búsqueda de patrocinadores para el concurso. La información al respecto se puede encontrar en la dirección http://www.concursosoftwarelibre.org/1617/patrocinadores.

Shell inversa interactiva y cifrada con socat y openssl

Tras leer el artículo de alguien en la fisi (http://blog.alguien.site/2016/05/shell-reversa-interactiva-lo-hackback.html), me puse a investigar como mejorar la técnica de creación de una shell inversa de forma interactiva y además por un canal seguro.
Hoy me gustaría compartir con vosotros como crear una shell inversa de forma interactiva con socat y como cifrar ese canal a través de openssl.

Dicho esto vamos al lío :-)

Lo primero tenemos dos terminales, una de la victima y la otra del atacante.

Ya se que lo sabréis la mayoría, pero por si acaso antes de nada os comento la diferencia entre shell directa y shell inversa:

-Shell directa: El atacante se conecta directamente a la victima.
-Shell inversa: En este otro caso sería la victima la que se conectaría al atacante (usada habitualmente para evadir sistemas de firewall)

Resultados de la auditoría realizada a VeraCrypt

Mucho se especuló acerca de si Truecrypt tenía bugs intencionados o puertas traseras que permitieran a un oscuro tercero (aka NSA) acceder a cualquier contenedor cifrado. Para comprobarlo se llevó a cabo una campaña de crowdfunding para realizar una auditoría exhaustiva del popular software de código abierto y el resultado del proyecto llamado Open Crypto Alliance fueron algunos fallos no demasiados serios y, sobretodo, nada plausible en cuanto a malintencionado.

Por otro lado, ya sabéis que una vez discontinuado Truecrypt (2014) quizás la mejor o una de las mejores alternativas es el fork Veracrypt de IDRIX, desde el 28 de junio de 2015 bajo licencia Apache License 2.0.

Como no podía ser de otra manera y de forma similar a como se hizo con Truecrypt, la auditoría se hizo casi obligatoria para disipar cualquier suspicacia. Y para ello QuarksLab inició hace 2 meses una revisión de la versión 1.18 de Veracrypt y sus bootloaders que finalizó ayer con los siguientes resultados:

- 8 vulnerabilidades críticas
- 3 vulnerabilidades medias
- 15 vulnerabilidades bajas o informativas / preocupaciones

En el momento de la publicación de estas vulnerabilidades VeraCrypt ha lanzado la versión 1.19 que corrige la mayoría de ellas, y decimos la mayoría porque algunas todavía no he han corregido completamente debido a la complejidad de la implementación del parche correspondiente, si bien se presentan en la documentación los workarounds temporales correspondientes. Las correcciones son:

- Eliminación de la opción del cifrado GOST 28147-89: su implementación no es segura. Permanece la funcionalidad para descifrar volúmenes que usan este cifrado pero no se podrá volver a crear volúmenes nuevos con este cifrado.
- Eliminación de XZip y XUnzip: que han sido reemplazados por librerías zip más modernas y seguras (libzip).
- Corrección de la vulnerabilidad descrita en la sección 5.1 (la longitud de la password puede definirse en el bootloader clásico).
- Corrección de la vulnerabilidad descrita en la sección 7.1 en el nuevo bootloader. (keystrokes no son borrados después de la autenticación)
- Corrección de la vulnerabilidad descrita en la sección 7.2 en el nuevo bootloader. (los datos sensibles no son borrados correctamente)
- Corrección de la vulnerabilidad descrita en la sección 7.3 en el nuevo bootloader. (corrupción de memoria)
- Corrección de la vulnerabilidad descrita en la sección 7.4 en el nuevo bootloader. (null pointer, dead code, datos inconsistentes leídos por ConfigRead, puntero erróneo en EFIGetHandles, dereferencia de puntero nulo en la librería gráfica.)

El resultado es que VeraCrypt es mucho más seguro después de esta auditoría, así que os recomendamos actualizar a la versión 1.19 lo antes posible: https://sourceforge.net/projects/veracrypt/

Fuente: https://ostif.org/the-veracrypt-audit-results/

29 bytes de código que se convierten en 16 GBs al compilar (compiler bomb)

Probablemente ya conozcáis las bombas zip, las bombas xml, etc., por decirlo de una manera sencilla, ficheros (relativamente) pequeños que producen una salida de enorme tamaño cuando son interpretados por el software nativo. El resultado, si se tiene mala leche, es provocar una auténtica denegación de servicio en la máquina que se ejecuta.


Hace unos meses en un foro de StackExchange lanzaron un reto para crear una de estas bombas abusando de un compilador. El ganador, el código más pequeño capaz de generar la salida mayor al compilarse.

Y bueno, un tal Digital Trauma presentó tan sólo 29 bytes de código C que al compilarse generar un ejecutable de... 17,179,875,837 bytes (16 GB)!:

main[-1u]={1};

Como veis, se define la función main como un array large (unsigned int con el valor 0xffffffff) y se inicializa en el primer elemento. Esto hará que GCC almacene el array entero en el ejecutable resultante. Debido a que el array es mayor de 2GBs al compilarlo tendremos que especificar el flag -mcmodel=medium. Así que si ejecutamos:

gcc -mcmodel=medium cbomb.c -o cbomb

Veréis como se satura rápidamente la CPU, la memoria y el disco... :-O


Fuente: Build a Compiler Bomb

Recopilatorio de sitios que contienen muestras de malware de Itay Cohen

Los analistas de malware siempre tienen la necesidad de obtener nuevas muestras para analizarlas con el fin de aprender, entrenar o desarrollar nuevas técnicas y defensas. Si hace unos años veíamos un imponente repositorio de recursos de malware por Claus Valca, hoy os traemos otro de Itay Cohen en su blog Megabeets, también con una buena lista de repositorios, bases de datos y recursos que usa a diario. Algunos de ellos se actualizan con frecuencia y otros no. Eso sí, tener siempre cuidado al usar estos sitios, casi todos contienen archivos maliciosos. ¡Utilizar con precaución!
  • theZoo: es un proyecto mantenido por Yuval Nativ (ytisf) que recopila una buena lista de malware para su análisis.
  • OpenMalware: proyecto de Danny Quis.
  • contagio: un gran colección de las últimas muestras de malware, amenazas, observaciones y análisis.
  • Hybrid Analysis: servicio gratuito de malware ofrecido por Payload Security. Es posible subir ficheros para un análisis dinámico y estático y también pueden descargarse muestras subidas por otros.
  • AVCaesar: es un repositorio y un motor de análisis de malware, desarrollado por malware.lu.
  • Das Malwerk: recolecta ejecutables maliciosos de toda clase de sitios "oscuros" de Internet.
  • KernelMode.info: una comunidad muy activa orientada al análisis de malware y al desarrollo del kernel.
  • MalShare: es un esfuerzo de colaboración para crear un repositorio de software malicioso público impulsado por la comunidad que trabaja para construir herramientas adicionales en beneficio de la comunidad de la seguridad en general.
  • MalwareBlacklist: repositorio de URLs y muestras de malware.
  • Malwr: es un servicio de análisis de malware gratuito y una comunidad lanzada en enero de 2011. Puedes subir archivos y recibir los resultados con un completo análisis y también descargar las muestras subidas por otros.
  • Virusign: permite la descarga de malware y ordena los ejecutables por orden de importancia. Además los analizan para crear nuevas firmas.
  • VirusShare: un repositorio de muestras de malware para proporcionar a los investigadores de seguridad, los que trabajan en respuesta ante incidentes, los analistas forenses y a la curiosidad morbosa.
  • Malwarebytes Research Center: foros donde se postean nuevas amenazas y urls.
  • Mobile Malware (Google Group): una lista de correo para la investigación de malware móvil. Este grupo permite material relacionado con nuevas muestras de malware móviles, análisis, nuevas técnicas, preguntas relacionadas con el campo y otros materiales relacionados.
  • SecuBox Lab: repositorio del equipo francés llamado (Malware Analysis & Diagnostic)
  • Malekal: recopilatorio de malware de Malekal.
  • Malc0de: una base de datos actualizada con los dominios y hostings que contienen ejecutables maliciosos.
  • VX Vault: colección de malware y urls de S!Ri.URZ.
  • Scumware: tienen una base de datos que contiene datos como: URL, MD5, IP, TLD, etc
  • Sucuri Malware Labs: últimas detecciones encontradas por Sucuri Labs.
  • Zeus Tracker: permite hacer un seguimiento a los servidores C&C de Zeus y a los hosts maliciosos que contienen ejecutables.
  • Fedeo Tracker: una lista de servidores C&C de Fedeo.
  • Cybercrime Tracker: lista de paneles C&C de algunas botnets activas.
Fuente: Fantastic Malware and Where to Find Them

cve-search: una herramienta para realizar búsquedas de vulnerabilidades de forma local

Queramos o no, cuando buscamos vulnerabilidades conocidas en bases de datos de CVEs públicas estamos filtrando información sensible como los productos de software y plataformas que tenemos y/o estamos auditando. Llamarme paranoico pero cuando vi una herramienta que se bajaba las bases de datos de vulnerabilidades y permitía hacer búsquedas locales más rápidas y limitando las peticiones sensibles hacia Internet no dudé en probarla.

Se trata de cve-search, una herramienta para importar CVE (Common Vulnerabilities and Exposures) y CPE (Common Platform Enumeration) a una base de datos MongoDB para facilitar las búsquedas y el tratamiento de CVEs.

cve-search incluye un backend para almacenar vulnerabilidades e información relacionada, un interfaz web intuitivo para buscar y administrar vulnerabilidades, una serie de herramientas para realizar peticiones al sistema y un API web como interfaz.

cve-search lo utilizan ya muchas organizaciones incluyendo los servicios incluyendo el CIRCL (Computer Incident Response Center Luxembourg).

Bases de datos y recopilaciones

La base de datos MongoDB llamada cvedb tiene 11 recopilatorios:
  • cves (Common Vulnerabilities and Exposure items) - fuente NVD NIST
  • cpe (Common Platform Enumeration items) - fuente NVD NIST
  • vendor (Official Vendor Statements on CVE Vulnerabilities) - fuente NVD NIST
  • cwe (Common Weakness Enumeration items) - fuente NVD NIST
  • capec (Common Attack Pattern Enumeration and Classification) - fuente NVD NIST
  • ranking (reglas de ranking por grupo) - local cve-search
  • d2sec (referencias de exploiting de D2 Elliot Web Exploitation Framework) - fuente d2sec.com
  • vFeed (referencias cruzadas con ids CVE (e.g. OVAL, OpenVAS, ...)) - fuente vFeed - proprietary feed - MITRE Reference Key/Maps preferible
  • ms - (Microsoft Bulletin (Security Vulnerabilities and Bulletin)) - fuente Microsoft
  • exploitdb (Offensive Security - Exploit Database) - fuente offensive security
  • info (metadatos de cada recopilatorio como última modificación) - local cve-search
Redis tiene 3 base de datos:
  • El caché cpe (Common Platform Enumeration) - fuente MongoDB cvedb collection cpe
  • La base de datos de notificaciones - fuente cve-search
  • La base de datis de referencias CVInterfaz web
    E es una bd de referencias cruzadas de CVE ids contra IDs de fabricantes - source NVD NIST/MITRE

Desarrollan código "a prueba de hackers"

En verano de 2015 la Agencia de Proyectos de Investigación Avanzada de Defensa (en adelante DARPA) inició una serie de pruebas en las que un equipo de hackers debía intentar tomar el control de un helicóptero militar no tripulado conocido como Little Bird. Después de seis semanas, el Red Team fue incapaz de hackear el dron incluso contando más facilidades de las que podría soñar cualquier atacante externo...

El proyecto High-Assurance Cyber Military Systems (HACMS) de DARPA pone en marcha un nuevo viejo tipo de mecanismo de seguridad - un sistema de software que no puede ser comprometido. Las partes fundamentales del sistema informático del Little Bird eran impenetrables con la tecnología existente, y su código tan confiable como una prueba matemática.

La verificación formal

La tecnología que "repele" a los hackers es un estilo de programación de software conocido como verificación formal. A diferencia de la mayoría del código que está escrito de manera informal y cuya evaluación se basa principalmente en ver si funciona o no, el software verificado formalmente se lee como una prueba matemática: cada declaración es consecuencia lógica de la anterior. Un programa completo se puede probar con la misma seguridad que los matemáticos demuestran teoremas.

La aspiración de crear un software verificado formalmente ha existido casi desde la creación de la informática. Durante mucho tiempo parecía inalcanzable pero los avances en la última década en los llamados "métodos formales" están empezando a posibilitar su aplicación práctica. Hoy en día la verificación del software formal está siendo estudiada mediante colaboraciones académicas bien financiados, empresas militares y de tecnología de Estados Unidos, tales como Microsoft y Amazon.

¿Estas seguro que puedes detectar un malware APT como ShinoBOT?

ShinoBOT de Shota Shinogi es un software para simular un bot o RAT (Remote Access Trojan) y, como tal, puede comunicarse con un servidor C&C (ShinoC2) para ejecutar cualquier comando, subir o bajar ficheros o tomar capturas de pantalla. Esta destinado a ser usado para ver la capacidad de una organización a la hora de detectar y/o detener una APT. Es decir, poder simular un ataque o campaña con unos pocos clics...

Además existe una completa suite que incluye un emulador de ransomware (con la única diferencia que no tendrás que pagar por "rescatar" los ficheros), un ofuscador para la evasión de AV e IPS, un proxy para evitar ser banneado en listas negras, un builder para personalizar el malware y hasta un módulo para SCADA/ICS al más puro estilo "Stuxnet".

En los últimos años ha sido presentado en el arsenal de conferencias tan importantes como la Blackhat de USA y Asia. Un pero: no está disponible el código fuente del bot (si del proxy y del encoder) por lo que para poder utilizarlo es recomendable, o bien confianza ciega, o bien una análisis dinámico y estático previos. No obstante, una herramienta interesante para probar...

http://shinobot.com/top.php
http://shinosec.com/
https://github.com/Sh1n0g1

Controla tu BIOS/UEFI con Libreboot

La mayoría de la gente usa un firmware de arranque propietario y, aunque use un sistema operativo libre, en el inicio está sujeto al software cerrado del fabricante como una caja negra que puede contener backdoors o fallos o bugs críticos. ¿Por qué no usar entonces una BIOS/UEFI que podamos estudiar, controlar y adaptar a nuestras necesidades?

Libreboot es un reemplazo gratuito de la BIOS o UEFI; un firmware libre y de código abierto que inicializa el hardware y un gestor de arranque para el sistema operativo.

Originalmente Libreboot comenzó en diciembre de 2013 como un esfuerzo comercial del llamado Ministerio de la Libertad instalándolo en un ThinkPad X60 modificado (el primer sistema que se añadió libreboot).

En aquel entonces, no existía el nombre libreboot; el proyecto no tenía nombre, refiriéndose a sí mismo como una versión "deblobbed" de Coreboot. El proyecto empezó a llamarse libreboot a principios de 2014, y desde entonces se ha expandido rápidamente para soportar más hardware y ser más fácil de usar.

Libreboot es una distribución Coreboot con el software propietario eliminado, con la intención de ser un reemplazo libre de la "BIOS" del equipo. El proyecto está dirigido a los usuarios, tratando de hacer Coreboot tan fácil de usar como sea posible.

Libreboot tiene muchas ventajas prácticas sobre el firmware de arranque patentado, tales como una velocidad de arranque más rápida y mejor seguridad. Puedes instalar GNU/Linux con arranque cifrado, verificar las firmas GPG en el kernel, poner un kernel en el chip flash y más. Sin duda merece la pena echarle un vistazo ¿o no?:

Proyecto: https://libreboot.org/
Código fuente: https://notabug.org/vimuser/libreboot-website

Referencias:
- ¿Cómo instalo Libreboot en mi IBM Thinkpad X60 o Lenovo T60?
- Libreboot: La visión de un BIOS «libre» y «open source»
- Vamos a instalar LibreBoot en una ThinkPad
- Libreboot Leaves The GNU, The Free Software Foundation Denounced

4nonimizer, un script para anonimizar tu IP que soporta múltiples VPNs

Hace unas semanas publicamos una entrada con un tutorial para enmascarar y loggear nuestra IP pública (VPN/TOR) desde el inicio en Linux, utilizando varios scripts que levantaban TOR y usaban el servicio VPN gratuito de VPNBook.

A partir de ahí, decidimos crear una herramienta que permitiera el uso de más proveedores VPN, incluso de pago, y el resultado es... 4nonimizer, que ya podéis encontrar disponible en nuestro Github.

Esperamos que os guste la herramienta y os sea de utilidad y, como siempre, os animamos a remitirnos cualquier bug o comentario sobre su uso :)

¿Que es 4nonimizer?

Es un script en bash cuyo objetivo es anonimizar (de momento) la IP pública con la que salimos a Internet mediante la gestión del proceso de conexión a TOR y a distintos proveedores VPNs (OpenVPN), ya sean gratuitos o de pago. Por defecto incluye preconfiguradas varias VPN gratuitas automatizando la conexión a distintos peers y la descarga de credenciales correspondientes. Además por defecto registra en ficheros logs la IP que usamos cada 300 segundos.
Este script se habilita como servicio en sistemas systemd y levanta la vpn por defecto (VPNBook) en el inicio del sistema.

Instalación

Descargar el repositorio mediante git , ejecutar la instruccion ./4nonimizer install dentro del directorio, y seguir las intrucciones por pantalla, 4nonimizer se moverá al directorio /opt/ y se instalará como servicio.
Este script tiene compatibilidad completa con Kali Linux, aunque ha sido probado y debería funcionar correctamente también en otras distribuciones como Debian, Ubuntu y Arch (Manjaro). No obstante podrían darse algunos bugs, o funcionamientos inesperados (¡por favor, comenta si encuentras alguno!).

Opciones

Una vez instalado 4nonimizer, introduce el comando 4nonimizer help para obtener la ayuda, la cual nos muestra todos los parámetros disponibles:

Alt text

VPNs disponibles

Actualmente se soportan los siguientes proveedores VPN:
- HideMyAss https://www.hidemyass.com/
- TorGuard https://torguard.net/
- VPNBook (por defecto) http://www.vpnbook.com/
- VPNGate http://www.vpngate.net/en/
- VPNMe https://www.vpnme.me/
- VPNKeys https://www.vpnkeys.com/

¿Cuáles son las ciudades de EMEA con mayor número de bots?

Si habéis observado con detenimiento mapas de ciberataques en tiempo real os habréis fijado que el origen de los ataques, sobretodo DDoS y envío de spam, se concentra especialmente en algunas zonas. Es decir, las grandes botnets tienen bajo su poder un mayor número de dispositivos en unas ciudades que en otras. ¿Por qué? Pues normalmente porque se trata de mercados y ciudades que han tenido recientemente un aumento exponencial de  dispositivos conectados (IoT) a Internet y accesos de alta velocidad, pero cuya conciencia en la seguridad se ha estancado o, al menos, no ha acompañado dicho crecimiento.

Al hilo de ésto, Symantec ha publicado un interesante estudio en el que se muestran los países y las ciudades con mayor número de bots de la zona EMEA (ya sabéis, Europa, Oriente Medio y África), con Turquía y Ankara con el dudoso de honor de estar en el top 1.
También interesante, incluso quizás más, es otro top 10 de países con la clasificación por número de bots por habitante, es decir, la densidad o la proporción de infecciones de bots en comparación con población conectada a Internet del país. En este caso destacan los usuarios húngaros que tienen 1 posibilidad entre 393 de que su dispositivo sea infectado o los monegascos con 1 posibilidad entre 457.

Podéis ver el mapa con el top 10 en la siguiente URL (hay una errata en la posición 8 Madrid, Italy', sres. de Norton):

http://uk.norton.com/emeabots


Ni que decir tiene que el lugar donde residen los bots no tiene nada que ver con el lugar desde donde se controlan. "Las redes de bots son de naturaleza global y un dispositivo infectado en Europa podría contribuir a un ataque en Asia, controlado por un cibercriminal en América del Norte. Probablemente tendríamos bots que atacan desde la Antártida si hubiera allí más ancho de banda", dice Paul Wood , jefe de investigación de ciberseguridad de Symantec.

Fuente: These ten cities are home to the biggest botnets

Malice: un multiAV de código abierto (Go/docker)

Malice de blacktop es un multi-antivirus local que pretende ser un "Virustotal de código abierto" que todo el mundo pueda usar a cualquier escala, desde un único analista de malware hasta una gran compañía.

Está escrito en Go por lo que requerirás la versión 1.5 o superior y necesitarás también Docker ya que irá levantando contenedores para el análisis según los plugins habilitados, todos controlados por un contendedor supervisor con ELK (Elasticsearch, Logstash y Kibana).

Instalación en Kali Linux

Instalamos docker si previamente no lo teníamos:

apt-get install docker.io

Comprobamos versiones:

root@server# docker --version
Docker version 1.11.2, build b9f10c9

root@server:~# go version
go version go1.7 linux/amd64


Ahora exportamos las variables de entorno de GO (es recomendable añadirlas en el fichero .bashrc):

$ export GOPATH=$HOME 
$ export PATH=$PATH:$GOPATH/bin


Llamamos al subcomando "go get" para la instalación:

go get github.com/maliceio/malice